实验4:连续系统的
频域分析
实验4:连续系统的频域分析
一、实验目的
(1)掌握连续时间信号的傅里叶变换和傅里叶逆变换的实现方法。 (2)掌握傅里叶变换的数值计算方法和绘制信号频谱的方法。 二、实验原理 1.周期信号的分解
根据傅里叶级数的原理,任何周期信号都可以分解为三角级数的组合——称为
()f t 的傅里叶级数。在误差确定的前提下,可以由一组三角函数的有限项叠加而得
到。
例如一个方波信号可以分解为:
11114111
()sin sin 3sin 5sin 7357E f t t t t t ωωωωπ??
=
++++ ???
合成波形所包含的谐波分量越多,除间断点附近外,它越接近于原波形,在间断点附近,即使合成的波形所含谐波次数足够多,也任存在约9%的偏差,这就是吉布
斯现象(Gibbs )。
2.连续时间信号傅里叶变换的数值计算 由傅里叶变换的公式:
()()lim
()j t
j n n F j f t e
dt f n e ωωττωττ∞
∞
---∞
→=-∞
==∑
?
当
()f t 为时限信号时,上式中的n 取值可以认为是有限项N ,则有:
()(),0k N
j n n F k f n e k N ωτττ-==≤≤∑,其中2k k N πωτ
=
3.系统的频率特性
连续LTI 系统的频率特性称为频率响应特性,是指在正弦信号激励作用下稳态响应随激励信号频率的变化而变化的情况,表示为
()
()()
Y H X ωωω=
三、实验内容与方法 1.周期信号的分解
【例1】用正弦信号的叠加近似合成一个频率为50Hz 的方波。
MATLAB 程序如下: clear all; fs=10000; t=[0:1/fs:0.1]; f0=50;sum=0; subplot(211) for n=1:2:9
plot(t,4/pi*1/n*sin(2*pi*n*f0*t),’k ’); hold on; end
title(‘信号叠加前’); subplot(212) for n=1:2:9;
sum=sum+4/pi*1/n*sin(2*pi*n*f0*t); end
plot(t,sum,’k ’); title(‘信号叠加后’); 产生的波形如图所示:
00.010.020.030.040.050.060.070.080.090.1
-2
-101
2信号叠加前
00.010.020.030.040.050.060.070.080.090.1
-2
-101
2信号叠加后
2.傅里叶变换和逆变换的实现
求傅里叶变换,可以调用fourier 函数,调用格式为F=fourier(f,u,v),是关于u 的函数f 的傅里叶变换,返回函数F 是关于v 的函数。 求傅里叶逆变换,可以调用ifourier 函数,调用格式为f=ifourier(F,v,u),是关于v 的函数F 的傅里叶逆变换,返回函数f 是关于u 的函数。
【例2】已知连续信号
2()t
f t e
-=,通过程序完成其傅里叶变换。
MATLAB 程序如下: syms t;
f=fourier(exp(-2*abs(t))); ezplot(f) ;
得到的傅里叶变换如图所示:
w
4/(4+w 2)
【例3】已知连续信号
2
1()1F j ωω=
+,通过程序完成其傅里叶逆变换。
MATLAB 程序如下: syms t w
ifourier(1/(1+w^2),t)
得到的结果为:ans =1/2*exp(-t)*heaviside(t)+1/2*exp(t)*heaviside(-t) 图形如图所示:
t
1/2 exp(-t) heaviside(t)+1/2 exp(t) heaviside(-t)
3.傅里叶变换的性质
举例验证傅里叶变换的时移特性和频移特性。
【例4】分别绘出信号
21()()2t f t e t ε-=和(1)f t -的频谱,求21
()()2
t f t e t ε-=的频谱。
MATLAB 程序如下:
r=0.02;t=-5:r:5;N=200;W=2*pi;k=-N:N;w=k*W/N; f1=1/2*exp(-2*t).*stepfun(t,0); F=r*f1*exp(-j*t'*w);
F1=abs(F);p1=angle(F);subplot(3,1,1);plot(t,f1);grid xlabel('t');ylabel('f(t)');title('f(t)');subplot(3,1,2); plot(w,F1);xlabel('w');grid;ylabel('F(jw)');subplot(3,1,3);
plot(w,p1*180/pi);grid;xlabel('w');ylabel('相位(度)');
-5-4-3-2-1
012345
0.5
t
f (t )
f(t)
-8-6-4-2
02468
00.2
0.4
w
F (j w )
-8
-6-4-2
02468
-100
100
w
相位(度)
再求信号
(1)f t -的频谱,MATLAB 程序如下:
%求
(1)f t -的频谱
r=0.02;t=-5:r:5;N=200;W=2*pi;k=-N:N;w=k*W/N; f1=1/2*exp(-2*(t-1)).*stepfun(t,1); F=r*f1*exp(-j*t'*w);
F1=abs(F);p1=angle(F);subplot(3,1,1);plot(t,f1);grid xlabel('t');ylabel('f(t)');title('f(t-1)');subplot(3,1,2);
plot(w,F1);xlabel('w');grid;ylabel('F(jw)的模');subplot(3,1,3); plot(w,p1*180/pi);grid;xlabel('w');ylabel('相位(度)');
-5-4-3-2-1
012345
0.5
t
f (t )
f(t-1)
-8-6-4-2
02468
00.2
0.4
w
F (j w )的模
-8
-6-4-2
02468
-200
200
w
相位(度)
【例5】傅里叶变换的频移特性:信号
()()f t g t =为门信号,绘出信号101()()j t f t f t e -=和信号102()()j t f t f t e -=的频谱,并与
原信号的频谱图进行比较。
(1)
()()(1)(1)f t g t t t εε==--+,求其频谱可以采用数值就算得方法。MATLAB 程序如下:
R=0.02;t=-2:R:2;
f=stepfun(t,-1)-stepfun(t,1); W1=2*pi*5;%频率宽度
N=500;k=0:N;W=k*W1/N;%采样数为N ,W 为频率正半轴的采样点 F=f*exp(-j*t'*W)*R;%求F (jw ) F=real(F);
W=[-fliplr(W),W(2:501)];%形成负半轴及正半轴的2N+1个频率点W F=[fliplr(F),F(2:501)];%形成对应于W 的F (jw )的值 subplot(2,1,1);plot(t,f);
xlabel('t');ylabel('f(t)');axis([-2,2,-0.5,2]); title('f(t)=u(t+1)-u(t-1)');subplot(2,1,2);plot(W,F); xlabel('W');ylabel('F(W)'); title('f(t)的傅里叶变换');
-2
-1.5
-1
-0.5
00.51
1.5
2
-0.500.51
1.5
2t
f (t )
f(t)=u(t+1)-u(t-1)
-40
-30
-20
-10
010
20
30
40
-0.500.511.5
2W
F (W )
f(t)的傅里叶变换
(2)得到
101()()j t f t f t e -=,102()()j t f t f t e =的频谱的MATLAB 程序如下:
R=0.02;t=-2:R:2;
f=stepfun(t,-1)-stepfun(t,1);
f1=f.*exp(-j*10*t) ;f2=f.exp*(j*10*t) W1=2*pi*5; N=500; k=-N :N ; W=k*W1/N;
F1=f1*exp(-j*t'*W)*R; F2=f2*exp(-j*t'*W)*R; F1=real(F1);F2=real(F2); subplot(2,1,1);plot(W,F1);
xlabel('W');ylabel('F1(W)');title('频谱F1(jw)'); subplot(2,1,2);plot(W,F2);
xlabel('W');ylabel('F2(W)');title('频谱F2(jw)'); 得到的傅里叶变换的频移特性如图所示: