心电信号的频谱分析-FFT分析

心电信号的频谱分析-FFT分析
心电信号的频谱分析-FFT分析

课程设计任务书

(指导教师填写)

课程设计名称微机应用技术课程设计学生姓名专业班级

设计题目心电信号的频谱分析-FFT分析

一、课程设计目的

1.了解心电信号的特点;

2.熟悉MATLAB程序设计方法;

3.理解频谱分析的作用和相关概念;

二、设计内容、技术条件和要求

1.采样点数N=1000,采样频率f=360HZ 和100HZ;

2.利用Matlab软件对心电信号进行时域分析(包括均值,方差,标准差,峰峰值,极大值和极小值)和频域分析(FFT),其中涉及的参数根据需要自主选择;

三、时间进度安排

第1周:查阅资料;

第2周:实现设计内容

第3周:整理资料,撰写课程设计任务书

四、主要参考文献

参考《模拟电子技术》、《Matlab信号处理与应用》和《医学仪器》教材指导教师签字:年月日

目录

摘要···············错误!未定义书签。

引言···············错误!未定义书签。

一、心电信号的特点········错误!未定义书签。

二、 MATLAB软件介绍········错误!未定义书签。

三、心电信号的分析方法 (6)

3.1时域分析 (6)

3.2频域分析 (6)

3.3 FFT分析 (7)

四、心电信号的Matlab实现 (9)

4.1 Matlab编程实现 (9)

4.2 Matlab时域分析结果 (10)

4.3 Matlab频域分析结果·······错误!未定义书签。

心得体会 (12)

参考文献 (13)

摘要

本次课程设计介绍了一种运用信号系统知识和MATLAB 相结合的思想,设计出用傅里叶变换分析MIT-BIH心电数据库的心电信号的方法。运用该方法既能简便的对心电信号进行分析,又能把所学知识应用于解决实际问题。该方法简单易懂,能加深初学者对傅里叶变换的理解,并且可以得到许多有用的信息,对于诊断疾病有非常重要的参考价值。

关键字:心电信号Matlab 傅里叶变换

引言

美国麻省理工学院提供的MIT-BIH数据库是一个权威性的国际心电图检测标准库,近年来应用广泛,为我国的医学程界所重视。

MIT-BIH数据库共有48个病例,每个病例数据时长30min,共116000多个心拍,包含有正常心拍和异常心拍,内容丰富完整,为了读取方便,采用txt格式的数据文件作为我们的原心电信号数据。利用Matlab提供的textread函数,读取txt数据文件中的信号,并还原为实际波形。

本设计课题主要研究数字心电信号的初步分析及matlab 应用。通过完成本课题的设计,主要达到以下几个目的:(1)了解MATLAB软件的特点和使用方法,熟悉基于了解人体心电信号的时域特征和频谱特征;

(2)进一步了解数字信号的分析方法;

(3)通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。

一、心电信号的特点

心电信号属生物医学信号,具有如下特点:

(1)信号具有近场检测的特点,离开人体表微小的距离,就基本上检测不到信号;

(2)心电信号通常比较微弱,至多为mV量级;

(3)属低频信号,且能量主要在几百赫兹以下;

(4)干扰特别强。干扰既来自生物体内,如肌电干扰、呼吸干扰等;也来自生物体外,如工频干扰、信号拾取时因不良接地等引入的其他外来串扰等;

(5)干扰信号与心电信号本身频带重叠(如工频干扰等)。

二、MATLAB软件介绍

MATLAB是矩阵实验室的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink 两大部分。

MATLAB是由美国MathWorks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单元是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解决问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收

了像Maple等软件的优点。在新的版本中也加入了对C,FORTRAN,C++,JA V A的支持。可以直接调用,用户也可以将自己编写的使用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

三、心电信号分析方法

按照信号与系统问题可以分为两大类基本分析方法:时域分析方法和频域分析方法。两种方法各有不同,互相补充。

3.1 时域分析

时域分析方法是对连续信号进行采样、量化和编码形成离散的二进制数字序列,再采用数字信号处理技术进行处理。信号的采样过程如果满足一定条件,那么得到的这种离散的二进制序列在形状特征以及内在属性上完全可替代原连续信号,只是这样方便人们分析处理信号并提取有用信息。

对心电信号进行的时域处理通常包括信号的均值,方差,标准差,峰峰值,极大值和极小值六种。

3.2 频域分析

离散系统的频域分析就是研究离散信号通过离散系统以后在频谱结构上所产生的变化,为此首先必须了解描述离散系统频率特性的有关特征量。信号的有些信息在用空域分析是得不到的,而如果用频域分析方法的话,可以得到其中许多有价值的信息。

3.3 FFT 分析

