资源描述:
《数字信号处理实验报告李傲》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、数字信号处理实验报告班级:14050Z01姓名:李傲学号:140502423917实验一频谱分析与采样定理一、实验目的1.观察模拟信号经理想采样后的频谱变化关系。2.验证采样定理,观察欠采样时产生的频谱混叠现象3.加深对DFT算法原理和基本性质的理解4.熟悉FFT算法原理和FFT的应用二、实验原理根据采样定理,对给定信号确定采样频率,观察信号的频谱三、实验内容和步骤实验内容在给定信号为:1.x(t)=cos(100*π*at)2.x(t)=exp(-at)3.x(t)=exp(-at)cos(100*π*at)其中a为实验
2、者的学号,记录上述各信号的频谱,表明采样条件,分析比较上述信号频谱的区别。实验步骤1.复习采样理论、DFT的定义、性质和用DFT作谱分析的有关内容。2.复习FFT算法原理和基本思想。3.确定实验给定信号的采样频率,编制对采样后信号进行频谱分析的程序四、实验设备计算机、Matlab软件五、实验报告要求1.整理好经过运行并证明是正确的程序,并且加上详细的注释。2.对比不同采样频率下的频谱,作出分析报告。六、实验程序和结果 %14050Z011405024239NO.19%x(t)=cos(100*¦Ð*at)a=19;F=[9
3、00,2000];fori=1:2f=F(i);T=1/f;L=0.05;N=L/T;t=0:T:L;a=19;f1=0:f/N:f;f2=-f/2:f/N:f/2;x1=cos(100*pi*a*t);y1=T*abs(fft(x1));y11=fftshift(y1);figure(1+(i-1)*3);subplot(3,1,1),plot(t,x1);title('cos');subplot(3,1,2),stem(y1);title('cos-sin');17subplot(3,1,3),plot(f2,y11)
4、;title('cos-F');%x(t)=exp(-at)x2=exp(-a*t);y2=T*abs(fft(x2));y21=fftshift(y2);figure(2+(i-1)*3),subplot(3,1,1),stem(t,x2);title('exp');subplot(3,1,2),stem(f1,y2);title('exp-F');subplot(3,1,3),plot(f2,y21);title('exp-F');%x(t)=exp(-at)cos(100*¦Ð*at)x3=x1.*x2;y3=T*a
5、bs(fft(x3));y31=fftshift(y3);figure(3+(i-1)*3),subplot(3,1,1),stem(t,x3);title('x1*x2');subplot(3,1,2),stem(f1,y3);title('x1*x2-F');subplot(3,1,3),plot(f2,y31);title('x1*x2-F');end171717七、实验结果分析根据奈奎斯特采样定理以及实验分析,明显可以看出当采样频率大于信号最高频率的2倍的时候,基本恢复的信号无失真。理论上如此,但在实际上由于实际滤
6、波器的特性并不理想,实际在抽样的时候也只是按照最高频率的二倍来进行抽样,这样便于对抽样信号的恢复。当抽样频率小于信号频谱最高频率的2倍时,不满足抽样定理,信号失真,可以观察到频谱混叠现象。所以,在实际抽样时,通常选择抽样频率大于信号频谱最高频率的2倍进行抽样。八、实验心得实验中不知道为什么一旦在注释中出现汉字,注释就乱码,所以,整个实验下来,除了关键的地方用蹩脚的英语注释了一下,其他都没有注释,Matlab确实强大,在实现变换的时候也就是一行代码的事,同时也验证的采样定理,熟悉了DFT,FFT算法的原理以及性质。17实验二
7、卷积定理一、实验目的通过本实验,验证卷积定理,掌握利用DFT和FFT计算线性卷积的方法。二、实验原理时域圆周卷积在频域上相当于两序列DFT的相乘,因而可以采用FFT的算法来计算圆周卷积,当满足时,线性卷积等于圆周卷积,因此可利用FFT计算线性卷积。三、实验内容和步骤1.给定离散信号和,用图解法求出两者的线性卷积和圆周卷积;2.编写程序计算线性卷积和圆周卷积;3.比较不同列长时的圆周卷积与线性卷积的结果,分析原因。四、实验设备计算机、Matlab软件五、实验报告要求1.整理好经过运行并证明是正确的程序,并且加上详细的注释。2
8、.给出笔算和机算结果对照表,比较不同列长时的圆周卷积与线性卷积的结果对照,作出原因分析报告。3.结出用DFT计算线性卷积的方法。六、实验程序及图形%2.1x=[302135987465825695];%randlynumbersy=[103952];%randlynumbersN=length(x)+l