Download presentation

Presentation is loading. Please wait.

Published byAnthony Price Modified over 3 years ago

1
Chapter 14 Finite Impulse Response (FIR) Filters

2
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 2 Learning Objectives Introduction to the theory behind FIR filters: Introduction to the theory behind FIR filters: Properties (including aliasing). Properties (including aliasing). Coefficient calculation. Coefficient calculation. Structure selection. Structure selection. Implementation in Matlab, C, assembly and linear assembly. Implementation in Matlab, C, assembly and linear assembly.

3
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 3Introduction Amongst all the obvious advantages that digital filters offer, the FIR filter can guarantee linear phase characteristics. Amongst all the obvious advantages that digital filters offer, the FIR filter can guarantee linear phase characteristics. Neither analogue or IIR filters can achieve this. Neither analogue or IIR filters can achieve this. There are many commercially available software packages for filter design. However, without basic theoretical knowledge of the FIR filter, it will be difficult to use them. There are many commercially available software packages for filter design. However, without basic theoretical knowledge of the FIR filter, it will be difficult to use them.

4
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 4 Properties of an FIR Filter Filter coefficients: Filter coefficients: x[n] represents the filter input, b k represents the filter coefficients, y[n] represents the filter output, N is the number of filter coefficients (order of the filter).

5
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 5 Properties of an FIR Filter Filter coefficients: Filter coefficients: FIR equation Filter structure

6
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 6 Properties of an FIR Filter Filter coefficients: Filter coefficients: If the signal x[n] is replaced by an impulse [n] then: If the signal x[n] is replaced by an impulse [n] then:

7
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 7 Properties of an FIR Filter Filter coefficients: Filter coefficients: If the signal x[n] is replaced by an impulse [n] then: If the signal x[n] is replaced by an impulse [n] then:

8
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 8 Properties of an FIR Filter Filter coefficients: Filter coefficients: If the signal x[n] is replaced by an impulse [n] then: If the signal x[n] is replaced by an impulse [n] then:

9
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 9 Properties of an FIR Filter Filter coefficients: Filter coefficients: Finally: Finally:

10
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 10 Properties of an FIR Filter Filter coefficients: Filter coefficients: With: The coefficients of a filter are the same as the impulse response samples of the filter. The coefficients of a filter are the same as the impulse response samples of the filter.

11
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 11 Frequency Response of an FIR Filter By taking the z-transform of h[n], H(z): By taking the z-transform of h[n], H(z): Replacing z by e j in order to find the frequency response leads to: Replacing z by e j in order to find the frequency response leads to:

12
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 12 Frequency Response of an FIR Filter Since e -j2 k = 1 then: Since e -j2 k = 1 then: Therefore: Therefore: FIR filters have a periodic frequency response and the period is 2. FIR filters have a periodic frequency response and the period is 2.

13
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 13 Frequency Response of an FIR Filter Frequency response: Frequency response: FIRy[n]x[n] F s /2 Freq Freq x[n]y[n]

14
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 14 Frequency Response of an FIR Filter Solution: Use an anti-aliasing filter. Solution: Use an anti-aliasing filter. FIRy[n] x[n] ADC Analogue Anti-Aliasing x(t) F s /2 Freq Freq x(t)y[n]

15
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 15 Phase Linearity of an FIR Filter A causal FIR filter whose impulse response is symmetrical is guaranteed to have a linear phase response. A causal FIR filter whose impulse response is symmetrical is guaranteed to have a linear phase response. Even symmetry Odd symmetry

16
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 16 Phase Linearity of an FIR Filter A causal FIR filter whose impulse response is symmetrical (ie h[n] = h[N-1-n] for n = 0, 1, …, N-1) is guaranteed to have a linear phase response. A causal FIR filter whose impulse response is symmetrical (ie h[n] = h[N-1-n] for n = 0, 1, …, N-1) is guaranteed to have a linear phase response.

17
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 17 Phase Linearity of an FIR Filter Application of 90° linear phase shift: Application of 90° linear phase shift: Signal separation 90 o delay delay I Q Reverse Forward IH QH

18
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 18 Design Procedure To fully design and implement a filter five steps are required: To fully design and implement a filter five steps are required: (1)Filter specification. (2)Coefficient calculation. (3)Structure selection. (4)Simulation (optional). (5)Implementation.

19
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 19 Filter Specification - Step 1

20
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 20 Coefficient Calculation - Step 2 There are several different methods available, the most popular are: There are several different methods available, the most popular are: Window method. Window method. Frequency sampling. Frequency sampling. Parks-McClellan. Parks-McClellan. We will just consider the window method. We will just consider the window method.

21
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 21 Window Method First stage of this method is to calculate the coefficients of the ideal filter. First stage of this method is to calculate the coefficients of the ideal filter. This is calculated as follows: This is calculated as follows:

22
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 22 Window Method Second stage of this method is to select a window function based on the passband or attenuation specifications, then determine the filter length based on the required width of the transition band. Second stage of this method is to select a window function based on the passband or attenuation specifications, then determine the filter length based on the required width of the transition band. Using the Hamming Window:

23
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 23 Window Method The third stage is to calculate the set of truncated or windowed impulse response coefficients, h[n]: The third stage is to calculate the set of truncated or windowed impulse response coefficients, h[n]: for Where: for

24
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 24 Window Method Matlab code for calculating coefficients: Matlab code for calculating coefficients: close all; clear all; fc = 8000/44100;% cut-off frequency N = 133;% number of taps n = -((N-1)/2):((N-1)/2); n = n+(n==0)*eps; % avoiding division by zero [h] = sin(n*2*pi*fc)./(n*pi);% generate sequence of ideal coefficients [w] = *cos(2*pi*n/N);% generate window function d = h.*w;% window the ideal coefficients [g,f] = freqz(d,1,512,44100);% transform into frequency domain for plotting figure(1) plot(f,20*log10(abs(g)));% plot transfer function axis([0 2*10^ ]); figure(2); stem(d);% plot coefficient values xlabel('Coefficient number'); ylabel ('Value'); title('Truncated Impulse Response'); figure(3) freqz(d,1,512,44100);% use freqz to plot magnitude and phase response axis([0 2*10^ ]);

