数字信号处理上机实验代码
数字信号处理上机实验代码

数字信号处理上机实验代码文件名:tstem.m(实验一、二需要)程序:f unction tstem(xn,yn)%时域序列绘图函数%xn:被绘图的信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1;stem(n,xn,'.');xlabel('n');ylabel('yn');axis([0,n(end),min(xn),1.2*max(xn)]);文件名:tplot.m(实验一、四需要)程序:function tplot(xn,T,yn)%时域序列连续曲线绘图函数%xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串)%T为采样间隔n=0;length(xn)-1;t=n*T;plot(t,xn);xlabel('t/s');ylabel(yn);axis([0,t(end),min(xn),1.2*max(xn)]);文件名:myplot.m(实验一、四需要)%(1)myplot;计算时域离散系统损耗函数并绘制曲线图。
function myplot(B,A)%B为系统函数分子多项式系数向量%A为系统函数分母多项式系数向量[H,W]=freqz(B,A,1000)m=abs(H);plot(W/pi,20*log10(m/max(m)));grid on;xlabel('\omega/\pi');ylabel('幅度(dB)')axis([0,1,-80,5]);title('损耗函数曲线');文件名:mstem.m(实验一、三需要)程序:function mstem(Xk)%mstem(Xk)绘制频域采样序列向量Xk的幅频特性图M=length(Xk);k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值)stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度');axis([0,2,0,1.2*max(abs(Xk))]);文件名:mpplot.m(实验一需要)%(2)mpplot;计算时域离散系统损耗函数和相频特性函数,并绘制曲线图。
数字信号处理实验源码(matlab)

