数字信号处理MATLAB上机实验第三章3-23已知序列x(n)={1,2,3,3,2,1}1)求出x(n)的傅里叶变换X(ejω),画出幅频特性和相频特性曲线(提示:用1024点FFT近似X(ejω));2)计算x(n)的N(N≥6)点离散傅里叶变换X(k),画出幅频特性和相频特性曲线;3)将X(ejω)和X(k)的幅频特性和相频特性曲线分别画在同一幅图中,验证X(k)是X(ejω)的等间隔采样,采样间隔为2π/N;4)计算X(k)的N点IDFT,验证DFT和IDFT的惟一性。实验分析(1)题用1024点DFT近似x(n)的傅里叶变换。(2)题用36点DFT。(4)题求傅里叶反变换验证IDFT的惟一性。实验代码及截图1到3问xn=[123321];Xen=fft(xn,1024);n1=0:length(Xen)-1;amp=abs(Xen);phi=angle(Xen);Xkn=fft(xn,36);n2=0:length(Xkn)-1;amp2=abs(Xkn);phi2=angle(Xkn);subplot(221);plot(n1,amp)title('Xejw幅频特性');xlabel('n');ylabel('Amp')subplot(222);plot(n1,phi)title('Xejw相频特性');xlabel('n');ylabel('Phi')subplot(223);stem(n2,amp2,'.')title('Xk幅频特性');xlabel('n');ylabel('Amp')subplot(224);stem(n2,phi2,'.')title('Xk相频特性');xlabel('n');ylabel('Phi')截图如下第4问xn=[123321];Xkn2=fft(xn,6);x6n=ifft(Xkn2);n2=0:length(x6n)-1;subplot(2,1,2);stem(n2,x6n,'.');title('X6k傅里叶逆变换');xlabel('n');ylabel('x6n');Xkn1=fft(xn,16);x16n=ifft(Xkn1);n1=0:length(x16n)-1;subplot(2,1,1);stem(n1,x16n,'.');title('X16k傅里叶逆变换');xlabel('n');ylabel('x16n')截图为3-25已知序列h(n)=R6(n),x(n)=nR8(n)。1)计算yc(n)=h(n)8x(n);2)计算yc(n)=h(n)16x(n)和y(n)=h(n)*x(n)3)画出h(n)、x(n)、yc(n)和y(n)的波形图,观察总结循环卷积与线性卷积的关系。实验分析循环卷积为线性卷积的周期延拓序列的主值序列;当循环卷积区间长度大于等于线性卷积序列长度时,二者相等。实验代码及截图hn=[111111];xn=[01234567];%用DFT计算8点循环卷积yc8n:H8k=fft(hn,8);%计算h(n)的8点DFTX8k=fft(xn,8);%计算x(n)的8点DFTYc8k=H8k.*X8k;yc8n=ifft(Yc8k,8);%用DFT计算16点循环卷积yc16n:H16k=fft(hn,16);%计算h(n)的16点DFTX16k=fft(xn,16);%计算x(n)的16点DFTYc16k=H16k.*X16k;yc16n=ifft(Yc16k,16);%时域计算线性卷积yn:yn=conv(hn,xn);%以下为绘图部分n=0:7;subplot(3,1,1);stem(n,yc8n,'.');axis([0,17,0,30])title('(a)8点循环卷积');xlabel('n');ylabel('yc(n)')n=0:15;subplot(3,1,2);stem(n,yc16n,'.');axis([0,17,0,30])title('(b)16点循环卷积');xlabel('n');ylabel('yc(n)')n=0:length(yn)-1;subplot(3,1,3);stem(n,yn,'.');axis([0,17,0,30])title('(c)线性卷积');xlabel('n');ylabel('y(n)')实验结论:当N的值选取得当时,循环卷积的结果和线性卷积的结果相同。3-27选择合适的变换区间长度N,用DFT对下列信号进行谱分析,画出幅频特性和相频特性曲线。1)x1(n)=2cos(0.2πn)2)x2(n)=sin(0.45πn)sin(0.55πn)3)x3(n)=2-|n|R21(n+10)实验分析对x1(n),其周期为10,所以取N1=10;因为x2(n)=sin(0.45πn)sin(0.55πn)=0.5[cos(0.1πn)-cos(πn)],其周期为20,所以取N2=20;x3(n)不是因果序列,所以先构造其周期延拓序列(延拓周期为N3),再对其主值序列进行N3点DFT。x1(n)和x2(n)是周期序列,所以截取1个周期,用DFT进行谱分析,得出精确的离散谱。x3(n)是非因果、非周期序列,通过试验选取合适的DFT变换区间长度N3进行谱分析。实验源程序及结果第(1)问n1=0:9;N1=10;x1n=2*cos(0.2*pi*n1);X1k=fft(x1n,N1);%以下为绘图部分%-------------------绘制x1(n)的频谱特性图--------------------------------k=0:N1-1;wk=2*k/N1;subplot(2,1,1);stem(wk,abs(X1k),'.');title('(a)x1(n)的幅频特性图');xlabel('ω/π');ylabel('幅度');gridon;boxonsubplot(2,1,2);stem(wk,angle(X1k),'.');gridon;boxonline([0,2],[0,0])title('(b)x1(n)的相频特性图');xlabel('ω/π');ylabel('相位');结果截图第2问n2=0:50;N2=20;x2n=2*sin(0.45*pi*n2).*sin(0.55*pi*n2);X2k=fft(x2n,N2);%计算序列x2(n)的N2点DFT%-------------------绘制x2(n)的频谱特性图---------------------------------k=0:N2-1;wk=2*k/N2;subplot(2,1,1);stem(wk,abs(X2k),'.');gridon;boxontitle('(a)x2(n)的幅频特性图');xlabel('ω/π');ylabel('幅度')subplot(2,1,2);stem(wk,angle(X2k),'.');gridon;boxonline([0,2],[0,0])title('(b)x2(n)的相频特性图');xlabel('ω/π');ylabel('相位');截图为第3问n3=-10:10;N3a=32;N3b=64;x3n=0.5.^abs(n3);x3anp=zeros(1,N3a);%构造x3(n)的周期延拓序列,周期为N3aform=1:10,x3anp(m)=x3n(m+10);x3anp(N3a+1-m)=x3n(11-m);endx3bnp=zeros(1,N3b);%构造x3(n)的周期延拓序列,周期为N3bform=1:10,x3bnp(m)=x3n(m+10);x3bnp(N3b+1-m)=x3n(11-m);endX3ak=fft(x3anp,N3a);X3bk=fft(x3bnp,N3b);%-----------绘制32点周期延拓序列和32点DFT[x3(n)]的频谱特性图-----------------n=0:N3a-1;subplot(3,2,1);stem(n,x3anp,'.');boxontitle('(a)x3(n)的32点周期延拓序列');k=0:N3a-1;wk=2*k/N3a;subplot(3,2,3);plot(wk,abs(X3ak));title('(b)DFT[x3(n)]_3_2的幅频特性图');xlabel('ω/π');ylabel('幅度')subplot(3,2,5);plot(wk,angle(X3ak));line([0,2],[0,0])title('(c)DFT[x3(n)]_3_2的相位');xlabel('ω/π');ylabel('相位');%-------------绘制64点周期延拓序列和64点DFT[x3(n)]的频谱特性图---------------n=0:N3b-1;subplot(3,2,2);stem(n,x3bnp,'.');boxontitle('(d)x3(n)的64点周期延拓序列');k=0:N3b-1;wk=2*k/N3b;subplot(3,2,4);plot(wk,abs(X3bk));title('(e)DFT[x3(n)]_6_4的幅频特性图');xlabel('ω/π');ylabel('幅度')subplot(3,2,6);plot(wk,angle(X3bk));line([0,2],[0,0])title('(f)DFT[x3(n)]_3_2的相位');xlabel('ω/π');ylabel('相位');第四章4.6按照下面的IDFT算法编写MATLAB语言IFFT程序,其中FFT部分不用写出清单,可电泳fft函数。并对单位脉冲序列、矩形序列、三角序列和正弦序列进行FFT和IFFT,验证缩编程序。()=IDFT[()]=()实验分析根据算法,调用fft函数即可。实验源代码及结果编程为functionsn=IFFT_DIY(ak)N=length(ak);sn=1/N*conj(fft(conj(ak),N));end验证:单位脉冲:an=1;ak=fft(an);a1n=IFFT_DIY(ak);n=0:length(a1n)-1;subplot(1,1,1);stem(n,a1n,'.'),axis([-3,3,0,2]);矩形脉冲:an=[1111111];ak=fft(an);a1n=IFFT_DIY(ak);n=0:length(a1n)-1;subplot(1,1,1);stem(n,a1n,'.'),axis([0,10,0,2]);三角脉冲:an=[1234321];ak=fft(an);a1n=IFFT_DIY(ak);n=0:length(a1n)-1;subplot(1,1,1);stem(n,a1n,'.'),axis([0,8,0,4]);正弦脉冲:an=sin(0.2*pi*n);ak=fft(an);a1n=IFFT_DIY(ak);n=0:length(a1n)-1;subplot(1,1,1);stem(n,a1n,'.'),axis([0,10,-2,2]);由实验结果可以验证算法编程是正确的!