matlab验证时域采样定理.doc
目 录第1章 摘要 1第2章 基本原理 2第3章 实验步骤 5第4章 MATLAB实现编程 5第5章 实验结果与分析85.1 程序分析 85.2 信号的波形及幅度频谱 85.3 结果分析 9第6章 总结 12参考文献 13第1章第2章第3章第4章第5章第6章第7章第8章第9章第10章第11章第12章第13章第14章第15章第16章第17章第18章第19章 摘要一、数字信号处理数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。数字信号处理的算法需要利用计算机或专用处理设备。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。 数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。随着大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取代模拟信号处理。随着信息时代、数字世界的到来,数字信号处理已成为一门极其重要的学科和技术领域。二、实验目的本次课程设计应用MATLAB验证时域采样定理。了解MATLAB软件,学习应用MATLAB软件的仿真技术。它主要侧重于某些理论知识的灵活运用,以及一些关键命令的掌握,理解,分析等。初步掌握线性系统的设计方法,培养独立工作能力。加深理解时域采样定理的概念,掌握利用MATLAB分析系统频率响应的方法和掌握利用MATLAB实现连续信号采样、频谱分析和采样信号恢复的方法。计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,并由此总结采样频率对信号恢复产生误差的影响,从而验证时域采样定理。三、MATLAB的介绍MATLAB是一套功能十分强大的工程计算及数据分析软件,广泛应用于各行各业。MATLAB是矩阵实验室之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完全相同的事情简捷得多.在新的版本中也加入了对C,FORTRAN,c+ ,JAVA的支持.可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。第20章 基本原理(1)时域采样定理1、对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性的延拓形成的。2、设连续信号的的最高频率为,如果采样频率,那么采样信号可以唯一的恢复出原连续信号,否则会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。(2)设计原理图(3)信号的时域采样与频谱分析对一个连续信号(t)进行理想采样的过程可以用下式表示 (1)其中为的理想采样,s(t)为周期脉冲信号,即 (2)的傅里叶变换为 (3)上式表明,为的周期延拓,其延拓周期为采样角频率(=2/T)。只有满足采样定理时,才不会发生频率混叠失真。在计算机上用高级语言编程,直接按照(3)式计算的频谱很不方便,下面导出用序列的傅里叶变换来计算的公式。将(2)式代入(1)式,并进行傅里叶变换, (4)式中的 (nT)就是采样后的序列(n),即:(n)= (nT),(n)的傅里叶变换为 (5)比较(5)和(4)可知 (6)说明两者之间只在频率度量上差一个常数因子T。实验过程中应注意这一差别离散信号和系统在时域均可以用序列来表示,序列图形给人以形象直观的印象,它可以加深我们对信号和系统的时域特征的理解。本实验还将观察分析几种信号及系统的时域特性。为了观察分析各种序列的频域特性,通常对F()在0,2上进行M点采样来观察分析。对长度为N的有限长序列(n),有 (7)其中通常M应取的大一些,以便观察谱的细节变化。取模可绘出幅频特性曲线。(4)采样信号的恢复(内插函数法)设信号被采样后形成的采样信号为,信号的重构是指由经过内插处理后,恢复出原来信号的过程。又称为信号恢复。信号恢复的时域表达式 (8)而 将及代入式(8)得: (9)式(9)即为用求解的表达式,是利用MATLAB实现信号恢复的基本关系式,抽样函数在此起着内插函数的作用。内插公式表明模拟信号等于各采样点函数乘以对应内插函数的总和,即只要采样频率高于信号频率的两倍,模拟信号就可用它的采样信号代表,而不会丢失任何信息。这种理想低通滤波器的模拟信号完全等于模拟信号,是一种无失真的恢复。第21章 实验步骤1、画出连续时间信号的时域波形及其幅频特性曲线,信号为(x)= sin(2*pi*60*t)+cos(2*pi*25*t)+cos(2*pi*30*t);2、 对信号进行采样,得到采样序列 ,画出采样频率分别为80Hz,120 Hz,150 Hz时的采样序列波形;3、对不同采样频率下的采样序列进行频谱分析,绘制其幅频曲线,对比各频率下采样序列和的幅频曲线有无差别。4、对信号进行谱分析,观察与3中结果有无差别。5、由采样序列恢复出连续时间信号 ,画出其时域波形,对比与原连续时间信号的时域波形。第22章 MATLAB实现编程%实现采样频谱分析绘图函数function fz=caiyang(fy,fs) %第一个输入变量是原信号函数,信号函数fy以字符串的格式输入%第二个输入变量是采样频率fs0=10000; tp=0.1;t=-tp:1/fs0:tp;k1=0:999; k2=-999:-1;m1=length(k1); m2=length(k2);f=fs0*k2/m2,fs0*k1/m1; %设置原信号的频率数组w=-2*pi*k2/m2,2*pi*k1/m1;fx1=eval(fy);FX1=fx1*exp(-j*1:length(fx1)'*w);%求原信号的离散时间傅里叶变换figure% 画原信号波形subplot(2,1,1),plot(t,fx1,'r')title('原信号'), xlabel('时间t (s)')axis(min(t),max(t),min(fx1),max(fx1) % 画原信号幅度频谱subplot(2,1,2),plot(f,abs(FX1),'r')title('原信号幅度频谱') , xlabel('频率f (Hz)')axis(-100,100,0,max(abs(FX1)+5) % 对信号进行采样Ts=1/fs; %采样周期t1=-tp:Ts:tp; %采样时间序列f1=fs*k2/m2,fs*k1/m1; %设置采样信号的频率数组t=t1; %变量替换fz=eval(fy); %获取采样序列FZ=fz*exp(-j*1:length(fz)'*w);%采样信号的离散时间傅里叶变换figure% 画采样序列波形subplot(2,1,1),stem(t,fz,'.'),title('取样信号') , xlabel('时间t (s)')line(min(t),max(t),0,0)% 画采样信号幅度频谱subplot(2,1,2),plot(f1,abs(FZ),'m')title('取样信号幅度频谱') , xlabel('频率f (Hz)')%信号的恢复及频谱函数function fh=huifu(fz,fs) %第一个输入变量是采样序列%第二个输入变量是得到采样序列所用的采样频率T=1/fs; dt=T/10; tp=0.1;t=-tp:dt:tp; n=-tp/T:tp/T;TMN=ones(length(n),1)*t-n'*T*ones(1,length(t);fh=fz*sinc(fs*TMN); % 由采样信号恢复原信号k1=0:999; k2=-999:-1;m1=length(k1); m2=length(k2);w=-2*pi*k2/m2,2*pi*k1/m1;FH=fh*exp(-j*1:length(fh)'*w); % 恢复后的信号的离散时间傅里叶变换figure% 画恢复后的信号的波形subplot(2,1,1),plot(t,fh,'g'),st1=sprintf('由取样频率fs=%d',fs);st2='恢复后的信号'st=st1,st2; title(st) , xlabel('时间t (s)')axis(min(t),max(t),min(fh),max(fh)line(min(t),max(t),0,0) % 画重构信号的幅度频谱f=10*fs*k2/m2,10*fs*k1/m1; %设置频率数组subplot(2,1,2),plot(f,abs(FH),'g')title('恢复后信号的频谱') , xlabel('频率f (Hz)')axis(-100,100,0,max(abs(FH)+2);%主函数f1='sin(2*pi*60*t)+cos(2*pi*25*t)+cos(2*pi*30*t)'%输入一个信号fs0=caiyang(f1,80); %频率,即 欠采样fr0=huifu(fs0,80);fs1=caiyang(f1,120);%频率,临 界采样fr1=huifu(fs1,120);fs2=caiyang(f1,150);%频率,即 过采样fr2=huifu(fs2,150);第23章 实验结果与分析1、程序分析TMN=ones(length(n),1)*t-n'*T*ones(1,length(t); fh=fz*sinc(fs*TMN); %由采样信号恢复原信号plot(t,f) %绘制fx的波形stem(t,f) %绘制一个二维杆图(画离散波形)subpolt(,) %在一个窗口画多个波形图f=10*fs*k2/m2,10*fs*k1/m1; %设置频率数组abs(x) %求复数x的模 ones %产生矩阵元素全为1的矩阵 2、原信号的波形及幅度频谱图1 原信号波形及频谱3、结果分析(1) 频率<时,为原信号的欠采样信号和恢复,采样频率不满足时域采样定理,那么频移后的各相临频谱会发生相互重叠,这样就无法将他们分开,因而也不能再恢复原信号。频谱重叠的现象被称为混叠现象。欠采样信号的离散波形及频谱见下图2,恢复后信号见下图3。图2 =80Hz时采样信号离散波形及频谱图3 =80Hz恢复后信号波形及频谱(2) 频率=时,为原信号的临界采样信号和恢复,下图4为其采样的离散波形和频谱,从下图5恢复后信号和原信号先对比可知,只恢复了低频信号,高频信号未能恢复。图4 =120Hz时采样信号离散波形及频谱图5 =120Hz恢复后信号波形及频谱(3) 频率>时,为原信号的过采样信号和恢复,由图6采样信号离散波形和频谱,可以看出采样信号的频谱是原信号频谱进行周期延拓形成的,从图7采样恢复后的波形和频谱,可看出与原信号误差很小了,说明恢复信号的精度已经很高。图6 =150Hz时采样信号离散波形及频谱图7 =150Hz恢复后信号波形及频谱第24章 总 结一、 在上述的实验当中,我们首先定义信号时采用了该信号的函数表达式的形式。二、 在MATLAB中求连续信号的频谱,我们应用的是离散傅立叶变换,这样实际运算的仍是对连续信号的采样结果,这里我们给予了足够高的采样频率,把其作为连续信号来考虑。三、 实际中对模拟信号进行采样,需要根据最高截止频率,按照采样定理的要求选择采样频率的两倍,即。设计中对三种频率时采样分析总结:(1) 欠采样:即时,时域波形恢复过程中已经不能完整的表示原信号,有了失真,从频谱上也可看出,同的频谱带互相重叠,已经不能体现原信号频谱的特点了,从而无法得到原来的信号。(2) 临界采样:即时,时域波形任然不能恢复完整的原信号,信号只恢复过程中恢复了低频部分,从频谱上便可看出,但任然不可完全恢复原信号。(3) 过采样:即时,此时的采样是成功的,它能够恢复原信号,从时域波形可看出,比上面采样所得的冲激脉冲串包含的细节要多,在频域中也没出现频谱的交叠,这样我们可以利用低通滤波器m(t)得到无失真的重建。综合以上欠采样、临界采样、过采样三种情况的分析,可以看出要使采样信号可以恢复到原信号,采样频率必须满足时域采样定理,从而验证了时域采样定理。参考文献1 谢平、王娜、林洪彬等编 数字信号处理 燕山大学2007年3月2 邹鲲、袁俊泉、龚享铱编 MATLAB6.x信号处理 清华大学出版社 2002年5月 3 薛年喜主编 MATLAB在数字信号处理中的应用 清华大学出版社 2003年燕山大学课程设计评审意见表指导教师评语:成绩: 指导教师: 年 月 日答辩小组评语:成绩: 组长: 年 月 日课程设计总成绩:答辩小组成员签字:年 月 日