北京理工大学信号与系统实验报告3 信号的频域分析.docx
《北京理工大学信号与系统实验报告3 信号的频域分析.docx》由会员分享,可在线阅读,更多相关《北京理工大学信号与系统实验报告3 信号的频域分析.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、北京理工大学信号与系统实验报告3 信号的频域分析 实验3 信号的频域分析 (综合型实验) 一、实验目的 1)深入理解信号频谱的概念,掌握信号的频域分析方法。 2)观察典型周期信号和非周期信号的频谱,掌握其频谱特性。 二、实验原理与方法 1.连续周期信号的频谱分析 如果周期信号满足Dirichlet 条件,就可展开为傅里叶级数的形式,即 0(t)jk t k k x c e + =- = (1) 00 01(t)e jk t k T c x dt T -= ?(2) 其中0T 表示基波周期,002/T =为基波频率,0 (.)T ? 表示任一个基波周期内的积分。 上面两式为周期信号复指数形式的傅
2、里叶级数,系数k c 成为x(t)的傅里叶系数。周期信号的傅里叶级数还可由三角函数的线性组合来表示,即 0001 1 (t)cos sin k k k k x a a k t b k t + =+(3) 其中0 00000000122 (t),(t)cosk ,(t)sink k k T T T a x dt a x tdt b x tdt T T T = =?(4) (3)式中同频率的正弦、余弦项合并可以得到三角函数形式的傅里叶级数,即 001 (t)cos(k t )k k k x A A + =+ (5) 其中00,arctan k k k k b A a A a = =- (6) 任何
3、满足Dirichlet 条件的周期信号都可以表示成一组谐波关系的复指数函数或三角函数的叠加。周期信号表示为傅里叶级数时需要无限多项才能完全逼近原信号,但在实际应用中常采用有限项级数代替,所选级数项越多就越接近原信号。 2.连续非周期信号的频谱分析 对于非周期连续时间信号,信号的傅里叶变换和傅里叶逆变换定义为 ()(t)e j t X x dt + - = ? (7) 1(t)()e 2j t x X d + - = ? (8) 以上两式把信号的时频特性联系起来,确立了非周期信号(t)x 和频谱()X 之间的关系。 利用MATLAB 可以方便地求出非周期连续时间信号的傅里叶变换,几种常见方法如下
4、: 1) 符号运算法 MATLAB 的符号数学工具箱提供了直接求解傅里叶变换和反变换的函数,fourier 函数和ifourier 函数,基本调用格式为 (x)X fourier = x (X)ifourier = 默认的时域变量为t ,频域变量为。 例:求2|t|(t)e x -=的傅里叶变换,代码及运行结果如下: syms t x=exp(-2*abs(t); X=fourier(x) X = 4/(w2 + 4) 所以傅里叶变换结果为2 4 ()4X = + 也可利用int 函数直接根据式(7)求傅里叶变换。 2) 数值积分法 除了采用符号运算的方法外,还可以采用MATLAB 的quad
5、 函数,采用数值积分的方法来进行连续信号的频谱分析。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 之外所需
6、的其他额外输入参数。 3) 数值近似法 还可以利用MATLAB 的数值计算的方法近似计算连续时间傅里叶变换。傅里叶变换()X 可以由(9)式近似计算 ()(t)e lim (k )e j t j k k X x dt x + + -?=- - = =? (9) 当x(t)为时限信号,且?足够小,则(9)可以演变成 ()(k )e b jk k a X x -?=? (10) (10)中求和部分又可以表示成一个行向量和一个列向量的乘积 (1)e e (k )e x(),x(a 1),.,x(b ).e ja j a b jk k a jb x a -?-+?-? =-?=?+? (11) 上式可
7、以很方便地利用MATLAB 实现。 3.离散周期信号的分频域分析 基波周期为N 的周期序列(n)x 可以用N 个成谐波关系的复指数序列的加权和表示,即 (2/N)n (n)jk k k N x c e = = (12) 这里k=表示求和仅需包括一个周期内的N 项,周期序列在一个周期内的求和与起点无关。将周期序列表示成式(12)的形式,称为离散傅里叶级数,而系数k c 则称为傅里叶系数。离散傅里叶系数k c 可由(13)式确定。 (2/N)n 1 (n)e jk k k N c x N -= = (13) 傅里叶系数k c 也称为(n)x 的频谱系数,而且可以证明k c 是以N 为周期的离散频率
8、序列。这说明了周期的离散时间函数对应于频域为周期的离散频率。 这里,我们用周期N 与傅里叶系数k c 的乘积来表示周期离散时间信号的频谱,即 (2/N)n (k)N (n)e jk k k N X c x -= =?= (14) X(k)可以利用MATLAB 提供的函数fft 用来计算,调用格式为 X=fft(x) 该函数返回X(k)一个周期内的值,其中x 表示x(n)一个周期内的样本值。 4. 离散非周期信号的频域分析 非周期序列x(n)可以表示成一组复指数序列的连续和 2 1 (n)(e )2j j n x X e d = ? (15) 其中(e )(n)e j j n n X x + -
9、=- = (16) 式(16)成为x(n)的离散时间傅里叶变换,式(15)和(16)确立了非周期离散时间信号x(n)及其离散时间傅里叶变换(e )j X 之间的变换。(e )j X 是连续频率的函数,称为频谱函数,且(e )j X 是周期的连续频率函数,其周期为2。可见,非周期离散时间函数对应于频域中是一个连续的周期频率函数。 对于有限长的离散时间序列,(16)可以表示为 121 12(e )(n)e x(n ),x(n ),.,x(n ).N N jn jn n j j n N n n jn e e X x e - -=-? ?=? (17) 上式可以方便地利用MATLAB 实现。 三、实验
10、内容 (1)已知x(t)是如下图所示的周期矩形脉冲信号。 1)计算该信号的傅里叶级数; 0a A T = ,2sin(k )k A a k T = ,0k b = 得傅里叶级数为: 122(t)sin(k )cos() k A kt x A T k T T +=+? 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; for n=1
11、: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) 在命令窗口输入以下语句: x(t) -c/2c/2A -T T . 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
12、 A=1 c=0.5 T=1 图形如下: 由以上四个图可知,随着N 的增大,合成信号的波形越来越接近原脉冲信号。 3) 利用MATLAB 绘出周期矩形脉冲信号的频谱,观察参数T 和变化时对频谱波形的影响。 可计算出傅里叶系数为: A,0sin(k ),k 0k k T c A k T ?=?=? 画出该信号频谱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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学信号与系统实验报告3 信号的频域分析 北京理工大学 信号 系统 实验 报告 分析
限制150内