《数字信号处理》上机全部源代码调试通过,完整版(高西全,第四版)实验一%实验1:系统响应及系统稳定性closeall;clearall%调用fliter解差分方程,由系统对un的响应判断稳定性%内容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性A=[1,-0.9];B=[0.05,0.05];x1n=[11111111zeros(1,50)];x2n=ones(1,128);hn=impz(B,A,58);subplot(2,2,1);y='h(n)';tstem(hn,y);title('(a)系统单位脉冲响应h(n)')y1n=filter(B,A,x1n);subplot(2,2,2);y='y1(n)';tstem(y1n,y);title('(b)系统对R8(n)的响应y1(n)')y2n=filter(B,A,x2n);subplot(2,2,4);y='y2(n)';tstem(y2n,y);title('(c)系统对u(n)的响应y2(n)')y1n=filter(B,A,x1n);subplot(2,2,2);y='y1(n)';tstem(y1n,y);title('(b)系统对R8(n)的响应y1(n)')y2n=filter(B,A,x2n);subplot(2,2,4);y='y2(n)';tstem(y2n,y);title('(c)系统对u(n)的响应y2(n)')%内容2:调用conv函数计算卷积x1n=[11111111];%产生信号x1n=R8nh1n=[ones(1,10)zeros(1,10)];h2n=[12.52.51zeros(1,10)]y21n=conv(h1n,x1n);y22n=conv(h2n,x1n);figure(2)subplot(2,2,1);y='h1(n)';tstem(h1n,y);%调用函数tstem绘图title('(d)系统单位脉冲响应h1(n)')subplot(2,2,2);y='y21(n)';tstem(y21n,y);title('(e)h1(n)与R8(n)的卷积y21(n)')subplot(2,2,3);y='h2(n)';tstem(h2n,y);%调用函数tstem绘图title('(f)系统单位脉冲响应h2(n)')subplot(2,2,4);y='y22(n)';tstem(y22n,y);title('(g)h2(n)与R8(n)的卷积y22(n)')%=====================================%内容3:谐振器分析un=ones(1,256);%产生信号unn=0:255;xsin=sin(0.014*n)+sin(0.4*n);%产生正弦信号A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49];%系统差分方程系数向量B和Ay31n=filter(B,A,un);%谐振器对un的响应y31ny32n=filter(B,A,xsin);%谐振器对正弦信号的响应y32nfigure(3)subplot(2,1,1);y='y31(n)';tstem(y31n,y)title('(h)谐振器对u(n)的响应y31(n)')subplot(2,1,2);y='y32(n)';tstem(y32n,y);title('(i)谐振器对正弦信号的响应y32(n)')functiontstem(xn,yn)n=0:length(xn)-1;stem(n,xn,'.');xlabel('n');ylabel('yn');%xlabel('n');ylabel(yn);axis([0,n(end),min(xn),1.2*max(xn)]);实验二%时域采样理论验证程序exp2a.mTp=64/1000;%观察时间Tp=64微秒%产生M长采样序列x(n)%Fs=1000;T=1/Fs;Fs=1000;T=1/Fs;M=Tp*Fs;n=0:M-1;A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;xnt=A*exp(-alph*n*T).*sin(omega*n*T);Xk=T*fft(xnt,M);%M点FFT[xnt)]yn='xa(nT)';subplot(3,2,1);tstem(xnt,yn);%调用自编绘图函数tstem绘制序列图boxon;title('(a)Fs=1000Hz');k=0:M-1;fk=k/Tp;subplot(3,2,2);plot(fk,abs(Xk));title('(a)T*FT[xa(nT)],Fs=1000Hz');xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])%=================================%Fs=300Hz和Fs=200Hz的程序与上面Fs=1000Hz的程序完全相同。%%%%%%%%%%%%fs=300HzTp=64/1000;%观察时间Tp=64微秒%产生M长采样序列x(n)%Fs=1000;T=1/Fs;Fs=300;T=1/Fs;M=Tp*Fs;n=0:M-1;A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;xnt=A*exp(-alph*n*T).*sin(omega*n*T);Xk=T*fft(xnt,M);%M点FFT[xnt)]yn='xa(nT)';figure(2);subplot(3,2,1);tstem(xnt,yn);%调用自编绘图函数tstem绘制序列图boxon;title('(b)Fs=300Hz');k=0:M-1;fk=k/Tp;subplot(3,2,2);plot(fk,abs(Xk));title('(b)T*FT[xa(nT)],Fs=1000Hz');xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])%%%%%%%%%%%%%%%%%%%fs=200HzTp=64/1000;%观察时间Tp=64微秒%产生M长采样序列x(n)%Fs=1000;T=1/Fs;Fs=200;T=1/Fs;M=Tp*Fs;n=0:M-1;A=444.128;alph=pi*50*2^0.5;omega=pi*50*2^0.5;xnt=A*exp(-alph*n*T).*sin(omega*n*T);Xk=T*fft(xnt,M);%M点FFT[xnt)]yn='xa(nT)';figure(3);subplot(3,2,1);tstem(xnt,yn);%调用自编绘图函数tstem绘制序列图boxon;title('(c)Fs=200Hz');k=0:M-1;fk=k/Tp;subplot(3,2,2);plot(fk,abs(Xk));title('(c)T*FT[xa(nT)],Fs=1000Hz');xlabel('f(Hz)');ylabel('幅度');axis([0,Fs,0,1.2*max(abs(Xk))])%频域采样理论验证程序exp2b.mM=27;N=32;n=0:M;%产生M长三角波序列x(n)xa=0:floor(M/2);xb=ceil(M/2)-1:-1:0;xn=[xa,xb];Xk=fft(xn,1024);%1024点FFT[x(n)],用于近似序列x(n)的TFX32k=fft(xn,32);%32点FFT[x(n)]x32n=ifft(X32k);%32点IFFT[X32(k)]得到x32(n)X16k=X32k(1:2:N);%隔点抽取X32k得到X16(K)x16n=ifft(X16k,N/2);%16点IFFT[X16(k)]得到x16(n)subplot(3,2,2);stem(n,xn,'.');boxontitle('(b)三角波序列x(n)');xlabel('n');ylabel('x(n)');axis([0,32,0,20])k=0:1023;wk=2*k/1024;%subplot(3,2,1);plot(wk,abs(Xk));title('(a)FT[x(n)]');xlabel('\omega/\pi');ylabel('|X(e^j^\omega)|');axis([0,1,0,200])k=0:N/2-1;subplot(3,2,3);stem(k,abs(X16k),'.');boxontitle('(c)16点频域采样');xlabel('k');ylabel('|X_1_6(k)|');axis([0,8,0,200])n1=0:N/2-1;subplot(3,2,4);stem(n1,x16n,'.');boxontitle('(d)16点IDFT[X_1_6(k)]');xlabel('n');ylabel('x_1_6(n)');axis([0,32,0,20])k=0:N-1;subplot(3,2,5);stem(k,abs(X32k),'.');boxontitle('(e)32点频域采样');xlabel('k');ylabel('|X_3_2(k)|');axis([0,16,0,200])n1=0:N-1;subplot(3,2,6);stem(n1,x32n,'.');boxontitle('(f)32点IDFT[X_3_2(k)]');xlabel('n');ylabel('x_3_2(n)');axis([0,32,0,20])functiontstem(xn,yn)n=0:length(xn)-1;stem(n,xn,'.');xlabel('n');ylabel('yn');%xlabel('n');ylabel(yn);axis([0,n(end),min(xn),1.2*max(xn)]);实验三%实验三程序exp3.m%用FFT对信号作频谱分析%clearall;closeall%实验内容(1)================================x1n=[ones(1,4)];%产生序列向量x1(n)=R4(n)M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb];%产生长度为8的三角波序列x2(n)x3n=[xb,xa];X1k8=fft(x1n,8);%计算x1n的8点DFTX1k16=fft(x1n,16);%计算x1n的16点DFTX2k8=fft(x2n,8);%计算x1n的8点DFTX2k16=fft(x2n,16);%计算x1n的16点DFTX3k8=fft(x3n,8);%计算x1n的8点DFTX3k16=fft(x3n,16);%计算x1n的16点DFT%以下绘制幅频特性曲线subplot(2,2,1);mstem(X1k8);%绘制8点DFT的幅频特性图title('(1a)8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X1k8))])subplot(2,2,3);mstem(X1k16);%绘制16点DFT的幅频特性图title('(1b)16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X1k16))])figure(2)subplot(2,2,1);mstem(X2k8);%绘制8点DFT的幅频特性图title('(2a)8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度');axis([0,2,0,1.2*max(abs(X2k8))])subplot(2,2,2);mstem(X2k16);%绘制16点DFT的幅频特性图title('(2