系统响应及系统稳定性时域采样与频域采样用FFT对信号作频谱分析数字滤波器设计及软件实现close all;clear all;x1n=[ones(1,4)];M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb];x3n=[xb,xa];X1k8=fft(x1n,8);X1k16=fft(x1n,16);X2k8=fft(x2n,8);X2k16=fft(x2n,16);X3k8=fft(x3n,8);X3k16=fft(x3n,16);subplot(2,2,1);mstem(X1k8);title('(1a) 8点DFT[x_1(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X1k8))])subplot(2,2,3);mstem(X1k16);title('(1b) 16点DFT[x_1(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X1k16))])figure(2)subplot(2,2,1);mstem(X2k8);title('(2a) 8点DFT[x_2(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X2k8))])subplot(2,2,2);mstem(X2k16);title('(2b) 16点DFT[x_2(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X2k16))])subplot(2,2,3);mstem(X3k8);title('(3a) 8点DFT[x_3(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X3k8))])subplot(2,2,4);mstem(X3k16);title('(3b) 16点DFT[x_3(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X3k16))])N=8;n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k8=fft(x4n);X5k8=fft(x5n);N=16;n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n);X5k16=fft(x5n);figure(3)subplot(2,2,1);mstem(X4k8);title('(4a) 8点DFT[x_4(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X4k8))])subplot(2,2,3);mstem(X4k16);title('(4b) 16点DFT[x_4(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X4k16))])subplot(2,2,2);mstem(X5k8);title('(5a) 8点DFT[x_5(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X5k8))])subplot(2,2,4);mstem(X5k16);title('(5b) 16点DFT[x_5(n)]');xlabel('\omega/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(X5k16))])figure(4)Fs=64;T=1/Fs;N=16;n=0:N-1;x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k16=fft(x6nT);X6k16=fftshift(X6k16);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,1);stem(fk,abs(X6k16),'.');box ontitle('(6a) 16点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))])N=32;n=0:N-1;x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k32=fft(x6nT);X6k32=fftshift(X6k32);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,2);stem(fk,abs(X6k32),'.');box ontitle('(6b) 32点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))])N=64;n=0:N-1;x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k64=fft(x6nT);X6k64=fftshift(X6k64);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,3);stem(fk,abs(X6k64),'.');box ontitle('(6a) 64点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))])function mstem(Xk)M=length(Xk);k=0:M-1;wk=2*k/M;stem(wk,abs(Xk),'.');box onxlabel('\omega/\pi');ylabel('幅度');axis([0,2,0,1.2*max(abs(Xk))])。
数字信号处理实验参考程序

实验一参考程序:1 产生10点的单位抽样序列δ(n);function unit_pulse(N)% unit_pulse.mN=10;x=zeros(1,N);x(1)=1;n=0:N-1;figure(1);stem(n,x);xlabel('单位抽样序列')axis([-1 20 0 1.1])2产生10点同时移位3位的单位抽样序列δ(n-3);function shift_unit_pulse(N,k)% shift_unit_pulse.mN=10;k=3;x=zeros(1,N);x(k+1)=1;n=0:N-1;figure(2);stem(n,x);xlabel('移位3位的单位抽样序列')axis([-1 10 0 1.1])function [x, n]=i shift_unit_pulse (n0,ns,nf)n=[0:9];x=[(n-3)==0]3产生任意序列f(n)=8δ(n)+7δ(n-1)+6δ(n-2) +5δ(n-3)+ 4δ(n-4)+7δ(n-5);function arbitrary_pulse(N)% arbitrary_pulse.mN=10x=zeros(1,N);x(1)=8;x(2)=7;x(3)=6;x(4)=5;x(5)=4;x(6)=7;n=0:N-1;figure(3);stem(n,x);xlabel('任意序列f(n)')axis([-1 10 0 9])4产生N=10点的单位阶跃序列function unit_step(N)% unit_step.mN=10;x=ones(1,N);n=0:N-1;figure(4);stem(n,x);xlabel('单位阶跃序列')axis([-1 15 0 1.1])5产生斜率为3,n0=4,点数为20点的斜坡序列g(n)=B(n-n0)function slope(N,k,B)% slope.mN=20;k=4;B=3;x=[zeros(1,k) ones(1,N-k)];for i=1:Nx(i)=B*x(i)*(i-k);endn=0:N-1;figure(5);stem(n,x);xlabel('斜坡序列')axis([-1 20 0 90])6产生幅度A=3,频率f=100,初始相位 =1.2,点数为32点的正弦序列。
数字信号处理上机实验及参考程序

数字信号处理上机实验及参考程序数字信号处理实验实验⼀离散时间信号与系统及MA TLAB实现1.单位冲激信号:n = -5:5;x = (n==0);subplot(122);stem(n, x);2.单位阶跃信号:x=zeros(1,11);n0=0;n1=-5;n2=5;n = n1:n2;x(:,n+6) = ((n-n0)>=0);stem(n,x);3.正弦序列:n = 0:1/3200:1/100;x=3*sin(200*pi*n+1.2);stem(n,x);4.指数序列n = 0:1/2:10;x1= 3*(0.7.^n);x2=3*exp((0.7+j*314)*n);subplot(221);stem(n,x1);subplot(222);stem(n,x2);5.信号延迟n=0:20;Y1=sin(100*n);Y2=sin(100*(n-3));subplot(221);stem(n,Y1);subplot(222);stem(n,Y2);6.信号相加X1=[2 0.5 0.9 1 0 0 0 0];X2=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7];X=X1+X2;stem(X);7.信号翻转X1=[2 0.5 0.9 1];n=1:4;X2=X1(5-n);subplot(221);stem(n,X1);subplot(222);stem(n,X2);8.⽤MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。
a=[-2 0 1 -1 3]; b=[1 2 0 -1];c=conv(a,b);M=length(c)-1;n=0:1:M;stem(n,c);xlabel('n');ylabel('幅度');9.⽤MA TLAB计算差分⽅程当输⼊序列为时的输出结果。
N=41;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[1 zeros(1,N-1)];k=0:1:N-1;y=filter(a,b,x);stem(k,y)xlabel('n');ylabel('幅度')10.冲激响应impzN=64;a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];x=[1 zeros(1,N-1)];k=0:1:N-1;y=impz(a,b,N);stem(k,y)xlabel('n');ylabel('幅度')11.传递函数频率响应a=[0.8 -0.44 0.36 0.22];%分⼦的系数数组b=[1 0.7 -0.45 -0.6];%分母的系数数组n=(0:500)*pi/500%在pi范围内取501个采样点[h,f]=freqz(a,b,n);%求系统的频率响应subplot(2,1,1),plot(n/pi,abs(h));grid%作系统的幅度频响图axis([0,1,1.1*min(abs(h)),1.1*max(abs(h))]);ylabel('幅度');subplot(2,1,2),plot(n/pi,angle(h));grid %作系统的相位频响图axis([0,1,1.1*min(angle(h)),1.1*max(angle(h))]);ylabel('相位');xlabel('以pi为单位的频率');12.系统零极点图a=[0.8 -0.44 0.36 0.22];b=[1 0.7 -0.45 -0.6];h=zplane(a,b);实验⼆离散信号变换1.解⽅程y(n)-2y(n-1)+3y(n-2)=4x(n)-5x(n-1)+6x(n-2)-7x(n-3)a=[4,-5,6,-7];b=[1,-2,3];n=[0:7]; x=ones(length(n));Y=[-1,1];X=[1,-1];xic=filtic(b,a,Y,X);y1=filter(b,a,x,xic)stem(n,y1);xlabel('n');ylabel('y(n)');2.对连续的单⼀频率周期信号按采样频率采样,截取长度N分别选N =20和N =16,观察其DFT结果的幅度谱。
数字信号实验代码