有限长序列可以通过离散傅里叶变换(DFT)将其频域也离散化成有限长序列,但其计算量太大,很难实时地处理问题,因此引出了快速傅里叶变换(FFT)。快速傅氏变换(FFT )是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。根据对序列分解与选取方法的不同而产生了FFT 的多种算法,基本算法是基2DIT 和基2DIF 。

设x(n)为N 项的复数序列,由DFT 变换,任一X (m )的计算都需要N 次复数乘法和N-1次复数加法,而一次复数乘法等于四次实数乘法和两次实数加法,一次复数加法等于两次实数加法,即使把一次复数乘法和一次复数加法定义成一次“运算”(四次实数乘法和四次实数加法),那么求出N 项复数序列的X (m ),即N 点DFT 变换大约就需要2N 次运算。当N=1024点甚至更多的时候,需要N2=1048576次运算,在FFT 中,利用WN 的周期性和对称性,把一个N 项序列(设N=2k,k 为正整数),分为两个N/2项的子序列,每个N/2点DFT 变换需要()22N 次运算,再用N 次运算把两个N/2点的DFT 变换组合成一个N 点的DFT 变换。这样变换以后,总的运算次数就变成()22222N N N N +=+。继续上面的

例子,N=1024时,总的运算次数就变成了525312次,节省了大约50%的运算量。而如果我们将这种“一分为二”的思想不断进行下去,直到分成两两一组的DFT运算单元,那么N点的DFT变换就只需要N

log次的运算,N在1024点时,

N

2

运算量仅有10240次,是先前的直接算法的1%,点数越多,运算量的节约就越大,这就是FFT的优越性。

FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。一个模拟信号,经过ADC采样之后,就变成了数字信号。采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。假设采样频率为Fs,信号频率F,采样点数为N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位就是在该频率下的信号的相位。如果要要提高频率分辨率,就需要增加采样点数,也即采样时

间。频率分辨率和采样时间是倒数关系。

四、心电信号的Matlab实现

4.1 Matlab编程实现

clear;

close all;

%时域分析

z=textread('e:\ECG.txt');

ECG1=z(:,2); %取第二列作为分析数据

A=ECG1(1:1000);

fprintf('\n数据基本信息:\n')

fprintf('最小值=%7.3f\n',min(A))

fprintf('平均值=%7.3f\n',mean(A))

fprintf('最大值=%7.3f\n',max(A))

fprintf('标准方差=%7.3f\n',std(A))

fprintf('峰峰值=%7.3f\n',max(A)-min(A))

fprintf('方差=%7.3f\n',exp(std(A)))

figure;

plot(z(1:1000),A);

xlabel('时间(s)');

ylabel('幅值');

title('原始信号(时域)');

grid on; %画出分格线

%频域分析

ECG1=z(:,2);

x=ECG1(1:1000);

y=fft(x,1000); %做1000点傅里叶变换mag=abs(y);

f=2*pi/1000:2*pi/1000:2*pi; %长度为1000的采样点列向量

figure;

plot(f,mag);%做频谱图

axis([0,7,0,100]); %设定坐标范围xlabel('频率(100Hz)');

ylabel('幅值');

title('心电幅频谱图 N=1000');

grid on;

4.2 Matlab时域分析结果

数据基本信息:

最小值= -0.935

平均值= -0.054

最大值= 2.945

标准方差= 0.580

峰峰值= 3.880

方差= 1.786

4.3 Matlab频域分析结果

心得体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。回顾此次关于“心电信号频谱分析-FFT”的课程设计,感触颇深。虽然总是遇到瓶颈,但是我确实学到了很多东西,不仅巩固了以前所学过的知识,而且还学到了很多课外的知识。这次课程设计使我懂得了理论与实际相结合的很重要性,只有理论是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,进而提高自己的实际动手和独立思考的能力。毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中也发现了自己的很多不足之处,对以前所学过的知识理解得不够深刻,但通过这次课程设计之后,我对以前所学过的知识有了重新认识

这次课程设计的顺利完成,得益于同学和老师的帮助大力帮助,解决了编程设计过程中的所有问题,在此给帮助过我的所有同学和各位指导老师再次表示忠心的感谢!

参考文献

[1] 徐效文,等.MIT-BIH数据库心电数据重采样研究[J].1002-8331,A, 2011(08):0245-0249.

[2]雷万军,胡志刚.生物医学工程专业实验指导.河南:郑州大学出版社,2012

[3]张志涌,杨祖樱,等.Matlab教程.北京:北京航空航天大学出版社,2010

[4]楼天顺,于卫,闫华梁. MATLAB程序设计语言.西安:西安电子科技大学出版社,1998

应用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;

相关文档
最新文档