PHY 406 - Microprocessor Interfacing
Techniques
Module 8 - Signal Processing - Digital
Filters
In this module we will actually make a digital filter based on the ideas presented in the lectures
Preparation
Read the lecture notes
Equipment
You will need the signal generator and the oscilloscope.
You will also need the program kaiser.exe which you will find in the e:\sources\filter directory.
It takes three arguments - the series length, the parameter beta and the cut-off frequency. It
produces the series for the low-pass filter. You should have a look at the source code kaiser.c to
see how it does this.
You will also need some advanced VIs from the library - such as the FFT and convolution
routine - you should be able to find these for yourselves.
Generate a Series
- Generate the default series from the lecture notes (cut frequency 0.25, transition band 0.1,
stop-band -60dB) and verify that it is the series required by reading it into LabVIEW and
plotting it.
- Calculate the Fourier Transform and satisfy yourself that this is a low-pass filter with the
required parameters
Make a Filter
- By reading a single point, doing the convolution, and then outputting a single point all in a
timed loop make a low-frequency digital filter. (It will have to be slow because of the speed
you can do the processing but speed is a simple parameter to change).
- Measure the frequency response by hand using the signal generator and the oscilloscope.
Comment on the similarities and differences between what you see and what you expect to
see.
- If you have a 12-bit digitiser and an input sine-wave which exercises the full range of the
converter - what is the maximum attenuation which you can achieve without the output being
zero?
- Try repeating the whole experiment for a stop-band of -80dB
- Try again for a stop-band of -60db and a transition of only 0.05
- Now - both together - -80db and 0.05.
Advanced
This section is for the intelligent/bored or otherwise fascinated. There are no marks for this
section - only the satisfaction of solving a problem or two.
Notes
- The speed problem is a minor one - a general purpose computer and programming language is
not the best for this type of very specialised real-time programming. However it it possible to
run much faster with dedicated hardware. This doesn't add anything to your knowledge
except the knowledge that you can go faster.
- The resolution of your digitiser becomes an issue. You need accurate coefficients and
accurate converters if you are going to make filters with large attentuation ratios.