Digital Filters

Aim of the Experiment:

A goal of this experiment is to implement discrete-time (digital) filtering techniques in real time.

In this experiment you will come across the special architectural features of digital signal processors such as circular buffers that make the processors well suited for signal processing. You will implement different digital filters using in two different programming approaches:

In this experiment, you will construct finite impulse response (FIR) filter and an infinite impulse response (IIR) filter on the DSP. For the FIR method, you will use the C-based convolution routine as well as the two assembly routines contained in the lab manual (see the floppy disk).

The response of these filters will be measured in two ways:

The advantage of using LabVIEW to analyze the output as this is testing can be automated with fairly complicated analysis techniques (e.g. FFT) and these methods are not affected by non-ideal hardware (such as a fault/poor codec, bad signal generator, etc)

Directions:

Here is a list of tasks to complete for the lab and the accompanying assembly code files convol1.sa and convolve.sa.

LabVIEW Implementation:

Correction: The LabVIEW implementation will be provided to you for this lab.

The LabVIEW portion will generate a random signal (that has frequency content throughout the spectrum), send it to the DSP, the DSP will filter it (FIR or IIR), and LabVIEW will read the result. Then, by knowing the input signal and the output signal, the transfer function of the filter can be found. Conceptually, by knowing the z-transforms (or Fourier transforms) of both the input and the output, the transfer function can be found by dividing the two. The LabVIEW VIs for generating random noise and finding the transfer function work with arrays of data rather than individual samples. Thus, your LabVIEW VI will need to use a "for" loop to read and write samples to the DSP. The following LabVIEW VI's may be of use:

  1. Read & Write RTDX VI's (the Write VI is used in the lab2.vi)
  2. "PeriodicRandom" - Generates random samples
  3. "TransferFunction" - Finds frequency response of filter
  4. "UnwrapPhase" -- unwraps phase (especially useful for viewing FIR filter phase responses)

Equipment to be checked out:

All the above equipment can be checked out from the checkout in the second floor. The above list of equipment is the equipment required per work station.

LabVIEW:

Virtual instrument for test and measurement of laboratory #3 results.


Lab Report

All measurements and findings should be in lab report (cycle counts, frequency response, phase responses, etc.). Your report must contain the following:

  1. Theoretical and experimental amplitude response of the FIR filter.
  2. Profiler results for different optimization levels for FIR/C and FIR/Assembly.
  3. Number of taps before you run out of time for FIR/C.
  4. Why use circular buffers?
  5. What restrictions does the C6713 impose on the use of hardware circular buffers and why?
  6. Theoretical and experimental amplitude response of the IIR filter.
  7. Theoretical and experimental phase response of the IIR filter.
  8. What happens if you do not multiply by the scale factor in the IIR filter implementation?
  9. Advantages and disadvantages of FIR vs. IIR filters.

Milestones to Demonstrate to the TA

After each one of these parts, show them to the TA:

Coding Guidelines For this lab, it is especially important to realize that the addition of an element into a circular array and the actual convolution calculation are two entirely separate operations.

Labs 5, 6, and 7 will directly involve performing multiple convolutions for FIR filters, so it makes sense to go ahead and put the Lab #3 convolution routine in a function.

As mentioned on the code grading page, the use of the C modulo operator "%" is discouraged and will be penalized.


Recitation Slides by Mr. Akshaya Srivatsa (UT Austin): Parts 1 and Parts 2 and 3

Recitation Slides for Lab 3 by Prof. Steven Tretter


Assignment

Submitting this assignment is optional, but doing it would be useful with your QUIZ preparations

Assignment

Back to the course home page


Next Experiment

Previous Experiment