《数字信号处理教程 ATLAB释义与实现》 部分题解 题1-3 一组电压值为x=[0:0.5:4],经过一个把-5~5伏正电压转换为12位(包括符 号位)二进制的AD转换器,求输出的量化电压的二进制代码,并求经D/A转换后的量化电压 值。 解:解题的程序为: =[0:0.5:41 名输入量数组 y=bqtize(x,11,5) 量化后输出 de1tax=5*2^-11 号量化步长值 yc=round(y/deltax) 此输出对应的量化单位数(十进制) vb=dec2bin(yc,12) 多此输出对应的量化单位数(12位二进制) 题2-3.令x(m =[1,-2,4,6,-5,8,101 产生并画出下列序列的样本 x1(n)=3x(n+2)+x(n-4)-2x(n) 解:解题的程序为: x=[1,-2,4,6,-5,8,10];nx=[1:7] [yl,ny1]=seashift(x,nx,-2) 号y1(n)=x(n+2) [y2,ny2]-seqshift (x,nx,4) &v2(n)=x(n-4) [y3,ny31=seqadd(3*y1,ny1,y2,ny2) 号y3(a)=3x(n-2)+x(n-4) [x1,nx1]=segadd(y3,ny3,-2*x,nx) 号x1(n)=y3(n)-2x(n) stem(nx1,x1) 答案×1=3-61022-231241-18-166-5810 nx1=「-1:111 题2-6 一个特定的线性和时不变系统,描述它的差分方程如下: y(n)+0.1y(n-1)-0.06y(n-2)=xn)-2x(n-1) 求系统脉冲响应的前10个样本。 解:程序为 =[1,0.1,0.061b=[1,-21i x=impseq(0,0,10) h=filter(b,a,x),stem(h) hl=impz (b,a) 程序运行的结果为:h= 1.0000-2.10000.15000.1110-0.0201 -0.0046 0.00170.0001-0.00010.00000.0000 =1.0000-2.1000 0.1500 1110 0.0201 0.00460.001 可见pz函数自动甩掉了数值很小的脉冲响应尾部数据,只取了8个样本。 题2-9(a).设已知一个因果的实序列x(m)在n≥0区域的偶序列部分xe(m),试求出原实序 列x()。如果已知其奇序列部分xo()。也能得知原序列吗? ).如果原序列是 一个因果的复 子列x(回),能不能同样做到? 解:(a).由于因果序列在n≥0区域的x(-n)-0,故xe(n)=[x(n)+x(-n)]/2=x(n)/2 即x(n)=2xe(n)。同样,如果已知其奇序列部分xo(m),根据x(n)=[x()-x(-n)]/2=
《数字信号处理教程——MATLAB 释义与实现》 部分题解 题 1-3. 一组电压值为 x=[0:0.5:4],经过一个把-5~5 伏正电压转换为 12 位(包括符 号位)二进制的 A/D 转换器,求输出的量化电压的二进制代码,并求经 D/A 转换后的量化电压 值。 解:解题的程序为: x=[0:0.5:4]; % 输入量数组 y=bqtize(x,11,5) % 量化后输出 deltax=5*2^-11 % 量化步长值 yc=round(y/deltax) % 此输出对应的量化单位数(十进制) yb=dec2bin(yc,12) % 此输出对应的量化单位数(12 位二进制) 题 2-3. 令 x(n) = [1,-2,4,6,-5,8,10]. 产生并画出下列序列的样本. x1(n)=3x(n+2)+x(n-4)-2x(n) 解:解题的程序为: x = [1,-2,4,6,-5,8,10]; nx=[1:7] [y1,ny1]=seqshift(x,nx,-2) % y1(n)=x(n+2) [y2,ny2]=seqshift(x,nx,4) % y2(n)=x(n-4) [y3,ny3]=seqadd(3*y1,ny1,y2,ny2) % y3(n)=3x(n-2)+x(n-4) [x1,nx1]=seqadd(y3,ny3,-2*x,nx) % x1(n)=y3(n)-2x(n) stem(nx1,x1) 答案 x1= 3 -6 10 22 -23 12 41 -18 -16 6 -5 8 10 nx1= [-1:11] 题 2-6 一个特定的线性和时不变系统,描述它的差分方程如下: y(n)+0.1y(n-1)-0.06y(n-2) = x(n)-2x(n-1) 求系统脉冲响应的前 10 个样本。 解:程序为 a=[1,0.1,0.06]; b=[1,-2]; x=impseq(0,0,10); h=filter(b,a,x),stem(h) h1=impz(b,a) 程序运行的结果为:h = 1.0000 -2.1000 0.1500 0.1110 -0.0201 -0.0046 0.0017 0.0001 -0.0001 0.0000 0.0000 h1’ = 1.0000 -2.1000 0.1500 0.1110 -0.0201 -0.0046 0.0017 可见 impz 函数自动甩掉了数值很小的脉冲响应尾部数据,只取了 8 个样本。 题 2-9 (a). 设已知一个因果的实序列 x(n)在 n≥0 区域的偶序列部分 xe(n),试求出原实序 列 x(n)。如果已知其奇序列部分 xo(n),也能得知原序列吗? (b). 如果原序列是一个因果的复序列 x(n),能不能同样做到? 解:(a).由于因果序列在 n≥0 区域的 x(-n)=0, 故 xe(n)= [x(n)+x(-n)]/2= x(n)/2, 即 x(n)=2xe(n)。同样,如果已知其奇序列部分 xo(n),根据 xo(n)= [x(n)-x(-n)]/2=
x(n)/2,也可以得知x(n)=2xo(n)。 (b).对于因果的复序列,同样有在n≥0区域的x(-n=0及x,(m)=,()+x(-,所以(a) 的结果仍然有效 题2-12.令x(n)=(0.8)nu(n) (a).解析地求xm)⑧xm (b).用cov函数求出x)©xm)的前20个样本.将结果与(a)部分的结果相比较。 解:(a)用解析法计算 )=m®m)=立mn-m=立0.38r038y=立08r=a+1X08y 用MATLAB计算此相关函数序列,对n=0:50,可计算如下: n=0:50:y=(n+1).*(0.8).n 结果为 y=1.00001.60001.92002.04802.04801.96611.8350 1.67771.50991.34221.18111.03080.89340.7697. (b)用conv函数计算 n=0:50;x=(0.8).An;y1=conv(x,x) 结果为 y1=1.00001.60001.92002.04802.04801.96611.8350 1.67771.50991.34221.18111.03080.89340.7697 与y完全相同。 题2-15.证明如下的关系式:6m=(1-:)4(m,并说明(1-z为何相当于一阶差分运算 解:用图解法,MATLAB程序如下 mu=stepseq(0.0.20): %mu(n)并作图 subplot(3.1.1).stem([0:20].mu) %mul(n)=zmu(n)=mu(n-l)并作图 mul=ste seq1,0,20 subplot(3.1.2).stem([0:20].mu1) deltamu=mu-mul%求两者之差并作图 subplot (3.1.3). stem([0:20],deltamu) 从图上可知deltamu是单位脉冲函数」 变量x(的一阶差分的定义为de1tax=x()-xm-1).将x(-1)=zx()代入上式,得到 delta_x=x(n)-x(n-1)=(1-z)x(n) 题2-18一个特定的线性和时不变系统,描述它的差分方程如下: y(n)-0.5y(n-1)+0.25y(n-2)=x(n)+2x(n-1)+x(n-3) (a).确定系统的稳定性 (b).在0≤≤100之间求得并画出系统的脉冲响应.从脉冲响应确定系统的稳定性 (c).如果此系统的输入为x(n)=[5+3cos(0.2nn)+4sin(0.6rn)]u(n).在0≤ n≤200间求出y(n)的响应
x(n)/2,也可以得知 x(n)=2xo(n)。 (b). 对于因果的复序列,同样有在 n≥0 区域的 x(-n)=0 及 [ ( ) ( )] 2 1 ( ) * x n x n x n e = + − ,所以(a) 的结果仍然有效。 题 2-12. 令 x(n) = (0.8)n u(n) (a). 解析地求 x(n)⊗ x(n) (b). 用 conv 函数求出 x(n)⊗ x(n) 的前 20 个样本.将结果与(a)部分的结果相比较。 解:(a)用解析法计算 0 0 ( ) ( ) ( ) ( ) ( ) (0.8) (0.8) (0.8) ( 1)(0.8) n n m n m n m m m y n x n x n x m x n m n ∞ − =−∞ = = =⊗= ∑ ∑ − = = ∑ = + n ,并说明(1-z-1)为何相当于一阶差分运算。 并作图 ) 差并作图 mu) 位脉冲函数。 x(n)-x(n-1).将 x(n-1)=z-1x(n)代入上式,得到: 用 MATLAB 计算此相关函数序列,对 n=0:50,可计算如下: n=0:50;y=(n+1).*(0.8).^n 结果为: y= 1.0000 1.6000 1.9200 2.0480 2.0480 1.9661 1.8350 1.6777 1.5099 1.3422 1.1811 1.0308 0.8934 0.7697 … (b)用 conv 函数计算 n=0:50;x=(0.8).^n;y1=conv(x,x) 结果为: y1= 1.0000 1.6000 1.9200 2.0480 2.0480 1.9661 1.8350 1.6777 1.5099 1.3422 1.1811 1.0308 0.8934 0.7697 … 与 y 完全相同。 题 2-15 . 证明如下的关系式: ) 解:用图解法,MATLAB 程序如下: ( ) (1 ) ( 1 δ n z µ n − = − mu=stepseq(0,0,20); % mu(n) 并作图 subplot(3,1,1),stem([0:20],mu) % mu1(n)= z -1 mu(n)=mu(n-1) mu1=stepseq(1,0,20); subplot(3,1,2),stem([0:20],mu1 deltamu=mu-mu1 % 求两者之 subplot(3,1,3), stem([0:20],delta 从图上可知 deltamu 是单 变量 x(n)的一阶差分的定义为 delta_x= delta_x=x(n)-x(n-1)=(1-z )x(n) 2-18 一个特定的线性和时不变系统,描述它的差分方程如下: 得并画出系统的脉冲响应.从脉冲响应确定系统的稳定性. ≤ n≤ 题 y(n)-0.5y(n-1)+0.25y(n-2) = x(n)+2x(n-1)+x(n-3) (a). 确定系统的稳定性 (b). 在 0≤n≤100 之间求 (c). 如果此系统的输入为 x(n) = [5+3cos(0.2πn)+4sin(0.6πn)]u(n). 在 0 200 间求出 y(n)的响应
解:解题的程序为: a=[1,-0.5,0.25]:b=[1,2,0,11: p=roots(a) h=filter(b,a,impseq(0,0,10)),stem(h) n=0:20 x=5+3*c0s(0,2*pi*n)+4*sin(0.6*pi*n); y=filter(b,a,x) (a).根据系统极点p(1)=0.2500+0.4330i,p(2)=0.2500-0.4330i,在单位 圆之内,知系统是稳定的 (b).根据h的 也可以知道系统是稳定的 (C】·y 8.0000 31.231339.6541 28.8929 25.5850 23.8995 10.0441 9.3859 25.3083 29.2556 29.9705 43.1808 43.7591 27.9580 24.0913 23.3864 10.1609 9.5726 25.3724 29.2410 29.9471 题3-3用解析法求出以下各序列的DTFT.用MATLAB画出X(e0)的幅值和相角曲线。 (a).xm)=508)”() (6).x00=20.95)+24m-2) (c).xn)=n0.6)”4m) (d).x(n)=5(-0.8)"cos(0.1 m)(m) (e).x=(n+1-0.8)-2un-2) 解: ().(e)=5(0.8em(0.)=1-08m 5 计算DTFT的程序为 w=0:0.1:2*pi:Xa=5./(1-0.8*exp(-j*w)):plot(w,abs(Xa),w.angle(Xa)) (6). 2e12o X,(em)=∑2(0.95)2ea=2∑(0.95)em-》=2∑(0.95em)"e2= 川2 1-0.95em计 算DTFT的程序为 w=0:0.1:2*pi:Xb=2*exp(j*2*w)./(1-0.8*exp(-j*w)):plot(w,abs(Xb),w,angle(Xb)) (.先计算8m=0.6矿4)的DTFTG),再由x0=g@求XUo)=)GU@) do ae")- 1 -0.6em
解:解题的程序为: a=[1,-0.5,0.25]; b=[1,2,0,1]; ,impseq(0,0,10)),stem(h) (0.2*pi*n)+4*sin(0.6*pi*n); 1)= 0.2500 + 0.4330i, p(2)= 0.2500 - 0.4330i,在单位 圆之 以知道系统是稳定的; 28.8929 25.5850 23.8995 10. 用解析法求出以下各序列的 DTFT.用 MATLAB 画出 的幅值和相角曲线. (a). (b). (c). (d). (e). 解: (a). p=roots(a) h=filter(b,a n=0:20; x=5+3*cos y=filter(b,a,x) (a).根据系统极点 p( 内,知系统是稳定的; (b).根据 h 的波形,也可 (c). y = 8.0000 31.2313 39.6541 0441 9.3859 25.3083 29.2556 29.9705 43.1808 43.7591 27.9580 24.0913 23.3864 10.1609 9.5726 25.3724 29.2410 29.9471 题 3-3 ( ) jω X e x(n) 5(0.8) (n) n = µ ( ) 2(0.95) ( 2) 2 = − + x n n n µ x(n) n(0.6) (n) n = µ x(n) 5( 0.8) cos(0.1 n) (n) n = − π µ ( ) ( 1)( 0.8) ( 2) 2 = + − − − x n n n n µ 0 0 5 ( ) 5(0.8) 5 (0.8 ) 1 0.8 j n j n j n a j n n X e e e e ω ω ω ω ∞ ∞ − − − = = = = = − ∑ ∑ 计算 DTFT 的程序为: w=0:0.1:2*pi;Xa=5./(1-0.8*exp(-j*w));plot(w,abs(Xa) ,w,angle(Xa)) (b). 2 2 ( 2) 2 2 0 0 2 ( ) 2(0.95) 2 (0.95) 2 (0.95 ) 1 0.95 j j n j n m j m j m j b j n m m e X e e e e e e ω ω ω ω ω ω ω ∞ ∞ ∞ + − − − − − =− = = = = = = − ∑ ∑ ∑ 计 算 DTFT 的程序为: =2*exp(j*2*w)./(1-0.8*exp(-j*w));plot(w,abs(Xb) ,w,angle(Xb)) (c). 先计算 的 DTFTG(jω),再由 x(n)=ng(n)求 w=0:0.1:2*pi;Xb g n( ) = (0.6) µ(n) X j ( ) j d ω ω = n dG( jω) 。 0 1 ( ) (0.6) 1 0.6 j n j n j n G e e e ω ω ω ∞ − − = = = − ∑
X.(jo)=jdG(jo) b@a-0cT品-0e) 0.6em d(-jo) 0.6em 「0-0.6 e)do(-0.6em7 计算DTFT的程序为: W=0:0.1:2*pi:Xc=0.6*exD(-j*)./(1-0.6*exD(-jw).^2): plot(w,abs(Xc),w,angle(Xc)) X(em=5(0.8"cos0.1xme“=5之0.8)e”+e01”。-a (d. 2 5/2 5/2 1-0.8e+1-08ea可 计算DTFT的程序为 w0:0.1:2*pi Xd-2.5./(1-0.8*exp(j*(0.1*oi-w))+2.5./(1-0.8*exp(j*(-0.1*知i-W): plot(w,abs(Xd),w.angle(Xd)) (e).先计算gm)=(-0.8)-24(n-2)的DTFTG(j),再由x(m)=(a+1)g()求 X(jo)=jG(j)+G). do e-Ro Ge)=(-08rem=e2-08rem=1-0e 品e品-0n j(e-Re) do fe-no d(-j20)j(e-r)0.8e-d(-j@) -(1-0.8e)do (1-0.8e-e)2dm 2e-pa (e2e)0.8eme2o(2-2.4e) 1-0.8em)(1-0.8ee)21-0.8ee)2 4i-0-0-32.9 X.(jo)=jdG(j)Go)=2-2) do 1-08em)2 1-0.8em)2 计算DTFT的程序为 w=0:0.1:2pi Xe=exp(←-j*2m).*(3-3.2*ex即(-j*m)./(1-0.8*exp(←j).2): plot(w,abs(Xe),w,angle(Xe)) 题3-6一对称上升余弦脉冲表达式为: ()05.0.5cm( 求出当N=5,25,100时的DTFT,对它乘以因子使Xe=1.红I,T]区间画出归一化的DTFT
2 2 2 ( ) ( ) (1 0.6 ) (1 0.6 ) 0.6 ( ) 0.6 (1 0.6 ) (1 0.6 ) j c j j j j j dG j j d X j j e d e d j e d j e e d e ω ω ω ω ω ω ω ω ω ω ω ω − − − − − − = = − − − = = − − 计算 DTFT 的程序为: w=0:0.1:2*pi;Xc=0.6*exp(-j*w)./((1-0.6*exp(-j*w)).^2); plot(w,abs(Xc) ,w,angle(Xc)) (d). 0.1 0.1 0 0 (0.1 ) ( 0.1 ) ( ) 5(0.8) cos(0.1 ) 5 (0.8) 2 5/ 2 5/ 2 1 0.8 1 0.8 j n j n j n j n n d n n j j e e j n X e n e e e π π e ω ω ω π ω π ω π ∞ ∞ − − − = = − − − + = = = + − − ∑ ∑ 计算 DTFT 的程序为: w=0:0.1:2*pi; Xd=2.5./(1-0.8*exp(j*(0.1*pi-w)))+ 2.5./(1-0.8*exp(j*(-0.1*pi-w))); plot(w,abs(Xd) ,w,angle(Xd)) (e). 先 计 算 的 DTFTG(j ω ), 再 由 x(n)=(n+1)g(n) 求 2 ( ) ( 0.8) ( 2) n g n µ n − = − − ( ) ( ) dG j X j j ( ) d G j ω ω + ω ω = 。 2 2 2 2 0 ( ) ( 0.8) ( 0.8) 1 0.8 j j n j n j m j m j n m e G e e e e e ω ω ω ω ω ω ∞ ∞ − − − − − − = = = − = − = − ∑ ∑ , 2 2 2 2 2 2 2 2 2 2 2 ( ) (1 0.8 ) ( ) ( ) (1 0.8 ) (1 0.8 ) (1 0.8 ) ( 2 ) ( )0.8 ( ) (1 0.8 ) (1 0.8 ) 2 ( )0.8 (2 2.4 (1 0.8 ) (1 0.8 ) j j j j j j j j j j j j j j j j j dG j j e d j e d j e d e d e d je d j j e e d j e d e d e e e e e e e ω ω e ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω ω − − − − − − − − − − − − − − − − − − = − − − − − = − − − − = − = − − − 2 ) (1 0.8 ) j j e ω ω − − − 2 2 2 2 2 ( ) (2 2.4 ) (3 3.2 ) ( ) ( ) (1 0.8 ) 1 0.8 (1 0.8 ) j j j j e j j dG j e e e e e X j j G j d e e ω ω ω ω ω ω ω ω ω ω − − − − − − − − = + = + = − − − j j e ω ω − − 计算 DTFT 的程序为: w=0:0.1:2*pi; Xe=exp(-j*2*w).*(3-3.2*exp(-j*w))./((1-0.8*exp(-j*w)).^2); plot(w,abs(Xe) ,w,angle(Xe)) 题 3-6 一对称上升余弦脉冲表达式为: 2 ( ) 0.5 0.5cos( ) ( ) n c n R n N N N π = + 求出当 N=5,25,100 时的 DTFT,对它乘以因子使 X(ej 0)=1。在[-π,π]区间画出归一化的 DTFT
研究这些曲线并评论它们随N变化的关系。 解:编出求解的程序: N=5,n=0:N-l; c-0.5+0.5*cos(2*pi*n/N) K=1024,k=-floor-((K-1)y2:(K-1)/2w-=k*2pi/K X=c*exp(-i*n'*w):XO=c*exp(-i*zeros(N.1)): plot(w.abs(X/X0)) 题3-9一对称矩形脉冲序列 Ror)-. -NsnsN 其余n 对N=5,15,25,100,求其DTT。将它归一化使得X(e0)=1。在区间[-元,π]内绘出归 化的DTFT图,评论其结果与N的关系 解:程序为: N=input ('N=): n=-N:N:=ones(1,2*N+1): k=0:1023: plot (2*pi*k/1024,Xr0),hold on 题3-12.用概念判断,下面的IDTFT序列中哪些是偶序列的?哪些具有是奇序列的? (a)(em) )em)= -<a<0 ,0<o< (c)Y3(el)=jo,0sox 解:偶序列的IDTFT是实数,奇序列的IDTFT是虚数,因此: (a) Y1(。)是实数频谱,所以它的原函数是偶序列。 Y2(j)是虚数频 ,所以它的原函数是奇序列 (c) Y3(j0)是虚数频谱,所以它的原函数是奇序列。 题3-1512点序列x()为:x(m)={-3,-2,3,4,2,-1,-1,2,4,3,-2,-3} (a).求出x(m)的DFTX(k),画出它的幅度和相位曲线(使用stem函数) (b).用MATLAB画出x()的DTFT X(e)的幅度和相位曲线, (c).验证(a)中的DFT是X(e)的采样。采用hold函数把两图放在一幅图里 ().有无可能从DFTX(k)重构DTET X(e@)?如果可能,给出重构所需要的内插公式:若 不可能,说明不能重构的理由。 解:程序为 x=[-3,-2,3,4,2,-1-1,2,4,3,-2,-3]:
研究这些曲线并评论它们随 N 变化的关系。 解:编出求解的程序: N=5;n=0:N-1; c=0.5+0.5*cos(2*pi*n/N); K=1024;k=floor(-(K-1)/2: (K-1)/2);w=k*2*pi/K; X=c*exp(-j*n’*w);X0=c*exp(-j*zeros(N,1)); plot(w,abs(X/X0)) 题 3-9 一对称矩形脉冲序列 1, ( ) 0, N n N R n n − ≤ ≤ = 其余 对 N = 5,15,25,100,求其 DTFT。将它归一化使得 0 ( ) j X e =1。在区间 [-π,π] 内绘出归一 化的 DTFT 图,评论其结果与 N 的关系. 解: 程序为: N=input('N= '); n=-N:N; r=ones(1,2*N+1); k=0:1023; Xr=r*exp(j*2*pi/1024*n'*k); Xr0=Xr/Xr(1); plot(2*pi*k/1024,Xr0),hold on 题 3-12. 用概念判断,下面的 IDTFT 序列中哪些是偶序列的? 哪些具有是奇序列的? ( < ≤ ≤ ≤ = ω ω π ω ω ω ω 0, | | | |, 0 | | ) ( ) 1 c j c a Y e − < < − < < = ω π ω π ω , 0 , 0 ( ) ( ) 2 j j b Y e j ( ω ω π ω c) Y3 (e ) = j , 0 ≤| |≤ j 解:偶序列的 IDTFT 是实数,奇序列的 IDTFT 是虚数,因此: (a) Y1(jω)是实数频谱,所以它的原函数是偶序列。 (b) Y2(jω)是虚数频谱,所以它的原函数是奇序列。 (c) Y3(jω)是虚数频谱,所以它的原函数是奇序列。 题 3-15 12 点序列 x(n)为: x(n)={ -3,-2,3,4,2,-1,-1,2,4,3,-2,-3} (a). 求出 x(n)的 DFT X(k),画出它的幅度和相位曲线(使用 stem 函数)。 (b).用 MATLAB 画出 x(n)的 DTFT ( ) 的幅度和相位曲线。 jω X e (c).验证(a)中的 DFT 是 ( ) 的采样。采用 hold 函数把两图放在一幅图里。 jω X e (d).有无可能从 DFT X(k)重构 DTFT ?如果可能,给出重构所需要的内插公式;若 不可能,说明不能重构的理由。 ( ) jω X e 解:程序为 x=[ -3,-2,3,4,2,-1,-1,2,4,3,-2,-3];