0% found this document useful (0 votes)
42 views41 pages

Embedded DSP: Introduction To Digital Filters

Digital filters have become popular in DSP due to their extraordinary performance compared to analog filters. Digital filters are programmable and their characteristics are predictable, unlike analog filters which are affected by environmental factors. Digital filters can be implemented through convolution, where each output sample is calculated by weighting and summing input samples, or through recursion using previously calculated output values. Common digital filter types include low-pass, high-pass, band-pass and band-stop filters.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views41 pages

Embedded DSP: Introduction To Digital Filters

Digital filters have become popular in DSP due to their extraordinary performance compared to analog filters. Digital filters are programmable and their characteristics are predictable, unlike analog filters which are affected by environmental factors. Digital filters can be implemented through convolution, where each output sample is calculated by weighting and summing input samples, or through recursion using previously calculated output values. Common digital filter types include low-pass, high-pass, band-pass and band-stop filters.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Embedded DSP: Introduction to Digital Filters

Digital filters are a important part of DSP. In fact their extraordinary performance is one of the keys that DSP has become so popular.
Audio processing Speech processing (detection, compression, reconstruction) Modems Motor control algorithms Video and image processing

Historically, electronic designers implemented filters with analog components, as resistors, capacitors and inductors. With the develpment of special DSP processor (>1980), designers have a alternative: filter implementation by software on DSPs. Since the last 10 years, the designers can choose between the implementation on several technologies as
General purpose DSP Gate-Arrays

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Introduction to Digital Filters


Analog versus digital filters
Analog filters
Electronic components are cheap. Large dynamic range in amplitude and frequency. Real-time. Low stability of resistors, capacitors and inductors due to temperature. Difficult to get the components accuracy as calculated by the formula. Better performance than analog filters concerning.
Sharp Cut-off in the transition band.

Digital filters:
DSP filters are programmable. The transfer function of the filter can be changed by exchanging coefficiants in the memory. One hardware design can implement many different, loadable filters by executing a software development process. The charachteristics of DSP filters are predictible. Filter design software packages can accurately evaluate the performance of a filter by simulation before it is implemented in hardware. Alternative digital designs are available by tools to adapt the filter to the application.

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Example of analog and digital filter !

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Introduction to Digital Filters


Unlike analog filters, the performance of digital filters is not dependant from the environment, such as temperature or voltage. In general, complex digital filters can be implemented at lower cost than complex analog filters.

Digital filters are used for two general tasks:


Separation of different frequency components in signals if contaminated by
noisy interference other signal

Restoration of signals which have been distorted in some ways


Improvement and correction of an audio signal recording which is distorted by poor equipment Deblurring of an image from improperly focused lens

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Introduction to Digital Filters

Every linear filter has an Impulse response Step response Frequency response Each of these responses contain the same information about the filter, but in different form. All representations are important because they describe how the filter will react under various circumstances.

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Introduction to Digital Filters


Impulse response Frequency response in [dB]

FFT

Step response

Integrate The step response can be evaluated by discrete integration of the impulse response. The frequency response can be found from the impulse response by using the FFT (Fast Fourier Transformation).

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Introduction to Digital Filters


Implementation of a digital filter
By convolution: Convolving the input signal with the digital filter impulse response. Each sample in the output is calculated by weighting the samples in the input and adding them together. All linear filters can be realized by convolution (by a filter kernel) FIR-Filter (Finite Impuls Response) By recursion: Extension of the convolution by using previously calculated values from the output, besides the points from the input. Made of recursion coefficients. IIR-Filter (Infinite Impuls Response)

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Introduction to Digital Filters


How Information is Represented in Signals
Information is represented in the time domain Information is represented in frequency domain The step response describes how information in the time domain is being modified by the system. The frequency response shows how information repesented in the frequency domain is being changed. It is not possible to optimize a filter for both applications ! High performance in time domain results in poor performance in the frequency domain, and vica versa.

Embedded Systems 2002/2003 (c) Daniel Kstner.

Embedded DSP: Introduction to Digital Filters


Time Domain Parameters
Rise-time: To select events in a signal, the duration of the step response must be shorter than the spacing of the events, looked for.
----> The step response should be as fast as possible for the given system. In general the rise-time time is the time between 10 and 90 %.

Overshoot: Overshoot is generally a real distortion of the signal, and must therefore be eliminated or at least decreased. Overshoot changes the amplitude of the signal !. Linear phase: Often symmetry is necessary: rising edges looking similar to the falling edges.

Embedded Systems 2002/2003 (c) Daniel Kstner.

