资源描述
实验一 信号的频谱图
一、 实验目的
1. 掌握周期信号的傅里叶级数展开
2. 掌握周期信号的有限项傅里叶级数逼近
3. 掌握周期信号的频谱分析
4. 掌握连续非周期信号的傅立叶变换
5. 掌握傅立叶变换的性质
二、 相关知识
1 周期信号的傅里叶级数
设周期信号,其周期为T,角频率为,该信号可展开为三角形式的傅里叶级数,即为:
其中,正弦项与余弦项的系数和成为傅里叶系数,根据函数的正交性,得
(2)
其中,。积分区间通常取为或。若将(2)式中同频率项合并,可改写为
(3)
从物理概念上来说,(3)中的即是信号的直流分量;式中的第二项称为信号的基波或者基波分量,它的角频率与原周期信号相同;式中第三项称为信号的二次谐波,他的频率是基波频率的二倍;以此类推。一般而言称为信号的n次谐波;n比较大的分量统称为信号的高次谐波。
我们还常用到复指数形式的傅里叶。设周期信号,其周期为T,角频率为,该信号复指数形式的傅里叶级数为
其中,称为复指数形式傅里叶级数系数。利用MATLAB可以直观地观察和分析周期信号傅里叶级数及其收敛性。
【例1-1】周期方波信号如图所示,画出该信号的傅里叶级数,利用MATLAB编程实现其各次谐波的叠加。
图1-1 周期方波信号
解:从理论上分析可知,已知周期方波信号的傅里叶级数展开为
取A=1,T=1,可分别求出1,3,5,11,47项傅里叶级数求和的结果,MATLAB程序为
t=-1:0.001:1;
omega=2*pi;
y=square(2*pi*t,50);
plot(t,y),grid on;
xlabel('t'),ylabel('周期方波信号');
axis([-1 1 -1.5 1.5])
n_max=[1 3 5 11 47];
N=length(n_max);
for k=1:N
n=1:2: n_max(k);
b=4./(pi*n);
x=b*sin(omega*n'*t);
figure;
plot(t,y,'b');
hold on;
plot(t,x,'r');
hold off;
xlabel('t'),ylabel('部分和的波形');
axis([-1 1 -1.5 1.5]);grid on;
title(['最大谐波数=',num2str(n_max(k))])
end
运行后的各项部分和的波形如图
图1-2 周期方波信号的有限项傅里叶级数逼近
很多项的时候,部分和的波形和周期方波信号的波形很接近,但在信号的跳变点附近,却总是存在一个过冲,这就是所谓的Gibbs现象。
2 周期信号的频谱分析
周期信号通过傅里叶级数分解可展开成一些列相互正交的正弦信号或复指数信号分量的加权和。在三角形是傅里叶级数中,各分量的形式为;在指数形式的傅里叶级数中,各分量的形式为。对实信号而言,和成对出现。对不同的周期信号,它们各个分量的数目、角频率、幅度或、相位或不同。傅里叶系数的幅度或随角频率的变化关系绘制成图形,称为信号的幅度频谱,简称幅度谱。相位或随角频率的变化关系绘制成图形,称为信号的相位频谱,简称相位谱。幅度谱和相位谱统称为信号的频谱。信号的频谱是信号的另一种表示,它提供了从另一个角度来观察和分析信号的途径。利用MATLAB命令可对周期信号的频谱及其特点进行观察验证和分析。
【例1-2】已知周期矩形脉冲如图所示,设脉冲幅度为A=1,宽度为,重复周期为T(角频率)。将其展开为复指数形式傅里叶级数,研究周期矩形脉冲的宽度和周期变化时,对其频谱的影响。
图1-3 周期矩形脉冲信号
解:根据傅里叶级数理论可知,周期矩形脉冲信号的傅里叶系数为
各谱线之间的间隔为。图画出了;和三种情况下傅里叶系数。为了能在同一时间段对比,第二种情况由于周期T不一样,所以谱线之间的间隔也不一样,因此对横坐标进行了调整,使它与第一种和第三种情况一致。
n=-30:30;tao=1;T=10;w1=2*pi/T;
x=n*tao/T;fn=tao*sinc(x);
subplot(311)
stem(n*w1,fn),grid on;
title('tao=1,T=10');
tao=1;T=5;w2=2*pi/T;
x=n*tao/T;fn=tao*sinc(x);
m=round(30*w1/w2);
n1=-m:m;
fn=fn(30-m+1:30+m+1);
subplot(312)
stem(n1*w2,fn),grid on;
title('tao=1,T=5');
tao=2;T=10;w3=2*pi/T;
x=n*tao/T;fn=tao*sinc(x);
subplot(313)
stem(n*w3,fn),grid on;
title('tao=2,T=10');
图1-4 周期矩形脉冲信号的傅里叶系数
从图中可以看出,脉冲宽度越大,信号的频谱带宽越小;而周期越小,谱线之间间隔越大,验证了傅里叶级数理论。
【练习】
1. 已知周期三角信号如图所示,试求出该信号的傅里叶级数,利用MATLAB编程实现其各次谐波的叠加,并验证其收敛性。
图1-5 周期三角信号波形
2. 试用MATLAB分析上图中周期三角信号的频谱。当周期三角信号的周期和三角信号的宽度变化时,试观察其频谱的变化。
3 傅里叶变换及其性质
在前面讨论的周期信号中,当周期时,周期信号就转化为非周期信号。当周期时,周期信号的各次谐波幅度及谱线间隔将趋近于无穷小,但频谱的相对形状保持不变。这样,原来由许多谱线组成的周期信号的离散频谱就会连成一片,形成非周期信号的连续频谱。为了有效地分析非周期信号的频率特性,我们引入了傅里叶变换分析法。
信号的傅里叶变换定义为
傅里叶反变换定义为
傅里叶正反变换成为傅里叶变换对,简记为。
信号的傅里叶变换主要包括MATLAB符号运算和MATLAB数值分析两种方法,下面分别加以探讨。同事,探讨了连续时间信号的频谱图。
3.1 MATLAB符号运算求解法
MATLAB符号数学工具箱提供了直接求解傅里叶变换与傅里叶反变换的函数fourier( )以及ifourier( )。Fourier变换的语句格式分为三种。
(1) F=fourier(f):它是符号函数的Fourier变换,默认返回关于的函数。
(2) F=fourier(f,):它返回函数F是关于符号对象的函数,而不是默认的,即。
(3) F=fourier(f,u,):是对关于u的函数f进行变换,返回函数F是关于v的函数,即。
傅里叶反变换的语句也对应有三种。
(1) f=ifourier(F):它是符号函数F的Fourier反变换,独立变量默认为,默认返回是关于x的函数。
(2) f=ifourier(F,u):它返回函数f是u的函数,而不是默认的x。
(3) f=ifourier(F,u,v):是对关于v的函数F进行反变换,返回关于u的函数f。
值得注意的是,函数fourier()和ifourier( )都是接受由sym函数所定义的符号变量或者符号表达式。
【例1-3】用MATLAB符号运算求解法求单边指数信号的傅里叶变换
解:
ft=sym('exp(-2*t)*Heaviside(t)');
Fw=fourier(ft)
运行结果为:Fw = 1/(2+i*w)
【例1-4】用MATLAB符号运算求解法求的傅里叶逆变换。
syms t
Fw=sym('1/(1+w^2)')
ft=ifourier(Fw,t)
运行结果为:ft = 1/2*exp(-t)*heaviside(t)+1/2*exp(t)*heaviside(-t)
3.2 连续时间信号的频谱图
信号的傅里叶变换表达了信号在处的频谱密度分布情况,这就是信号的傅里叶变换的物理含义。一般是复函数,可以表示为。我们把与曲线分别成为非周期信号的幅度频谱与相位频谱,它们都是频率的连续函数,在形状上与相应的周期信号频谱包络线相同。非周期信号的频谱有两个特点,密度谱和连续谱。我们注意到,采用fourier()和ifourier( )得到的返回函数,仍然是符号表达式。若需对返回函数作图,则需应用ezplot( )绘图命令。
【例1-5】用MATLAB命令绘出例1-3中单边指数信号的幅度谱和相位谱。
解:MATLAB源程序为
ft = sym('exp(-2*t)*Heaviside(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('相位谱')
图1-5 单边指数信号的幅度谱和相位谱
3.3 MATLAB数值计算求解法
fourier( )和ifourier( )函数的一个局限性是,如果返回函数中有诸如单位冲激函数等项,则用ezplot()函数无法作图。对某些信号求变换时,其返回函数可能包含一些不能直接用符号表达的式子,因此不能对返回函数作图。此外,在很多实际情况中,尽管信号是连续的,但经过抽样所获得的信号则是多组离散的数值量,因此无法表示成符号表达式,此时不能应用fourier()函数对f(n)进行处理,而只能用数值计算方法来近似求解。
从傅里叶变换定义出发有,
当足够小时,上式的近似情况可以满足实际需要。对于时限信号,或者在所研究的时间范围内让衰减到足够小,从而近似地看成时限信号,则对于上式可以考虑有限n的取值。假设是因果信号,则有
傅里叶变换后在域用MATLAB进行求解,对上式的角频率进行离散化。假设离散化后得到N个样值,即 -1,
因此有 。采用行向量,用矩阵表示为
。其要点是要正确生成的M个样本向量与向量。当足够小时,上式的内积运算(即相乘求和运算)结果即为所求的连续时间信号傅里叶变换的数值解。
【例1-6】用MATLAB数值计算法求三角脉冲幅度谱。三角脉冲的数学表达式如下:
解:三角脉冲信号的数学表达式为
MATLAB源程序为:
dt = 0.01;
t = -4:dt:4;
ft = (t+4 )/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*uCT(t-4);
N = 2000;
k = -N:N;
W = 2*pi*k/((2*N+1)*dt);
F = dt * ft*exp(-j*t'*W);
plot(W,F), grid on
axis([-pi pi -1 9]);
xlabel('W'), ylabel('F(W)')
title('amplitude spectrum');
图1-6 三角脉冲信号的幅度谱
3.4 傅里叶变换的性质
傅里叶变换的性质包含了丰富的物理意义,并且揭示了信号的时域和频域的关系。熟悉这些性质成为信号分析研究工作中最重要的内容之一。
n 尺度变换特性
傅里叶变换的尺度变换特性为:若,则有,其
中,a为非零实常数。
【例1-7】设矩形信号,用MATLAB命令绘出该信号及其频谱图。当信号的时域波形扩展为原来的2倍,或压缩为原来的1/2时,则分别得到和,用MATLAB命令绘出和的频谱图,并加以分析比较。
解:采用符号运算法求解,并分析结果。
MATLAB源程序为:
ft1 = sym('Heaviside(t+1/2)-Heaviside(t-1/2)');
subplot(321);
ezplot(ft1,[-1.5 1.5]),grid on
Fw1 = simplify(fourier(ft1));
subplot(322);
ezplot(abs(Fw1),[-10*pi 10*pi]), grid on
axis([-10*pi 10*pi -0.2 2.2]);
ft2 = sym('Heaviside(t/2+1/2)-Heaviside(t/2-1/2)');
subplot(323);
ezplot(ft2,[-1.5 1.5]), grid on
Fw2 = simplify(fourier(ft2));
subplot(324);
ezplot(abs(Fw2),[-10*pi 10*pi]),grid on
axis([-10*pi 10*pi -0.2 2.2]);
ft3 = sym('Heaviside(2*t+1/2)-Heaviside(2*t-1/2)');
subplot(325);
ezplot(ft3,[-1.5 1.5]), grid on
Fw3 = simplify(fourier(ft3));
subplot(326);
ezplot(abs(Fw3),[-10*pi 10*pi]),grid on
axis([-10*pi 10*pi -0.2 2.2]);
n 频移特性
傅里叶变换的频移特性为:若,则有。频
移技术在通信系统中得到广泛应用,诸如调幅变频等过程都是在频谱搬移的基础上完成的。频移的实现原理是将信号乘以载波信号或,从而完成频谱的搬移,即
【例1-8】阅读并运行如下程序段,并观察信号调制前后的频谱。
ft1 = sym('4*(Heaviside(t+1/4)-Heaviside(t-1/4))');
Fw1 = simplify(fourier(ft1));
subplot(121);
ezplot(abs(Fw1),[-24*pi 24*pi]),grid on
axis([-24*pi 24*pi -0.2 2.2]);
title('矩形信号频谱');
ft2 = sym('4*cos(2*pi*6*t)*(Heaviside(t+1/4)-Heaviside(t-1/4))');
Fw2 = simplify(fourier(ft2));
subplot(122);
ezplot(abs(Fw2),[-24*pi 24*pi]),grid on
axis([-24*pi 24*pi -0.2 2.2]);
title('矩形调制信号频谱');
【练习】
1. 试用MATLAB命令求下列信号的傅里叶变换,并绘出其幅度谱和相位谱。
(1) (2)
2. 试用MATLAB命令求下列信号的傅里叶反变换,并绘出其时域信号图。
(1) (2)
3. 试用MATLAB数值计算方法求门信号的傅里叶变换,并画出其频谱图。
门信号即,其中。
4. 已知两个门信号的卷积为三角波信号,试用MATLAB命令验证傅里叶变换的时域卷积定理。
问题与思考
傅里叶变换的其他性质可以用类似的方法加以验证,试举一例,说明你验证过程的思路。
展开阅读全文