课后习题第一章
17*. 已知系统的差分方程为
y(n)=-a1y(n-1)-a2y(n-2)+bx(n) 其中, a1=-0.8, a2=0.64, b=0.866。?
(1) 编写求解系统单位脉冲响应h(n)(0≤n≤49)的程序, 并画出h(n)(0≤n≤49);? (2) 编写求解系统零状态单位阶跃响应s(n)(0≤n≤100)的程序, 并画出s(n)(0≤n≤100)。 %调用filter解差分方程,求系统单位脉冲响应和单位阶跃响 B=0.866;A=[1,-0.8,0.64];%查分方程向量 %(1)求解系统单位脉冲响应,并画出h(n)
xn=[1,zeros(1,48)]; %xn=单位脉冲序列,长度N=31
hn=filter(B,A,xn);%调用filter解差分方程,求系统输出信号hn n=0:length(hn)-1;
subplot(3,2,1);stem(n,hn,'.')
title(' (a)系统的单位脉冲响应');xlabel('n');ylabel('h(n)') %(2)求解系统单位阶跃响应,并画出h(n)
xn=ones(1,100);%xn=单位阶跃序列,长度N=100
sn=filter(B,A,xn);%调用filter解差分方程,求系统单位阶跃响应sn n=0:length(sn)-1;
subplot(3,2,2);stem(n,sn, '.');axis([0,30,0,2])
title(' (b)系统的单位阶跃响应');xlabel('b');ylabel('s(n)')
第二章
31*. 假设系统函数如下式:
2z?5z?50 (z)?H4322z?2.98z?0.17z?2.3418z?1.5147
(1) 画出极、零点分布图, 并判断系统是否稳定;? (2) 用输入单位阶跃序列u(n)检查系统是否稳定。 解:(1)%程序ex231.m %判断系统的稳定性
A=[2,-2.98,0.17,2.3418,-1.5147]; %H(z)的分母多项式系数
B=[0,0,1,5,-50]; %H(z)的分子多项式系数用极点分布判断系统是否稳定 subplot(2,1,1);
zplane(B,A); %绘制H(z)的零极点图
p=roots(A); %求H(z)的极点 pm=abs(p); %求H(z)的极点的模 if max(pm)<1 disp('系统因果稳定'),else
disp('系统不因果稳定'); end %画出u(n)的系统输出波形进行判断 un=ones(1,700); sn=filter(B,A,un); n=0:length(sn)-1;
subplot(2,1,2); plot(n,sn) xlabel('n');ylabel('s(n)') 系统因果稳定
第三章
25*.已知序列h(n)=R6(n),x(n)=nR8(n). (1)计算yc(n)?h(n)⑧x(n);
16x(n)和y(n)=h(n)*x(n); (2)计算yc(n)?h(n) ○
(3)画出h(n)、x(n)、yc(n)和y(n)的波形图,观察总结循环卷积与线性卷积的关系。 解:%程序ex325.m
hn=[1 1 1 1];xn=[0 1 2 3];
%用DFT计算4点循环卷积yc4n:
H4k=fft(hn,4); %计算h(n)的4点DFT X4k=fft(xn,4); %计算x(n)的4点DFT Yc4k=H4k.*X4k; yc4n=ifft(Yc4k,4);
%用DFT计算8点循环卷积yc8n:
H8k=fft(hn,8); %计算h(n)的8点DFT X8k=fft(xn,8); %计算x(n)的8点DFT Yc8k=H8k.*X8k; yc8n=ifft(Yc8k,8);
yn=conv(hn,xn); %时域计算线性卷积yn
第四章
5?2z?3?3z?619*.假设滤波器的系统函数为H(z)?
1?z?1在单位圆上采样六点,选择r=0.95,试画出它的频率采样结构,并在计算机上用DFT求出频率采样结构中的有关系数。
5?2z?3?3z?6(1?z?3)(5?3z?3)解:H(z)?= ?1?11?z1?z(1?z?1)(1?z?1?z?2)(5?3z?3) =
1?z?1式中,分母分子多项式各有一个零点z=1,相互抵消,因此系统仍然稳定,属于FIR系统。由系统函数得到单位脉冲响应为
h(n)=5δ(n)+5δ(n-1)+5δ(n-2)+3δ(n-3)+3δ(n-4)+3δ(n-5) H(k)=DFT[h(n)] k=0,1,2,3, …,5 H(z)=(1-rz6?621H(0)H(3))[????1?1N1?rz1?rzk?1a0k?a1kz?11?2cos(k)z?1?r2z?23?]
%程序ex519.m
hn=[5,5,5,3,3,3];r=0.95; Hk=fft(hn,6); for k=1:3,
hk(k)=Hk(k);Wk(k)=exp(-j*2*pi*(k-1)/6); end
H0=Hk(1) H3=Hk(4) r0k=2*real(hk)
rlk=-2*real(r*hk.*Wk) 运行结果: H0 =24 H3 = 2
r0k =48 4 0
rlk =-45.6000 3.8000 0
第五章
第六章
23*调用MATLAB工具箱函数remezord和remez设计线性相位高通FIR滤波器,实现对模拟信号的采样序列x(n)的数字高通滤波处理。指标要求:采样频率为16kHz;通带截止
频率为5.5kHz,通带最小衰减为1db;过渡带宽度小于等于3.5kHz,阻带最小衰减为75db。列出h(n)的序列数据,并画出损耗函数曲线。
解:滤波器的阻带截止频率fs=5500-3500=2000Hz。
%ex723.m:调用remezord和remez设计线性相位高通FIR滤波器 Fs=16000;f=[2000,5500];%采样频率,边界频率为模拟频率(Hz) m=[0,1];
rp=1;rs=75;dat1=(10^(rp/20)-1)/(10^(rp/20)+1);dat2=10^(-rs/20); rip=[dat2,dat1]
[M,fo,mo,w]=remezord(f,m,rip,Fs) hn=remez(M,fo,mo,w) 运行结果: hn =
0.0073 -0.0409 0.0634 0.0634 -0.0409 0.0073
0.0490 -0.3007 0.4436 -0.3007 0.0490