Poor results

Slow step response

Fast step response

Good results

Overshoot

No overshoot

Nonlinear phase

Linear phase

Embedded Systems 2002/2003 (c) Daniel Kstner.

10

Embedded DSP: Introduction to Digital Filters


The four basic frequency responses: low-pass, high-pass, band-pass and band-stop. A fast roll-off means that the transition band is very narrow. The division between the passband and the transition band is called the cutoff frequency.
passband transition band Band-pass

Low-pass

stopband Frequency High-pass transition band passband Band-stop Frequency

stopband Frequency Frequency

Embedded Systems 2002/2003 (c) Daniel Kstner.

11

Embedded DSP: Introduction to Digital Filters


Frequency Domain Parameters
The purpose of this filters is to allow some frequencies to pass unchanged, while other frequencies are fully blocked. In analog filter design , the cut-off frequency is normaly defined as the -3dB point (the signal is reduced to 0.707 of the max value). In digital filters it is common to use 90%, 70.7% (-3 dB) or 50 % as the cut-off frequency.

General Guidelines for Frequency Domain Parameters To separate closely spaced frequencies, the filter must have a fast roll-off. For the passband frequencies it is important, that no passband ripple exists. To prevent the stop-band frequencies, it is necessary to have a good stop-band attenuation. The phase is not really important for the most applications in the frequency domain.
Example: The phase of an audio signal is completely random. If the phase is important in the application, we need a filter with a perfect phase response.

Embedded Systems 2002/2003 (c) Daniel Kstner.

12

Poor results

Slow roll-off

Fast roll-off

Good results

Ripple in pass-band

Flat in pass-band

Poor stop-band attenuation

Good stop-band attenuation

Embedded Systems 2002/2003 (c) Daniel Kstner.

13

Embedded DSP: Introduction to Digital Filters


Filter Classification in time domain, frequency domain and custom
Time domain filtering : when the information is encoded in the shape of the signals waveform
Smoothing DC-removal waveform shaping ...

Frequency domain filtering : when the information is contained in amplitude, frequency and phase of the component sinusoids.
Separation of different frequency bands.

Custom filtering: when a special action is required and not realizable by the basic filters (low-pass, high-pass, band-pass and band-stop).

Embedded Systems 2002/2003 (c) Daniel Kstner.

14

Embedded DSP: Introduction to Digital Filters


Filter implemented by

Time Domain Frequency Domain Custom Domain

Moving Average Windowed-sinc FIR-custom

Single pole Chebyshev Iterative design

Embedded Systems 2002/2003 (c) Daniel Kstner.

15

Embedded DSP: Moving Average Filters


Moving average is the most common filter in DSP
Easy to understand Easy to implement for DSP and FPGA Less computation time FIR filter

the moving average filter operates by averaging a number of points from the input signal to produce each point in the output signal. In equation form, this is written
M-1

y [ i ]= 1 /M x [ i+ j ]
j=0

o r sym metr ica l fo rm: when j=(M-1) /2 to (M-1) / 2

Optimal filter for the following tasks:


Reducing random noise while retaining the sharp step response Therefore usefull for time domain encoded signals, but

Worst filter concerning frequency encoded signals (no frequency separation capabilities !) Relatives of the moving average filter include Gaussian and Blackman.

Embedded Systems 2002/2003 (c) Daniel Kstner.

16

Embedded DSP: Moving Average Filters


Example: A three point averager: y[n] = 1/3 [x(n) + x(n+1) + x(n+2)]
n x[n] y[n] n < -2 0 0 -2 0
2/3

-1 0 2

0 2 4

1 4
14/3

2 6 2

3 4 3

4 2 5

5 0 0

n>5 n>5 n>5

x[n] 6 4

y[n] 6 4

Smoother

-4 -3 -2 -1

-9

-4 -3 -2 -1

-9

Embedded Systems 2002/2003 (c) Daniel Kstner.

17

Embedded DSP: Moving Average Filters


Examples: Smothing filter 5 points:
y[n] = 1/5 [x(n-2) + x(n-1) + x(n) + x(n+1) +x(n+2)]
Kernel is a rectangular pulse

In contrast: Least square cubic:


y[n] = 1/35 [-3 x(n-2) + 12 x(n-1) + 17 x(n) + 12 x(n+1) - 3 x(n+2)]
Kernel is a more complex function !

Symmetrical averaging requires that M be an odd number ! An unsymmetrical filter produces an time offset of the output ! Moving average is a convolution using a simple filter kernel: For 5-points the kernel is ....0, 0, 1/5, 1/5, 1/5, 1/5, 1/5, 0, 0, .... (a rectangular pulse)

