实验五、信号的傅里叶分析与频谱
一.实验要求
(1)学会运用MATLAB分析傅里叶级数展开,深人理解傅里叶级数的物理意义。
(2)学会运用MATLAB分析周期信号的频谱特性。
(3)学会运用MATLAB求连续非周期信号的傅里叶变换。
(4)学会运用MATLAB绘制连续非周期信号的频谱图。
二.实验设备
计算机,matlab软件
三.实验内容
[success]1. 参考例 5-1,实现教材 p125,例 3-4 中傅里叶级数表达式(p126 第二行)。分别采用前 4、40、40 项,画出周期矩形脉冲信号的近似图;[/success]
实验源代码: %本题可以先取脉宽为1,幅值为2、周期为2 t=-3:0.001:3; ft=square(pi*t,50); %产生周期为2,占空比50%的周期矩形脉冲信号 subplot(2,2,1),plot(t-0.5,ft+1),grid on axis auto title('周期矩形脉冲信号') n_max=[4,40,400]; N=length(n_max);%n_max的长度放入N for k=1:N %k依次取1 2 3 n=1:n_max(k); %规定n的范围 b=4./(pi*n).*sin(pi*n./2); %行矩阵 x=1+b*cos(pi*n'*t); %列矩阵 subplot(2,2,k+1),plot(t,x),grid on axis auto title(['最大谐波次数=',num2str(n_max(k))]) end
[success]2.参考例 5-2,画出上题频谱图。[/success]
实验源代码: n=-40:40; fn=sinc (n./2) ;%由第一题得出 stem(n*pi,fn),grid on title('\tau=1,T=2,E=2的频谱图') axis auto xlabel('\omege'),ylabel('F_(n)')
[success]3.[/success]
实验源代码: Um=1; T=0.02; w=2*pi/T; num_points=200; t=linspace(-T/2,T/2,num_points); y=Um*abs(sin(2*w*t)).*(t>0); n=randn(38,1); n=[0;n;0]; n = interp1([0:39],n,linspace(0,39,num_points),'linear'); y=y+0.4*n; %得到一个周期函数 c0=1/T*trapz(t,y); for k=1:20; y1=y.*cos(k*100*pi*t); y2=y.*sin(k*100*pi*t); an=2/T*trapz(t,y1); bn=2/T*trapz(t,y2); cn=sqrt(an^2+bn^2); q=atan(-bn/an); c0=c0+cn*cos(k*100*pi*t+q); plot(t,c0); pause(1) end
[success]4.[/success]
实验源代码: ft=sym('exp(-abs(t))+3*dirac(t)') Fw=fourier(ft) %求傅里叶变换 subplot(211) ezplot(abs(Fw));grid on %绘制幅频图 title('幅频图') phase=atan(imag(Fw)./real(Fw)); %求相位 subplot(212) ezplot(phase);grid on title('相频图')
Fw =2/(w^2 + 1) + 3
[success]5.[/success]
实验源代码 fw=sym('3/ (3*i*w+2-w^2) ') ft=ifourier(fw,t) %求傅里叶反变换 ezplot(ft);grid on title('f(t)')
ft=-(3*(pi*sign(imag(((9*i^2)/4 + 2)^(1/2)) + (3*imag(i))/2)*exp(t*((3*i)/2 + ((9*i^2)/4 + 2)^(1/2))*1i)*1i – pi*exp(t*((3*i)/2 – ((9*i^2)/4 + 2)^(1/2))*1i)*sign(t)*1i – pi*exp(t*((3*i)/2 – ((9*i^2)/4 + 2)^(1/2))*1i)*sign((3*imag(i))/2 – imag(((9*i^2)/4 + 2)^(1/2)))*1i + pi*exp(t*((3*i)/2 + ((9*i^2)/4 + 2)^(1/2))*1i)*sign(t)*1i))/(4*pi*((9*i^2)/4 + 2)^(1/2))
暂无评论内容