%时域采样与频域采样实验figure(1)A=444.18;a=50*pi*sqrt(2);omega=50*pi*sqrt(2);%模拟信号Tp=64/1000;Fs=1000;%抽样频率n=0:Tp*Fs-1;y=A*exp(-a*n*1/Fs).*sin(omega*n*1/Fs);subplot(2,2,1);stem(n,y,'.');xlabel('抽样频率为1000HZ时信号Y的抽样图形');y1=fft(y,64);%频域抽样用fft计算DFT。
subplot(2,2,2);n=0:length(y1)-1;stem(n,y1,'.');xlabel('抽样频率为1000HZ时信号y的64点得FFT'); subplot(2,2,3);n1=0:length(angle(y))-1;plot(n1,angle(y));xlabel('抽样频率为1000HZ时信号Y的相频特性图'); figure(2)A=444.18;a=50*pi*sqrt(2);omega=50*pi*sqrt(2);%模拟信号Tp=64/1000;Fs=300;%抽样频率n=0:Tp*Fs-1;y=A*exp(-a*n*1/Fs).*sin(omega*n*1/Fs);//两向量相乘用点乘y2=[y,zeros(1,46)];subplot(2,2,1);n2=0:length(y2)-1;stem(n2,y2,'.');xlabel('抽样频率为300HZ时信号Y的抽样图形');y1=fft(y2,64);%频域抽样subplot(2,2,2);n3=0:length(y1)-1;stem(n3,y1,'.');xlabel('抽样频率为300HZ时信号y的64点得FFT'); subplot(2,2,3);n1=0:length(angle(y2))-1;plot(n1,angle(y2));%相位xlabel('抽样频率为300HZ时信号Y的相频特性图'); figure(3)A=444.18;a=50*pi*sqrt(2);omega=50*pi*sqrt(2);Tp=64/1000;抽样的实现………Fs=200;%抽样频率n=0:Tp*Fs-1;%信号长度y=A*exp(-a*n*1/Fs).*sin(omega*n*1/Fs);//t换成nT y2=[y,zeros(1,52)];subplot(2,2,1);n2=0:length(y2)-1;stem(n2,y2,'.');xlabel('抽样频率为200HZ时信号Y的抽样图形'); y1=fft(y2,64);%频域抽样subplot(2,2,2);n3=0:length(y1)-1;stem(n3,y1,'.');xlabel('抽样频率为200HZ时信号y的64点得FFT'); subplot(2,2,3);n1=0:length(angle(y2))-1;plot(n1,angle(y2));%相位xlabel('抽样频率为200HZ时信号Y的相频特性图');figure(4)n1=0:13;n2=14:26;x1=n1+1;x2=27-n2;x0=[x1,x2,zeros(1,5)];%信号xnx00=[x1,x2];xk=fft(x0,32);%信号xn的32点频域抽样n3=0:length(xk)-1;subplot(2,2,1);stem(n3,abs(xk),'.');%信号幅频特性xlabel('信号XN的32点FFT');xk1=fft(x00,16);%16点得频域抽样n4=0:length(xk1)-1;subplot(2,2,2);stem(n4,abs(xk1),'.');xlabel('信号XN的16点FFT');n5=0:length(x0)-1;subplot(2,2,3)stem(n5,x0,'.');%原始信号xn xlabel('信号X0的波形');figure(5)y5=ifft(xk,32);n5=0:length(xk)-1;subplot(2,2,1);stem(n5,y5,'.');xlabel('32点IFFT');y51=ifft(xk1,16);n51=0:length(y51)-1;subplot(2,2,2);stem(n51,y51,'.');xlabel('16点IFFT');%实验二figure(6)x1n=ones(1,4);%信号X1Nn1=0:3;n2=4:7;x1=n1+1;x2=8-n2;x2n=[x1,x2];%信号X2Nn3=0:3;n4=4:7;x3=4-n;x4=n4-3;x3n=[x3,x4];%信号X3N即分段信号的表示方法,用向量表示的。
数字信号处理第三版用MATLAB上机实验