25
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 25 Window Method Coefficient number, n h(n) Truncated Impulse Response

26
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 26 Realisation Structure Selection - Step 3 Direct form structure for an FIR filter: Direct form structure for an FIR filter:

27
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 27 Realisation Structure Selection - Step 3 Linear phase structures: Linear phase structures: N even: N even: N Odd: N Odd: Direct form structure for an FIR filter: Direct form structure for an FIR filter:

28
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 28 Realisation Structure Selection - Step 3 (a) N even. (b) N odd.

29
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 29 Realisation Structure Selection - Step 3 Cascade structures: Cascade structures: Direct form structure for an FIR filter: Direct form structure for an FIR filter:

30
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 30 Realisation Structure Selection - Step 3 Cascade structures: Cascade structures: Direct form structure for an FIR filter: Direct form structure for an FIR filter:

31
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 31 Implementation - Step 5 Implementation procedure in C with fixed-point: Implementation procedure in C with fixed-point: Set up the codec (\Links\CodecSetup.pdf). Set up the codec (\Links\CodecSetup.pdf).\Links\CodecSetup.pdf Transform: to C code. Transform: to C code. (\Links\FIRFixed.pdf) \Links\FIRFixed.pdf Configure timer 1 to generate an interrupt at 8000Hz (\Links\TimerSetup.pdf). Configure timer 1 to generate an interrupt at 8000Hz (\Links\TimerSetup.pdf).\Links\TimerSetup.pdf Set the interrupt generator to generate an interrupt to invoke the Interrupt Service Routine (ISR) (\Links\InterruptSetup.pdf). Set the interrupt generator to generate an interrupt to invoke the Interrupt Service Routine (ISR) (\Links\InterruptSetup.pdf).\Links\InterruptSetup.pdf

32
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 32 Implementation - Step 5 Implementation procedure in C with floating-point: Implementation procedure in C with floating-point: Same set up as fixed-point plus: Convert the input signal to floating-point format. Convert the input signal to floating-point format. Convert the coefficients to floating-point format. Convert the coefficients to floating-point format. With floating-point multiplications there is no need for the shift required when using Q15 format. With floating-point multiplications there is no need for the shift required when using Q15 format. See \Links\FIRFloat.pdf See \Links\FIRFloat.pdf\Links\FIRFloat.pdf

33
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 33 Implementation - Step 5 Implementation procedure in assembly: Implementation procedure in assembly: Same set up as fixed-point, however: is written in assembly. is written in assembly. (\Links\FIRFixedAsm.pdf) \Links\FIRFixedAsm.pdf The ISR is now declared as external. The ISR is now declared as external.

34
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 34 Implementation - Step 5 Implementation procedure in assembly: Implementation procedure in assembly: The filter implementation in assembly is now using circular addressing and therefore: circular addressingcircular addressing The circular pointers and block size register are selected and initialised by setting the appropriate values of the AMR bit fields. The circular pointers and block size register are selected and initialised by setting the appropriate values of the AMR bit fields. The data is now aligned using: The data is now aligned using: Set the initial value of the circular pointers, see \Links\FIRFixedAsm.pdf. Set the initial value of the circular pointers, see \Links\FIRFixedAsm.pdf.\Links\FIRFixedAsm.pdf #pragma DATA_ALIGN (symbol, constant (bytes))

35
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 35 Implementation - Step 5 y0 = b0*x0 + b1*x1 + b2*x2 + b3*x3 Circular addressing link slide. time y[n] 012 b0b0b0b0 b1b1b1b1 b2b2b2b2 b3b3b3b3 x0x0x0x0 x1x1x1x1 x2x2x2x2 x3x3x3x3

36
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 36 x4x4x4x4 x1x1x1x1 x2x2x2x2 x3x3x3x3 Implementation - Step 5 y0 = b0*x0 + b1*x1 + b2*x2 + b3*x3 y1 = b0*x4 + b1*x1 + b3*x3 + b2*x2 Circular addressing link slide. time y[n] 012 b0b0b0b0 b1b1b1b1 b2b2b2b2 b3b3b3b3

37
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 37 x4x4x4x4 x5x5x5x5 x2x2x2x2 x3x3x3x3 Implementation - Step 5 y0 = b0*x0 + b1*x1 + b2*x2 + b3*x3 y1 = b0*x4 + b1*x1 + b3*x3 + b2*x2 y2 = b0*x4 + b1*x5 + b3*x3 + b2*x2 Circular addressing link slide. time y[n] 012 b0b0b0b0 b1b1b1b1 b2b2b2b2 b3b3b3b3

38
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 14, Slide 38 FIR Code Code location: Code location: Code\Chapter 14 - Finite Impulse Response Filters Code\Chapter 14 - Finite Impulse Response Filters Projects: Projects: Fixed Point in C:\FIR_C_Fixed\ Fixed Point in C:\FIR_C_Fixed\ Floating Point in C:\FIR_C_Float\ Floating Point in C:\FIR_C_Float\ Fixed Point in Assembly:\FIR_Asm_Fixed\ Fixed Point in Assembly:\FIR_Asm_Fixed\ Floating Point in Assembly:\FIR_Asm_Float\ Floating Point in Assembly:\FIR_Asm_Float\

39
Chapter 14 Finite Impulse Response (FIR) Filters - End -

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google