非周期信号的频谱分析一、实验目的1)掌握用MATLAB编程,分析门信号的频谱;2)掌握用MATLAB编程,分析冲击信号的频谱;3)掌握用MATLAB编程,分析直流信号的频谱;4)掌握用MATLAB编程,分析阶跃信号的频谱;5)掌握用MATLAB编程,分析单边信号的频谱;二、实验原理常见的非周期信号有:1、门信号门信号的傅里叶变换对为:12sin()22()()202tgtFjSat它的幅度频谱和相位频谱分别为()2FjSa0sin()02()sin()022、冲激信号冲激信号的傅里叶变换对为()1t3、直流信号直流信号的傅里叶变换为12()4、阶跃信号阶跃信号的傅里叶变换为111()sgn()()22uttj5、单边指数信号单边指数信号的傅里叶变换对为01()00atetftjt幅度频谱和相位频谱分别为1()Fjj()arctan()a三、涉及的MATLAB函数1、fourier函数2、ifourier函数四、实验内容与方法1、验证性试验1)门信号的傅里叶变换MATLAB程序:Clearall;symstwut=sym('heaviside(t+0.5)-heaviside(t-0.5)');subplot(2,1,1);ezplot(ut)holdonaxis([-1101.1]);plot([-0.5-0.5],[0,1]);plot([0.50.5],[0,1]);Fw=fourier(ut,t,w);FFP=abs(Fw);subplot(2,1,2);ezplot(FFP,[-10*pi10*pi]);axis([-10*pi10*pi01.1]);程序运行结果图2)冲激信号的傅里叶变换MATLAB程序:clearallsymstwut1=sym('heaviside(t+0.5)-heaviside(t-0.5)');subplot(2,1,1);ezplot(ut1);title('脉宽为1的矩形脉冲信号')xlabel('t')holdonaxis([-1101.1]);plot([-0.5-0.5],[01]);plot([0.50.5],[01]);Fw=fourier(ut1,t,w);FFw=abs(Fw);subplot(2,1,2);ezplot(FFw,[-10*pi10*pi]);axis([-10*pi10*pi01.1]);title('脉宽为1的矩形脉冲信号的幅度频谱')holdonpauseut2=10*sym('heaviside(t+0.05)-heaviside(t-0.05)');subplot(2,1,1);ezplot(ut2);title('脉宽为1、0.1矩形脉冲信号')xlabel('t')holdonaxis([-11011]);plot([-0.05-0.05],[010]);plot([0.050.05],[010]);Fw2=fourier(ut2,t,w);FFw2=abs(Fw2);subplot(2,1,2);ezplot(FFw2,[-10*pi10*pi]);axis([-10*pi10*pi01.1]);title('脉宽为1、0.1的矩形脉冲信号的幅度频谱')holdonpauseut3=100*sym('heaviside(t+0.005)-heaviside(t-0.005)');subplot(2,1,1);ezplot(ut3);title('脉宽为1、0.1和0.01矩形脉冲信号')xlabel('t')holdonaxis([-110110]);plot([-0.005-0.005],[0100]);plot([0.0050.005],[0100]);Fw3=fourier(ut3,t,w);FFw3=abs(Fw3);subplot(2,1,2);ezplot(FFw3,[-10*pi10*pi]);axis([-10*pi10*pi01.1]);title('脉宽为1、0.1和0.01的矩形脉冲信号的幅度频谱')holdonpause程序运行结果图3)直流信号的傅里叶变换MATLAB程序:clearall;display('Pleaseinputthevalueofa')a=input('a=');symstf=exp(-a*abs(t));subplot(1,2,1)ezplot(f);axis([-2*pi2*pi01]);ylabel('时域波形');F=fourier(f);subplot(1,2,2)ezplot(abs(F));axis([-3302/a])程序运行结果图a=0.1时:a=0.01时:a=0.001时:a=0.0001时:4)阶跃信号的傅里叶变换MATLAB程序:clearallsymsw;xw=1/(j*w);ezplot(abs(imag(xw)));axis([-33-1.5*pi1.5*pi]);holdony=0:0.01:pi;plot(0,y);holdony=-pi:pi;plot(0,y);holdontitle('阶跃信号频谱');xlabel('\omega');axis([-pipi-66]);x=-pi:0.001:pi;plot(x,0)holdony=-6:0.01:6;plot(0,y);holdon程序运行结果图5)单边指数信号的傅里叶变换MATLAB程序:clearallsymstvwphaseimref=exp(-2*t)*sym('heaviside(t)');Fw=fourier(f);subplot(3,1,1);ezplot(f);axis([-12.501.1]);xlabel('时域波形');subplot(3,1,2)ezplot(abs(Fw));xlabel('幅度频谱');im=imag(Fw);re=real(Fw);phase=atan(im/re);subplot(3,1,3);ezplot(phase);xlabel('相位频谱');程序运行结果图2、程序设计实验确定下列信号的傅里叶变换的数学表达式1)2()()1tfteUt的傅里叶变换1()2()2FjjMATLAB程序:clearallsymstvwphaseimref=exp(-2*t)*sym('heaviside(t)')+1;Fw=fourier(f);Fw=simple(Fw);subplot(3,1,1);ezplot(f);axis([-12.501.1]);xlabel('时域波形');subplot(3,1,2)ezplot(abs(Fw));im=imag(Fw);re=real(Fw);xlabel('幅度频谱');phase=atan(im/re);subplot(3,1,3);ezplot(phase);xlabel('相位频谱');程序运行结果图2)2()(1)()tfteUtGt的傅里叶变换12sin()1jeFjjMATLAB程序:clearallsymstvwphaseimref=exp(-1*t)*sym('heaviside(t-1)')+heaviside(t+1)-heaviside(t-1);Fw=fourier(f);Fw=simple(Fw);subplot(3,1,1);ezplot(f);axis([-2.52.501.1]);xlabel('时域波形');subplot(3,1,2)ezplot(abs(Fw));im=imag(Fw);re=real(Fw);xlabel('幅度频谱');phase=atan(im/re);subplot(3,1,3);ezplot(phase);xlabel('相位频谱');程序运行结果图3)()2()(4)ftUtt的傅里叶变换41()2(())jjFjeejMATLAB程序:clearallsymstvwphaseimref=2*sym('heaviside(t-1)')+dirac(t-4);Fw=fourier(f);Fw=simple(Fw);subplot(3,1,1);ezplot(f)axis([-1601.5]);xlabel('时域波形');subplot(3,1,2)ezplot(abs(Fw));im=imag(Fw);re=real(Fw);xlabel('幅度频谱');phase=atan(im/re);subplot(3,1,3);ezplot(phase);xlabel('相位频谱');程序运行结果图