用FFT对信号进行频谱分析报告

用FFT对信号进行频谱分析报告
用FFT对信号进行频谱分析报告

西安邮电大学

通信与信息工程学院

科研训练报告

专业班级:

学生姓名: 学号(班内序号):

2014 年 9 月 16 日

——————————————————————————装

线

————————————————————————————————

报告份数:

用FFT对信号进行频谱分析

摘要:

快速傅氏变换(FFT),是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。傅里叶变换的理论与方法在“数理方程”、“线性系统分析”、“信号处理、仿真”等很多学科领域都有着广泛应用,由于计算机只能处理有限长度的离散的序列,所以真正在计算机上运算的是一

种离散傅里叶变换. 虽然傅里叶运算在各方面计算中有着重要的作用,但是它的计算过于复杂,大量的计算对于系统的运算负担过于庞大,使得一些对于耗电量少,运算速度慢的系统对其敬而远之,然而,快速傅里叶变换的产生,使得傅里叶变换大为简化,在不牺牲耗电量的条件下提高了系统的运算速度,增强了系统的综合能力,提高了运算速度,因此快速傅里叶变换在生产和生活中都有着非常重要的作用,对于学习掌握都有着非常大的意义。

关键词快速傅氏变换;信号频谱分析;离散傅里叶变换

Abstract

Fast Fourier Transform (FFT), is a discrete fast Fourier transform algorithm, which is based on the Discrete Fourier Transform of odd and even, false, false, and other characteristics of the Discrete Fourier Transform algorithms improvements obtained. Its Fourier transform theory has not found a new, but in the computer system or the application of digital systems Discrete Fourier Transform can be said to be a big step into. Fourier transform theory and methods in the "mathematical equation" and "linear systems analysis" and "signal processing, simulation," and many other areas have a wide range of applications, as the computer can only handle a limited length of the sequence of discrete, so true On the computer's operation is a discrete Fourier transform. Fourier Although all aspects of computing in the calculation has an important role, but its calculation was too complicated, a lot of computing system for calculating the burden is too large for some Less power consumption, the slow speed of operation of its system at arm's length, however, have the fast Fourier transform, Fourier transform greatly simplifying the making, not in power at the expense of the conditions to increase the speed of computing systems, and enhance the system The comprehensive ability to improve the speed of operation, the Fast Fourier Transform in the production and life have a very important role in learning to master all have great significance.

Key words:Fast Fourier Transform; Signal spectrum analysis Discrete Fourier Transform

引言:

1965年,库利(J.W.Cooley)和图基(J.W.Tukey)在《计算数学》杂志上发表了“机器计算傅立叶级数的一种算法”的文章,这是一篇关于计算DFT的一种快速有效的计算方法的文章。它的思路建立在对DFT运算内在规律的认识之上。这篇文章的发表使DFT的计算量大大减少,并导致了许多计算方法的发现。这些算法统称为快速傅立叶变换(Fast Fourier Transform),简称FFT,1984年,法国的杜哈梅尔(P.Dohamel)和霍尔曼(H.Hollmann)提出的分裂基快速算法[2][6]

使运算效率进一步提高。FFT即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。随着科学的进步,FFT算法的重要意义已经远远超过傅里叶分析本身的应用。FFT算法之所以快速,其根本原因在于原始变化矩阵的多余行,此特性也适用于傅里叶变换外的其他一些正交变换,例如,快速沃尔什变换、数论变换等等。在FFT的影响下,人们对于广义的快速正交变换进行了深入研究,使各种快速变换在数字信号处理中占据了重要地位。因此说FFT对数字信号处理技术的发展起了重大推动作用。

一、问题重述

X(t)=sin(2πf

1t)+sin(2πf

2

t)+sin(2πf

3

t)

其中f

1=2Hz,f

2

=2.02Hz,f

3

=2.07Hz。试确定参数f

x

,N和相应模拟信号x(t)

的长度T。

其中f

1=2Hz,f

2

=2.02Hz,f

3

=2.07Hz,试确定参数f

s

,N和相应模拟信号的长度T,

最终用MATLAB程序应用FFT实现信号频谱特性的分析,并绘制其频谱图。用DFT进行频率参数分析时,DFT参数的选择如下:

1)若已知信号的最高频率f

c ,为防止频率混叠,选定抽样频率f

s,

满足f

s

f

c,

再根据实际需求,选择频率分辨率

2)一旦选定就可以确定计算DFT所需要点数N,

N=f

s

/,

当频率分辨率越小时,DFT能实现的信号频率分辨率越高,这当然是我们期望的,但愈小,计算DFT所需的点数N就愈大,计算复杂度就要高,

3)抽样频率f

s

和DFT所需点数N确定后,就可以确定所需相应模拟信号的长度T,

T=N/f

S =N T

s

T

s

为信号的采样间隔。

二、课程设计目的

1.熟悉MATLAB的使用方法,其中包括了解简单函数、了解原理和掌握操作方法;

2.熟悉课程设计的过程及正是论文的写法。

3.通过实验加深对FFT的理解;

4.熟悉应用FFT对典型信号进行频谱分析的方法。

5.增强在通信原理仿真方面的动手能力与自学能力;

6.完成之后,再遇到类似的问题时,学会对所面对的问题进行系统的分析,并能从多个方面进行比较。

三、实验原理

数字信号的傅里叶变换,通常采用离散傅里叶变换(DFT)方法。DFT 存在的不足是计算量太大,很难进行实时处理。计算一个N 点的DFT ,一般需要2

N 次复数乘法和N(N-1)次复数加法运算.因此,当N较大或要求对信号进行实时处理时,往往难以实现所需的运算速度。1965年,J.W.Cooly和J.W.Tukey发现了DFT的一种快速算法,经其他学者进一步改进, 很快形成了一套高效运算方法,这就是现在通用的快速傅里叶变换, 简称FFT( The Fast Fourier

Transform)。快速傅里叶变换的实质是利用式(1)中的权函数