实验二:时域采样与频域采样一、时域采样1.用MATLAB编程如下:%1时域采样序列分析fs=1000A=444.128; a=222.144; w=222.144; ts=64*10^(-3); fs=1000;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs); Xk=fft(xn);subplot(3,2,1);stem(n,xn);xlabel('n,fs=1000Hz');ylabel('xn');title('xn');subplot(3,2,2);plot(n,abs(Xk));xlabel('k,fs=1000Hz'); title('|X(k)|');%1时域采样序列分析fs=200A=444.128; a=222.144; w=222.144; ts=64*10^(-3); fs=200;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs);Xk=fft(xn);subplot(3,2,3);stem(n,xn);xlabel('n,fs=200Hz'); ylabel('xn');title('xn');subplot(3,2,4);plot(n,abs(Xk));xlabel('k,fs=200Hz'); title('|X(k)|');%1时域采样序列分析fs=500A=444.128; a=222.144; w=222.144; ts=64*10^(-3); fs=500;T=1/fs;n=0:ts/T-1; xn=A*exp((-a)*n/fs).*sin(w*n/fs); Xk=fft(xn);subplot(3,2,5);stem(n,xn);xlabel('n,fs=500Hz');ylabel('xn');title('xn');subplot(3,2,6);plot(n,abs(Xk));xlabel('k,fs=500Hz'); title('|X(k)|');2.经调试结果如下图:20406080-200200n,fs=1000Hzxnxn2040608005001000k,fs=1000Hz|X (k)|51015-2000200n,fs=200Hzx nxn510150100200k,fs=200Hz |X(k)|10203040-2000200n,fs=500Hzx nxn102030400500k,fs=500Hz|X (k)|实验结果说明:对时域信号采样频率必须大于等于模拟信号频率的两倍以上,才 能使采样信号的频谱不产生混叠.fs=200Hz 时,采样信号的频谱产生了混叠,fs=500Hz 和fs=1000Hz 时,大于模拟信号频率的两倍以上,采样信号的频谱不产生混叠。
数字信号处理实验1--5含代码

数字信号处理实验1--5含代码实验一离散时间信号的时域分析 1. 在MATLAB中利用逻辑关系式n,,0来实现序列,显示范围。
(产生如下,,,n,nn,n,n012图所示的单位脉冲信号的函数为impseq(n0,n1,n2),程序如示例所示),3,n,10并利用impseq函数实现序列:; ,,,,,,yn,2,n,3,,n,6,,xn1nnnn120源代码:impseq.mfunction y=impseq(n0,n1,n2)n=[n1:n2]y=[(n-n0)==0]exp01-1.mfunction impseq(n0,n1,n2)n=-3:1:10y=2*impseq(3,-3,10)+impseq(6,-3,10);stem(n,y)n,,0,,2. 在MATLAB中利用逻辑关系式来实现序列,显示范围。
(自己编写un,nn,n,n012产生单位阶跃信号的函数,函数命名为stepseq(n0,n1,n2)) 并利用编写的stepseq函数实现序列: ,,,,,,yn,un,2,un,2,5,n,10源代码:stepseq.mfunction y=stepseq(n0,n1,n2)n=n1:1:n2y=[(n-n0)>=0]exp01-2.mfunction stepseq(n0,n1,n2)n=-5:1:20y=stepseq(-2,-5,20)+stepseq(2,-5,20)stem(n,y)3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。
如: n ,,,,xn,0.30,n,15源代码:n=0:1:15;x=0.3.^nstem(n,x)4. 在MATLAB中调用函数sin或cos产生正余弦序列,如:π,, ,,,,xn,3sin0.4πn,,5cos0.3πn0,n,20,,5,,源代码:n=0:1:20x=11*sin(0.3*pi*n+pi/5)+5*cos(0.3*pi*n)stem(n,x)思考题:1.在MATLAB环境下产生单位脉冲序列和单位阶跃序列各有几种方法,如何使用,2.在MATLAB环境下进行序列的相乘运算时应注意什么问题,实验二离散时间系统的时域分析1. 在MATLAB中利用内部函数conv来计算两个有限长序列的卷积。
数字信号处理(1) 代码

