1、实验 3 信号的频域分析(综合型实验)一、实验目的1)深入理解信号频谱的概念,掌握信号的频域分析方法。2)观察典型周期信号和非周期信号的频谱,掌握其频谱特性。二、实验原理与方法1.连续周期信号的频谱分析如果周期信号满足 Dirichlet 条件,就可展开为傅里叶级数的形式,即(1)0(t)jktkxce(2)001(t)ejktkTcxd其中 表示基波周期, 为基波频率, 表示任一个基波周期内的积分。0T002/T0.上面两式为周期信号复指数形式的傅里叶级数,系数 成为 x(t)的傅里叶系数。周期信kc号的傅里叶级数还可由三角函数的线性组合来表示,即(3)00011(t)cossinkkxat
2、bt其中 (4)00 00 022(t),(t)co,(t)sinkk kTTTxdaxtdbxtd(3 )式中同频率的正弦、余弦项合并可以得到三角函数形式的傅里叶级数,即(5)001(t)cos(t)kkxA其中 (6)20,arctnkkkbab任何满足 Dirichlet 条件的周期信号都可以表示成一组谐波关系的复指数函数或三角函数的叠加。周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但在实际应用中常采用有限项级数代替,所选级数项越多就越接近原信号。2.连续非周期信号的频谱分析对于非周期连续时间信号,信号的傅里叶变换和傅里叶逆变换定义为(7)()(tejtXxd (8)1(t
3、)()e2jtxXd以上两式把信号的时频特性联系起来,确立了非周期信号 和频谱 之间的关系。t利用 MATLAB 可以方便地求出非周期连续时间信号的傅里叶变换,几种常见方法如下:1) 符号运算法MATLAB 的符号数学工具箱提供了直接求解傅里叶变换和反变换的函数,fourier函数和 ifourier 函数,基本调用格式为(x)Xfouriex(X)ifoure默认的时域变量为 t,频域变量为 。例:求 的傅里叶变换,代码及运行结果如下:2|(t) syms t x=exp(-2*abs(t); X=fourier(x)X =4/(w2 + 4)所以傅里叶变换结果为 24()X也可利用 int
4、 函数直接根据式(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 表示以被积函数的点绘图形式来跟踪
5、该函数的返回值,如果 TOL 和 TRACE为空矩阵,则使用缺省值, “p1,p2,. ”表示被积函数除时间 t 之外所需的其他额外输入参数。3) 数值近似法还可以利用 MATLAB 的数值计算的方法近似计算连续时间傅里叶变换。傅里叶变换 可以由(9)式近似计算()X(9)0telim(k)ejt jkxdx当 x(t)为时限信号,且 足够小,则(9 )可以演变成(10)()(k)ebjkaXx(10 )中求和部分又可以表示成一个行向量和一个列向量的乘积(11)(1)e(k)ex(),a1),.x(b).ejabjka jbx 上式可以很方便地利用 MATLAB 实现。3.离散周期信号的分频域
6、分析基波周期为 N 的周期序列 可以用 N 个成谐波关系的复指数序列的加权和表示,即(n)x(12)(2/)(n)jkkxce这里 k=表示求和仅需包括一个周期内的 N 项,周期序列在一个周期内的求和与起点无关。将周期序列表示成式(12)的形式,称为离散傅里叶级数,而系数 则称为傅里叶kc系数。离散傅里叶系数 可由(13)式确定。kc(13)(2/N)n1ejkNcx傅里叶系数 也称为 的频谱系数,而且可以证明 是以 N 为周期的离散频率序列。k() kc这说明了周期的离散时间函数对应于频域为周期的离散频率。这里,我们用周期 N 与傅里叶系数 的乘积来表示周期离散时间信号的频谱,即kc(14)
7、(2/N)n(k)ejkkXcxX(k)可以利用 MATLAB 提供的函数 fft 用来计算,调用格式为X=fft(x)该函数返回 X(k)一个周期内的值,其中 x 表示 x(n)一个周期内的样本值。4. 离散非周期信号的频域分析非周期序列 x(n)可以表示成一组复指数序列的连续和(15)21(n)(e)jnxXd 其中 (e)(n)ej jXx(16 )式(16 )成为 x(n)的离散时间傅里叶变换,式( 15)和(16)确立了非周期离散时间信号 x(n)及其离散时间傅里叶变换 之间的变换。 是连续频率 的函数,称为(e)j(e)j频谱函数,且 是周期的连续频率函数,其周期为 。可见,非周期
8、离散时间函数(e)jX2对应于频域中是一个连续的周期频率函数。对于有限长的离散时间序列, (16)可以表示为(17)12112(e)(n)ex(),n.,x().N Njnj j jneXx e 上式可以方便地利用 MATLAB 实现。三、实验内容(1 )已知 x(t)是如下图所示的周期矩形脉冲信号。x(t)-c/2 c/2A-T T. .1)计算该信号的傅里叶级数;, ,0aAT2sin(k)kT0kb得傅里叶级数为: 12(t)si()cos()ktxk2)利用 MATLAB 绘出由前 N 次谐波合成的信号波形,观察随着 N 的变化合成信号波形的变化规律;用 MATLAB 编写代码如下:N
9、=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;for n=1:Nx=x+(2*A/(n*pi)*sin(n*pi*c/T)*cos(2*pi*n*t/T);endplot(t,x);xlabel(Time(sec)title(N= num2str(n)在命令窗口输入以下语句: subplot(221) DFTthird_2_1N=5A=1c=0.5T=1 subplot(222) DFTthird_2_1N=10A=1c=0.5T=1 subplot(223) DFTth
10、ird_2_1N=20A=1c=0.5T=1 subplot(224) DFTthird_2_1N=40A=1c=0.5T=1图形如下:-2 -1 0 1 2-0.500.511.5Time(sec)N=5-2 -1 0 1 2-0.500.511.5Time(sec)N=10-2 -1 0 1 2-0.500.511.5Time(sec)N=20-2 -1 0 1 2-0.500.511.5Time(sec)N=40由以上四个图可知,随着 N 的增大,合成信号的波形越来越接近原脉冲信号。3) 利用 MATLAB 绘出周期矩形脉冲信号的频谱,观察参数 和 变化时对频谱波形的影T响。可计算出傅里
11、叶系数为: A,0sin(k),kTc画出该信号频谱 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=c1 c0 c2;n=-N:N;subplot(211);stem(n,abs(cn),filled);xlabel(omega/omega_0);title(Magnitude of ck); subplot(212);stem(n,angle
12、(cn),filled);xlabel(omega/omega_0);title(Phase of ck)命令窗口: DFTthird_2_2N=20c=0.5A=1T=4图形:-20 -15 -10 -5 0 5 10 15 2000.050.10.150.2/0Magnitude of ck-20 -15 -10 -5 0 5 10 15 2001234/0Phase of ckN=20,A=1,改变 和 时的波形变化:T-20 -10 0 10 2000.020.040.060.08/0Maghitude of ckc=0.5;T=8;c/T=0.0625-20 -10 0 10 200
13、0.050.10.150.2/0Maghitude of ckc=0.5;T=4;c/T=0.125-20 -10 0 10 2000.10.20.30.4/0Maghitude of ckc=1;T=4;c/T=0.25-20 -10 0 10 2000.10.20.30.4/0Maghitude of ckc=0.5;T=2;c/T=0.25综合分析以上四个图像可得:频谱的波形与占空比 有关,对于 或 取不同的值时,当T不变,频谱波形不变,当 变大,频宽(第一个过零点频率)减小,过零点频率增多,TT谱线变得稀疏,各频率分量振幅增大。观察实验结果,思考如下问题:11. 什么是吉伯斯现象?产生
14、吉伯斯现象的原因是什么?答:吉伯斯现象:将具有不连续点的周期函数(如矩形脉冲)进行傅里叶级数展开后选取有限项进行合成。在不连续点附近,部分和有起伏,其峰值最大值是不连续点处高度的 1.09 倍。不连续点处级数收敛于左右极限的平均值,t 愈接近不连续点时,为将误差减小至低于某一给定值,N 必须取得很大。随着 N 的增大,部分和的起伏就向不连续点处压缩,但是对有限的 N 值,起伏的峰值大小不变。产生吉伯斯现象的原因:当一个信号通过某一系统时,如果这个信号是不连续时间函数,则因为一般的物理系统对信号的高频分量都有衰减作用,所以产生了吉伯斯现象。12. 以周期矩形脉冲为例,说明周期信号的频谱有什么特点
15、?由结果可知:1. 周期性矩形脉冲信号的频谱是离散的,其频谱仅存在于 等00,23,.离散值处,谱线间隔距离为固定值 ,各次谐波的频率均为基频 的整数倍。02. 随着谐波次数增高,谱线长度逐渐趋于收敛。所以离散型、收敛性以及谐波性是周期信号的共同特点。13. 周期矩形脉冲信号的有效频带宽度与信号的时域宽度之间有什么关系?答:根据 ( 为有效频宽, 为脉冲的时域宽度) ,有效频带宽度与信号2/BTT的时域宽度成反比。14. 随着矩形脉冲信号参数 的变化,其频谱结构(如频谱包络形状、过零点、谱/线间隔等)如何变化?答:随着 的变换,频谱包络形状不变。 增大时,过零点增多,谱线间隔逐渐变大。TT(2
16、 )已知 x(t)是如下图所示的矩形脉冲信号。x(t)-c/2 c/2A1)求该信号的傅里叶变换; syms t c A x=A*heaviside(t+c/2)-heaviside(t-c/2); X=fourier(x); collect(X)ans =(2*A*sin(c*w)/2)/w所以傅里叶变换为: 2()sin()AX2)利用 MATLAB 绘出矩形脉冲信号的频谱,观察矩形脉冲宽度 变化时对频谱波形的影响;代码:A=input(A=);c=input(c=);syms t wX=int(A*(heaviside(t+c/2)-heaviside(t-c/2)*exp(-j*w*t
17、),t,-1,1)ezplot(abs(X),-6*pi,6*pi);grid on;xlabel(omega);ylabel(Magnitude);title(|X(omega)|) 图形如下:-15 -10 -5 0 5 10 1500.20.40.60.81 |X()|Magnitude令 A=1,改变 的大小:-10 0 100.511.5c=2Magnitude-10 0 100.10.150.2c=0.25Magnitude-10 0 100.10.20.30.4c=0.5Magnitude-10 0 100.20.40.60.8c=1Magnitude增大时,频谱振幅增大,有效频
18、宽减小。3) .让矩形脉冲的面积始终等于 1,改变矩形脉冲宽度,观察矩形脉冲信号时域波形和频谱随矩形脉冲宽度的变化趋势。syms t wc=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);grid on;xlabel(omega);ylabel(Magnitude);title(|X(w)|)axi
19、s tight时域波形及频谱在不同脉冲宽度下的图像:c=0.25-0.25 -0.2 -0.15 -0.1 -0.05 0 0.05 0.1 0.15 0.2 0.2501234tx(t)-15 -10 -5 0 5 10 150.40.60.8|X(w)|Magnitudec=0.5-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.500.511.52tx(t)-15 -10 -5 0 5 10 150.20.40.60.8|X(w)|Magnitudec=1:-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 100.5
20、1tx(t)-15 -10 -5 0 5 10 150.20.40.60.8|X(w)|Magnitudec=2-2 -1.5 -1 -0.5 0 0.5 1 1.5 200.20.4tx(t)-15 -10 -5 0 5 10 150.20.40.60.8|X(w)|Magnitude分析以上图形得:随着矩形脉冲宽度值的增加,时域波形幅值减小,信号频带宽度减小。观察实验结果,思考如下问题:21.比较矩形脉冲信号和周期矩形脉冲信号的频谱,两者之间有何异同?答:异:矩形脉冲信号的频谱是连续的,周期矩形脉冲信号的频谱是离散的。同:有效频带宽度与脉冲宽度成反比当脉冲宽度相同时,二者频谱的包络相同。2
21、2.根据矩形脉冲宽度 变化时频谱的变化规律,说明信号的有效频带宽度与其时域宽度之间有什么关系?当脉冲宽度 ,脉冲的面积始终等于 1,其频谱有何特点?0答:信号的有效频带宽度与其时域宽度成反比。由 3)的四个图像可知,当 减小时,信号频带宽度增大而最大幅值始终为 1,当脉冲宽度时,信号的频谱无限趋近于一条幅值为 1 的直线。0(3 )已知 x(n)是如图所示的周期方波序列。 x(n)-N N-N1 N101n利用 MATLAB 绘制出周期方波序列的频谱波形,改变参数 和 的大小,观察频谱波形N1的变化趋势。N=input(N=);N1=input(N1=);n=1:N;x=ones(1,N1)
22、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 时图像如下:1 2 3 4 5 6 7 8 900.51nx(n) N=9 N1=21 2 3 4 5 6 7 8 9-20246kX(k) N=9
23、 N1=2改变 和 的大小,频谱波形变化如下:N10 5 10-1012345kX(k) N=10 N1=20 5 10-10123456789kX(k) N=10 N1=40 5 10 15 20-1012345kX(k) N=20 N1=20 5 10 15 20-20246810kX(k) N=20 N1=40 10 20 30 40-1012345kX(k) N=40 N1=20 10 20 30 40-20246810kX(k) N=40 N1=4由上面六组图可得: 一定的时候,随着 的增大,频谱的谱线逐渐变密,但包络线保1NN持不变。一定的时候,随着 的增大,频谱振幅增大,而且在以
24、横轴为轴的两侧振动更为剧烈。N1观察实验结果,思考如下问题:31.以周期方波序列为例,说明周期序列与连续周期信号的频谱有何异同。答:异:连续周期信号频谱随着时间变量 t 的绝对值的增大,振幅逐渐收敛于零;而周期序列频谱在一个周期内,由中间向两侧振幅逐渐增大。同:二者的频谱都是离散的,具有谐波性。32.随着周期方波序列占空比的变化,其频谱如何随之变化?答:随着占空比的增大,谱线逐渐变得稀疏。(4 )已知一矩形脉冲序列。 1,|nN()0x利用 MATLAB 绘制周期方波序列的频谱波形,改变矩形脉冲序列的宽度,观察频谱波形的变化趋势。N1=input(N1=);w=-pi:0.01*pi:pi;n
25、=-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(ejOmega)|);取不同的 N1 值: DFTthird_2_5N1=4-4 -3 -2 -1 0 1 2 3 400.51nx(n)-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10510/|X(ej)| DFTthird_2_5N1=8-8 -6 -4 -2 0
26、2 4 6 800.51nx(n)-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 105101520/|X(ej)| DFTthird_2_5N1=16-20 -15 -10 -5 0 5 10 15 2000.51nx(n)-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1010203040/|X(ej)|随着 N1 增大,频带宽度减小,振幅增大。观察实验结果,思考如下问题:41.随着矩形脉冲序列宽度的变化,其频谱如何随之变化?其宽度与频谱的有效频带宽度有何关系?答:随着矩形脉冲序列宽度增大,频谱有效频带宽度逐渐减小,频谱振幅逐渐增大。矩形脉冲序列宽度与频谱有效频带宽度成反比。四实验收获体会这次实验分别对连续周期信号、连续非周期信号、离散周期时间信号、离散非周期时间信号进行了频谱分析,采用 MATLAB 对信号进行傅里叶变换,加深了对信号频谱的理解,更熟练地掌握了信号的频域分析方法。