first-order filters ideal filters practical filters frequency...

40
Overview of Discrete-Time Filters First-order filters Ideal filters Practical filters Frequency-selective filter specifications Ripple versus filter order tradeoff Application example Portland State University ECE 223 DT Filters Ver. 1.03 1

Upload: trannga

Post on 02-Feb-2018

222 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Overview of Discrete-Time Filters

• First-order filters

• Ideal filters

• Practical filters

• Frequency-selective filter specifications

• Ripple versus filter order tradeoff

• Application example

Portland State University ECE 223 DT Filters Ver. 1.03 1

Page 2: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Discrete-Time Filters Overview

N∑

k=0

ak y[n − k] =M∑

k=0

bk x[n − k]

Y (ejω) =∑M

k=0 bke−jwk

∑Nk=0 ake−jwk

X(ejω)

• Discrete-time filters are divided into two categories

– Finite impulse response (FIR): h[n] = 0 for some a and bsuch that −∞ < a < n < b < +∞

– Infinite impulse response (IIR): not FIR

• Filters that can be described with difference-equations

– FIR: N = 0– IIR: N > 0

• A simple FIR filter is the moving average filter

• A simple IIR filter is the first-order lowpass filter

Portland State University ECE 223 DT Filters Ver. 1.03 2

Page 3: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 1: First-Order Filters

Consider the following filter:

y[n] − ay[n − 1] = (1 − a)x[n]

1. Solve for the filter’s transfer function

2. Find the cutoff frequency as a function of a

Portland State University ECE 223 DT Filters Ver. 1.03 3

Page 4: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 1: Workspace

Portland State University ECE 223 DT Filters Ver. 1.03 4

Page 5: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 1: Ωc versus a

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.5

1

1.5

2

2.5

3

3.5

ωc (

rad/

sam

ple)

a

Portland State University ECE 223 DT Filters Ver. 1.03 5

Page 6: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 1: H(ejω) for various a

−3 −2 −1 0 1 2 30

0.5

1

|H(e

jω)|

a=0.1a=0.2a=0.3a=0.4a=0.5a=0.6a=0.7a=0.8a=0.9

−3 −2 −1 0 1 2 3

−50

0

50

∠ H

(ejω

) (o )

Frequency (rads/sample)

Portland State University ECE 223 DT Filters Ver. 1.03 6

Page 7: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 1: Filtered Signals

0 50 100 150 200

20

22

24

26

28

30

32

34

36

x[n]

, y0.

1[n],

y0.

6[n]

Time (day)

Intel Closing Daily Price Over 1 Year

Raw signalCutoff:0.56Cutoff:0.11

Portland State University ECE 223 DT Filters Ver. 1.03 7

Page 8: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 1: MATLAB Code%function [] = FirstOrderApplied();close all;

d = load(’Intel.txt’); % Closing daily pricend = length(d);x = d(nd:-1:1); % Reorder so first element is oldest datan = (0:nd-1)’; % Discrete time index

%==============================================================================% Plot the relationship between cutoff frequency and a%==============================================================================a = 0.00001:0.01:1;wc = acos((1-4*a+a.^2)./(-2*a));

figureFigureSet(1,’LTX’);h = plot(a,wc,’LineWidth’,1.0);ylabel(’\omega_c (rad/sample)’);xlabel(’a’);grid on;box off;AxisSet(8);print -depsc FOCutoff;

%==============================================================================% Plot the relationship between cutoff frequency and a%==============================================================================a = 0.1:0.1:0.9;w = -pi:0.01:pi;H = zeros(length(a),length(w));

for cnt = 1:length(a)[h,w] = freqz(1-a(cnt),[1 -a(cnt)],w);H(cnt,:) = h;

Portland State University ECE 223 DT Filters Ver. 1.03 8

Page 9: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

end;

figureFigureSet(1,’LTX’);subplot(2,1,1);

h = plot(w,abs(H));xlim([-pi pi]);ylim([0 1.05]);legend(’a=0.1’,’a=0.2’,’a=0.3’,’a=0.4’,’a=0.5’,’a=0.6’,’a=0.7’,’a=0.8’,’a=0.9’,2);ylabel(’|H(e^{j\omega})|’);grid on;box off;

subplot(2,1,2);h = plot(w,rem(angle(H)*180/pi,180));xlim([-pi pi]);ylim([-70 70]);ylabel(’\angle H(e^{j\omega}) (^o)’);xlabel(’Frequency (rads/sample)’);grid on;box off;

