39
EEM478-WEEK8 Finite Impulse Response (FIR) Filters

EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

EEM478-WEEK8Finite Impulse Response (FIR) Filters

Page 2: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 2

Learning Objectives

Introduction to the theory behind FIR filters: Properties (including aliasing). Coefficient calculation. Structure selection.

Implementation in Matlab, C, assembly and linear assembly.

Page 3: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 3

Introduction

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.

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.

Page 4: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 4

Properties of an FIR Filter

Filter coefficients:

x[n] represents the filter input,bk represents the filter coefficients,y[n] represents the filter output,N is the number of filter coefficients

(order of the filter).

Page 5: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 5

Properties of an FIR Filter

Filter coefficients:

FIR equation

Filter structure

Page 6: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 6

Properties of an FIR Filter

Filter coefficients:

If the signal x[n] is replaced by an impulse [n] then:

Page 7: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 7

Properties of an FIR Filter

Filter coefficients:

If the signal x[n] is replaced by an impulse [n] then:

Page 8: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 8

Properties of an FIR Filter

Filter coefficients:

If the signal x[n] is replaced by an impulse [n] then:

Page 9: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 9

Properties of an FIR Filter

Filter coefficients:

Finally:

Page 10: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 10

Properties of an FIR Filter

Filter coefficients:

With:

The coefficients of a filter are the same as the impulse response samples of the filter.

Page 11: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 11

Frequency Response of an FIR Filter

By taking the z-transform of h[n], H(z):

Replacing z by e-j in order to find the frequency response leads to:

Page 12: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 12

Frequency Response of an FIR Filter

Since e-j2k = 1 then:

Therefore:

FIR filters have a periodic frequency response and the period is 2.

Page 13: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 13

Frequency Response of an FIR Filter

Frequency response:

FIR y[n]x[n]

Fs/2Fs/2

Freq

Freq

x[n]

y[n]

Page 14: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 14

Frequency Response of an FIR Filter

Solution: Use an anti-aliasing filter.

FIR y[n]x[n]ADC

Analogue Anti-Aliasing

x(t)

Fs/2Fs/2FreqFreq

x(t)

y[n]

Page 15: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 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.

Even symmetry Odd symmetry

Page 16: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 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.

Page 17: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 17

Phase Linearity of an FIR Filter

Application of 90° linear phase shift:

Signal separation

90o

delay

90o

delay

+

+

+

-

I

Q

Reverse

Forward

IH

QH

Page 18: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 18

Design Procedure

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.

Page 19: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 19

Filter Specification - Step 1

Page 20: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 20

Coefficient Calculation - Step 2

There are several different methods available, the most popular are: Window method. Frequency sampling. Parks-McClellan.

We will just consider the window method.

Page 21: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 21

Window Method

First stage of this method is to calculate the coefficients of the ideal filter.

This is calculated as follows:

Page 22: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 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.

Using the Hamming Window:

Page 23: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 23

Window Method

The third stage is to calculate the set of truncated or windowed impulse response coefficients, h[n]:

for

Where:for

Page 24: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 24

Window Method Matlab code for calculating coefficients:

close all;clear all;

fc = 8000/44100; % cut-off frequencyN = 133; % number of tapsn = -((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] = 0.54 + 0.46*cos(2*pi*n/N); % generate window functiond = 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 functionaxis([0 2*10^4 -70 10]);

figure(2);stem(d); % plot coefficient valuesxlabel('Coefficient number');ylabel ('Value');title('Truncated Impulse Response');

figure(3)freqz(d,1,512,44100); % use freqz to plot magnitude and phase responseaxis([0 2*10^4 -70 10]);

Page 25: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 25

Window Method

Page 26: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 26

Realisation Structure Selection - Step 3

Direct form structure for an FIR filter:

Page 27: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 27

Realisation Structure Selection - Step 3

Linear phase structures:

N even:

N Odd:

Direct form structure for an FIR filter:

Page 28: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 28

Realisation Structure Selection - Step 3

(a) N even.(b) N odd.

Page 29: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 29

Realisation Structure Selection - Step 3

Cascade structures:

Direct form structure for an FIR filter:

Page 30: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 30

Realisation Structure Selection - Step 3

Cascade structures:

Direct form structure for an FIR filter:

Page 31: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 31

Implementation - Step 5

Implementation procedure in ‘C’ with fixed-point: Set up the codec (\Links\CodecSetup.pdf).

Transform: to ‘C’ code.

(\Links\FIRFixed.pdf) Configure timer 1 to generate an interrupt at

8000Hz (\Links\TimerSetup.pdf). Set the interrupt generator to generate an

interrupt to invoke the Interrupt Service Routine (ISR) (\Links\InterruptSetup.pdf).

Page 32: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 32

Implementation - Step 5

Implementation procedure in ‘C’ with floating-point:Same set up as fixed-point plus: Convert the input signal 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.

See \Links\FIRFloat.pdf

Page 33: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 33

Implementation - Step 5

Implementation procedure in assembly:Same set up as fixed-point, however: is written in assembly.

(\Links\FIRFixedAsm.pdf)

The ISR is now declared as external.

Page 34: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 34

Implementation - Step 5

Implementation procedure in assembly:The filter implementation in assembly is now using circular addressing and therefore: 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:

Set the initial value of the circular pointers, see \Links\FIRFixedAsm.pdf.

#pragma DATA_ALIGN (symbol, constant (bytes))

Page 35: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 35

Implementation - Step 5

y0 = b0*x0 + b1*x1 + b2*x2 + b3*x3

Circular addressing link slide.

time

y[n]

0 1 2

*B5*B5*B5*B5

*A5*A5*A5*A5

b0b1b2b3

x0x1x2x3

Page 36: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 36

x4x1x2x3

Implementation - Step 5

y0 = b0*x0 + b1*x1 + b2*x2 + b3*x3y1 = b0*x1 + b1*x2 + b3*x4+ b2*x3

Circular addressing link slide.

time

y[n]

0 1 2

*B5*B5*B5*B5

*A5*A5*A5*A5

b0b1b2b3

Page 37: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 37

x4x5x2x3

Implementation - Step 5

y0 = b0*x0 + b1*x1 + b2*x2 + b3*x3y1 = b0*x1 + b1*x2 + b3*x4+ b2*x3y2 = b0*x2 + b1*x3 + b3*x5+ b2*x4

Circular addressing link slide.

time

y[n]

0 1 2

*B5*B5*B5*B5

*A5*A5*A5*A5

b0b1b2b3

Page 38: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002Chapter 14, Slide 38

FIR Code

Code location: Code\Chapter 14 - Finite Impulse Response Filters

Projects: Fixed Point in C: \FIR_C_Fixed\ Floating Point in C: \FIR_C_Float\ Fixed Point in Assembly: \FIR_Asm_Fixed\ Floating Point in Assembly: \FIR_Asm_Float\

Page 39: EEM478-WEEK8 Finite Impulse Response (FIR) Filters 478/icerik/eem478... · 2018. 4. 11. · Chapter 14, Slide 3 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Introduction

WEEK 8Finite Impulse Response (FIR) Filters

- End -