T数字信号处理(MATLAB版)上机实验操作【DOC精选】.docx
《T数字信号处理(MATLAB版)上机实验操作【DOC精选】.docx》由会员分享,可在线阅读,更多相关《T数字信号处理(MATLAB版)上机实验操作【DOC精选】.docx(22页珍藏版)》请在冰豆网上搜索。
实验一离散时间信号与系统
一、实验目的:
1、熟悉常见离散时间信号的产生方法;
2、熟悉离散时间系统的单位脉冲响应和单位阶跃响应的求解方法;
3、熟悉离散时间信号经过离散时间系统的响应的求解方法。
二、实验内容:
已知离散时间系统差分方程为y(n)-0.5y(n-1)+0.06y(n-2)=x(n)+x(n-1),求
1、该系统的单位脉冲响应并绘图;
2、该系统的单位阶跃响应并绘图;
3、已知x(n)=可自己指定用filter函数经过系统的响应并绘图;
4、用conv_m函数求系统响应并绘图。
三、实验平台:
MATLAB集成系统
四、设计流程:
此处写个人自己的设计流程五、程序清单:
此处写程序内容
六、调试和测试结果:
此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法
七、教师评语与成绩评定此处由老师填写
上机操作:
实验一离散时间信号与系统
实验内容:
1.脉冲响应
>>b=[1,1];a=[1,-0.5,0.06];n=[-10:
25];
>>impz(b,a,n);
>>title('ImpulseResponse');xlabel('n');ylabel('h(n)')
2.单位阶跃响应
>>t=-10:
25;x=(t>=0);s=filter(b,a,x);
>>stem(n,s)
>>title('StepResponse');xlabel('n');ylabel('s(n)')
3.>>a=[1,-0.5,0.06];b=[1,1];
>>n=-20:
120;
>>x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);
>>s1=filter(b,a,x1);%分子分母系数ba构成的滤波器对矢量x1滤波
>>stem(n,s1);;xlabel('n');ylabel('s1(n)');
4.>>a=[1,-0.5,0.06];b=[1,1];
>>n=-20:
120;
>>h=impz(b,a,n);
>>x1=exp(-0.05*n).*sin(0.1*pi*n+pi/3);
>>y=conv(x1,h);
>>m=-50:
length(y)-51;
>>stem(m,y);title('系统响应');xlabel('m');ylabel('y(m)');
实验二离散信号与系统的连续频域分析
一、实验目的:
1、掌握离散时间信号的DTFT的MATLAB实现;
2、掌握离散时间系统的DTFT分析;
3、掌握系统函数和频率相应之间的关系。
二、实验内容:
1、自定义一个长度为8点的信号,信号幅度值也由自己任意指定,对该信
号作DTFT,分别画出幅度谱和相位谱
2、已知离散时间系统差分方程为y(n)-0.5y(n-1)+0.06y(n-2)=x(n)+x(n-1),求出并画出其频率响应
3、求该系统系统函数,并画极零点图,并通过freqz函数求频率响应。
三、实验平台:
MATLAB集成系统
四、设计流程:
此处写个人自己的设计流程五、程序清单:
此处写程序内容
六、调试和测试结果:
此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法
七、教师评语与成绩评定此处由老师填写
上机操作
1
>>n=0:
7;
>>x=(0.9*exp(j*pi/3)).^n;
>>w=-pi:
pi/200:
pi;
>>X=x*exp(-j).^(n'*w);
>>magX=abs(X);angX=angle(X);
>>subplot(2,1,1);plot(w/pi,magX);xlabel('w/pi');ylabel('幅度|X|');
>>subplot(2,1,2);plot(w/pi,angX);xlabel('w/pi');ylabel('相位(rad/π)');
2
>>a=[1,-0.5,0.06];b=[1,1,0];
>>m=0:
length(b)-1;l=0:
length(a)-1;
>>w=0:
pi/500:
pi;
>>num=b*exp(-j*m'*w);
>>den=a*exp(-j*l'*w);
>>H=num./den;
>>magH=abs(H);angH=angle(H);
>>H1=freqz(b,a,w);
>>magH1=abs(H1);angH1=angle(H1);
>>subplot(2,2,2);plot(w/pi,angH/pi);grid;xlabel('w(frequencyinpiunits)');ylabel('相位(rad/π)');
>>subplot(2,2,1);plot(w/pi,magH);grid;xlabel('w(frequencyinpiunits)');ylabel('幅度|H|');
>>subplot(2,2,3);plot(w/pi,magH1);grid;xlabel('w(frequencyinpiunits)');ylabel('幅度|H1|');
>>subplot(2,2,4);plot(w/pi,angH1/pi);grid;xlabel('w(frequencyinpiunits)');ylabel('相位(rad/π)');axis([0,1,-0.8,0]);
>>figure
(2);zplane(b,a);
实验3 离散信号与系统的离散频域分析(DFT)
一、实验目的:
1、掌握离散时间系统的DFT的MATLAB实现;
2、熟悉DTFT和DFT之间的关系。
3、了解信号不同变形的DFT与原信号DFT之间的关系
二、实验内容:
自定义一个长为8点的信号;
1、对信号分别做8点、16点、32点DFT,分别与DTFT合并作图并比较
DFT与DTFT之间的关系。
2、在信号后加零扩展至八点,每两个相邻样本之间插入一个零值,扩充为
16点序列,作DFT,画出幅度谱和相位谱,并与原序列的DFT进行比较。
3、将信号以8为周期扩展,得到长为16的两个周期,作DFT,画出幅度谱和相位谱,并与原序列的DFT进行比较。
三、实验平台:
MATLAB集成系统
四、设计流程:
此处写个人自己的设计流程五、程序清单:
此处写程序内容
六、调试和测试结果:
此处写程序的执行结果和实验过程中的调试经过、出现的错误和对应的解决方法
七、教师评语与成绩评定此处由老师填写
上机操作
1.
>>n=0:
7;
>>x=(0.9*exp(j*pi/3)).^n;
>>x1=[xzeros(1,8)];x2=[x1zeros(1,16)];
>>Xk=dft(x,8);Xk1=dft(x1,16);Xk2=dft(x2,32);
>>w=0:
pi/200:
2*pi;X=x*exp(-j).^(n'*w);
>>magX=abs(X);angX=angle(X);
>>magXk=abs(Xk);angXk=angle(Xk);magXk1=abs(Xk1);angXk1=angle(Xk1);
>>magXk2=abs(Xk2);angXk2=angle(Xk2);
>>subplot(4,2,1);plot(w/pi,magX);xlabel('w/pi');ylabel('幅度|X|');gridon;
>>subplot(4,2,2);plot(w/pi,angX);xlabel('w/pi');ylabel('相位(rad/π)');
>>subplot(4,2,3);stem(0:
7,magXk);xlabel('k');ylabel('幅度|X(k)|');axis([0,8,0,6]);
>>subplot(4,2,4);stem(0:
7,angXk);xlabel('k');ylabel('相位(rad/π)');axis([0,8,-2,2]);
>>subplot(4,2,5);stem(0:
15,magXk1);xlabel('k');ylabel('幅度|X1(k)|');axis([0,16,0,6]);
>>subplot(4,2,6);stem(0:
15,angXk1);xlabel('k');ylabel('相位(rad/π)');axis([0,16,-2,2]);
>>subplot(4,2,7);stem(0:
31,magXk2);xlabel('k');ylabel('幅度|X2(k)|');axis([0,32,0,6]);
>>subplot(4,2,8);stem(0:
31,angXk2);xlabel('k');ylabel('相位(rad/π)');axis([0,32,-2,2]);
function[Xk]=dft(xn,N)
n=0:
N-1;
k=0:
N-1;
Wn=exp(-j*2*pi/N);nk=n'*k;Xk=xn*(Wn.^nk);
2.
>>n=0:
7;
>>x=(0.9*exp(j*pi/3)).^n;
>>fori=1:
8 %将原序列每两个相邻样本之间插入一个零值,扩展为长为16的序列y1(2*i-1:
2*i)=[x(i)0];
end
>>Yk1=dft(y1,16);
Warning:
FunctioncalldftinvokesinexactmatchD:
\MATLAB7\work\DFT.M.
>>magYk1=abs(Yk1);angYk1=angle(Yk1);
>>y2=[xx];%将信号以8为周期扩展,得到长为16的两个周期
>>Yk2=dft(y2,16);
>>magYk2=abs(Yk2);angYk2=angle(Yk2);
>>Xk=dft(x,8);
>>magXk=abs(Xk);angXk=angle(Xk);
>>subplot(3,2,1);stem(0:
7,magXk);xlabel('k');ylabel('幅度|X(k)|');
>>subplot(3,2,2);stem(0:
7,angXk);xlabel('k');ylabel('相位(rad/π)');
>>subplot(3,2,3);stem(0:
15,magYk1);xlabel('k');ylabel('幅度|Y1(k)|');
>>subplot(3,2,4);stem(0:
15,angYk1);xlabel('k');ylabel('相位(rad/π)');
>>subplot(3,2,5);stem(0:
15,magYk2);xlabel('k');ylabel('幅度|Y2(k)|');
>>subplot(3,2,6);stem(0:
15,angYk2);xlabel('k');ylabel('相位(rad/π)');
对照:
n=0:
63;
x=(0.9*exp(j*pi/3)).^n;
fori=1:
64 %将原序列每两个相邻样本之间插入一个零值,扩展为长为128的序列y1(2*i-1:
2*i)=[x(i)0];
end
Yk1=dft(y1,128);mag