AxisSet(8);print -depsc FOTransferFunctions;

%==============================================================================% Filter & Plot%==============================================================================a = 0.58; % cutoff frequency approximately 0.1w1 = acos((1-4*a+a.^2)./(-2*a));y1 = zeros(nd,1);for cnt = 2:nd,

y1(cnt) = a*y1(cnt-1) + (1-a)*x(cnt);end;

a = 0.90; % cutoff frequency approximately 0.1w2 = acos((1-4*a+a.^2)./(-2*a));y2 = zeros(nd,1);

Portland State University ECE 223 DT Filters Ver. 1.03 9

Page 10: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

for cnt = 2:nd,

y2(cnt) = a*y2(cnt-1) + (1-a)*x(cnt);

end;

figure

FigureSet(1,’LTX’);

h = plot(n,x,’b’,n,y1,’r’,n,y2,’g’);

set(h,’LineWidth’,0.6);

ylabel(’x[n], y_{0.1}[n], y_{0.6}[n]’);

xlabel(’Time (day)’);

title(’Intel Closing Daily Price Over 1 Year’);

xlim([0 nd-1]);

ylim([19 36]);

box off;

grid on;

AxisSet(8);

legend(’Raw signal’,sprintf(’Cutoff:%4.2f’,w1),sprintf(’Cutoff:%4.2f’,w2),4);

print -depsc FOSignalFiltered;

Portland State University ECE 223 DT Filters Ver. 1.03 10

Page 11: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Ideal Filters

1Lowpass

1Highpass

1Bandpass

1Bandstop

1Notch

Ω

Ω

Ω

Ω

Ω ΩcΩcΩc

Ωc1Ωc1 Ωc2Ωc2

• MATLAB can be used to design standard frequency selectivefilters that meet user-specified requirements

• These filters include: lowpass, highpass, bandpass, and bandstop

• Unlike continuous-time filters, these must have cutoff frequenciesthat range between 0 and π

Portland State University ECE 223 DT Filters Ver. 1.03 11

Page 12: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Practical Filters

• Practical filters are usually designed to meet a set of specifications

• Lowpass and highpass filters usually have the followingrequirements

– Passband range

– Stopband range

– Maximum ripple in the passband

– Minimum attenuation in the stopband

• If we know the specifications, we can ask MATLAB to generatethe filter for us

• There are four popular types of standard filters

– Butterworth

– Chebyshev Type I

– Chebyshev Type II

– Elliptic

Portland State University ECE 223 DT Filters Ver. 1.03 12

Page 13: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Ripple Tradeoff

Filter Order Passband StopbandButterworth Largest Smooth SmoothChebyshev Type I Moderate Ripple SmoothChebyshev Type II Moderate Smooth RippleElliptic Lowest Ripple Ripple

• The four popular filter types differ in how they satisfy thespecifications

• In the passband and stopband, each filter is either smooth orcontains ripple

• Elliptic filters are also called equiripple filters and Cauer filters

Portland State University ECE 223 DT Filters Ver. 1.03 13

Page 14: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 2: Lowpass Filter Specifications

Design a lowpass filter that meets the following specifications:

• The passband ripple is no more than 0.4455 dB(0.95 ≤ |H(ejω)| ≤ 1)

• The stopband attenuation is at least 26.02 dB (|H(ejω)| ≤ 0.05)

• The passband ranges from 0–0.2π rad/sample

• The stopband ranges from 0.3π–π rad/sample

Plot the magnitude of the resulting transfer function on a linear-linearplot, the impulse response, and the step response. Try theButterworth, Chebyshev I, Chebyshev II, and elliptic filters.

Portland State University ECE 223 DT Filters Ver. 1.03 14

Page 15: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Butterworth Lowpass

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

1

|H(e

jω)|

Butterworth Lowpass Filter Transfer Function Order: 10

Frequency (rad/sample)

Portland State University ECE 223 DT Filters Ver. 1.03 15

Page 16: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Butterworth Lowpass

0 10 20 30 40 50 60 70 80 90 100−0.1

−0.05

0

0.05

0.1

0.15

0.2

0.25

h[n]

Time (n)

Butterworth Lowpass Filter Impulse Response Order:10

Portland State University ECE 223 DT Filters Ver. 1.03 16

Page 17: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Butterworth Lowpass

