AnswerA

advertisement
Answer to
“Digital Signal Processing”
Problem 1
(a). x1(n)={3,7,-2,-1,5,-8}, n1=-2:3
x2(n)={3,7,-2,-1,5,-8}, n2=1:6
x3(n)={-8,5,-1,-2,7,3 }, n3=-2:3
(b) y(n)={14,9,-3,21,-11,-17,-5,-40,0}, n=-2:6
(c).MATLAB program:
clear,close all;
n=0:5; x=[3,7,-2,-1,5,-8];
[x1,n1]=sigshift(x,n,-2); [x2,n2]=sigshift(x,n,1);
[x3,n3]=sigfold(x,n); [x3,n3]=sigshift(x3,n3,3);
[y1,yn1]=sigadd(2*x1,n1,x2,n2);
[y1,yn1]=sigadd(y1,yn1,-x3,n3);
stem(yn1,y1);title('sequenceY(n)’)
[3 points]
[3 points]
[3 points]
Problem 2
(a)
X (e j ) 

 x(n)e
 j n
n 
 4  3e
 j
 2e  j 2  0e  j 3  2e  j 4  3e  j 5  4e  j 6
 4  3e  j  2e  j 2  2e  j 4  3e  j 5  4e  j 6
X (e j ) is periodic in  with period 2  .
[5 points]
(b) Matlab program:
clear; close all;
n = 0:6; x = [4,3,2,0,2,3,4];
w = [0:1:100]*pi/100;
X = x*exp(-j*n'*w); magX = abs(X); phaX = angle(X);
% Magnitude Response Plot
subplot(2,1,1); plot(w/pi,magX);grid;
xlabel('frequency in pi units'); ylabel('|X|');
title('Magnitude Response');
% Phase response plot
subplot(2,1,2); plot(w/pi,phaX*180/pi);grid;
xlabel('frequency in pi units'); ylabel('Degrees');
title('Phase Response'); axis([0,1,-180,180])
[5 points]
(c) Because the given sequence x (n)={4,3,2,0,2,3,4} (n=0,1,2,3,4,5,6) is symmetric about

N 1
 3 ,the phase response  H (e j ) satisfied the condition
2
 H (e j )    3
so the phase response is a linear function in
.
[5 points]
(d)
  T 

f

0.3
0.001
 300 rad s
[5 points]
(e) The difference of amplitude and magnitude response:
Firstly, the amplitude response is a real function, and it may be both positive and
negative. The magnitude response is always positive.
Secondly, the phase response associated with the magnitude response is a
discontinuous function. While the associated with the amplitude is a continuous linear
function.
[5 points]
Problem 3
(a) Pole-zero plot – MATLAB script:
b=[1,1,0];
a=[1,0.5,-0.24];
zplane(b,a)
Figure : Pole-zero plot in Problem A2
Because all the poles and zero are all in the unit circle,so the system is stable.
[5 points]
(b) Difference equation representation.:
h( z )  (1  z 1 ) /(1  0.5z 1  0.24 z 2 ) ;
After cross multiplying and inverse transforming
y (n)  0.5 y(n  1)  0.24 y(n  2)  x(n)  x(n  2) ;
(c)
impulse response sequence h(n) using partial fraction representation:
[5 points]
h( z )  0.1818 /(1  0.8z 1 )  1.1818 /(1  0.3z 1 )
 h(n)  (0.1818(0.8)n  1.1818(0.3)n )u(n)
[5 points]
(d) MATLAB verification:
(1) b=[1,1];a=[1,0.5,-0.24];
[delta,n]=impseq(0,0,9)
x=filter(b,a,delta)
(2) n=[0:4];
x=(-0.1818.*(-0.8).^n+1.1818.*(0.3).^n).*stepseq(0,0,9)
Problem 4
(a)
figure 4.1
[5 points]
figure 4.2
sequence x1(n)
sequence x2 (n)
The plots of x1(n) and x2(n) is shown in figure 4.1 and figure 4.2
(b)
[4 points]
figure 4.3
After calculate, we find circular convolution is equal when N is 7 or 8.
[4 points]
(c)
If circular convolution is equal to linear convolution ,the minimum N is m+n-1=7.
The plots of circular convolution of x1(n) and x2(n) is shown in figure 4.3.
[4 points]
(d) MATLAB program:
clear,close all;
n=0:7;
m=0:6;
l=0:3;
x1=[1,-1,1,-1];
x2=[3,1,1,3];
figure,stem(l,x1),title('sequence x1'),box off;
figure,stem(l,x2),title('sequence x2'),box off;
%8-point circular convolution
x1_fft8=fft(x1,8);
x2_fft8=fft(x2,8);
y_fft8=x1_fft8.*x2_fft8;
y8=real(ifft(y_fft8));
figure,subplot(2,1,1),stem(n,y8),title('8-pointcircular convolution '),axis([0 7 -3 3]),box off;
%7-point circular convolution
x1_fft7=fft(x1,7);
x2_fft7=fft(x2,7);
y_fft7=x1_fft7.*x2_fft7;
y7=real(ifft(y_fft7));
subplot(2,1,2),stem(m,y7),title('7-point circular convolution '),axis([0 7 -3 3]),box off;
[4 points]
Problem 5
(a) Block diagrams are shown as under:
z 1
1
z 1
2
5
z 1
z 1
3
2
1
z 1
5
z 1
x( n)
y ( n)
[4 points]
z 1
x( n)
z 1
z 1
z 1
3
z
1
5
2
1
z 1
y ( n)
[4 points]
(b)The advantage of the linear-phase form:
1. For frequency-selective filters, linear-phase structure is generally desirable to have a
phase-response that is a linear function of frequency.
2. This structure requires 50% fewer multiplications than the direct form.
[2 points]
Problem 6
(a) we use Hamming window to design the bandpass filter because it can provide us
attenuation exceed 50dB
[5 points]
(b) M ATLAB verification:
%% Specifications:
ws1 = 0.3*pi; % lower stopband edge
wp1 = 0.4*pi; % lower passband edge
wp2 = 0.5*pi; % upper passband edge
ws2 = 0.6*pi; % upper stopband edge
Rp = 0.5; % passband ripple
As = 50; % stopband attenuation
%
tr_width = min((wp1-ws1),(ws2-wp2));
M = ceil(6.6*pi/tr_width); M = 2*floor(M/2)+1, % choose odd M
n = 0:M-1;
w_ham = (hamming(M))';
wc1 = (ws1+wp1)/2; wc2 = (ws2+wp2)/2;
hd = ideal_lp(wc2,M)-ideal_lp(wc1,M);
h = hd .* w_ham;
[db,mag,pha,grd,w] = freqz_m(h,1);
delta_w = pi/500;
Asd = floor(-max(db([1:floor(ws1/delta_w)+1]))), % Actual Attn
Rpd = -min(db(ceil(wp1/delta_w)+1:floor(wp2/delta_w)+1)), % Actual passband ripple
(5)
%
%% Filter Response Plots
subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response: Bandpass');
axis([-1,M,min(hd)-0.1,max(hd)+0.1]); xlabel('n'); ylabel('hd(n)')
set(gca,'XTickMode','manual','XTick',[0;M-1],'fontsize',10)
subplot(2,2,2); stem(n,w_ham); title('Hamming Window');
axis([-1,M,-0.1,1.1]); xlabel('n'); ylabel('w_ham(n)')
set(gca,'XTickMode','manual','XTick',[0;M-1],'fontsize',10)
set(gca,'YTickMode','manual','YTick',[0;1],'fontsize',10)
subplot(2,2,3); stem(n,h); title('Actual Impulse Response: Bandpass');
axis([-1,M,min(hd)-0.1,max(hd)+0.1]); xlabel('n'); ylabel('h(n)')
set(gca,'XTickMode','manual','XTick',[0;M-1],'fontsize',10)
subplot(2,2,4); plot(w/pi,db); title('Magnitude Response in dB');
axis([0,1,-As-30,5]); xlabel('frequency in pi units'); ylabel('Decibels')
set(gca,'XTickMode','manual','XTick',[0;0.3;0.4;0.5;0.6;1])
set(gca,'XTickLabelMode','manual','XTickLabels',['0';'0.3';'0.4';'0.5';'0.6';'1'],...
'fontsize',10)
set(gca,'TickMode','manual','YTick',[-50;0])
set(gca,'YTickLabelMode','manual','YTickLabels',['-50';'0']);grid
[10 points]
Problem 7
Firstly, we use the given specifications of  p ,  s , R p , As to design an analog lowpass IIR
filter.
Secondly, we change the analog lowpass IIR filter into the analog highpass IIR filte.
Thirdly, we change the analog highpass IIR filter into the digital highpass IIR filte.
[5 points]
Download