nk

N

W的对称性和

周期性,把N 点DFT 进行一系列分解和组合,使整个DFT 的计算过程变成一系列叠代运算过程,使DFT 的运算量大大简化,为DFT 及数字信号的实时处理和应用创造了良好的条件。

快速傅里叶变换算法如下:

由(1)式可知,对每一个n ,计算X(n)须作N 次复数乘法及N-1次复数加法,要完成这组变换共需次乘法及N(N-1)次复数加法。但以下介绍的快速傅里叶变换的算法,可大大减少运算次数,提高工作效率。 当2r N =时,n 和k 可用二进制数表示:

1212012022r r r r r r n n n n n n n ------=+++= 1212012

022r r r r r r k k k k k k k ------=++

+=

又记 N

W e ρπ-=,则(1)式可改写为

00

110

1

1112

0012

00

()()r p r r r r k k k X n n n x k k k W =-=----==∑∑

(2)

式中:1212120120(22)(22)r r r r r r r r P nk k k k n n n --------==+++?+++

1

211221201

1202

(2

2)2(22)2r r r r r r r r r r r r n n n k n n n k P W W W

------------++++++=

1

20120(22)

r r r r K n n n W ----+++ (3)

因为22[]1r

r

N N W

W

e πρ

===所以(2)可改成

00

110

1

1112

001200

()()

r r r r r k k k X n n n x k k k =-=----=∑∑

1

211

221

21201

1202

0120(2

2)2(2

2)2(2

2)

r r r r r r r r r r r r r r r r n n n k n n n k K n n n W W W ----------------+++++++++ (4)

20

1

2013

0002

0()()r r r k

x n n k k x n k k -=--=∑102(2)22r n n r k W -+- (5)

120011()()r r r r X n n n x n n n ---=

则式(5)即为式(4)的分解形式。将初始数据代入式(5)的第一个等式,可得每一组计算数据,一般将痗L-1组计算数据代入式(5)的第L 个等式,计算后可得第L 组计算数据(L =1,2,…,γ),计算公式也可表示为

10

1

102

0012

0()()r r r r k

x n k k x k k k -=---=∑1

21200

(2

2)r r r r n n n k W ----+++=

1012120101212

0(0)(0)P l r r r l r r r x n n n k k k x n n n k k k W --------+ (6)

式中121120222r r r l l P n n n -----=+++ (7)

根据式(6),第L 个数组中每个1

2

1

2

0()()l l r r r r x k x n n

n k k

k

----= 的计算只依赖于上一个数组的两个数据这两个数据的标号相差12/2Y l N -=,即/2l j i n =+,

而且这两个数据只用于计算第L 个数组中标号的数据(等号右端为二进制数)。当1l n -分别取0和1时,分别有,/2l k i k j i n ===+。因此,用上一组的两个数据计算所得的两个新数据仍可储存在原来位置,计算过程中只需要N 个存储器。将()l x i 与(/2)l l x i n +称为第L 个数组中的对偶结点对。计算每个对偶结点对只需一次乘法,事实上由式(6)可得

1

1()()[]2p l l l

N x i x i i W -=++

2

11()()[]22

p l l l l l N N x i x i x i W --+

=++ 式中:l r l r n P ---++=2...22210n ;

02222...22n n P l

r l r l r ----+++=别为式(7)中1-l n 取0,1时对应的P 值。因2/21112N P P P R +=+=-,于是对偶结点的p W 有

如下关系:

1112

2

2

]