0 10 20 30 40 50 60 70 80 90 1000

0.2

0.4

0.6

0.8

1

1.2

1.4

h[n]

Time (n)

Butterworth Lowpass Filter Step Response Order:10

Portland State University ECE 223 DT Filters Ver. 1.03 17

Page 18: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Chebyshev-I Lowpass

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

1

|H(e

jω)|

Chebyshev−I Lowpass Filter Transfer Function Order: 5

Frequency (rad/sample)

Portland State University ECE 223 DT Filters Ver. 1.03 18

Page 19: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Chebyshev-I Lowpass

0 10 20 30 40 50 60 70 80 90 100−0.1

−0.05

0

0.05

0.1

0.15

0.2

0.25

h[n]

Time (n)

Chebyshev−I Lowpass Filter Impulse Response Order:5

Portland State University ECE 223 DT Filters Ver. 1.03 19

Page 20: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Chebyshev-I Lowpass

0 10 20 30 40 50 60 70 80 90 1000

0.2

0.4

0.6

0.8

1

1.2

1.4

h[n]

Time (n)

Chebyshev−I Lowpass Filter Step Response Order:5

Portland State University ECE 223 DT Filters Ver. 1.03 20

Page 21: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Chebyshev-II Lowpass

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

1

|H(e

jω)|

Chebyshev−II Lowpass Filter Transfer Function Order: 5

Frequency (rad/sample)

Portland State University ECE 223 DT Filters Ver. 1.03 21

Page 22: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Chebyshev-II Lowpass

0 10 20 30 40 50 60 70 80 90 100−0.1

−0.05

0

0.05

0.1

0.15

0.2

0.25

h[n]

Time (n)

Chebyshev−II Lowpass Filter Impulse Response Order:5

Portland State University ECE 223 DT Filters Ver. 1.03 22

Page 23: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Chebyshev-II Lowpass

0 10 20 30 40 50 60 70 80 90 1000

0.2

0.4

0.6

0.8

1

1.2

1.4

h[n]

Time (n)

Chebyshev−II Lowpass Filter Step Response Order:5

Portland State University ECE 223 DT Filters Ver. 1.03 23

Page 24: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Elliptic Lowpass

0 0.5 1 1.5 2 2.5 30

0.2

0.4

0.6

0.8

1

|H(e

jω)|

Elliptic Lowpass Filter Transfer Function Order: 4

Frequency (rad/sample)

Portland State University ECE 223 DT Filters Ver. 1.03 24

Page 25: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Elliptic Lowpass

0 10 20 30 40 50 60 70 80 90 100−0.1

−0.05

0

0.05

0.1

0.15

0.2

0.25

h[n]

Time (n)

Elliptic Lowpass Filter Impulse Response Order:4

Portland State University ECE 223 DT Filters Ver. 1.03 25

Page 26: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: Elliptic Lowpass

0 10 20 30 40 50 60 70 80 90 1000

0.2

0.4

0.6

0.8

1

1.2

1.4

h[n]

Time (n)

Elliptic Lowpass Filter Step Response Order:4

Portland State University ECE 223 DT Filters Ver. 1.03 26

Page 27: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Example 3: MATLAB Code%function [] = Lowpass();clear all;close all;

Wp = 0.20; % Passband endsWs = 0.30; % Stopband beginsRp = -20*log10(0.95); % Maximum deviation from 1 in the passband (dB)Rs = -20*log10(0.05); % Minimum attenuation in the stopband (dB)

for cnt = 1:4,if cnt==1,

[od,wn] = buttord(Wp,Ws,Rp,Rs);[B,A] = butter(od,wn);stFilter = ’Butterworth’;

elseif cnt==2,[od,wn] = ellipord(Wp,Ws,Rp,Rs);[B,A] = ellip(od,Rp,Rs,wn);stFilter = ’Elliptic’;

elseif cnt==3,[od,wn] = cheb1ord(Wp,Ws,Rp,Rs);[B,A] = cheby1(od,Rp,wn);stFilter = ’Chebyshev-I’;

elseif cnt==4,[od,wn] = cheb2ord(Wp,Ws,Rp,Rs);[B,A] = cheby2(od,Rs,wn);stFilter = ’Chebyshev-II’;

elsebreak;end;

sys = tf(B,A,-1);wp = Wp*pi;ws = Ws*pi;

