Difference Equations and Impulse Responses

advertisement
Difference Equations and Impulse Responses
This project will help you to become more familiar with difference equations by
exploring their characteristics in both the time and frequency domains.
1.
2.
3.
4.
5.
6.
7.
8.
Find filter ................................................................................................................... 1
Calculate h[n] ............................................................................................................. 1
Find h[n] by filtering an impulse ............................................................................... 1
Filter pulse by filter and by conv ............................................................................... 2
Frequency response .................................................................................................... 4
Plot mag/phase response ............................................................................................ 4
Filter two cosines ....................................................................................................... 5
Demonstrate differentiation-in-frequency property of DTFT.................................... 6
1. Find filter
Let
This difference equation can be implemented using the filter command. Find the vectors
a and b that represent the difference equation above for the filter command.
a = [1 -0.5];
b = [0.1 0.8 0.8];
2. Calculate h[n]
Calculate h[n] analytically for the difference equation above. Hint: You may find the
residuez function useful.
3. Find h[n] by filtering an impulse
impulse = [1 zeros(1,99)];
h = filter(b,a,impulse);
stem([0:length(h)-1],h)
4. Filter pulse by filter and by conv
pulse = [ones(1,9) zeros(1,91)];
pulse_filt = filter(b,a,pulse);
pulse_conv = conv(h,pulse);
stem([0:length(pulse_filt)-1],pulse_filt)
stem([0:length(pulse_conv)-1],pulse_conv)
Visible difference is only in length. However, there are very tiny differences due to
truncating the IIR response with filter
stem([0:length(pulse_filt)-1],pulse_filt-pulse_conv(1:length(pulse_filt)))
5. Frequency response
% See #2.
6. Plot mag/phase response
freqz(b,a)
The system is lowpass.
7. Filter two cosines
x1 = cos(0.1*pi*[0:99]);
x2 = cos(0.8*pi*[0:99]);
x1filt = filter(b,a,x1);
x2filt = filter(b,a,x2);
stem([0:length(x1filt)-1],x1filt)
stem([0:length(x2filt)-1],x2filt)
x1 is amplified, but x2 is attenuated
8. Demonstrate differentiation-in-frequency property of DTFT
% generate sequence
n = [0:100];
z = 0.5.^n;
zn = n.*z; % time-domain effect
Zf = fft(z); % sampled DTFT of z, where $$\omega = \frac{2\pi}{101}$$
Znf = fft(zn); % sampled DTFT of zn
Zfdiff = j*diff([Zf(end) Zf]); % approximating derivative by difference
Zfdiff = Zfdiff*101/(2*pi); % scaling due to omega vs. k
subplot(2,1,1)
plot(abs(Znf))
subplot(2,1,2)
plot(abs(Zfdiff))
These are approximately the same, as the theory tells us
Download