目录第1章摘要…………………………………………………………………1第2章基本原理……………………………………………………………2第3章实验步骤……………………………………………………………5第4章MATLAB实现编程……………………………………………………5第5章实验结果与分析………………………………………………………85.1程序分析………………………………………………………………85.2信号的波形及幅度频谱…………………………………………………85.3结果分析………………………………………………………………9第6章总结…………………………………………………………………12参考文献………………………………………………………………………131第1章摘要一、数字信号处理数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。数字信号处理的算法需要利用计算机或专用处理设备。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。随着大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取代模拟信号处理。随着信息时代、数字世界的到来,数字信号处理已成为一门极其重要的学科和技术领域。二、实验目的本次课程设计应用MATLAB验证时域采样定理。了解MATLAB软件,学习应用MATLAB软件的仿真技术。它主要侧重于某些理论知识的灵活运用,以及一些关键命令的掌握,理解,分析等。初步掌握线性系统的设计方法,培养独立工作能力。加深理解时域采样定理的概念,掌握利用MATLAB分析系统频率响应的方2法和掌握利用MATLAB实现连续信号采样、频谱分析和采样信号恢复的方法。计算在临界采样、过采样、欠采样三种不同条件下恢复信号的误差,并由此总结采样频率对信号恢复产生误差的影响,从而验证时域采样定理。三、MATLAB的介绍MATLAB是一套功能十分强大的工程计算及数据分析软件,广泛应用于各行各业。MATLAB是矩阵实验室之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完全相同的事情简捷得多.在新的版本中也加入了对C,FORTRAN,c++,JAVA的支持.可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。第2章基本原理(1)时域采样定理1、对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性的延拓形成的。2、设连续信号的的最高频率为maxF,如果采样频率max2FFs,那么采样信号可以唯一的恢复出原连续信号,否则max2FFs会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。(2)设计原理图(3)信号的时域采样与频谱分析对一个连续信号af(t)进行理想采样的过程可以用下式表示)(tfa)()(ttsST)(tfs连续信号取样脉冲信号抽样信号)(jH)(0tf理想低通滤波器恢复信号3)()()(^tstftfaa(1)其中)(^tfa为)(tfa的理想采样,s(t)为周期脉冲信号,即nnTtts)()((2))(^tfa的傅里叶变换)(^jFa为msaamjFTjF)]([1)(^(3)上式表明,)(^jFa为)(jFa的周期延拓,其延拓周期为采样角频率(s=2π/T)。只有满足采样定理时,才不会发生频率混叠失真。在计算机上用高级语言编程,直接按照(3)式计算)(^tfa的频谱)(^jFa很不方便,下面导出用序列的傅里叶变换来计算)(^jFa的公式。将(2)式代入(1)式,并进行傅里叶变换,nTjnatjnatjnaaenTfdtenTttfdtenTttfjF)()()(])()([)(^(4)式中的af(nT)就是采样后的序列f(n),即:f(n)=af(nT),f(n)的傅里叶变换为nnjjenfeF)()((5)比较(5)和(4)可知TjaeFjF)()(^(6)说明两者之间只在频率度量上差一个常数因子T。实验过程中应注意这一差别离散信号和系统在时域均可以用序列来表示,序列图形给人以形象直观的印象,它可以加深我们对信号和系统的时域特征的理解。本实验还将观察分析4几种信号及系统的时域特性。为了观察分析各种序列的频域特性,通常对F(je)在[0,2π]上进行M点采样来观察分析。对长度为N的有限长序列f(n),有10)()(NnnjjkkemfeF(7)其中1,...,1,0,2MkkMk通常M应取的大一些,以便观察谱的细节变化。取模)(kjeF可绘出幅频特性曲线。(4)采样信号的恢复(内插函数法)设信号)(tf被采样后形成的采样信号为)(tfs,信号的重构是指由)(tfs经过内插处理后,恢复出原来信号)(tf的过程。又称为信号恢复。信号恢复的时域表达式)(*)()(tfthtfs(8)而nssnssnTtnTfnTttftf)()()()()()()]([)(1tSaTjHFthccs将)(th及)(tfs代入式(8)得:nscscsccssnTtSanTfTtSaTtftf)]([)()(*)()((9)式(9)即为用)(snTf求解)(tf的表达式,是利用MATLAB实现信号恢复的基本关系式,抽样函数)(tSac在此起着内插函数的作用。内插公式表明模拟信号)(tf等于各采样点函数)(snTf乘以对应内插函数的总和,即只要采样频率高于信号频率的两倍,模拟信号就可用它的采样信号代表,而不会丢失任何信息。这种理想低通滤波器的模拟信号完全等于模拟信号)(tf,是一种无失真的恢复。5第3章实验步骤1、画出连续时间信号的时域波形及其幅频特性曲线,信号为f(x)=sin(2*pi*60*t)+cos(2*pi*25*t)+cos(2*pi*30*t);2、对信号进行采样,得到采样序列,画出采样频率分别为80Hz,120Hz,150Hz时的采样序列波形;3、对不同采样频率下的采样序列进行频谱分析,绘制其幅频曲线,对比各频率下采样序列和的幅频曲线有无差别。4、对信号进行谱分析,观察与3中结果有无差别。5、由采样序列恢复出连续时间信号,画出其时域波形,对比与原连续时间信号的时域波形。第4章MATLAB实现编程%实现采样频谱分析绘图函数functionfz=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);%求原信号的离散时间傅里叶变换figure6%画原信号波形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)')%信号的恢复及频谱函数functionfh=huifu(fz,fs)%第一个输入变量是采样序列%第二个输入变量是得到采样序列所用的采样频率T=1/fs;dt=T/10;tp=0.1;7t=-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);%频率maxs2ff,即欠采样fr0=huifu(fs0,80);fs1=caiyang(f1,120);%频率maxs2ff,临界采样fr1=huifu(fs1,120);fs2=caiyang(f1,150);%频率maxs2ff,即过采样fr2=huifu(fs2,150);8第5章实验结果与分析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*