Embedded Systems 2002/2003 (c) Daniel Kstner.

18

Embedded DSP: Moving Average Filters


Aquired Signal 11 point moving average filter

Filtering by a 11 point moving average filter

Processing time ++

A rectangular pulse with noise


Increasing the number of points in the filter leads to a better noise performance. But the edges are then less sharp. This filter is the best solution providing the lowest possible noise level for a given sharpness of the edges. The possible amount of noise reduction is equal to the square-root of the number of points in the average ( a 16 point filter reduces the noise by a factor of 4)

51 point moving average filter

Filtering by a 51 point moving average filter

Embedded Systems 2002/2003 (c) Daniel Kstner.

19

Embedded DSP: Moving Average Filters


The frequency response is mathematically described by the Fourier Transform of the rectangular pulse. H[f]=sin(Pi f M) / M sin(Pi f) The roll-off is very slow, the stopband attenuation is very weak ! The moving average filter is a good smoothing filter but a bad low-pass-filter !

Processing time ++
3 point Gaussian filter 11 point 31 point Blackman filter

Embedded Systems 2002/2003 (c) Daniel Kstner.

20

Embedded DSP: Moving Average Filters


Filter kernel Frequency response

1 pass 2 pass 1 pass 2 pass 4 pass 4 pass

Multiple-pass averaging filter: passing the input data several times through a moving average filter.

Step response

Frequency response [dB]

1 pass 4 pass

1 pass

2 pass 2 pass 4 pass

Embedded Systems 2002/2003 (c) Daniel Kstner.

21

Embedded DSP: Moving Average Filters


A great advantage of the moving average filter is that the filter can be implemented with an algorithm which is very fast. Example: 9-point moving average filter Y[30] = x[26] + x[27] + x[28] + x[29] + x[30] + x[31] + x[32] + x[33] + x[34]

Y[31]= x[27] + x[28] + x[29] + x[30] + x[31] + x[32] + x[33] + x[34] + x[35] x[27] to x[34] must be calculated for y[30] and y[31] ! If y[27] has already been calculated the most efficient way for y[31] is: y[31] = y[30] + x[35] - x[26] y[i] = y[i-1] + x[i+p] - x[i-q]; with: p = (M - 1) / 2, q = p + 1

Embedded Systems 2002/2003 (c) Daniel Kstner.

22

Embedded DSP: Windowed-Sinc Filters

Windowed-sinc filters are used to separate different bands of frequencies. Features are:
stable very good overall performance in the frequency domain. but therefore --> poor performance in time domain. if done by standard convolution: needs much computation power. less execution time necessary when realized by FFT-programm.

Idea: use of a windowed-sinc filter kernel !


h[i]=sin(2 Pi f i) /( i Pi) (has infinite length)

The basic is the sinc function which is first cutted in time and then smothed with a special time window (Hamming or Blackman).

Embedded Systems 2002/2003 (c) Daniel Kstner.

23

Ideal filter kernel

Ideal frequency response

Low pass filter


Truncated-sinc filter kernel Truncated-sinc frequency response

*
Blackmann or Hamming window Windowed-sinc filter kernel Windowed-sinc frequency response

Embedded Systems 2002/2003 (c) Daniel Kstner.

24

Embedded DSP: Windowed-Sinc Filters


Equation of the Hamming window: h[i] = 0.54 - 0.46 cos(2 Pi i/M) Equation of the Hanning window: h[i] = 0.5 - 0.5 cos(2 Pi i/M) Equation of the Blackmann window: h[i] = 0.42 0.5 cos(2 Pi i/M) + 0.8 cos(4 Pi i/M) Bartlet-window == Triangel window Rectangular window == No window ! Important parameters are: Cut-off frequency according to the sampling rate Filter length M which defines the transition bandwith M = 4 / BW BW is the width of the transition band (e.g. 99% -> 1 % of the curve)

Embedded Systems 2002/2003 (c) Daniel Kstner.

25

Embedded DSP: Windowed-Sinc Filters


Blackman and Hamming window Frequency response

Hamming Hamming

Balckmann

Blackmann

Characteristics of the Blackman and Hamming window:

Frequency response [dB]

Hamming

Blackmann

Hamming

Embedded Systems 2002/2003 (c) Daniel Kstner.

26

Embedded DSP: FIR Filters


An FIR filter is a weighted sum of a limit set of inputs. The equation for a FIR filter is y [n ] = bkx [n-k ]
k=0 m-1