Portland State University ECE 223 DT Filters Ver. 1.03 27

Page 28: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

%==============================================================================% Plot Magnitude on Linear Scale%==============================================================================ymax = 1.05;pbmax = 1;pbmin = 10^(-Rp/20);sbmax = 10^(-Rs/20);wmax = pi;w = 0:0.001:wmax;[H,w] = freqz(B,A,w);mag = abs(H);phs = angle(H);figure;FigureSet(1,’LTX’);h = patch([0 wp wp 0],[0 0 pbmin pbmin],0.5*[1 1 1]);set(h,’LineWidth’,0.0001);hold on;

h = patch([0 ws ws wmax wmax 0],[pbmax pbmax sbmax sbmax ymax ymax],0.5*[1 1 1]);set(h,’LineWidth’,0.0001);h = plot(w,mag,’r’);set(h,’LineWidth’,1.0);hold off;

ylim([0 ymax]);xlim([0 wmax]);grid on;ylabel(’|H(e^{j\omega})|’);title(sprintf(’%s Lowpass Filter Transfer Function Order: %d’,stFilter,od));xlabel(’Frequency (rad/sample)’);box off;AxisSet(8);st = sprintf(’print -depsc Lowpass%s’,stFilter);eval(st);

%==============================================================================% Impulse Response%==============================================================================figure;

Portland State University ECE 223 DT Filters Ver. 1.03 28

Page 29: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

FigureSet(1,’LTX’);n = 0:100;[x,t] = impulse(sys,n);h = stem(t,x,’b’);set(h(1),’MarkerFaceColor’,’b’);set(h(1),’MarkerSize’,2);ylabel(’h[n]’);xlabel(’Time (n)’);title(sprintf(’%s Lowpass Filter Impulse Response Order:%d’,stFilter,od));box off;hold on;

h = plot(xlim,[0 0],’k:’);hold off;

AxisSet(8);st = sprintf(’print -depsc Lowpass%sImpulse’,stFilter);eval(st);

%==============================================================================% Step Response%==============================================================================figure;FigureSet(1,’LTX’);n = 0:100;[x,t] = step(sys,n);h = stem(t,x,’b’);set(h(1),’MarkerFaceColor’,’b’);set(h(1),’MarkerSize’,2);ylabel(’h[n]’);xlabel(’Time (n)’);title(sprintf(’%s Lowpass Filter Step Response Order:%d’,stFilter,od));box off;hold on;

h = plot(xlim,[1 1],’k:’);hold off;

AxisSet(8);st = sprintf(’print -depsc Lowpass%sStep’,stFilter);eval(st);

Portland State University ECE 223 DT Filters Ver. 1.03 29

Page 30: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

end;

Portland State University ECE 223 DT Filters Ver. 1.03 30

Page 31: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Practical Filter Tradeoffs

• Butterworth

- Highest order H(ejω)+ No passband or stopband ripple

• Chebyshev Type I

+ No stopband ripple

• Chebyshev Type II

+ No passband ripple

• Elliptic

+ Lowest order H(ejω)- Passband and stopband ripple

Portland State University ECE 223 DT Filters Ver. 1.03 31

Page 32: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Application Example 1: Microelectrode Recording Filter

An engineer wishes to detect action potentials in a microelectroderecording with a simple threshold detector. The signal containssignificant baseline drift. Action potentials typically last about 1 ms.

• What type of filter should the engineer use?

• What should the filter specifications be?

• What should the cutoff frequency(ies) be?

Portland State University ECE 223 DT Filters Ver. 1.03 32

Page 33: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Application Example 1: Frequency-Selective Filters

1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

Time (sec)

Microelectrode Recording

Portland State University ECE 223 DT Filters Ver. 1.03 33

Page 34: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Application Example 1: Frequency-Selective Filters

0 500 1000 1500 20000

10

20

30

40

50

FT M

agni

tude

0 50 100 150 200 250 3000

100

200

300

400

500

FT M

agni

tude

Portland State University ECE 223 DT Filters Ver. 1.03 34

Page 35: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Application Example 1: Frequency-Selective Filters

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

−0.5

0

0.5

Time (sec)

Microelectrode Recording

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

−0.5

0

0.5

Time (sec)

Portland State University ECE 223 DT Filters Ver. 1.03 35

Page 36: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Application Example 1: Frequency-Selective Filters

0 500 1000 1500 20000

10

20

30

40

50

FT M