[P N

P N

N

P P W e

W

W

-===+

-+

ρπ,因此式(6)可表示为

1111()()[]2

()()[]22p l l l l p

l l l l l N x i x i x i W N N x i x i x i W ----=++

+=++

P 的求法:在)(i x l 中,i 写成二进制数01110......k k n n n l r l ---右移l r -位,就成为

110...0...0-l n n n 颠倒位序得),...,2,1(0...0...011r l n n n p l ==-式(5)吕,前面的γ个等式,每个等式均对应一组数据进行计算,每组数据都有N/2对结点,根据式(9),每对结点只需作1次乘法和2次加法,因此,每组数据只需N/2次乘法和N 次加法,因而完成γ组数据的计算共需N γ/2次乘法和N γ次加法。

四、问题分析

本题主要要求应用FFT 对典型信号进行频谱分析,最后使用MATLAB 程序实现信号频域特性的分析。编写程序时,首先得先计算和确定一些参数的取值,根据已知题,确定最高频率f c =f 3,根据实际需求,选择f 3=5f c ,然后确定采样点数N,对信号进行谱分析的重要问题是频谱分辨率和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2

π/N,因此要求2π/N小于等于。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近连续谱,因此N要适当选择大一些。同时N需为,n为整数,最后使用MATLAB信息处理工具箱中的函数fft(x,n),提供复数幅值的函数及plot函数画出相应的频谱图。

五、实验结果

已知模拟信号,根据表达式利用plot函数画出其频谱图,结果如下:

六、遇到的问题及解决方法

在整个课程设计过程中,由于之前对数字信号处理课程只是一种理论知识的认知并不是很深刻,而本次课程设计主要是针对以前的理论知识的一种更深刻的理解和应用,在实际操作的过程中刚开始一直无法获取到图形,后来发现是在编程的时候对一些参数的取值不太恰当,对信号进行谱分析的重要问题是频谱分辨率和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2л/N≤。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选

择大一些。对于f

s 的取值,理论中f

s

f

c

,一般就可以满足条件,但在实际应用

中,为了满足N过大,所以我们取f

s =5f

c

,由于刚开始f

s

的取值过小,导致

最后的频谱图不是理想中的那样,在运用MATLAB的时候,由于之前接触MATLAB 不是太多,对其中的一些函数功能并不是很熟悉,刚拿到老师布置的题目的时,对其进行了理论性的分析,查询了一些相关的书籍和资料,开始进行编程,但在最后的运行中,仍然出现不能够截取最有效那部分的图形,最后又开始查阅matlab的一些相关书籍,并通过老师的耐心指导及小组成员的尝试,最后得到满意的结果。

七、结论

在整个实习的过程中,我们从刚拿到题目有点懵,不知道用什么样的方法去实现频谱的分析,当经过第一天信息的查阅和第二天老师的耐心讲解到自己有了点头绪之后,开始计算和确定所需的参数值,一直到熟悉matlab的简单使用,这个过程都是学习和深刻理解之前理论知识的一个很好的机会,由不会用matlab到基本可以掌握简单用法,还有将课本上的理论知识用程序仿真展现在眼前有一种特别强烈的兴奋感和满足感。实习的目的就在于我们把理论性的东西能切切实实的变成实际应用,这不仅有利于我们对理论知识的理解,也可以强化我们的实际动手能力,这对我们今后的学习和生活中都有很大的实际意义。希望自己可以能有更多的机会将理论性的东西去转化成实际操作。

参考文献

[1] 数字信号处理及应用卢光跃北京人民邮电出版社

[2] 数字信号处理教程陈佩青北京清华大学出版社

[3] 数字信号处理蒋正萍北京电子工业出版社

[4] 快速傅里叶变换 E. O. 布赖姆柳群译

[5] 《MATLAB程序设计教程》刘卫国中国水利水电出版社

[6] 数字信号处理原理及实现付丽琴,桂志国,王黎明北京国防工业出

附录:

源代码:

clear

f1=2;

f2=2.02;

f3=2.07;

fc=f3;

df=f2-f1;

fs=5*fc;

n=fs/df;

i=1

while(2^i<=n)

i=i+1;

end

N=2^i;

T=N/fs;

n=0:N-1;

t=0.1*n

x=sin(2*pi*f1*t)+sin(2*pi*f2*t)+sin(2*pi*f3*t);

k=0:N/2;

w=2*pi/N*k

X=fft(x,N)

magX=abs(X(1:N/2+1));

subplot(1,2,1);stem(n,x,'.');title('signal x');

subplot(1,2,2);stem(w/pi,magX,'.');title('FFT 1024'); axis ([0.3 0.5,0 600])

xlabel('f (unit :pi)');ylabel('|X|');

grid on;

指导教师评语:

实 验 成 绩: 指导(辅导)教师 :

—————————————————————————

线————————————————————————————————

应用FFT对信号进行频谱分析实验报告

实验 应用FFT 对信号进行频谱分析 一、实验目的 1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT 算法及其程序的编写。 2、熟悉应用FFT 对典型信号进行频谱分析的方法。 3、了解应用FFT 进行新红啊频谱分析过程中可呢个出现的问题,以便在实际中正确应用FFT 。 二、实验原理 一个连续信号()a x t 的频谱可以用它的傅里叶变换表示为: ()()j t a a X j x t e dt +∞ -Ω-∞Ω=? (2-1) 如果对信号进行理想采样,可以得到离散傅里叶变换: ()()j n X e x n z ω +∞ --∞=∑ (2-2) 在各种信号序列中,有限长序列在数字信号处理中占有很重要的。无限长的序列往往可以用有限长序列来逼近。对于有限长的序列我们可以使用离散傅里叶变换(DFT ),这一序列可以很好的反应序列的频域特性,并且容易利用快速算法在计算机上实现当序列的长度是N 时,我们定义离散傅里叶变换为: 1 0()[()]()N kn N n X k DFT x n x n W -===∑ (2-3) DFT 是对序列傅里叶变换的灯具采样,因此可以用于序列的频谱分析。在利用DFT 进行频谱分析的时候可能有三种误差: (1)混叠现象 序列的频谱是采样信号频谱的周期延拓,周期是2/T π,因此当采样频率不满足奈奎斯特定理,即采样频率1/s f T =小于两倍的信号频率时,经过采样就会发生频谱混叠。这导致采样后的信号序列不能真实的反映原信号的频谱。 (2)泄漏现象 泄漏是不能和混叠完全分开的,因为泄漏导致频谱的扩展,从而造成混淆。为了减小混淆的影响,可以选择适当的窗函数使频谱的扩散减到最小。 (3)栅栏效应 因为DFT 是对单位圆上Z 变换的均匀采样,所以它不可能将频谱视为一个连续的函数。这样就产生了栅栏效应。减小栅栏效应的一个方法是在源序列的末端补一些零值,从而变动DFT 的点数。 三、实验内容和结果 1、观察高斯序列的时域和频域特性 (1)固定高斯序列()a x n 中的参数p=8,当q 为2,4,8时其时域和幅频特性分别如图 2.1,图2.2所示:

用MATLAB进行FFT频谱分析

用MATLAB 进行FFT 频谱分析 假设一信号: ()()292.7/2cos 1.0996.2/2sin 1.06.0+++=t t R ππ 画出其频谱图。 分析: 首先,连续周期信号截断对频谱的影响。 DFT 变换频谱泄漏的根本原因是信号的截断。即时域加窗,对应为频域卷积,因此,窗函数的主瓣宽度等就会影响到频谱。 实验表明,连续周期信号截断时持续时间与信号周期呈整数倍关系时,利用DFT 变换可以得到精确的模拟信号频谱。举一个简单的例子: ()ππ2.0100cos +=t Y 其周期为0.02。截断时不同的持续时间影响如图一.1:(对应程序shiyan1ex1.m ) 图 错误!文档中没有指定样式的文字。.1 140.0160.0180.02 截断时,时间间期为周期整数倍,频谱图 0.0250.03 0100200300400500600 7008009001000 20 40 60 80 100 截断时,时间间期不为周期整数倍,频谱图

其次,采样频率的确定。 根据Shannon 采样定理,采样带限信号采样频率为截止频率的两倍以上,给定信号的采样频率应>1/7.92,取16。 再次,DFT 算法包括时域采样和频域采样两步,频域采样长度M 和时域采样长度N 的关系要符合M ≧N 时,从频谱X(k)才可完全重建原信号。 实验中信号R 经采样后的离散信号不是周期信号,但是它又是一个无限长的信号,因此处理时时域窗函数尽量取得宽一些已接近实际信号。 实验结果如图一.2:其中,0点位置的冲激项为直流分量0.6造成(对应程序为shiyan1.m ) 图 错误!文档中没有指定样式的文字。.2 ?ARMA (Auto Recursive Moving Average )模型: 将平稳随机信号x(n)看作是零均值,方差为σu 2的白噪声u(n)经过线性非移变系统H(z)后的输出,模型的传递函数为 020406080100120140160180200 0.4 0.50.60.7 0.800.050.10.150.20.250.30.350.40.450.5 50100 150

用FFT对信号作频谱分析 实验报告

实验报告 实验三:用FFT 对信号作频谱分析 一、 实验目的与要求 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。 二、 实验原理 用FFT 对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是2π/N ,因此要求2π/N 小于等于D 。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。 三、 实验步骤及内容(含结果分析) (1)对以下序列进行FFT 分析: x 1(n)=R 4(n) x 2(n)= x 3(n)= 选择FFT 的变换区间N 为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】: n+1 0≤n ≤3 8-n 4≤n ≤7 0 其它n 4-n 0≤n ≤3 n-3 4≤n ≤7 0 其它 n

实验结果图形与理论分析相符。(2)对以下周期序列进行谱分析: x4(n)=cos[(π/4)*n]

x5(n)= cos[(π/4)*n]+ cos[(π/8)*n] 选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】: (3)对模拟周期信号进行频谱分析: x6(n)= cos(8πt)+ cos(16πt)+ cos(20πt) 选择采样频率Fs=64Hz,FFT的变换区间N为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。 【实验结果如下】:

频域分析实验报告

频域分析实验报告 班级: 学号: 姓名:

一、实验内容: 1利用计算机作出开环系统的波特图; 2、观察记录控制系统的开环频率特性; 3、控制系统的开环频率特性分析。 二、仿真原理: 对数频率特性图(波特图): 对数频率特性图包括了对数幅频特性图和对数相频特性图。横坐标为频率w,采用对数分度,单位为弧度/秒;纵坐标均匀分度,分别为幅值函数20lgA(w),以dB表示;相角,以度表示。MATLAB提供了函数bode()来绘制系统的波特图,其用法如下: (1)bode(num,den):可绘制出以连续时间多项式传递函数表示的系统的波特图。 (2)当带输出变量[mag,pha,w]或[mag,pha]引用函数时,可得到系统波特图相应的幅值mag、相角pha及角频率点w矢量或只是返回幅值与相角。相角以度为单位,幅值可转换为分贝单位:magdb=20×log10(mag) 二、实验验证 1、用Matlab作Bode图。要求:画出对应Bode图。 (1)G(S)=25/S2+4s+25 (7)G(S)=9(s2+0.2s+1)/s(s2+1.2s+9);

图 1 图 2 (1)G(S)=25/S2+4s+25 可以看成是一个比例环节和一个振荡环节组成,所以k=1,T1=0.04,因为v=0,所以在转折频率之前都为20lgk,因为k=1所以斜率为0,经过转折频率,分段直线斜率的变化量为-40db/dec。

(7)G(S)=9(s2+0.2s+1)/s(s2+1.2s+9); 可以看成是一个二阶微分环节和一个积分环节和一个振荡环节组成,化常数为1后,v=1,t1=1,t2=1/3,所以我们可以看到,在起始阶段是-20*vdb/dec,所以一开始斜率为-20db/dec。当经过1/3的转折频率之后分段直线的改变量为40db/dec,当经过1的转折频率之后分段直线的改变量为-40db/dec。故图像如图所示。 第二题: 典型二阶系统Gs=Wn2/s2+2ζWns+Wn2,试绘制取不同值时的Bode图。取Wn=8,ζ=0.1,0.2,0.3,,0.5,0.6; 图 3 如图所示。

MATLAB关于FFT频谱分析的程序

MATLAB关于FFT频谱分析的程序 %***************1.正弦波****************% fs=100;%设定采样频率 N=128; n=0:N-1; t=n/fs; f0=10;%设定正弦信号频率 %生成正弦信号 x=sin(2*pi*f0*t); figure(1); subplot(231); plot(t,x);%作正弦信号的时域波形 xlabel('t'); ylabel('y'); title('正弦信号y=2*pi*10t时域波形'); grid; %进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值 f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换 figure(1); subplot(232); plot(f,mag);%做频谱图 axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值');

title('正弦信号y=2*pi*10t幅频谱图N=128'); grid; %求均方根谱 sq=abs(y); figure(1); subplot(233); plot(f,sq); xlabel('频率(Hz)'); ylabel('均方根谱'); title('正弦信号y=2*pi*10t均方根谱'); grid; %求功率谱 power=sq.^2; figure(1); subplot(234); plot(f,power); xlabel('频率(Hz)'); ylabel('功率谱'); title('正弦信号y=2*pi*10t功率谱'); grid; %求对数谱 ln=log(sq); figure(1); subplot(235); plot(f,ln);

控制系统的频域分析实验报告

实验名称: 控制系统的频域分析 实验类型:________________同组学生姓名:__________ 一、实验目的和要求 用计算机辅助分析的方法,掌握频率分析法的三种方法,即Bode 图、Nyquist 曲线、Nichols 图。 二、实验内容和原理 (一)实验原理 1.Bode(波特)图 设已知系统的传递函数模型: 1 1211121)(+-+-+???+++???++=n n n m m m a s a s a b s b s b s H 则系统的频率响应可直接求出: 1 1211121)()()()()(+-+-+???+++???++=n n n m m m a j a j a b j b j b j H ωωωωω MATLAB 中,可利用bode 和dbode 绘制连续和离散系统的Bode 图。 2.Nyquist(奈奎斯特)曲线 Nyquist 曲线是根据开环频率特性在复平面上绘制幅相轨迹,根据开环的Nyquist 线,可判断闭环系统的稳定性。 反馈控制系统稳定的充要条件是,Nyquist 曲线按逆时针包围临界点(-1,j0)p 圈,为开环传递函数位于右半s 一平面的极点数。在MATLAB 中,可利用函数nyquist 和dnyquist 绘出连续和离散系统的乃氏曲线。 3.Nicho1s(尼柯尔斯)图 根据闭环频率特性的幅值和相位可作出Nichols 图,从而可直接得到闭环系统的频率特性。在 MATLAB 中,可利用函数nichols 和dnichols 绘出连续和离散系统的Nichols 图。 (二)实验内容 1.一系统开环传递函数为 ) 2)(5)(1(50)(-++=s s s s H 绘制系统的bode 图,判断闭环系统的稳定性,并画出闭环系统的单位冲击响应。 2.一多环系统 ) 10625.0)(125.0)(185.0(7.16)(+++=s s s s s G 其结构如图所示 试绘制Nyquist 频率曲线和Nichols 图,并判断稳定性。 (三)实验要求

实验五 用FFT对信号做频谱分析(数字信号实验)

备注:(1)、按照要求独立完成实验内容。 (2)、实验结束后,把电子版实验报告按要求格式改名,由实验教师批阅记录后;实验室 统一刻盘留档。 实验五 用FFT 对信号做频谱分析 一、实验目的 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。 二、实验原理 用FFT 对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是 ,因此要求 。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 三、实验内容(包括代码与产生的图形及分析讨论) 1. 对以下序列进行谱分析: 1423()() 1,03 ()8,47 0, 4,03()3, 470, x n R n n n x n n n n n n x n n n n =+≤≤?? =-≤≤???-≤≤?? =-≤≤???

选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线, 并进行对比、分析和讨论。 解:(1))(1n x 代码如下: x1n=[ones(1,4)]; X1k8=fft(x1n,8); X1k16=fft(x1n,16); subplot(2,1,1);mstem(X1k8); title('(1a) 8μ?DFT[x_1(n)]');xlabel('|?/|D');ylabel('·ù?è'); axis([0,2,0,1.2*max(abs(X1k8))]) subplot(2,1,2);mstem(X1k16); title('(1b)16μ?DFT[x_1(n)]');xlabel('|?/|D');ylabel('·ù?è'); axis([0,2,0,1.2*max(abs(X1k16))]) 图形如下: ω/π 幅度 (1a) 8点DFT[x 1(n)] ω/π 幅度 (1b)16点DFT[x 1(n)] (2))(2n x 代码如下: M=8;xa=1:(M/2); xb=(M/2):-1:1; x2n=[xa,xb];

信号与系统实验报告实验三 连续时间LTI系统的频域分析

实验三 连续时间LTI 系统的频域分析 一、实验目的 1、掌握系统频率响应特性的概念及其物理意义; 2、掌握系统频率响应特性的计算方法和特性曲线的绘制方法,理解具有不同频率响应特性的滤波器对信号的滤波作用; 3、学习和掌握幅度特性、相位特性以及群延时的物理意义; 4、掌握用MA TLAB 语言进行系统频响特性分析的方法。 基本要求:掌握LTI 连续和离散时间系统的频域数学模型和频域数学模型的MATLAB 描述方法,深刻理解LTI 系统的频率响应特性的物理意义,理解滤波和滤波器的概念,掌握利用MATLAB 计算和绘制LTI 系统频率响应特性曲线中的编程。 二、实验原理及方法 1 连续时间LTI 系统的频率响应 所谓频率特性,也称为频率响应特性,简称频率响应(Frequency response ),是指系统在正弦信号激励下的稳态响应随频率变化的情况,包括响应的幅度随频率的变化情况和响应的相位随频率的变化情况两个方面。 上图中x(t)、y(t)分别为系统的时域激励信号和响应信号,h(t)是系统的单位冲激响应,它们三者之间的关系为:)(*)()(t h t x t y =,由傅里叶变换的时域卷积定理可得到: )()()(ωωωj H j X j Y = 3.1 或者: ) () ()(ωωωj X j Y j H = 3.2 )(ωj H 为系统的频域数学模型,它实际上就是系统的单位冲激响应h(t)的傅里叶变换。即 ? ∞ ∞ --= dt e t h j H t j ωω)()( 3.3

由于H(j ω)实际上是系统单位冲激响应h(t)的傅里叶变换,如果h(t)是收敛的,或者说是绝对可积(Absolutly integrabel )的话,那么H(j ω)一定存在,而且H(j ω)通常是复数,因此,也可以表示成复数的不同表达形式。在研究系统的频率响应时,更多的是把它表示成极坐标形式: ) ()()(ω?ωωj e j H j H = 3.4 上式中,)j (ωH 称为幅度频率相应(Magnitude response ),反映信号经过系统之后,信号各频率分量的幅度发生变化的情况,)(ω?称为相位特性(Phase response ),反映信号经过系统后,信号各频率分量在相位上发生变换的情况。)(ωj H 和)(ω?都是频率ω的函数。 对于一个系统,其频率响应为H(j ω),其幅度响应和相位响应分别为)(ωj H 和)(ω?,如果作用于系统的信号为t j e t x 0)(ω=,则其响应信号为 t j e j H t y 0)()(0ωω= t j j e e j H 00)(0)(ωω?ω=))((000)(ω?ωω+=t j e j H 3.5 若输入信号为正弦信号,即x(t) = sin(ω0t ),则系统响应为 ))(sin(|)(|)sin()()(00000ω?ωωωω+==t j H t j H t y 3.6 可见,系统对某一频率分量的影响表现为两个方面,一是信号的幅度要被)(ωj H 加权,二是信号的相位要被)(ω?移相。 由于)(ωj H 和)(ω?都是频率ω的函数,所以,系统对不同频率的频率分量造成的幅度和相位上的影响是不同的。 2 LTI 系统的群延时 从信号频谱的观点看,信号是由无穷多个不同频率的正弦信号的加权和(Weighted sum )所组成。正如刚才所述,信号经过LTI 系统传输与处理时,系统将会对信号中的所有频率分量造成幅度和相位上的不同影响。从相位上来看,系统对各个频率分量造成一定的相位移(Phase shifting ),相位移实际上就是延时(Time delay )。群延时(Group delay )的概念能够较好地反

FFT详细分析

MATLAB中FFT的使用方法 2009-08-22 11:00 说明:以下资源来源于《数字信号处理的MATLAB实现》万永革主编 一.调用方法 X=FFT(x); X=FFT(x,N); x=IFFT(X); x=IFFT(X,N) 用MATLAB进行谱分析时注意: (1)函数FFT返回值的数据结构具有对称性。 例: N=8; n=0:N-1; xn=[4 3 2 6 7 8 9 0]; Xk=fft(xn) → Xk = 39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 - 7.7071i 5.0000 4.7782 + 7.7071i 0 + 5.0000i -10.7782 - 6.2929i Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值为0。 (2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。 二.FFT应用举例 例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。 clf; fs=100;N=128; %采样频率和数据点数 n=0:N-1;t=n/fs; %时间序列

x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求得Fourier变换后的振幅 f=n*fs/N; %频率序列 subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; %对信号采样数据为1024点的处理 fs=100;N=1024;n=0:N-1;t=n/fs; x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求取Fourier变换的振幅 f=n*fs/N; subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; subplot(2,2,4) plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; 运行结果:

用FFT对信号作频谱分析实验报告

实验一报告、用FFT 对信号作频谱分析 一、实验目的 学习用FFT 对连续信号和时域离散信号进行频谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。 二、实验内容 1.对以下序列进行频谱分析: ()() ()()4231038470n 4033 470n x n R n n n x n n n n n x n n n =+≤≤?? =-≤≤???-≤≤?? =-≤≤??? 其它其它 选择FFT 的变换区间N 为8和16两种情况进行频谱分析。分别打印其幅频特性曲线,并进行对比,分析和讨论。 2.对以下周期序列进行频谱分析: ()()45cos 4 cos cos 4 8 x n n x n n n π π π ==+ 选择FFT 的变换区间N 为8和16两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。 3.对模拟信号进行频谱分析: ()8cos8cos16cos20x t t t t πππ=++ 选择采样频率64s F Hz =,对变换区间N=16,32,64 三种情况进行频谱分析。分别 打印其幅频特性,并进行分析和讨论。

三、实验程序 1.对非周期序列进行频谱分析代码: close all;clear all; x1n=[ones(1,4)]; M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb]; x3n=[xb,xa]; X1k8=fft(x1n,8);X1k16=fft(x1n,16); X2k8=fft(x2n,8);X2k16=fft(x2n,16); X3k8=fft(x3n,8);X3k16=fft(x3n,16); subplot(3,2,1);mstem=(X1k8);title('(1a)8点DFT[x_1(n)]'); subplot(3,2,2);mstem=(X1k16);title('(1b)16点DFT[x_1(n)]'); subplot(3,2,3);mstem=(X2k8);title('(2a)8点DFT[x_2(n)]'); subplot(3,2,4);mstem=(X2k16);title('(2b)16点DFT[x_2(n)]'); subplot(3,2,5);mstem=(X3k8);title('(3a)8点DFT[x_3(n)]'); subplot(3,2,6);mstem=(X3k16);title('(3b)16点DFT[x_3(n)]'); 2.对周期序列进行频谱分析代码: N=8;n=0:N-1; x4n=cos(pi*n/4); x5n=cos(pi*n/4)+cos(pi*n/8); X4k8=fft(x4n); X5k8=fft(x5n); N=16;n=0:N-1; x4n=cos(pi*n/4); x5n=cos(pi*n/4)+cos(pi*n/8); X4k16=fft(x4n); X5k16=fft(x5n); figure(2) subplot(2,2,1);mstem(X4k8);title('(4a)8点 DFT[x_4(n)]'); subplot(2,2,2);mstem(X4k16);title('(4b)16点DFT[x_4(n)]'); subplot(2,2,3);mstem(X5k8);title('(5a)8点DFT[x_5(n)]'); subplot(2,2,4);mstem(X5k16);title('(5a)16点DFT[x_5(n)]') 3.模拟周期信号谱分析 figure(3) Fs=64;T=1/Fs; N=16;n=0:N-1; x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); X6k16=fft(x6nT); X6k16=fftshift(X6k16);

用FFT对信号作频谱分析Matlab程序.doc

对以下序列进行FFT 分析 x 1(n)=R 4(n) x 2(n)= x 3(n)= x1n=[ones(1,4)]; %产生R4(n)序列向量 X1k8=fft(x1n,8); %计算x1n 的8点DFT X1k16=fft(x1n,16); %计算x1n 的16点DFT %以下绘制幅频特性曲线 N=8; f=2/N*(0:N-1); (不懂) figure(1); subplot(1,2,1);stem(f,abs(X1k8),'r','.'); %绘制8点DFT 的幅频特性图,abs 求得Fourier 变换后的振幅 title('(1a) 8点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度'); N=16; f=2/N*(0:N-1); subplot(1,2,2);stem(f,abs(X1k16),'.'); %绘制8点DFT 的幅频特性图 title('(1b) 16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度'); %x2n 和 x3n M=8;xa=1:(M/2); xb=(M/2):-1:1; %从M/2到1每次递减1 x2n=[xa,xb]; %产生长度为8的三角波序列x2(n) x3n=[xb,xa]; n+1 0≤n ≤3 8-n 4≤n ≤7 0 其它n 4-n 0≤n ≤3 n-3 4≤n ≤7 0 其它 n

X2k8=fft(x2n,8); X2k16=fft(x2n,16); X3k8=fft(x3n,8); X3k16=fft(x3n,16); figure(2); N=8; f=2/N*(0:N-1); subplot(2,2,1);stem(f,abs(X2k8),'r','.'); %绘制8点DFT的幅频特性图title('(2a) 8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,3);stem(f,abs(X3k8),'r','.'); %绘制8点DFT的幅频特性图title('(3a) 8点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度'); N=16; f=2/N*(0:N-1); subplot(2,2,2);stem(f,abs(X2k16),'.'); %绘制8点DFT的幅频特性图title('(2b) 16点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,4);stem(f,abs(X3k16),'.'); %绘制8点DFT的幅频特性图title('(3b) 16点DFT[x_3(n)]');xlabel('ω/π');ylabel('幅度'); %x4n 和 x5n N=8;n=0:N-1; x4n=cos(pi*n/4); x5n=cos(pi*n/4)+cos(pi*n/8); X4k8=fft(x4n,8); X4k16=fft(x4n,16); X5k8=fft(x5n,8); X5k16=fft(x5n,16); figure(3); N=8; f=2/N*(0:N-1); subplot(2,2,1);stem(f,abs(X4k8),'r','.'); %绘制8点DFT的幅频特性图title('(4a) 8点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,3);stem(f,abs(X5k8),'r','.'); %绘制8点DFT的幅频特性图title('(5a) 8点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度'); N=16; f=2/N*(0:N-1); subplot(2,2,2);stem(f,abs(X4k16),'.'); %绘制8点DFT的幅频特性图title('(4b) 16点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,4);stem(f,abs(X5k16),'.'); %绘制8点DFT的幅频特性图title('(5b) 16点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度'); %x8n Fs=64; T=1/Fs;

FFT频谱分析实验报告

实验二:用FFT作谱分析 一、实验目的 (1) 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。 (2) 熟悉FFT算法原理和FFT子程序的应用。 (3) 学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。 二、实验原理

三、实验内容 (1) 对2 中所给出的信号逐个进行谱分析。解:(1) n=0:3; xn1=[1 1 1 1]; XK18=fft(xn1,8); XK116=fft(xn1,16); n1=0:7; n2=0:15; subplot(131); stem(n,xn1); xlabel('n'); ylabel('xn1'); subplot(132); stem(n1,abs(XK18)); xlabel('n1'); ylabel('XK18'); title('xn的8点'); subplot(133); stem(n2,abs(XK116)); xlabel('n2'); ylabel('XK116'); title('xn的16点');

(2) n1=0:7; n2=0:15; xn2=[1 2 3 4 4 3 2 1]; XK28=fft(xn2,8); XK216=fft(xn2,16); subplot(131); stem(n1,xn2); xlabel('n1'); ylabel('xn2'); subplot(132); stem(n1,abs(XK28)); xlabel('n1'); ylabel('XK28'); title('xn2的8点'); subplot(133); stem(n2,abs(XK216)); xlabel('n2'); ylabel('XK216'); title('xn2的16点'); (3) n1=0:7; n2=0:15; xn3=[4 3 2 1 1 2 3 4]; XK38=fft(xn3,8);

频谱分析实验报告

频谱分析实验报告 许开龙 热能工程系2008010717 一、实验目的 通过实验,了解频谱分析的原理,掌握数据处理中的这一重要手段。 二、实验方法 1.预习实验原理,搞清程序流程和各参数的含义。 2.自己编制一个产生两个正弦波之和的程序,即, 其中A1,A2 分别为正弦波幅值,K 1=Fs/F 1 , K2=Fs/F2, Fs为采样频率,F1,F2分别为正弦波频率。将 产生的数据放入数据文件中,数据文件的格式为 T(1) , X(1) T(2) , X(2) T(3) , X(3) ……,…… T(512) , X(512) 其中T数组是正弦波采样点的时间值,X数组是正弦波采样值。 3.利用给定的频谱分析程序对信号进行分析。程序框图如下图 程序参数说明 M-FFT 的长度,应为2的幂次(64) IWIN-窗函数类型 IWIN=1,矩形窗

IWIN=2,汉明窗 L-窗长,L<=M(64) N-数据取样数(512) Fs-采样频率(一定要和对象截止频率对应) 三、实验步骤 1.调试自己编制的产生正弦波数据之和的程序,并将产生的数据放入数据文件中 2.运行频谱分析程序,画出正弦波信号的频谱图 3.改变PSDOLD程序中的M,L参数,看其对频谱的影响 四、实验结果及数据处理 1.产生正弦波数据之和程序见附件,令A1=20,A2=4,F1=60Hz,F2=200Hz,Fs=3000Hz得到的 波形如下图: 图表 1 正弦信号之和, A1=20,A2=4,F1=60Hz,F2=200Hz,Fs=3000Hz 2.频谱分析结果 图表 2 频谱分析结果F1=60Hz, F2=200Hz, Fs=3000Hz, N=512, M=256, IWIN=2, L=256

数字信号处理实验报告三 用FFT对信号作频谱分析

实验三 用FFT 对信号作频谱分析 姓名: 班级: 学号: 一、实验目的 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT 。 二、实验原理与方法 用FFT 对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。可以根据此式选择FFT 的变换区间N 。误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。 周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。 对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。 三、实验内容及步骤 (1)对以下序列进行谱分析。 1423()() 1,03()8,470,4,03()3,47 0,x n R n n n x n n n n n n x n n n n =+≤≤?? =-≤≤??? -≤≤?? =-≤≤??? 其他其他 选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。 (2)对以下周期序列进行谱分析。

实验三用FFT对信号进行频谱分析和MATLAB程序

实验三 用FFT 对信号进行频谱分析 一 实验目的 1 能够熟练掌握快速离散傅立叶变换的原理及应用FFT 进行频谱分析的基本方法; 2了解用FFT 进行频谱分析可能出现的分析误差及其原因; 二 实验原理 1.用DFT 对非周期序列进行谱分析 单位圆上的Z 变换就是序列的傅里叶变换,即 ()()j j z e X e X z ωω== (3-1) ()j X e ω是ω的连续周期函数。对序列()x n 进行N 点DFT 得到()X k ,则()X k 是在区间[]0,2π上对()j X e ω的N 点等间隔采样,频谱分辨率就是采样间隔 2N π。因此序列的傅里叶变换可利用DFT (即FFT )来计算。 用FFT 对序列进行谱分析的误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而非周期序列的频谱是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。 2.用DFT 对周期序列进行谱分析 已知周期为N 的离散序列)(n x ,它的离散傅里叶级数DFS 分别由式(3-2)和(3-3) 给出: DFS : ∑-=-=1 2)(1N n kn N j k e n x N a π , n =0,1,2,…,N -1 (3-2) IDFS : ∑-==1 02)(N k kn N j k e a n x π , n =0,1,2,…,N -1 (3-3) 对于长度为N 的有限长序列x (n )的DFT 对表达式分别由式(3-4)和(3-5)给出: DFT : ∑-=-=1 02)()(N n kn N j e n x k X π , n =0,1,2,…,N -1 (3-4) IDFT : ∑-==1 02)(1)(N k kn N j e k X N n x π , n =0,1,2,…,N -1 (3-5) FFT 为离散傅里叶变换DFT 的快速算法,对于周期为N 的离散序列x (n )的频谱分析便可由式(3-6)和(3-7)给出:

实验三-周期信号的频谱分析-实验报告

信号与系统 实验报告 实验三周期信号的频谱分析 学院 专业班级 学号 指导教师 实验报告评分:_______

实验三 周期信号的频谱分析 一、实验目的 1、掌握连续时间周期信号的傅里叶级数的物理意义和分析方法; 2、观察截短傅里叶级数而产生的“Gibbs 现象”,了解其特点以及产生的原因; 3、掌握各种典型的连续时间非周期信号的频谱特征。 二、实验容 实验前,必须首先阅读本实验原理,读懂所给出的全部例程序。实验开始时,先在计算机上运行这些例程序,观察所得到的信号的波形图。并结合例程序应该完成的工作,进一步分析程序中各个语句的作用,从而真正理解这些程序。 实验前,一定要针对下面的实验项目做好相应的实验准备工作,包括事先编写好相应的实验程序等事项。 Q3-1 编写程序Q3_1,绘制下面的信号的波形图: -+-=)5cos(51 )3cos(31)cos()(000t t t t x ωωω∑∞ ==10)cos()2sin(1n t n n n ωπ 其中,ω0 = 0.5π,要求将一个图形窗口分割成四个子图,分别绘制cos(ω0t)、cos(3ω0t)、cos(5ω0t) 和x(t) 的波形图,给图形加title ,网格线和x 坐标标签,并且程序能够接受从键盘输入的和式中的项数。 抄写程序Q3_1如下: clear,%Clear all variables close all,%Close all figure windows dt = 0.00001; %Specify the step of time variable t = -2:dt:4; %Specify the interval of time w0=0.5*pi; x1=cos(w0.*t); x2=cos(3*w0.*t); x3=cos(5*w0.*t); N=input('Type in the number of the harmonic components N='); x=0; for q=1:N; x=x+(sin(q*(pi/2)).*cos(q*w0*t))/q; end

MATLAB中FFT的使用方法(频谱分析)

说明:以下资源来源于《数字信号处理的MATLAB实现》万永革主编 一.调用方法 X=FFT(x); X=FFT(x,N); x=IFFT(X); x=IFFT(X,N) 用MATLAB进行谱分析时注意: (1)函数FFT返回值的数据结构具有对称性。 例: N=8; n=0:N-1; xn=[4 3 2 6 7 8 9 0]; Xk=fft(xn) → Xk = 39.0000 -10.7782 + 6.2929i 0 - 5.0000i 4.7782 - 7.7071i 5.0000 4.7782 + 7.7071i 0 + 5.0000i -10.7782 - 6.2929i Xk与xn的维数相同,共有8个元素。Xk的第一个数对应于直流分量,即频率值为0。 (2)做FFT分析时,幅值大小与FFT选择的点数有关,但不影响分析结果。在IFFT时已经做了处理。要得到真实的振幅值的大小,只要将得到的变换后结果乘以2除以N即可。 二.FFT应用举例 例1:x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t)。采样频率fs=100Hz,分别绘制N=128、1024点幅频图。 clf; fs=100;N=128; %采样频率和数据点数

n=0:N-1;t=n/fs; %时间序列 x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求得Fourier变换后的振幅 f=n*fs/N; %频率序列 subplot(2,2,1),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; subplot(2,2,2),plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅xlabel('频率/Hz'); ylabel('振幅');title('N=128');grid on; %对信号采样数据为1024点的处理 fs=100;N=1024;n=0:N-1;t=n/fs; x=0.5*sin(2*pi*15*t)+2*sin(2*pi*40*t); %信号 y=fft(x,N); %对信号进行快速Fourier变换 mag=abs(y); %求取Fourier变换的振幅 f=n*fs/N; subplot(2,2,3),plot(f,mag); %绘出随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on; subplot(2,2,4) plot(f(1:N/2),mag(1:N/2)); %绘出Nyquist频率之前随频率变化的振幅 xlabel('频率/Hz'); ylabel('振幅');title('N=1024');grid on;

相关文档
最新文档