x(n-k) is a previous history of inputs y(n) is the filter output at time n bk is the vector of filter coefficients y(n) = b0 x(n) + b1x(n-1)+ b2x(n-2) + ... + bMx(n-m-1) For linear phase FIR filters, all coefficients are real and symmetrical FIR filters are easy to realize in either hardware (FPGA) or DSP software FIR filters are inherently stable ) x [n-k ] FIR filtering is a convolution in time: y[n ] = h(k
k=0

Embedded Systems 2002/2003 (c) Daniel Kstner.

27

Embedded DSP: FIR Filters


The basic building-block system are the multiplier, the adder and the unit-delayoperator.
x[n] x[n-1] x[n-2]

Unit Delay

Unit Delay

Unit Delay

x[n-3]

b0

b1

b2

b3

y[n]

y(n) = b0 x(n) + b1x(n-1)+ b2x(n-2) + b3x(n-3) .. + bMx(n-m-1)

Embedded Systems 2002/2003 (c) Daniel Kstner.

28

Embedded DSP: FIR Filters


FIR filter have several advantages that make them more desirable than IIR filters for certain design applications:
FIR can be designed to have linear phase. In some applications phase is critical to the output. For example, in video processing, if the phase information is corupted the image becomes fully distorted.

FIR filters are always stable, because they are made only of zeros in the complex plane. Overflow errors are not problematic because the sum of products operation is realized ona finite set of data. FIR filters are easy to understand and implement. FIR filter costs computation time (dependant from filter length !)

Embedded Systems 2002/2003 (c) Daniel Kstner.

29

Embedded DSP: FIR Filters


Design Example by a Software-tool (QEDesign from Momentum Data Systems): Lowpass filter spec:
500 Hz passband cutoff frequency, less than 3 dB 600 Hz stopband cutoff frequency, with at least 40 dB attenuation sampling frequency of 200 Hz

rp=3 rs=40 fs = 2000 f=[500,600] a=[10]

Passband ripple Stopband ripple Sampling frequency Cutoff frequencys Desired amplitude

Embedded Systems 2002/2003 (c) Daniel Kstner.

30

FIR: Filter Filter Design with QEDesign

Embedded Systems 2002/2003 (c) Daniel Kstner.

31

Embedded DSP: Realization of a FIR Filters by DSP


Steps:
Design the filter by a DSP-Design-Tool Create coefficients Put the coefficients in reverse order to the circular buffer call a function e.g. fir.asm

FIR Implementation on DSP SHARC 21062

Embedded Systems 2002/2003 (c) Daniel Kstner.

32

Embedded DSP: Realization of FIR Filters by DSP


The solution for fast filter alghorithms is the use of circular buffer technique. Circular buffer are used to store the most recent values of a continually sampled signal. Four parameters are necessary to manage a circular buffer First, there must be a pointer that indicates the Stored value: time n Stored value: time n+1 start of the circular buffer in memeory. ..... ..... Second, there must be a pointer indicating the X[n-3] X[n-4] end of the buffer. X[n-2] X[n-3] The step size of the ememory must be specified. X[n-1] X[n-2] A pointer to the most recent sample, must be X[n] X[n-1] modified after a new sample is fetched. X[n-7] X[n] There must be a method how this value has to X[n-6] X[n-7] be updated based on the first three values. X[n-5] X[n-6] An easy technique for that problem is to use ..... ..... a DSP, which is optimized for this task.

Embedded Systems 2002/2003 (c) Daniel Kstner.

33

Embedded DSP: Realization of a FIR Filters by DSP


Which basic steps are necessary to implement an FIR filter with circular buffers for both the coefficients and the input signal ? Get a sample by the ADC (by interrupt !) Detect and manage the interrupt Move the sample into the circular input buffer Update the pointer for the circular input buffer Zero the accumulator Control the loop for the main algorithm
Get the coefficient from the circular coefficient buffer Update the pointer for the circular coefficient buffer Get the sample from the circular input buffer Update the pointer for the circular input buffer Add the product to the accumulator

Store the output sample from the accumulator to a output buffer Store the output sample from the output buffer to the DAC

Embedded Systems 2002/2003 (c) Daniel Kstner.

34

// Main programm for FIR.ASM #define SAMPLES 512 #define TAPS 16 .EXTERN fir; .VAR coefs[TAPS]; .VAR dline[TAPS]; .VAR inbuf[SAMPLES]; .VAR outbuf[SAMPLES]; L0=TAPS; B0=dline; M0=1; I1=0; B1=inbuf; I2=0; B2=outbuf; L8=TAPS; B8=coefs; call init_fir (db); M8=1; R0=TAPS; lcntr=SAMPLES, do filter until ce; call fir(db); R1=TAPS-1; F0=dm(i1,1); filter: dm(i2,1)=F0; .... ....

/* /* /* /*

circular buffer coefficients */ circular buffer that holds dline */ buffer coefficients */ buffer that holds dline */

/* circular buffer dline */

/* all elements of delay line = 0, not shown ! */

/* input sample passed in F0, output returned in F0 */ /* actual data sample */ /* result to outbuf */

Embedded Systems 2002/2003 (c) Daniel Kstner.

35

FIR Implementation on DSP SHARC 21062


The actual filtering algorithm is implemented as a loop. The loop is executed SAMPLE number of times (once for each input sample) and ends at the label filter. The loop calls FIR with a delayed branch. In the two cycles two transfers are performed:
A value from the input buffer is placed in F0. R1 is set to a value that is the amount of times that the loop in the FIR mosule has to repeat (M-1). The instruction at the end of label filter writes the result to the output buffer.

After the code in FIR.ASM completes, control returns to main.

FIR.ASM
The pointer is post modified when the input sample moves to the delay buffer. The coefficients array must rearranged so thet the coefficients assocoiated mit K=max is the first element in the array. Use a tricky XOR to reset R12. The modify instructions moves the delay line pointer to the oldest value in the delay line. The multiplication works on the operands fetched in the previous cycle. The operands for the addition are the results of the multiplication; valid operands for the addition are not generated until the loop executes twice. For the first two iterations of the loop, the code uses dummy operands of zero. The third time through the loop and after, the multiplication produces two valid operands for the addition.

Embedded Systems 2002/2003 (c) Daniel Kstner.

36

.GLOBAL ___fir; ___fir: R12=R12 xor R12, dm(i0,m0)=F0; /* set r12 =0 and store input sample in dline */ R8=R8 xor R8, F0=dm(i0,m0), F4=pm(i8,n8); /* set r8 = 0 and take data from dline and coef */ LCNTR=R1, DO macs UNTIL LCE; F12=F0*F4, F8=F8+F12, F0=DM(i0,m0), F2=PM(i8,m8); rts; F12=FF0*F4, F8=F8+F12; F8=F8+F12; .ENDSEG;

macs:

/* Multifunctions !!! */

/* perform mult on last pieces of data and 2nd last */ /* perform last add and store result in F0*/

Dline
K=0 newest sample

Coefs
K=4

I8

I0

K=4 oldest sample K=3

K=3

K=2

K=02

K=1

K=1

K=0

Cycles: 3 + (TAPS-1) + 3 + 2 cache misses= 7 + number TPAS

Embedded Systems 2002/2003 (c) Daniel Kstner.

37

IIR Filters
H(z) = b0 + b1z-1 + b2z-2 + ... + bMz-M 1 + a1z-1 + a2z-2 + ... + aNz-N

Advantages Fewer coefficients for sharp cutoff filters. Able to calculate coefficients for standard filter (Bessel, Butterworth, DolphTschebyscheff, Elliptic ....). Disadvantages Existing non-linear phase response. Filter can be unstable: precision of coefficients is important, adaptive filters are difficult to realize.

Embedded Systems 2002/2003 (c) Daniel Kstner.

38

Embedded DSP: IIR Filters


Because IIR filters corresponds directly to analog filters, one way to design IIR filters is to create a desired transfer function in the analog domain and then transform it to the z-domain. Then the coefficients of a direct form IIR filter can be calculated from the z-domain equation. The following equation is the direct form of the biquad difference equation of an IIR filter: y(n) = b0 x(n) + b1x(n-1)+ b2x(n-2) + a1y(n-1) + a2y(n-2)
x[n]
X + +

y[n]

b0
Unit Delay Unit Delay X Unit Delay + + X

x[n-1]

y[n-1]
Unit Delay

b1

a1

x[n-2]
X X

y[n-2]

b2

a2

Embedded Systems 2002/2003 (c) Daniel Kstner.

39

6th order IIR (Bessel) IIR filter has strong cutoff but extreme non-linear phase the 180 phase jumps comes when the response changes sign

Embedded Systems 2002/2003 (c) Daniel Kstner.

40

Reference: The Scientiest and Engineers Guide to Digital Signal Processing Second Edition by Steve Smith www.DSPguide.com

Next Lecture Digital Signal Processors Getting Started with DSP

Embedded Systems 2002/2003 (c) Daniel Kstner.

41

You might also like