实验二傅里叶分析及应用一、实验目的(一)掌握使用Matlab进行周期信号傅里叶级数展开和频谱分析1、学会使用Matlab分析傅里叶级数展开,深入理解傅里叶级数的物理含义2、学会使用Matlab分析周期信号的频谱特性(二)掌握使用Matlab求解信号的傅里叶变换并分析傅里叶变换的性质1、学会运用Matlab求连续时间信号的傅里叶变换2、学会运用Matlab求连续时间信号的频谱图3、学会运用Matlab分析连续时间信号的傅里叶变换的性质(三)掌握使用Matlab完成信号抽样并验证抽样定理1、学会运用MATLAB完成信号抽样以及对抽样信号的频谱进行分析2、学会运用MATLAB改变抽样时间间隔,观察抽样后信号的频谱变化3、学会运用MATLAB对抽样后的信号进行重建二、实验条件安装winXP系统的电脑一台、matlab 7.0软件三、实验内容1、已知周期三角信号如下图所示[注:图中时间单位为:毫秒(ms)]:(1)试求出该信号的傅里叶级数[自己求或参见课本P112或P394],利用Matlab编程实现其各次谐波[如1、3、5、13、49]的叠加,并验证其收敛性;解:命令文件:clear all;close all;clc;t=-10:0.01:10;omega=pi;y=abs(sawtooth(pi*0.5*t,0.5));plot(t,y),grid on;axis([-10,10,0,3]);n_max=[1,3,5,13,49];N=length(n_max);for k=1:Nn=1:2:n_max(k);b=4./((pi*n).^2);x=b*cos(omega*n'*t);figure;plot(t,y);hold on;x=x+1/2;plot(t,x);hold off;axis([-10,10,0,3]);title(['最大谐波数=',num2str(n_max(k))]); end图像:-10-8-6-4-2024681000.511.522.5-10-8-6-4-2024681000.511.522.53最大谐波数=1-10-8-6-4-2024681000.511.522.5-10-8-6-4-2024681000.511.522.53最大谐波数=5-10-8-6-4-2024681000.511.522.5-10-8-6-4-2024681000.511.522.53最大谐波数=49(2)用Matlab 分析该周期三角信号的频谱[三角形式或指数形式均可]。
当周期三角信号的周期(如由2ms →1ms 或由2ms →4ms )和宽度(如2ms →1ms )分别变化时,试观察分析其频谱的变化。
解:周期为2ms:命令文件:clear all;close all;clc;dt=0.01;t=-4:dt:4;ft=(t>=-1&t<0).*(t+1)+(t>0&t<=1).*(1-t);%subplot(2,1,1)%plot(t,ft);grid onn=2000;k=-n:n;w=pi*k/(n*dt);f=dt*ft*exp(-i*t'*w);f=abs(f);%subplot(2,1,2)plot(w,f);axis([-20 20 0 1.1]),grid on;图像:-20-15-10-50510152000.20.40.60.81当周期为1ms 时: 命令文件: clear all;close all;clc; dt=0.01; t=-4:dt:4;ft=(t>=-0.5&t<0).*(t+1)+(t>0&t<=0.5).*(1-t); %subplot(2,1,1) %plot(t,ft);grid on n=2000; k=-n:n; w=pi*k/(n*dt); f=dt*ft*exp(-i*t'*w); f=abs(f); %subplot(2,1,2) plot(w,f);axis([-20 20 0 1.1]),grid on;图像:-20-15-10-50510152000.20.40.60.81宽度与周期均变为1ms ,所以只有两个图2、分别利用Matlab 符号运算求解法和数值计算法求下图所示信号的FT ,并画出其频谱图(包括幅度谱和相位谱)[注:图中时间单位为:毫秒(ms)]。
解:符号运算求解法: 命令文件: %符号运算求解法 clear all;close all;clc;ft=sym('(t+2)*(Heaviside(t+2)-Heaviside(t+1))+Heaviside(t+1)-Heaviside(t-1)+(2-t)*(Heavisid e(t-1)-Heaviside(t-2))');Fw=fourier(ft); subplot(2,1,1) axis([-8,8,0,3]); ezplot(abs(Fw)),grid on title('幅度谱')phase=atan(imag(Fw)/real(Fw)); subplot(2,1,2) ezplot(phase),grid on title('相位谱') 图像:-6-4-202460123w 幅度谱-6-4-20246-1-0.500.51w相位谱数值计算法:命令文件:clear all;close all;clc;dt=0.01;t=-4:dt:4;ft=(t>=-2&t<=-1).*(t+2)+(t>=1&t<=2).*(2-t)+(t>-1&t<1); n=2000;k=-n:n;w=pi*k/(n*dt);f=dt*ft*exp(-i*t'*w);f=abs(f);plot(w,f);axis([-10 10 0 3.2]),grid on;图像:-10-8-6-4-2024681000.511.522.533、试用Matlab 命令求ωωωj 54-j 310)F(j ++=的傅里叶反变换,并绘出其时域信号图。
[注意:(1)写代码时j i ] 解:命令文件: clear all;close all;clc; t=sym('t');Fw=sym('10/(3+i*w)-4/(5+i*w)'); ft=ifourier(Fw); ezplot(ft),grid on axis([-1 3 -1 7]); 图像:-1-0.500.51 1.52 2.53-101234567x2 heaviside(x) (-2 exp(-5 x)+5 exp(-3 x))4、已知门函数自身卷积为三角波信号,试用Matlab 命令验证FT 的时域卷积定理。
[注:即验证门函数FT 的平方与相应三角波信号的FT 后结果是否一致,可结合频谱图观察分析]解: 函数文件: function f=uCT(t) f=(t>=0) 命令文件:%将门函数先进行时域卷积运算,再将卷积后的结果做傅里叶变换 clear all;close all;clc; dt=0.01; t=-2:dt:2.5;f1=uCT(t+0.5)-uCT(t-0.5);f=conv(f1,f1)*dt;ft=sym('f');Fw=fourier(ft)结果为:Fw =2*i*pi*dirac(1,w)%将一个门函数先进行傅里叶变换,再将结果与自身相乘clear all;close all;clc;dt=0.01;t=-2:dt:2.5;f1=uCT(t+0.5)-uCT(t-0.5);ft=sym('f1');Fw=fourier(ft)Fw=Fw*Fw结果为:Fw =2*i*pi*dirac(1,w)Fw =-4*pi^2*dirac(1,w)^25、设有两个不同频率的余弦信号,频率分别为Hz f 1001=,Hz f 38002=,;现在使用抽样频率Hz f s 4000=对这三个信号进行抽样,使用MATLAB 命令画出各抽样信号的波形和频谱,并分析其频率混叠现象[建议:抽样信号的频谱图横坐标范围不小于-10000Hz~10000Hz 或-20000*pi~20000*pi rad/s ]。
解:100HZ 命令文件: clear all;close all;clc; time=2.5*10^(-4); dt=0.000001; t1=0:dt:0.01;ft=sin(2*pi*100*t1).*(t1>=0); subplot(2,2,1); plot(t1,ft),grid on axis([0,0.01,-1.1,1.1]) xlabel('time(sec)'),ylabel('f(t)') title('100HZ 正弦信号') n=500; k=-n:n;w=pi*k/(n*dt);fw=dt*ft*exp(-i*t1'*w);subplot(2,2,2);plot(w,abs(fw)),grid on%axis([-4 4 0 1.1*pi]);xlabel('omega'),ylabel('f(w)')title('100HZ正弦信号的频谱')t2=0:time:0.01;fst=sin(2*pi*100*t2).*(t2>=0);subplot(2,2,3);plot(t2,fst,':'),hold onstem(t2,fst),grid ontitle('100HZ抽样后的信号'), hold offfsw=time* fst*exp(-i*t2'*w);subplot(2,2,4);plot(w,abs(fsw)),grid ontitle('100HZ抽样后的频谱')100HZ图像:0.0050.01-1-0.500.51time(sec)f (t )100HZ 正弦信号-4-2024x 1060123-16omegaf (w )100HZ 正弦信号的频谱100HZ 抽样后的信号-4-2024x 10600.51-14100HZ 抽样后的频谱3800HZ 命令文件: clear all;close all;clc; time=1/4000; dt=0.00001; t1=-0.0003:dt:0.0003; ft=sin(2*pi*3800*t1); subplot(2,2,1); plot(t1,ft),grid on %axis([-4 4 -1.1 1.1]) xlabel('time(sec)'),ylabel('f(t)') title('3800HZ 正弦信号') n=500;k=-n:n;w=pi*k/(n*dt);fw=dt*ft*exp(-i*t1'*w);subplot(2,2,2);plot(w,abs(fw)),grid onaxis([-100000 100000 0 3*10^(-4)]); xlabel('omega'),ylabel('f(w)')title('3800HZ正弦信号的频谱')t2=-0.0003:time:0.0003;fst=sin(2*pi*3800*t2);subplot(2,2,3);plot(t2,fst,':'),hold onstem(t2,fst),grid onaxis([-0.0004 0.0004 -1.2 1.2])title('3800HZ抽样后的信号'), hold off fsw=time* fst*exp(-i*t2'*w); subplot(2,2,4);plot(w,abs(fsw)),grid onaxis([-200000 200000 0 1*10^(-3)]) title('3800HZ抽样后的频谱')3800HZ图像:-4-2024x 10-4-1-0.500.51time(sec)f (t )3800HZ 正弦信号-1-0.500.51x 1050123-4omegaf (w )3800HZ 正弦信号的频谱-4-224x 10-4-1-0.500.513800HZ 抽样后的信号-2-1012x 10500.51-33800HZ 抽样后的频谱6、结合抽样定理,利用MATLAB 编程实现)(t Sa 信号经过冲激脉冲抽样后得到的抽样信号()t f s 及其频谱[建议:冲激脉冲的周期分别取4*pi/3 s 、pi s 、2*pi/3 s 三种情况对比],并利用()t f s 构建)(t Sa 信号。