subplot(311); %把图像放到311位置
plot(t,x); %画出输入信号图像
[b,a]=butter(N,Wn,'s'); %巴特沃斯模拟滤波器设计
[b1,a1]=bilinear(b,a,0.5); %用双线性法,将模拟滤波器转换为数字滤波器
[h,omega]=freqz(b1,a1,256); %系统的绝对幅度响应(h包含了离散系统频响在 0~pi范围内256个频率等分点的值,omega则包含了范围内256个频率等分点)
ylabel('H (dB)'); %Y轴取值H
title('滤波器图像'); %图像题目
y=filter(b,a,x); %将信号进行滤波处理
title('滤波后的图像'); %图像题目
Rp=1; %幅度特性下降小于1DB
Rs=15; %幅度特性下降小于15DB
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); %巴特沃斯滤波器N估计
subplot(313); %把图像放到313位置
pl %网格布线
grid; %网格布线
title('输入信号'); %图像题目
subplot(312); %把图像放到312位置
x=sin(2*pi*20*t)+2*sin(2*pi*100*t)+5*sin(2*pi*200*t); %输入信号
Wp=tan(pi*30/Fs); %预畸变处理,Wp通带截至频率
Ws=tan(pi*60/Fs); %预畸变处理,Ws阻带截至频率
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文件名:tstem.m(实验一、二需要)程序:f unction tstem(xn,yn)%时域序列绘图函数%xn:被绘图的信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1;stem(n,xn,'.');xlabel('n');ylabel('yn');axis([0,n(end),min(xn),1.2*max(xn)]);文件名:tplot.m(实验一、四需要)程序:function tplot(xn,T,yn)%时域序列连续曲线绘图函数%xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串)%T为采样间隔n=0;length(xn)-1;t=n*T;plot(t,xn);xlabel('t/s');ylabel(yn);axis([0,t(end),min(xn),1.2*max(xn)]);文件名:myplot.m(实验一、四需要)%(1)myplot;计算时域离散系统损耗函数并绘制曲线图。
function myplot(B,A)%B为系统函数分子多项式系数向量%A为系统函数分母多项式系数向量[H,W]=freqz(B,A,1000)m=abs(H);plot(W/pi,20*log10(m/max(m)));grid on;xlabel('\omega/\pi');ylabel('幅度(dB)')axis([0,1,-80,5]);title('损耗函数曲线');文件名:mstem.m(实验一、三需要)程序:function mstem(Xk)%mstem(Xk)绘制频域采样序列向量Xk的幅频特性图M=length(Xk);k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值)stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度');axis([0,2,0,1.2*max(abs(Xk))]);文件名:mpplot.m(实验一需要)%(2)mpplot;计算时域离散系统损耗函数和相频特性函数,并绘制曲线图。
function mpplot(B,A,Rs)%mpplot(B,A,Rs)%时域离散系统损耗函数和相频特性绘图%B为系统函数分子多项式系数向量%A为系统函数分母多项式系数向量%Rs为滤波器阻带最小衰减,省略则幅频曲线最小值取-80dBif nargin<3 ymin=-80;else ymin=-Rs-20;end;%确定幅频曲线纵坐标最小值[H,W]=[H,W]=freqz(B,A,1000)m=abs(H);subplot(2,2,1);plot(W/pi,20*log10(m/max(m)));grid on;xlabel('\omega/\pi');ylabel('幅度(dB)')axis([0,1,ymin,5]);title('损耗函数曲线');subplot(2,2,3);plot(W/pi,p/pi);xlabel('\omega/\pi');ylabel('相位/\pi');grid on;title('(b)相频特性曲线');文件名:mfftplot.m(实验一需要)function mfftplot(xn,N)%mfftplot(xn,N)计算序列向量xn的N点fft并绘制其幅频特性曲线Xk=fft(xn,N);%计算信号xn的频谱的N点采样%===以下为绘图部分====k=0:N-1;wk=2*k/N;m=abs(Xk);mm=max(m);plot(wk,m/mm);grid on;xlabel('\omega/\pi');ylabel('幅度(dB)');axis([0,2,0,1.2]);title('幅度特性曲线');文件名:mstg.m(实验四需要)程序:function st=mstg%产生信号序列向量st,并显示st的时域波形和频谱%st=mstg 返回三路调幅信号相加形成的混合信号,长度N=1600 N=1600; %N为信号st的长度Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz,Tp为采样时间t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10; %第1路调幅信号的载波频率fc1=1000Hzfm1=fc1/10; %第1路调幅信号的调制信号频率fm1=100Hzfc2=Fs/20; %第2路调幅信号的载波频率fc2=500Hzfm2=fc2/10; %第2路调幅信号的调制信号频率fm2=50Hz fc3=Fs/40; %第3路调幅信号的载波频率fc3=250Hzfm3=fc3/10; %第3路调幅信号的调制信号频率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号st=xt1+xt2+xt3; %三路调幅信号相加fxt=fft(st,N); %计算信号st的频谱%====以下为绘图部分,绘制st的时域波形和幅频特性曲线==== subplot(3,1,1);plot(t,st);grid;xlabel('t/s');ylabel('s(t)');axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形'); subplot(3,1,2);stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱'); axis([0,Fs/5,0,1.2]);xlabel('f/Hz');ylabel('幅度');文件名:xtg.m(实验五需要)程序:function xt=xtg(N)%实验五信号x(t)产生,并显示信号的幅频特性曲线%xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0 ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fcxt=mt.*ct; %相乘产生单频调制信号xtnt=2*rand(1,N)-1; %产生随机噪声nt%设计高通滤波器hn,用于滤除噪声nt中的低频成分,生成高通噪声%========================fp=150; fs=200;Rp=0.1;As=70; % 滤波器指标fb=[fp,fs];m=[0,1]; % 计算remezord函数所需参数f,m,devdev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs); % 确定remez函数所需参数hn=remez(n,fo,mo,W); % 调用remez函数进行设计,用于滤除噪声nt中的低频成分yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高通噪声ytxt=xt+yt; %噪声加信号fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/5,min(xt),max(xt)]);title('(a) 信号加噪声波形') subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) 信号加噪声的频谱')axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')10.1 系统响应及系统稳定性close all;clear all;clc;%内容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性%========================A=[1,-0.9];B=[0.05,0.05]; %系统差分方程系数向量B和Ax1n=[1 1 1 1 1 1 1 1 zeros(1,50)]; %产生信号x1(n)=R8(n)x2n=ones(1,128); %产生信号x2(n)=u(n)hn=impz(B,A,58); %求系统单位脉冲响应h(n)subplot(2,2,1);y='h(n)';tstem(hn,y); %调用函数tstem绘图title('(a) 系统单位脉冲响应h(n)');box ony1n=filter(B,A,x1n); %求系统对x1(n)的响应y1(n)subplot(2,2,2);y='y1(n)';tstem(y1n,y);title('(b) 系统对R8(n)的响应y1(n)');box ony2n=filter(B,A,x2n); %求系统对x2(n)的响应y2(n)subplot(2,2,4);y='y2(n)';tstem(y2n,y);title('(c) 系统对u(n)的响应y2(n)');box on%内容2:调用conv函数计算卷积%========================x1n=[1 1 1 1 1 1 1 1 ]; %产生信号x1(n)=R8(n)h1n=[ones(1,10) zeros(1,10)];h2n=[1 2.5 2.5 1 zeros(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)');box onsubplot(2,2,2);y='y21(n)';tstem(y21n,y);title('(e) h1(n)与R8(n)的卷积y21(n)');box onsubplot(2,2,3);y='h2(n)';tstem(h2n,y); %调用函数tstem绘图title('(f) 系统单位脉冲响应h2(n)');box onsubplot(2,2,4);y='y22(n)';tstem(y22n,y);title('(g) h2(n)与R8(n)的卷积y22(n)');box on%内容3:谐振器分析%========================un=ones(1,256); %产生信号u(n)n=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); %谐振器对u(n)的响应y31(n)y32n=filter(B,A,xsin); %谐振器对u(n)的响应y31(n)figure(3)subplot(2,1,1);y='y31(n)';tstem(y31n,y);title('(h) 谐振器对u(n)的响应y31(n)');box onsubplot(2,1,2);y='y32(n)';tstem(y32n,y);title('(i) 谐振器对正弦信号的响应y32(n)');box on10.2 时域采样与频域采样时域采样理论验证程序exp2a.m:%========================close all;clear all;clc;Tp=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绘制序列图box on;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完全相同。