实验三 连续信号、系统的频域分析、复频域分析
一、实验目的
1、理解频域分析的MATLAB实现方法。
2、求解系统的频率响应。
3、理解函数的拉氏变换,并进行复频域
二、实验时数:
2学时
三、实验相关知识:
(一)连续信号的频谱分析
1、周期信号的傅里叶级数计算
设周期信号x(t)的基本周期为T1,且满足狄里克利条件,则其指数形式的傅里叶级数系数Fn为:
其中n为-∞,∞之间的整数;角频率ω1=2π/T1。
因为计算机不能计算无穷多个系数,所以我们假设需要计算的谐波次数为N,则总的系数个数为2N+1个。在确定了信号的周期T1和时间步长dt之后,对某一个系数,上述系数的积分公式可以近似为:
对于全部需要的2N+1个系数,上面的计算可以按照矩阵运算实现。需要强调的是,时间变量的变化步长dt的大小对傅里叶级数系数的计算精度的影响非常大,dt越小,精度越高,但是,计算机计算所花的时间越长。
例3-1:求如图所示方波信号的幅度谱,并画出频谱图。(A=1,τ=0.5,T1=2)
MATLAB实现傅里叶级数计算的程序如下:
dt = 0.01;
T1 = 2;
w1 = 2*pi/T1;
t = -T1/2:dt:T1/2;
tau = 0.5;
A = 1;
f = A*(u(t + tau/2) - u(t - tau/2));
subplot(2,1,1)
plot(t,f)
axis([-T1/2, T1/2, -0.1, 1.1])
title('f(t)时域波形')
N = 10;
n = -N:N;
Fn = f*exp(-j*t'*w1*n)*dt/T1;
subplot(2,1,2)
stem(n,Fn)
hold on
dw = 0.01;
w = -N*w1:dw:N*w1;
F = A*tau/T1 * sinc(w*tau/2/pi);
matlab傅里叶变换的幅度谱和相位谱plot(w/w1,F,'--')
title('傅里叶级数F_n')
2、周期信号的合成以及Gibbs现象
从傅里叶级数的合成式(Synthesis equation)
可以看出,用无穷多个不同频率和不同振幅的周期复指数信号可以合成一个周期信号。然而,我们无法用计算机实现对无穷多个周期复指数信号的合成。但是,用有限项来合成却是可行的,在实际应用中,多半也就是这么做的。然而,这样做的一个必然结果,就是引入了误差。
如果一个周期信号在一个周期有内断点存在,那么,引入的误差将除了产生纹波之外,还将在断点处产生幅度大约为9%的过冲(Overshot),这种现象被称为吉伯斯现象(Gibbs phenomenon)。
为了能够观察到合成信号与原信号的不同以及Gibbs现象,我们可以利用前面已经计算出的傅里叶级数的系数,计算出截短的傅里叶级数:
观察吉伯斯现象的最好的周期信号就是周期方波信号,这种信号在一个周期内有两个断点,用有限项级数合成这个信号时,吉伯斯现象的特征非常明显,便于观察。
例3-2:用有限项级数合成例3-1所给的周期方波信号,并绘制出原始周期信号、合成的周期信号、信号的幅度谱和相位谱。
Matlab程序
t_1 = -8:0.01:8;
f_1 = Fn * exp(j*n'*w1*t_1);
figure;
plot(t_1,f_1)
xlim([-T1/2, T1/2])
title('合成的f(t)')
在用这个程序观察吉伯斯现象时,可以反复执行该程序,每次执行时,输入不同之N值,比较所的图形的区别,由此可以观察到吉伯斯现象的特征。
3、非周期信号的傅里叶变换
MATLAB进行傅里叶变换有两种方法,一种利用符号运算的方法计算,另一种是数值计算,本实验要求采用数值计算的方法来进行傅里叶变换的计算。严格来说,用数值计算的方法计算连续时间信号的傅里叶变换需要有个限定条件,即信号是时限信号(Time limite
d signal),也就是当时间|t|大于某个给定时间时其值衰减为零或接近于零,这个条件与前面提到的为什么不能用无限多个谐波分量来合成周期信号的道理是一样的。计算机只能处理有限大小和有限数量的数。
采用数值计算算法的理论依据是:
若信号为时限信号,当时间间隔T取得足够小时,上式可演变为:
上式用MATLAB表示为:
F_w = f * exp(-j*t’*w)*dt
其中F_w为信号f(t)的傅里叶变换,w为频率,dt为时间步长。
例3-3:求单边指数信号f(t)=e-atu(t)的频谱,其中a=2。
MATLAB程序:
dt = 0.01;
t = 0:dt:10;
a = 2;
f = exp(-a*t);
dw = 0.1
w = -4*pi:dw:4*pi;
F_w = f * exp(-j*t'*w)*dt; %傅里叶变换
Mod_F = abs(F_w); %计算幅度谱
Phase_F = angle(F_w); %计算相位谱
为了使计算结果能够直观地表现出来,还需要用绘图函数将时间信号f(t),信号的幅度谱|F()|和相位谱F()分别以图形的方式表现出来,并对图形加以适当的标注。
figure;
subplot(2,2,1:2)
plot(t,f)
title('f(t)')
subplot(2,2,3)
plot(w,Mod_F)
title('|F(w)|')
axis tight
subplot(2,2,4)
plot(w,Phase_F)
title('\phi(w)')
axis tight
3、信号的幅度调制频谱分析
例3-4 设f(t)=u(t+1)-u(t-1),y(t)=f(t)cos(10πt),试用 MATLAB画出f(t)、y(t)的时域波形及其频谱,并观察傅立叶变换的频移特性。
用MATLAB 实现本例的参考程序如下:
%时限余弦信号的频谱分析
clear
dt = 0.001;
t_start = -1.5;
t_end = 1.5;
t = t_start : dt : t_end;
f_t = u(t+1)-u(t-1);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论