Graphics Programs Reference
In-Depth Information
plot(t,xn12,'b-',t,xf12,'r-')
axis([0 200 -4 4])
One might now wish to design a new fi lter with a more rapid transition from
passband to stopband. Such a fi lter needs a higher order. It needs to have a
larger number of fi lter weights. We now create a 15-order Butterworth fi lter
as an alternative to the above fi lter.
[b13,a13] = butter(15,0.08/0.5);
[h,w] = freqz(b13,a13,1024);
f = w/(2*pi);
plot(f,abs(h)), grid
xlabel('Frequency')
ylabel('Magnitude')
The frequency response is clearly improved. The entire passband is rela-
tively fl at at a value of 1.0, whereas the stopband is approximately zero
everywhere. Next we modify our input signal by introducing a third period
of 5. This signal is then used to illustrate the operation of a Butterworth
bandstop fi lter.
x14 = 2*sin(2*pi*t/50) + sin(2*pi*t/15) + 0.5*sin(2*pi*t/5);
plot(t,x14), axis([0 200 -4 4])
[Pxx,f] = periodogram(x14,[],1024,1);
plot(f,abs(Pxx))
The new Butterworth fi lter is a bandstop fi lter. The stopband of the fi lter is
between the frequencies 0.06 and 0.08. It can therefore be used to suppress
the period of 15 corresponding to a frequency of approximately 0.07.
xn14 = x14 + randn(1,length(t));
[b14,a14] = butter(5,[0.06 0.08]/0.5,'stop');
xf14 = filtfilt(b14,a14,x14);
[Pxx,f] = periodogram(xf14,[],1024,1);
plot(f,abs(Pxx))
plot(t,xn14,'b-',t,xf14,'r-'), axis([0 200 -4 4])
The plots show the effect of this fi lter. The frequency band between 0.06
and 0.08, and therefore also the frequency of 0.07 was successfully removed
from the signal.
Search WWH ::




Custom Search