北京理工大学信号与系统实验报告材料3信号地频域分析报告.docx
《北京理工大学信号与系统实验报告材料3信号地频域分析报告.docx》由会员分享,可在线阅读,更多相关《北京理工大学信号与系统实验报告材料3信号地频域分析报告.docx(20页珍藏版)》请在冰豆网上搜索。
北京理工大学信号与系统实验报告材料3信号地频域分析报告
实验3信号的频域分析
(综合型实验)
一、实验目的
1)深入理解信号频谱的概念,掌握信号的频域分析方法。
2)观察典型周期信号和非周期信号的频谱,掌握其频谱特性。
二、实验原理与方法
1.连续周期信号的频谱分析
如果周期信号满足Dirichlet条件,就可展开为傅里叶级数的形式,即
(1)
(2)
其中
表示基波周期,
为基波频率,
表示任一个基波周期内的积分。
上面两式为周期信号复指数形式的傅里叶级数,系数
成为x(t)的傅里叶系数。
周期信号的傅里叶级数还可由三角函数的线性组合来表示,即
(3)
其中
(4)
(3)式中同频率的正弦、余弦项合并可以得到三角函数形式的傅里叶级数,即
(5)
其中
(6)
任何满足Dirichlet条件的周期信号都可以表示成一组谐波关系的复指数函数或三角函数的叠加。
周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但在实际应用中常采用有限项级数代替,所选级数项越多就越接近原信号。
2.连续非周期信号的频谱分析
对于非周期连续时间信号,信号的傅里叶变换和傅里叶逆变换定义为
(7)
(8)
以上两式把信号的时频特性联系起来,确立了非周期信号
和频谱
之间的关系。
利用MATLAB可以方便地求出非周期连续时间信号的傅里叶变换,几种常见方法如下:
1)符号运算法
MATLAB的符号数学工具箱提供了直接求解傅里叶变换和反变换的函数,fourier函数和ifourier函数,基本调用格式为
默认的时域变量为t,频域变量为
。
例:
求
的傅里叶变换,代码及运行结果如下:
>>symst
>>x=exp(-2*abs(t));
>>X=fourier(x)
X=
4/(w^2+4)
所以傅里叶变换结果为
也可利用int函数直接根据式(7)求傅里叶变换。
2)数值积分法
除了采用符号运算的方法外,还可以采用MATLAB的quad函数,采用数值积分的方法来进行连续信号的频谱分析。
quad函数是一个用来计算数值积分的函数。
利用quad函数可以计算非周期连续时间信号的频谱。
Quad函数的一般调用格式为:
y=quad(fun,a,b)
y=quad(fun,a,b,TOL,TRACE,p1,p2,...)
其中fun指定被积函数,可以用inline命令来创建,也可通过传递函数句柄的形式来指定,a、b表示定积分的上下限,TOL表示允许的相对或绝对积分误差,TRACE表示以被积函数的点绘图形式来跟踪该函数的返回值,如果TOL和TRACE为空矩阵,则使用缺省值,“p1,p2,...”表示被积函数除时间t之外所需的其他额外输入参数。
3)数值近似法
还可以利用MATLAB的数值计算的方法近似计算连续时间傅里叶变换。
傅里叶变换
可以由(9)式近似计算
(9)
当x(t)为时限信号,且
足够小,则(9)可以演变成
(10)
(10)中求和部分又可以表示成一个行向量和一个列向量的乘积
(11)
上式可以很方便地利用MATLAB实现。
3.离散周期信号的分频域分析
基波周期为N的周期序列
可以用N个成谐波关系的复指数序列的加权和表示,即
(12)
这里k=表示求和仅需包括一个周期内的N项,周期序列在一个周期内的求和与起点无关。
将周期序列表示成式(12)的形式,称为离散傅里叶级数,而系数
则称为傅里叶系数。
离散傅里叶系数
可由(13)式确定。
(13)
傅里叶系数
也称为
的频谱系数,而且可以证明
是以N为周期的离散频率序列。
这说明了周期的离散时间函数对应于频域为周期的离散频率。
这里,我们用周期N与傅里叶系数
的乘积来表示周期离散时间信号的频谱,即
(14)
X(k)可以利用MATLAB提供的函数fft用来计算,调用格式为
X=fft(x)
该函数返回X(k)一个周期内的值,其中x表示x(n)一个周期内的样本值。
4.离散非周期信号的频域分析
非周期序列x(n)可以表示成一组复指数序列的连续和
(15)
其中
(16)
式(16)成为x(n)的离散时间傅里叶变换,式(15)和(16)确立了非周期离散时间信号x(n)及其离散时间傅里叶变换
之间的变换。
是连续频率
的函数,称为频谱函数,且
是周期的连续频率函数,其周期为
。
可见,非周期离散时间函数对应于频域中是一个连续的周期频率函数。
对于有限长的离散时间序列,(16)可以表示为
(17)
上式可以方便地利用MATLAB实现。
三、实验内容
(1)已知x(t)是如下图所示的周期矩形脉冲信号。
1)计算该信号的傅里叶级数;
,
,
得傅里叶级数为:
2)利用MATLAB绘出由前N次谐波合成的信号波形,观察随着N的变化合成信号波形的变化规律;
用MATLAB编写代码如下:
N=input('N=');
A=input('A=');
c=input('c=');
T=input('T=');
t=-1.5:
0.001:
1.5;
x=A*c*ones(size(t))/T;
forn=1:
N
x=x+(2*A/(n*pi))*sin(n*pi*c/T)*cos(2*pi*n*t/T);
end
plot(t,x);
xlabel('Time(sec)')
title(['N='num2str(n)])
在命令窗口输入以下语句:
>>subplot(221)
>>DFTthird_2_1
N=5
A=1
c=0.5
T=1
>>subplot(222)
>>DFTthird_2_1
N=10
A=1
c=0.5
T=1
>>subplot(223)
>>DFTthird_2_1
N=20
A=1
c=0.5
T=1
>>subplot(224)
>>DFTthird_2_1
N=40
A=1
c=0.5
T=1
图形如下:
由以上四个图可知,随着N的增大,合成信号的波形越来越接近原脉冲信号。
3)利用MATLAB绘出周期矩形脉冲信号的频谱,观察参数
和
变化时对频谱波形的影响。
可计算出傅里叶系数为:
画出该信号频谱MATLAB代码如下:
N=input('N=');
c=input('c=');
A=input('A=');
T=input('T=');
n1=-N:
-1;
c1=(A./(n1*pi)).*sin(n1*pi*c/T);
c0=c*A/T;
n2=1:
N;
c2=(A./(n2*pi)).*sin(n2*pi*c/T);
cn=[c1c0c2];
n=-N:
N;
subplot(211);
stem(n,abs(cn),'filled');
xlabel('\omega/\omega_0');
title('Magnitudeofck');
subplot(212);
stem(n,angle(cn),'filled');
xlabel('\omega/\omega_0');
title('Phaseofck')
命令窗口:
>>DFTthird_2_2
N=20
c=0.5
A=1
T=4
图形:
N=20,A=1,改变
和
时的波形变化:
综合分析以上四个图像可得:
频谱的波形与占空比
有关,对于
或
取不同的值时,当
不变,频谱波形不变,当
变大,频宽(第一个过零点频率)减小,过零点频率增多,谱线变得稀疏,各频率分量振幅增大。
观察实验结果,思考如下问题:
1—1.什么是吉伯斯现象?
产生吉伯斯现象的原因是什么?
答:
吉伯斯现象:
将具有不连续点的周期函数(如矩形脉冲)进行傅里叶级数展开后选取有限项进行合成。
在不连续点附近,部分和有起伏,其峰值最大值是不连续点处高度的1.09倍。
不连续点处级数收敛于左右极限的平均值,t愈接近不连续点时,为将误差减小至低于某一给定值,N必须取得很大。
随着N的增大,部分和的起伏就向不连续点处压缩,但是对有限的N值,起伏的峰值大小不变。
产生吉伯斯现象的原因:
当一个信号通过某一系统时,如果这个信号是不连续时间函数,则因为一般的物理系统对信号的高频分量都有衰减作用,所以产生了吉伯斯现象。
1—2.以周期矩形脉冲为例,说明周期信号的频谱有什么特点?
由结果可知:
1.周期性矩形脉冲信号的频谱是离散的,其频谱仅存在于
等离散值处,谱线间隔距离为固定值
,各次谐波的频率均为基频
的整数倍。
2.随着谐波次数增高,谱线长度逐渐趋于收敛。
所以离散型、收敛性以及谐波性是周期信号的共同特点。
1—3.周期矩形脉冲信号的有效频带宽度与信号的时域宽度之间有什么关系?
答:
根据
(
为有效频宽,
为脉冲的时域宽度),有效频带宽度与信号的时域宽度成反比。
1—4.随着矩形脉冲信号参数
的变化,其频谱结构(如频谱包络形状、过零点、谱线间隔等)如何变化?
答:
随着
的变换,频谱包络形状不变。
增大时,过零点增多,谱线间隔逐渐变大。
(2)已知x(t)是如下图所示的矩形脉冲信号。
1)求该信号的傅里叶变换;
>>symstcA
>>x=A*[heaviside(t+c/2)-heaviside(t-c/2)];
>>X=fourier(x);
>>collect(X)
ans=
(2*A*sin((c*w)/2))/w
所以傅里叶变换为:
2)利用MATLAB绘出矩形脉冲信号的频谱,观察矩形脉冲宽度
变化时对频谱波形的影响;
代码:
A=input('A=');
c=input('c=');
symstw
X=int(A*(heaviside(t+c/2)-heaviside(t-c/2))*exp(-j*w*t),t,-1,1)
ezplot(abs(X),[-6*pi,6*pi]);
gridon;
xlabel('\omega');
ylabel('Magnitude');
title('|X(\omega)|')
图形如下:
令A=1,改变
的大小:
增大时,频谱振幅增大,有效频宽减小。
3).让矩形脉冲的面积始终等于1,改变矩形脉冲宽度,观察矩形脉冲信号时域波形和频谱随矩形脉冲宽度的变化趋势。
symstw
c=input('c=');
x=(1/c).*(heaviside(t+c/2)-heaviside(t-c/2));
X=int(x*exp(-j*w*t),t,-c/2,c/2);
subplot(211);
ezplot(x,[-c,c]);
xlabel('t');
title('x(t)');
subplot(212);
ezplot(abs(X),[-6*pi,6*pi]);
gridon;
xlabel('\omega');
ylabel('Magnitude');
title('|X(w)|')
axistight
时域波形及频谱在不同脉冲宽度下的图像:
c=0.25
c=0.5
c=1:
c=2
分析以上图形得:
随着矩形脉冲宽度值的增加,时域波形幅值减小,信号频带宽度减小。
观察实验结果,思考如下问题:
2—1.比较矩形脉冲信号和周期矩形脉冲信号的频谱,两者之间有何异同?
答:
异:
矩形脉冲信号的频谱是连续的,周期矩形脉冲信号的频谱是离散的。
同:
有效频带宽度与脉冲宽度成反比
当脉冲宽度相同时,二者频谱的包络相同。
2—2.根据矩形脉冲宽度
变化时频谱的变化规律,说明信号的有效频带宽度与其时域宽度之间有什么关系?
当脉冲宽度
,脉冲的面积始终等于1,其频谱有何特点?
答:
信号的有效频带宽度与其时域宽度成反比。
由3)的四个图像可知,当
减小时,信号频带宽度增大而最大幅值始终为1,当脉冲宽度
时,信号的频谱无限趋近于一条幅值为1的直线。
(3)已知x(n)是如图所示的周期方波序列。
利用MATLAB绘制出周期方波序列的频谱波形,改变参数
和
的大小,观察频谱波形的变化趋势。
N=input('N=');
N1=input('N1=');
n=1:
N;
x=[ones(1,N1)zeros(1,N-1-2*N1)ones(1,N1+1)];
X=fft(x);
stem(n,x,'filled');
subplot(211)
stem(n,x,'filled');
xlabel('n');
title(['x(n)N='num2str(N)'N1='num2str(N1)]);
subplot(212);
stem(n,X,'filled');
xlabel('k');
title(['X(k)N='num2str(N)'N1='num2str(N1)])
N=9,N1=2时图像如下:
改变
和
的大小,频谱波形变化如下:
由上面六组图可得:
一定的时候,随着
的增大,频谱的谱线逐渐变密,但包络线保持不变。
一定的时候,随着
的增大,频谱振幅增大,而且在以横轴为轴的两侧振动更为剧烈。
观察实验结果,思考如下问题:
3—1.以周期方波序列为例,说明周期序列与连续周期信号的频谱有何异同。
答:
异:
连续周期信号频谱随着时间变量t的绝对值的增大,振幅逐渐收敛于零;
而周期序列频谱在一个周期内,由中间向两侧振幅逐渐增大。
同:
二者的频谱都是离散的,具有谐波性。
3—2.随着周期方波序列占空比的变化,其频谱如何随之变化?
答:
随着占空比的增大,谱线逐渐变得稀疏。
(4)已知一矩形脉冲序列。
利用MATLAB绘制周期方波序列的频谱波形,改变矩形脉冲序列的宽度,观察频谱波形的变化趋势。
N1=input('N1=');
w=-pi:
0.01*pi:
pi;
n=-N1:
N1;
x=ones(size(n));
X=x*exp(-j*n'*w);
subplot(211);
stem(n,x,'filled');
xlabel('n');
title('x(n)');
subplot(212);
plot(w/pi,abs(X));
xlabel('\Omega/\pi');
title('|X(e^j^\Omega)|');
取不同的N1值:
>>DFTthird_2_5
N1=4
>>DFTthird_2_5
N1=8
>>DFTthird_2_5
N1=16
随着N1增大,频带宽度减小,振幅增大。
观察实验结果,思考如下问题:
4—1.随着矩形脉冲序列宽度的变化,其频谱如何随之变化?
其宽度与频谱的有效频带宽度有何关系?
答:
随着矩形脉冲序列宽度增大,频谱有效频带宽度逐渐减小,频谱振幅逐渐增大。
矩形脉冲序列宽度与频谱有效频带宽度成反比。
四.实验收获体会
这次实验分别对连续周期信号、连续非周期信号、离散周期时间信号、离散非周期时间信号进行了频谱分析,采用MATLAB对信号进行傅里叶变换,加深了对信号频谱的理解,更熟练地掌握了信号的频域分析方法。