您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字信号处理(西电上机实验)
数字信号处理实验报告实验一:信号、系统及系统响应一、实验目的:(1)熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。(2)熟悉时域离散系统的时域特性。(3)利用卷积方法观察分析系统的时域特性。(4)掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。二、实验原理与方法:(1)时域采样。(2)LTI系统的输入输出关系。三、实验内容、步骤(1)认真复习采样理论、离散信号与系统、线性卷积、序列的傅里叶变换及性质等有关内容,阅读本实验原理与方法。(2)编制实验用主程序及相应子程序。①信号产生子程序,用于产生实验中要用到的下列信号序列:a.xa(t)=A*e^-at*sin(Ω0t)u(t)A=444.128;a=50*sqrt(2)*pi;b.单位脉冲序列:xb(n)=δ(n)c.矩形序列:xc(n)=RN(n),N=10②系统单位脉冲响应序列产生子程序。本实验要用到两种FIR系统。a.ha(n)=R10(n);b.hb(n)=δ(n)+2.5δ(n-1)+2.5δ(n-2)+δ(n-3)③有限长序列线性卷积子程序用于完成两个给定长度的序列的卷积。可以直接调用MATLAB语言中的卷积函数conv。conv用于两个有限长度序列的卷积,它假定两个序列都从n=0开始。调用格式如下:y=conv(x,h)四、实验内容调通并运行实验程序,完成下述实验内容:①分析采样序列的特性。a.取采样频率fs=1kHz,即T=1ms。b.改变采样频率,fs=300Hz,观察|X(ejω)|的变化,并做记录(打印曲线);进一步降低采样频率,fs=200Hz,观察频谱混叠是否明显存在,说明原因,并记录(打印)这时的|X(ejω)|曲线。②时域离散信号、系统和系统响应分析。a.观察信号xb(n)和系统hb(n)的时域和频域特性;利用线性卷积求信号xb(n)通过系统hb(n)的响应y(n),比较所求响应y(n)和hb(n)的时域及频域特性,注意它们之间有无差别,绘图说明,并用所学理论解释所得结果。b.观察系统ha(n)对信号xc(n)的响应特性。③卷积定理的验证。五、思考题(1)在分析理想采样序列特性的实验中,采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率度量是否都相同?它们所对应的模拟频率是否相同?为什么?(2)在卷积定理验证的实验中,如果选用不同的频域采样点数M值,例如,选M=10和M=20,分别做序列的傅里叶变换,求得的结果有无差异?为什么?六、参考资料数字信号处理教程——Matlab释义与实现第二版,陈怀琛著,电子工业出版社,2008年七、实验程序及结果本实验使用自定义函数的方法产生信号:门函数:function[y,n]=gate(np,ns,nf)ifnsnp|nsnf|npnferror('ÊäÈëλÖòÎÊý²»Âú×ãns=np=nf');elsen=[ns:nf];y=(n=0&nnp);end冲击函数:function[y,n]=impseq(np,ns,nf)ifnsnp|nsnf|npnferror('ÊäÈëλÖòÎÊý²»Âú×ãns=np=nf');elsen=[ns:nf];y=[(n-np)==0];end时域函数:function[y,ts]=sig(t0,tp,t1);A=444.128;a=50.*sqrt(2).*pi;w0=50.*sqrt(2).*pi;ts=t0:tp:t1;y=A.*exp(-a.*ts).*sin(w0.*ts).*(ts=0);;hb=impseq(0,0,10)+2.5.*impseq(1,0,10)+2.5.*impseq(2,0,10)+impseq(3,0,10);;[ha,N]=gate(10,0,10);第一部分主程序:[y1,t1]=sig(0,0.001,1);%t1=0:0.001:1;%y1=0.5.*sin(2.*pi.*15.*t1);figure;plot(t1,y1);axis([00.15-10150]);title('f=1000ʱÓòÐźÅ');figure;f=-500:500;yy1=fftshift(fft(y1));plot(f,abs(yy1));title('f=1000ƵÆ×');[y2,t2]=sig(0,1/300,1);figure;plot(t2,y2);axis([00.15-10150]);title('f=300ʱÓòÐźÅ');figure;yy2=fftshift(fft(y2));plot(-150:150,abs(yy2));title('f=300ƵÆ×');[y3,t3]=sig(0,0.02,1);figure;plot(t3,y3);title('f=200ʱÓòÐźÅ');axis([00.15-85]);figure;yy3=fftshift(fft(y3));plot(-25:25,abs(yy3));title('f=200ƵÆ×');第二部分主程序:xb=impseq(0,0,100);figure;stem(0:length(xb)-1,xb);axis([-1,3,0,2]);figure;y1=fft(xb);plot(0:length(y1)-1,y1);hb=impseq(0,0,100)+2.5.*impseq(1,0,100)+2.5.*impseq(2,0,100)+impseq(3,0,100);figure;stem(0:length(hb)-1,hb);axis([-1,5,0,3])figurey2=fftshift(fft(hb));plot(-(length(y2)-1)/2:(length(y2)-1)/2,abs(y2));figure;y3=conv(double(xb),double(hb));plot(0:length(y3)-1,y3);y4=fftshift(fft(y3));figure;plot(-(length(y4)-1)/2:(length(y4)-1)/2,abs(y4));xc=gate(10,0,100);ha=xc;y5=fftshift(fft(conv(double(xc),double(ha))));figure;plot(-(length(y5)-1)/2:(length(y5)-1)/2,abs(y5));实验结果:第一部分:采样频率为200Hz时时域恢复200Hz时频谱采样频率为300Hz时时域恢复300Hz时频谱采样频率为1000Hz是时域恢复1000Hz时频谱第二部分:Xb频域分析xb时域分析hb频域分析hb时域分析信号通过xb频域信号通过xc频域卷积定理的验证:%%%%%卷积定理的验证y1=[0,1,2,3,4,5,6,7,8];y2=[8,7,6,5,4,3,2,1,0];y3=conv(y1,y2);f1=fft(y1,20);f2=fft(y2,20);f3=fft(y3,20);f=f1.*f2;subplot(2,1,1);stem(0:length(f)-1,f,'.');subplot(2,1,2);stem(0:length(f3)-1,f3,'.');时域卷积后求频谱和频域相乘可见,f=conv(y1,y2)的频谱和y1,y2的频谱相乘后结果相同。即满足卷积定理八、回答问题(1)在分析理想采样序列特性的实验中,采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率度量是否都相同?它们所对应的模拟频率是否相同?为什么?答:数字频率度量不相同,但他们所对应的模拟频率相同。由w=Ω*Ts公式得,采样间隔变化时模拟频率对应的数字频率会有相应的变化,故其度量会有所变化。而且采样频率的大小直接关系到能否将能否将原始信号恢复出来。(2)在卷积定理验证的实验中,如果选用不同的频域采样点数M值,例如,选M=10和M=20,分别做序列的傅里叶变换,求得的结果有无差异?答:有差异,所到的结果点数不同。九、总结本实验主要是后续实验的基础。涉及内容也比较浅显。单位冲击序列与hb卷积后得到的频谱与hb原频谱相同。原因很简单,是因为单位冲击序列卷积任何函数仍然是原函数。实验二:用FFT作谱分析一、实验目的(1)进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。(2)熟悉FFT算法原理和FFT子程序的应用。(3)学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。二、实验步骤(1)复习DFT的定义、性质和用DFT作谱分析的有关内容。(2)复习FFT算法原理与编程思想,并对照DIT-FFT运算流图和程序框图,读懂本实验提供的FFT子程序。(3)编制信号产生子程序,产生以下典型信号供谱分析用:(4)编写主程序。下图给出了主程序框图,供参考。本实验提供FFT子程序和通用绘图子程序。(5)按实验内容要求,上机实验,并写出实验报告。1423()()1,03()8470403()3470xnRnnnxnnnnnxnnn456()cos4()sin8()cos8cos16cos20xnnxnnxnttt三、实验内容(1)对2中所给出的信号逐个进行谱分析。(2)令x(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换,X(k)=DFT[x(n)](3)令x(n)=x4(n)+jx5(n),重复(2)。四、思考题(1)在N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢?(2)如果周期信号的周期预先不知道,如何用FFT进行谱分析?五、参考资料数字信号处理教程——Matlab释义与实现第二版,陈怀琛著,电子工业出版社,2008年数字信号处理第三版,高西泉等著,西安电子科技大学出版社,第三版六、实验程序及结果x1=[1,1,1,1,0,0,0,0,0,0];x2=[1,2,3,4,4,3,2,1,0,0];x3=[4,3,2,1,1,2,3,4,0,0];n=0:1000;x4=cos(n);x5=sin(n);t=0:0.001:1;x6=cos(8*pi*t)+cos(16*pi*t)+cos(20*pi*t);%figure;%title('Öð¸öÆ×·ÖÎö')读入长度N开始调用信号产生子程序产生实验信号调用绘图子程序(函数)绘制时间序列波形图调用FFT子程序(函数)计算信号的DFT调用绘图子程序(函数)绘制X(k)曲线结束subplot(3,2,1);stem(0:length(x1)-1,x1);subplot(3,2,2);stem(0:length(x2)-1,x2);subplot(3,2,3);stem(0:length(x3)-1,x3);subplot(3,2,4);stem(0:20,x4(1:21));subplot(3,2,5);stem(0:20,x5(1:21));subplot(3,2,6);stem(0:20,x6(1:21));figure;stem(0:200,x6(1:201));y1=abs(fft(x1,8));y2=abs(fft(x2,8));y3=abs(fft(x3,8));y4=abs(fft(x4,8));y5=abs(fft(x5,8));y6=abs(fft(x6,8));figure;subplot(3,2,1);stem(0:length(y1)-1,y1);subplot(3,2,2);stem(0:length(y2)-1,y2);subplot(3,2,3);stem(0:length(y3)-1,y3);subplot(3,2,4);stem(0:length(y1)-1,y1);subplot(3
本文标题:数字信号处理(西电上机实验)
链接地址:https://www.777doc.com/doc-6345077 .html