agni

tude

0 500 1000 1500 20000

10

20

30

40

50

FT M

agni

tude

Filt

ered

Portland State University ECE 223 DT Filters Ver. 1.03 36

Page 37: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

Application Example 1: MATLAB Code%function [] = MER();close all;

[x,fs,nbits] = wavread(’Henderson2.wav’);x = decimate(x,2);fs = fs/2;

k = round(fs*1):round(fs*3); % Look at only 5 sx = x(k);nx = length(x);

figure;FigureSet(1,’LTX’);t = (k-1)/fs;h = plot(t,x,’b’);set(h,’LineWidth’,0.6);xrng = max(x)-min(x);xlim([min(t) max(t)]);ylim([min(x)-0.01*xrng max(x)+0.01*xrng]);AxisLines;xlabel(’Time (sec)’);ylabel(’’);title(’Microelectrode Recording’);box off;AxisSet(8);print -depsc MERSignal;

X = fft(x,2^12);nX = length(X);k = 1:floor((length(X)+1)/2);f = (k-1)*(fs)./(nX+1);

figure;FigureSet(1,’LTX’);

Portland State University ECE 223 DT Filters Ver. 1.03 37

Page 38: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

subplot(2,1,1);h = plot(f,abs(X(k)),’r’);set(h,’LineWidth’,0.6);xlim([min(f) max(f)]);ylim([0 50]);set(gca,’XTick’,[0:500:max(f)]);box off;ylabel(’FT Magnitude’);subplot(2,1,2);h = plot(f,abs(X(k)),’r’);set(h,’LineWidth’,0.6);xlim([0 300]);ylim([0 500]);%set(gca,’XTick’,[0:500:max(f)]); Sbox off;ylabel(’FT Magnitude’);AxisSet(6);print -depsc MERSpectralDensity;

Wp = 210/(fs/2); % Passband endsWs = 190/(fs/2); % Stopband beginsRp = -20*log10(0.95); % Maximum deviation from 1 in the passband (dB)Rs = -20*log10(0.05); % Minimum attenuation in the stopband (dB)[od,wn] = ellipord(Wp,Ws,Rp,Rs);[B,A] = ellip(od,Rp,Rs,wn,’high’);stFilter = ’Elliptic’;

y = filtfilt(B,A,x);

figure;FigureSet(1,’LTX’);k = 1:length(x);t = (k-1)/fs;subplot(2,1,1);t = (k-1)/fs;h = plot(t,x,’b’);

Portland State University ECE 223 DT Filters Ver. 1.03 38

Page 39: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

set(h,’LineWidth’,0.6);xrng = max(x)-min(x);xlim([min(t) max(t)]);ylim([min(x)-0.01*xrng max(x)+0.01*xrng]);AxisLines;xlabel(’Time (sec)’);ylabel(’’);title(’Microelectrode Recording’);box off;subplot(2,1,2);h = plot(t,y,’g’);set(h,’LineWidth’,0.6);xlim([min(t) max(t)]);ylim([min(x)-0.01*xrng max(x)+0.01*xrng]);AxisLines;xlabel(’Time (sec)’);ylabel(’’);box off;AxisSet(8);print -depsc MERSignalFiltered;

Y = fft(y,2^12);nY = length(Y);k = 1:floor((length(Y)+1)/2);f = (k-1)*(fs)./(nY+1);

figure;FigureSet(1,’LTX’);subplot(2,1,1);h = plot(f,abs(X(k)),’r’);set(h,’LineWidth’,0.6);xlim([min(f) max(f)]);ylim([0 50]);set(gca,’XTick’,[0:500:max(f)]);box off;ylabel(’FT Magnitude’);subplot(2,1,2);

Portland State University ECE 223 DT Filters Ver. 1.03 39

Page 40: First-order filters Ideal filters Practical filters Frequency ...web.cecs.pdx.edu/~ece2xx/ECE223/Slides/DTFilters.pdf · Example 1: First-Order Filters ... Portland State University

h = plot(f,abs(Y(k)),’g’);

set(h,’LineWidth’,0.6);

xlim([min(f) max(f)]);

ylim([0 50]);

set(gca,’XTick’,[0:500:max(f)]);

box off;

ylabel(’FT Magnitude Filtered’);

AxisSet(6);

print -depsc MERSpectralDensityFiltered;

Portland State University ECE 223 DT Filters Ver. 1.03 40