用FFT进行谱分析
实验二用FFT对信号进行频谱分析
实验二用FFT对信号进行频谱分析简介:频谱分析是信号处理中常用的一种方法,通过将信号变换到频域,可以得到信号的频谱特征。
其中,快速傅里叶变换(FFT)是一种高效的计算频域的方法。
在这个实验中,我们将学习如何使用FFT对信号进行频谱分析。
实验步骤:1.准备工作:a. 安装MATLAB或者Octave等软件,并了解如何运行这些软件。
2.载入信号:a. 在MATLAB或Octave中,使用内置函数加载信号文件,将信号读入到内存中。
b.查看信号的基本信息,例如采样频率、时长等。
3.FFT变换:a. 使用MATLAB或Octave的fft函数将信号由时域变换到频域。
b.设置合适的参数,例如变换的点数、窗口函数等。
可以尝试不同的参数,观察其对结果的影响。
4.频谱绘制:a. 使用MATLAB或Octave的plot函数将变换后的频率数据进行绘制。
b.可以绘制幅度谱(频率的能量分布)或相位谱(频率的相位分布),也可以同时绘制两个谱。
5.频谱分析:a.根据绘制出的频谱,可以观察信号的频率特征。
例如,可以识别出信号中的主要频率分量。
b.可以进一步计算信号的能量、均值、方差等统计量,了解信号的功率特征。
c.可以对不同的信号进行对比分析,了解它们在频域上的差异。
实验结果和讨论:1.绘制出的频谱图可以清晰地显示信号的频率分量,可以识别出信号中的主要频率。
2.通过对不同信号的对比分析,可以发现它们在频域上的差异,例如不同乐器的音调特征。
3.可以进一步分析频谱的统计特征,例如信号的能量、平均幅度、峰值频率等。
4.在进行FFT变换时,参数的选择对结果有一定的影响,可以进行参数的调优,获得更准确的频谱分析结果。
结论:本实验通过使用FFT对信号进行频谱分析,可以获得信号在频域上的特征。
通过观察频谱图和统计特征,可以进一步了解信号的频率分布、能量特征等信息。
这对信号处理、音频分析等领域具有很大的应用价值。
在实际应用中,可以根据不同的需求,选择合适的参数和方法,对不同的信号进行频谱分析。
实验二FFT实现信号频谱分析
0
2
4
6
4
2
0
-2
-4
-6
-4
-20246四、试验环节
4. 试验内容2旳程序运营成果如下图所示:
60
30
40
20
20
10
0
0
-10 -5
0
5
10
-40 -20
0
20 40
30
80
60 20
40 10
20
0
-40 -20
0
20 40
0
-40 -20
0
20 40
四、试验环节
|X(k)| x(n)
5. 试验内容 3旳程序运营成果如下图所示:
fft 计算迅速离散傅立叶变换
fftshift
ifft
调整fft函数旳输出顺序,将零频 位置移到频谱旳中心
计算离散傅立叶反变换
fft函数:调用方式如下
y=fft(x):计算信号x旳迅速傅立叶变换y。当x旳长度为 2旳幂时,用基2算法,不然采用较慢旳分裂基算法。
y=fft(x,n):计算n点FFT。当length(x)>n时,截断x,不 然补零。
【例2-11】产生一种正弦信号频率为60Hz,并用fft函数 计算并绘出其幅度谱。
fftshift函数:调用方式如下 y=fftshift(x):假如x为向量,fftshift(x)直接将x旳左右两 部分互换;假如x为矩阵(多通道信号),将x旳左上、右 下和右上、左下四个部分两两互换。 【例2-12】产生一种正弦信号频率为60Hz,采样率为1000Hz, 用fftshift将其零频位置搬到频谱中心。
以上就是按时间抽取旳迅速傅立叶变换
用FFT做频谱分析
用FFT 做频谱分析一、实验目的(1) 在理论学习的基础上,通过本实验,加深对FFT 的理解,熟悉FFT 子程序。
(2) 熟悉应用FFT 对典型信号进行频谱分析的方法。
(3) 了解应用FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT 。
(4) 熟悉应用FFT 实现两个序列的线性卷积的方法。
(5) 初步了解用周期图法做随机信号谱分析的方法。
二、实验原理与方法在各种信号序列中,有限长序列信号处理占有很重要的地位,对有限长序列,我们可以使用离散傅里叶变换(DFT)。
这一变换不但可以很好地反映序列的频谱特性,而且易于用快速算法在计算机上实现,当序列x (n )的长度为N 时,它的DFT 定义为21j 0()()e N knN NN n X k x n W W π--===∑,逆变换为101()()N kn N k x n X k W N --==∑ 有限长序列的DFT 是其z 变换在单位圆上的等距采样,或者说是序列傅里叶变换的等距采样,因此可以用于序列的谱分析。
FFT 并不是与DFT 不同的另一种变换,而是为了减少DFT 运算次数的一种快速算法。
它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。
常用的FFT 是以2为基数的,其长度2L N =,其中,L 为正整数。
它的效率高,程序简单,使用非常方便。
当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT ,可以用末位补零的方法,使其长度延长至2的整数次方。
1) 在运用DFT 进行频谱分析的过程中可能产生的三种误差(1) 混叠。
序列的频谱是被采样信号的周期延拓,当采样速率不满足奈奎斯特定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实地反映原信号的频谱。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解。
在一般情况下,为了保证高于折叠频率的分量不会出现,可在采样前先用低通模拟滤波器对信号进行滤波。
实验二用DFT及FFT进行谱分析
实验二用DFT及FFT进行谱分析实验二将使用DFT(离散傅里叶变换)和FFT(快速傅里叶变换)进行谱分析。
在谱分析中,我们将探索如何将时域信号转换为频域信号,并观察信号的频谱特征。
首先,我们需要了解DFT和FFT的基本概念。
DFT是一种将时域信号分解为频域信号的数学方法。
它将一个离散时间序列的N个样本转换为具有N个频率点的频率谱。
DFT在信号处理和谱分析中被广泛应用,但它的计算复杂度为O(N^2)。
为了解决DFT的计算复杂度问题,Cooley和Tukey提出了FFT算法,它是一种使用分治策略的快速计算DFT的方法。
FFT算法的计算复杂度为O(NlogN),使得谱分析在实际应用中更加可行。
在实验中,我们将使用Python编程语言和NumPy库来实现DFT和FFT,并进行信号的谱分析。
首先,我们需要生成一个具有不同频率成分的合成信号。
我们可以使用NumPy的arange函数生成一组时间点,然后使用sin函数生成不同频率的正弦波信号。
接下来,我们将实现DFT函数。
DFT将时域信号作为输入,并返回频域信号。
DFT的公式可以表示为:X(k) = Σ(x(n) * exp(-i*2πkn/N))其中,X(k)是频域信号的第k个频率点,x(n)是时域信号的第n个样本,N是信号的长度。
我们将使用循环计算DFT,但这种方法的计算复杂度为O(N^2)。
因此,我们将在实验过程中进行一些优化。
接下来,我们将实现FFT函数。
FFT函数将时域信号作为输入,并返回频域信号。
可以使用Cooley-Tukey的分治算法来快速计算FFT。
FFT的基本思想是将一个长度为N的信号分解为两个长度为N/2的子信号,然后逐步地将子信号分解为更小的子信号。
最后,将所有子信号重新组合以得到频域信号。
实验中,我们将使用递归的方式实现FFT算法。
首先,我们将信号分解为两个子信号,然后对每个子信号进行FFT计算。
最后,将两个子信号的FFT结果重新组合以得到频域信号。
实验三用FFT对信号进行频谱分析和MATLAB程序
实验三用FFT对信号进行频谱分析和MATLAB程序实验三中使用FFT对信号进行频谱分析的目的是通过将时域信号转换为频域信号,来获取信号的频谱信息。
MATLAB提供了方便易用的函数来实现FFT。
首先,我们需要了解FFT的原理。
FFT(快速傅里叶变换)是一种快速计算离散傅里叶变换(DFT)的算法,用于将离散的时间域信号转换为连续的频域信号。
FFT算法的主要思想是将问题划分为多个规模较小的子问题,并利用DFT的对称性质进行递归计算。
FFT算法能够帮助我们高效地进行频谱分析。
下面是一个使用MATLAB进行频谱分析的示例程序:```matlab%生成一个10秒钟的正弦波信号,频率为1Hz,采样率为100Hzfs = 100; % 采样率t = 0:1/fs:10-1/fs; % 时间范围f=1;%正弦波频率x = sin(2*pi*f*t);%进行FFT计算N = length(x); % 信号长度X = fft(x); % FFT计算magX = abs(X)/N; % 幅值谱frequencies = (0:N-1)*(fs/N); % 频率范围%绘制频谱图figure;plot(frequencies, magX);xlabel('频率(Hz)');ylabel('振幅');title('信号频谱');```上述代码生成了一个10秒钟的正弦波信号,频率为1 Hz,采样率为100 Hz。
通过调用MATLAB的fft函数计算信号的FFT,然后计算每个频率分量的幅值谱,并绘制出信号频谱图。
在频谱图中,横轴表示频率,纵轴表示振幅。
该实验需要注意以下几点:1.信号的采样率要与信号中最高频率成一定比例,以避免采样率不足导致的伪频谱。
2.FFT计算结果是一个复数数组,我们一般只关注其幅值谱。
3.频率范围是0到采样率之间的频率。
实验三的报告可以包含以下内容:1.实验目的和背景介绍。
应用FFT实现信号频谱分析
应用FFT实现信号频谱分析一、快速傅里叶变换(FFT)原理快速傅里叶变换是一种将时域信号转换为频域信号的算法,它通过将信号分解为不同频率的正弦波的和,来实现频谱分析。
FFT算法是一种高效的计算DFT(离散傅里叶变换)的方法,它的时间复杂度为O(nlogn),在实际应用中得到广泛使用。
二、FFT算法FFT算法中最基本的思想是将DFT进行分解,将一个长度为N的信号分解成长度为N/2的两个互为逆序的子信号,然后对这两个子信号再进行类似的分解,直到分解成长度为1的信号。
在这一过程中,可以通过频谱折叠的性质,减少计算的复杂度,从而提高计算效率。
三、FFT实现在实际应用中,可以使用Matlab等软件来实现FFT算法。
以Matlab 为例,实现FFT可以分为以下几个步骤:1.读取信号并进行预处理,如去除直流分量、归一化等。
2. 对信号进行FFT变换,可以调用Matlab中的fft函数,得到频域信号。
3.计算频谱,可以通过对频域信号进行幅度谱计算,即取频域信号的模值。
4.可选地,可以对频谱进行平滑处理,以降低噪音干扰。
5.可选地,可以对频谱进行归一化处理,以便于分析和比较不同信号的频谱特性。
四、应用1.音频处理:通过分析音频信号的频谱,可以实现音频特性的提取,如频率、振幅、共振等。
2.图像处理:通过分析图像信号的频谱,可以实现图像特征的提取,如纹理、边缘等。
3.通信系统:通过分析信号的频谱,可以实现信号的调制解调、频谱分配等功能。
4.电力系统:通过分析电力信号的频谱,可以实现电力质量分析、故障检测等。
总结:应用FFT实现信号频谱分析是一种高效的信号处理方法,通过将时域信号转换为频域信号,可以实现对信号频谱特性的提取和分析。
在实际应用中,我们可以利用FFT算法和相应的软件工具,对信号进行频谱分析,以便于进一步的研究和应用。
MATLAB信号频谱分析FFT详解
MATLAB信号频谱分析FFT详解FFT(快速傅里叶变换)是一种常用的信号频谱分析方法,它可以将信号从时域转换到频域,以便更好地分析信号中不同频率成分的特征。
在MATLAB中,使用fft函数可以方便地进行信号频谱分析。
首先,我们先介绍一下傅里叶变换的基本概念。
傅里叶变换是一种将信号分解成不同频率成分的技术。
对于任意一个周期信号x(t),其傅里叶变换X(f)可以表示为:X(f) = ∫(x(t)e^(-j2πft))dt其中,X(f)表示信号在频率域上的幅度和相位信息,f表示频率。
傅里叶变换可以将信号从时域转换到频域,以便更好地分析信号的频率特征。
而FFT(快速傅里叶变换)是一种计算傅里叶变换的高效算法,它通过分治法将傅里叶变换的计算复杂度从O(N^2)降低到O(NlogN),提高了计算效率。
在MATLAB中,fft函数可以方便地计算信号的傅里叶变换。
使用FFT进行信号频谱分析的步骤如下:1. 构造信号:首先,我们需要构造一个信号用于分析。
可以使用MATLAB中的一些函数生成各种信号,比如sin、cos、square等。
2. 采样信号:信号通常是连续的,为了进行FFT分析,我们需要将信号离散化,即进行采样。
使用MATLAB中的linspace函数可以生成一定长度的离散信号。
3. 计算FFT:使用MATLAB中的fft函数可以方便地计算信号的FFT。
fft函数的输入参数是离散信号的向量,返回结果是信号在频率域上的复数值。
4. 频率换算:信号在频域上的复数值其实是以采样频率为单位的。
为了更好地观察频率成分,我们通常将其转换为以Hz为单位的频率。
可以使用MATLAB中的linspace函数生成一个对应频率的向量。
5. 幅度谱计算:频域上的复数值可以由实部和虚部表示,我们一般更关注其幅度,即信号的相对强度。
可以使用abs函数计算出频域上的幅度谱。
6. 相位谱计算:除了幅度谱,信号在频域上的相位信息也是重要的。
FFT频谱分析
Matlab fftshift 详解- 信号处理基本功一. 实信号情况因为实信号以fs为采样速率的信号在fs/2 处混叠,所以实信号fft的结果中前半部分对应[0, fs/2],后半部分对应[ -fs/2, 0]1)实信号fft的结果前半部分对应[0, fs/2]是正频率的结果,后半部分对应[ -fs/2, 0]是负频率的结果。
大于fs/2的部分的频谱实际上是实信号的负频率加fs的结果。
故要得到正确的结果,只需将视在频率减去fs即可得到频谱对应的真实负频率2)如果要让实信号fft的结果与[-fs/2, fs/2]对应,则要fft后fftshift一下即可,fftshift的操作是将fft结果以fs/2为中心左右互换3)如果实信号fft的绘图频率f从[-fs/2, fs/2],并且没有fftshift,则fft正频谱对应f在[0, fs/2]的结果将混叠到(f - fs/2)的位置;fft负频谱对应f在[-fs/2, 0]的结果混叠到f + fs - fs/2 的位置,注意这里f为负值,也就是说此种情况下fft负频谱对应的视在频率减去fs/2即可得到频谱对应的真实负频率二. 复信号情况1)复信号没有负频率,以fs为采样速率的信号,fft的频谱结果是从[0, fs]的。
2)在f > fs/2 时,对复信号的fft结果进行fftshift会产生频率混叠(将下面的示例2中的频率从f=15改为f=85可以验证f=85的谱线在fftshift后跑到f = -15 = 85 - fs = 85 - 100的位置了),所以复信号也一般要求f <= fs/23)在对雷达的慢时间维(复信号)进行fft后,由于要用doppler = ((0:LFFT-1)/LFFT - 0.5)*PRF; 计算多普勒频率,所以对该慢时间信号fft后要fftshift下,以便和正确的频率单元相对应。
注意多普勒频率fd < = PRF/2 时才测的准!fftshift作用:将零频点移到频谱的中间用法:Y=fftshift(X)Y=fftshift(X,dim)描述:fftshift移动零频点到频谱中间,重新排列fft,fft2和fftn的输出结果。
用FFT作谱分析实验报告
数字信号处理实验报告FFT的谱分解一、实验目的:1、在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有关函数。
2、熟悉应用FFT对典型信号进行频谱分析的方法。
熟悉FFT算法原理和FFT子程序的应用。
3、学习用FFT对连续信号和时域离散信号进行谱分析的方法。
了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
二、实验原理:1.快速傅立叶变换(FFT)算法长度为N 的序列)(n x 的离散傅立叶变换)(k X 为:∑-=-==101,....,0,)()(N n nkN N k W n x k XN 点的DFT 可以分解为两个N/2点的DFT ,每个N/2点的DFT 又可以分解为两个N/4点的DFT 。
依此类推,当N 为2的整数次幂时(M N 2=),由于每分解一次降低一阶幂次,所以通过M 次的分解,最后全部成为一系列2点DFT 运算。
以上就是按时间抽取的快速傅立叶变换(FFT)算法。
当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT ,可以用末尾补零的方法,使其长度延长至2的整数次方。
序列)(k X 的离散傅立叶反变换为x n NX k Wn N Nnk k N ()(),,....,==--=-∑10101离散傅立叶反变换与正变换的区别在于N W 变为1-N W ,并多了一个N 1的运算。
因为N W 和1-N W 对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT 和快速傅立叶反变换(IFFT )算法合并在同一个程序中。
2.利用FFT 进行频谱分析若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT 运算求得)(k X ,)(k X 就代表了序列在[]π2,0之间的频谱值。
幅度谱 )()()(22k X k X k X I R +=相位谱 )()(arctan)(k X k X k R I =ϕ 若信号是模拟信号,用FFT 进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT 来对连续信号进行谱分析。
用FFT做谱分析
用FFT做谱分析谱分析是一种常见的信号处理技术,用于将信号分解为不同频率的成分。
而快速傅里叶变换(FFT)是一种高效的算法,用于实现谱分析。
FFT在谱分析中的应用十分广泛,不仅用于音频和语音处理,还用于图像处理、无线通信、医学图像和地震勘探等领域。
在本文中,我们将探讨FFT在信号处理和谱分析中的原理、应用和局限性。
FFT是一种通过将信号从时域转换为频域来进行谱分析的算法。
它是对傅里叶变换的一种快速实现方法,可以在O(nlogn)的时间复杂度内计算出信号的频谱。
与传统的傅里叶变换相比,FFT具有更快的计算速度和更高的效率。
FFT的基本原理是将信号分解为不同频率的正弦和余弦波。
通过将信号转换为频域,我们可以得到信号的频谱图,显示出信号中各个频率的振幅和相位信息。
这使得我们能够对信号进行更详细、更准确的分析和处理。
在谱分析中,FFT常用于以下几个方面:1.音频处理:通过将音频信号进行FFT分析,我们可以获取音频信号的频谱信息,比如声音的音高、音色和音量等。
这在音乐制作、语音识别和音频编解码等领域中具有广泛的应用。
2.图像处理:FFT也被广泛应用于图像处理中的频域滤波和频谱分析。
通过将图像进行FFT变换,我们可以将图像分解为不同频率的成分,实现图像的高通滤波、低通滤波、锐化和模糊等操作。
3.无线通信:FFT在无线通信中的应用非常广泛。
它可以用于信号调制和解调、信道估计和均衡、频谱分析和频域均衡等方面。
通过对信号进行FFT变换,我们可以对无线信号进行更准确、更高效的处理和分析。
4.医学图像:FFT也广泛应用于医学图像处理中。
通过将医学图像进行FFT变换,我们可以提取出图像的频谱信息,实现图像增强、边缘检测、纹理分析和图像识别等操作。
尽管FFT在谱分析中有很多优点,但也存在一些局限性。
首先,FFT假设信号是周期的,并且对于非周期信号的处理效果可能较差。
其次,FFT对噪声和干扰比较敏感,可能会对频谱估计产生较大的误差。
fft谱分析实验报告
fft谱分析实验报告实验名称:FFT谱分析实验报告实验目的:1. 学习和掌握FFT(快速傅里叶变换)算法的原理和相关知识。
2. 掌握使用FFT算法进行信号频谱分析的方法和步骤。
3. 通过实验探究不同信号的频谱特征。
实验器材:1. 个人电脑或计算机设备。
2. 谱分析软件(如MATLAB、Python中的numpy.fft模块等)。
实验步骤:1. 准备待分析的信号。
可以是一个模拟信号(如音频或振动信号),也可以是一个数字信号(如从传感器获取的数据)。
2. 打开谱分析软件,并将信号导入到软件中。
3. 使用FFT算法对信号进行频谱分析。
根据软件的具体操作方法,选择合适的参数和设置,如采样率、频率范围等。
4. 确认参数设置无误后,运行软件执行FFT算法,获得信号的频谱图。
5. 分析并解读频谱图。
观察频谱图中的峰值、幅值等信息,进一步了解信号的频谱特征。
实验结果:1. 频谱图:根据实际数据和运行软件获得的结果,绘制信号的频谱图。
2. 频谱特征分析:根据观察和分析频谱图,记录和分析信号的频谱特征(如频率分布、幅值变化等)。
实验讨论和结论:1. 对不同信号的频谱图进行比较和分析,探究信号的不同频谱特征。
2. 讨论和分析不同参数设置对频谱图的影响,如采样率、频率范围等。
3. 总结实验中遇到的问题和解决方案,提出改进和优化的建议。
实验总结:通过本次实验,我们学习和掌握了FFT谱分析的原理和方法。
通过对不同信号的频谱分析,我们了解了信号的频谱特征,并探讨了不同参数设置对频谱图的影响。
实验过程中,遇到了一些问题,并通过分析和解决,不断提高了实验的准确性和可靠性。
通过本次实验,我们对FFT谱分析有了更深入的理解,为以后的信号处理和频谱分析工作奠定了基础。
FFT变换频谱分析
FFT变换频谱分析FFT变换(Fast Fourier Transform)是一种用于频谱分析的数学算法,它可以将时域信号转换为频域信号。
FFT变换在信号处理、图像处理等领域具有广泛的应用。
本文将介绍FFT变换的原理和应用,并讨论一些常见的频谱分析技术。
1.傅里叶变换和FFT变换傅里叶变换是一种数学算法,它可以将一个时间函数分解为一系列的复指数函数。
傅里叶变换的公式是:X(f) = ∫x(t)e^(-j2πft)dt其中x(t)是时间函数,X(f)是频率函数。
傅里叶变换可以实现任意时域函数到频域函数的转换,但是计算复杂度很高。
FFT变换是一种快速算法,它可以高效地计算傅里叶变换。
FFT变换的原理是将信号分解为子问题,然后逐步求解这些子问题。
FFT算法的时间复杂度约为Nlog(N),而傅里叶变换的时间复杂度为N^22.FFT变换的应用在音频处理中,FFT变换可以将音频信号分解为频谱分量。
通过分析频谱信息,可以提取音频的基频、谐波和噪声等特征。
这些特征可以用于音频编码、音乐分析和语音识别等应用。
在振动分析中,FFT变换可以将振动信号转化为频域信号。
通过分析频谱信息,可以确定机械系统的工作状态、损坏程度和故障原因。
振动分析广泛应用于机械设计、故障诊断和预测维护等领域。
在图像处理中,FFT变换可以将图像转化为频域信号。
通过分析频谱信息,可以实现图像增强、图像压缩和图像识别等应用。
图像处理中的FFT变换常用于频域滤波和频谱分析。
3.频谱分析技术频谱分析是对信号频谱特性进行分析和处理的过程。
常见的频谱分析技术包括功率谱密度估计、波形分析和谱图绘制等。
功率谱密度估计是一种估计信号频谱密度的方法。
常用的功率谱密度估计算法有周期图法、最小二乘法和自相关法等。
功率谱密度估计可以用于信号的频谱特性分析和噪声的特征提取。
波形分析是对信号波形进行时域和频域分析的方法。
波形分析可以揭示信号的周期性、振幅和频率等特性。
常见的波形分析方法有峰值检测、自相关分析和周期性分析等。
实验二_应用FFT对信号进行频谱分析
1. 三、实验内容和结果:高斯序列的时域和频域特性:高斯序列的时域表达式:2(),015()0,n p q a e n x n -⎧⎪≤≤=⎨⎪⎩其它固定参数p=8,改变参数q 的值, 记录时域和频域的特性如下图。
图 1i. 结论: 从时域图中可以看到, q 参数反应的是高斯序列能量的集中程度: q 越小, 能量越集中, 序列偏离中心衰减得越快, 外观上更陡峭。
同时, 随着q 的增大, 时域序列总的能量是在增大的。
频域上, 对应的, 随着q 的增加, 由于时域序列偏离中心的衰减的缓慢, 则高频分量也就逐渐减, 带宽变小: 时域上总的能量增大, 故也可以看到低频成分的幅度都增大。
固定参数q, 改变参数p, 记录时域和频域的特性如下图 2.图 22. 结论: p 是高斯序列的对称中心, p 的变化在时域表现为序列位置的变化。
由于选取的矩形窗函数一定, p 值过大时, 会带来高斯序列的截断。
并且随着p 的增大, 截断的越来越多。
对应地, 看频域上的变化: 截断的越多, 高频的成分也在增多, 以至发生谱间干扰, 泄露现象变得严重。
从图中可以看到, 在p=13时, 已经有混叠存在。
当p=14时, 混叠进一步加大, 泄露变得更明显。
衰减正弦序列的时域和幅频特性:sin(2),015()0,n b e fn n x n απ-⎧≤≤=⎨⎩其它改变参数f, 记录时域和幅频特性如下图3.图 33. 结论: 随着f 的增大, 时域上可以看到, 序列的变化明显快多了。
从幅度谱上看, 序列的高频分量逐渐增多, 低频分量逐渐减小, 以至于发生严重的频谱混叠。
当f 增大到一定的程度, 从图中可以看到, f=0.4375和f=0.5625时的幅度谱是非常相似的, 此时已经很难看出其幅度谱的区别。
三角序列的时域表达式和对应的时域和幅频特性如图 4:c 1,03()8,470,n n x n n n n +≤≤⎧⎪=-≤≤⎨⎪⎩其它图 4结论: 随着fft 取点数的增多, 能够看到的幅度谱的频率分量变得丰富, 得到的是高密度更高的谱, 也就是减轻了栅栏效应。
用FFT对信号作频谱分析
实验三:用FFT 对信号作频谱分析一、实验原理与方法1、用FFT 对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N π2,因此要求D N ≤π2。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。
2、周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
3、对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
二、实验内容1、对以下序列进行FFT 谱分析: )()(41n R n x =⎪⎩⎪⎨⎧≤≤-≤≤+=nn nn n n x 其他0748301)(2⎪⎩⎪⎨⎧≤≤-≤≤-=n n n n n n x 其他0743304)(3选择FFT 的变换区间N 为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析。
程序见附录3.1、实验结果见图3.1。
2、对以下周期序列进行谱分析:n n x 4cos )(4π=n n n x 8cos 4cos )(5ππ+=选择FFT 的变换区间N 为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。
程序见附录3.2、实验结果见图3.2。
3、对模拟周期信号进行频谱分析:t t t t x πππ20cos 16cos 8cos )(6++=选择采样频率Fs=64Hz ,FFT 的变换区间N 为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。
利用FFT对信号进行频谱分析
利用FFT对信号进行频谱分析傅里叶变换(Fast Fourier Transform,FFT)是一种用于将信号从时域转换为频域的数学算法,在信号处理中经常被用于频谱分析。
频谱分析可以用来确定信号中包含的不同频率的成分,帮助我们理解信号的特性以及包含的信息。
在进行频谱分析之前,我们首先需要了解一些基本概念。
信号可以被看作是一个函数,表示随时间变化的其中一种物理量。
这个函数可以在时域上表示,也可以在频域上表示。
在时域中,信号在不同时间点上的取值。
而在频域中,信号的成分按其频率进行表示,即信号中包含的不同频率的成分。
傅里叶变换可以将一个信号从时域转换为频域,通过将信号分解成一系列正弦和余弦的和,表示信号中包含的不同频率的成分。
FFT是一种高效的算法,能够在计算机上快速地进行傅里叶变换,使频谱分析变得可行。
进行频谱分析的基本步骤如下:1.采集信号:首先需要获得要分析的信号,可以通过传感器、麦克风等设备采集到的模拟信号,或者从文件中读取的数字信号。
2.离散化:将连续的信号离散化,即将信号在时间上进行采样,得到一系列离散的数据点,通常是均匀采样。
3.预处理:根据具体应用的需求,对信号进行预处理。
预处理的方法包括去除噪声、滤波、去除基线漂移等。
4.应用FFT:将预处理后的信号应用FFT算法,将信号从时域转换为频域。
FFT算法可以将信号转换为频谱表示,显示信号中不同频率的成分。
5.频谱分析:对得到的频谱进行分析,可以观察信号中存在的频率成分及其相对强度。
可以通过频谱分析来确定信号中的主要频率、频率的幅值等信息。
6.可视化:可以将得到的频谱进行可视化,使得结论更加直观明了。
常见的可视化方法包括将频谱绘制成线图、柱状图、瀑布图等形式。
频谱分析可应用于多个领域,如音频处理、图像处理、通信信号处理等。
在音频处理中,许多音频效果的实现都依赖于对音频信号的频谱分析,如均衡器、滤波器等。
在通信中,频谱分析可以帮助我们理解信号传输中的问题,例如频率偏移、多径效应等。
数字信号处理实验三--用FFT作谱分析
XXXX 大学实验报告XXXX 年 XX 月 XX 日课程名称: 数字信号处理 实验名称:用FFT 作谱分析班级: XXXXXXXX 班 学号: XXXXXXXX 姓名: XXXX实验三 用FFT 作谱分析一、实验目的(1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质); (2) 熟悉FFT 算法的原理;(3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法分析误差及其原因,以便在实际中正确应用FFT 。
二、实验内容(1)x(n)={1 0≤n ≤50 其他构造DFT 函数计算x(n)的10点DFT ,20点DFT并画出图形;(2)利用FFT 对下列信号逐个进行谱分析并画出图形 a 、x 1(n)=R 4(n); b 、x 2(n)=cos π4n ; c 、x 3(n)=sin π8n以上3个序列的FFT 变换区间N=8,16(2)设一序列中含有两种频率成份,f1=2HZ,f2=2.05HZ,采样频率取为fs =10HZ ,即)/2sin()/2sin()(21s s f n f f n f n x ππ+=要区分出这两种频率成份,必须满足N>400,为什么? a.取x(n)(0≤n<128)时,计算x(n)的DFT X(k)b.将a 中的x (n )以补零方式使其加长到0≤n<512,计算X(k)c.取x(n)( 0≤n<512),计算X(k)(3)令)()()(32n x n x n x +=用FFT 计算16点离散傅立叶变换并画出图形,分析DFT 的对称性 (4))()()(32n jx n x n x +=用FFT 计算16点离散傅立叶变换并画出图形,分析DFT 的对称性 三、实验代码 (1)1、 代码function [Xk]=dft(xn,N)n=[0:1:N-1];k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n'*k; WNnk=WN.^nk;Xk=xn*WNnk; %离散傅立叶变换方法定义N=10; %10点DFT n1=[0:N-1];x1=[ones(1,6),zeros(1,N-6)]; %生成1行6列的单位矩阵和1行N-6列的0矩阵 Xk1=dft(x1,N); %10点DFT figure(1); subplot(2,1,1);stem(n1,x1); %画火柴图 xlabel(‘n’);ylabel(‘x(n)’); subplot(2,1,2); stem(n1,abs(Xk1)); xlabel(‘n’);ylabel(‘x(n)’); N=20; n2=[0:N-1];x2=[ones(1,6),zeros(1,14)];Xk2=dft(x2,N);figure(2);subplot(2,1,1);stem(n2,x2);xlabel(‘n’);ylabel(‘x(n)’);subplot(2,1,2);stem(n2,abs(Xk2));xlabel(‘n’);ylabel(‘x(n)’);2、运行结果图1 10点DFT图2 20点DFT3、结果分析定义x(n)的N 点DFT 为由定义知:DFT 具有隐含周期性,周期与DFT 的变换长度N 一致,这说明,变换长度不一样,DFT 的结果也不一样(2)1、代码N=64;n=[0:N-1];x1=[ones(1,4),zeros(1,N-4)];%定义x1(n)=R 4(n) x2=cos((pi/4)*n); %定义x2(n)=cos π4nx3=sin((pi/8)*n); %定义x3(n)=sin π8n y1=fft(x1); y2=fft(x2);y3=fft(x3); %分别进行DFT figure(1); m1=abs(y1);subplot(2,1,1); %绘制x1(n)的图形 stem(n,x1);subplot(2,1,2); %绘制x1(n)的DFT 图形 stem(n,m1) figure(2);m2=abs(y2);subplot(2,1,1);stem(n,x2); %绘制x2(n)的图形 subplot(2,1,2);stem(n,m2); %绘制x1(n)的DFT 图形 figure(3);m3=abs(y3);subplot(2,1,1);stem(n,x3); %绘制x3(n)的图形 subplot(2,1,2);stem(n,m3); %绘制x1(n)的DFT 图形2、运行结果10)()(1-≤≤=∑-=N k W n x k X N n nkNNjN eW π2-=其中图3 x1(n)的DFT前后图形图4 x2(n)的DFT前后图形图5 x3(n)的DFT前后图形3、结果分析由图可以看出,离散序列的DFT与对应连续函数的FT有对应关系,不同之处在于DFT的结果是离散的,而FT的结果是连续的,再者,DFT结果与DFT 的变换长度N有关。
实验三用FFT对信号作频谱分析_实验报告
实验三用FFT对信号作频谱分析_实验报告一、实验目的1.理解离散傅里叶变换(FFT)的原理和应用;2.学会使用FFT对信号进行频谱分析;3.掌握频谱分析的基本方法和实验操作。
二、实验原理离散傅里叶变换(FFT)是一种用来将时域信号转换为频域信号的数学工具。
其基本原理是将连续时间信号进行离散化,然后通过对离散信号进行傅里叶变换得到离散频域信号。
傅里叶变换(Fourier Transform)是一种将时域信号转换为频域信号的方法。
在信号处理中,经常需要对信号的频谱进行分析,以获取信号的频率分量信息。
傅里叶变换提供了一种数学方法,可以将时域信号转换为频域信号,实现频谱分析。
在频谱分析中,我们常常使用快速傅里叶变换(Fast Fourier Transform,FFT)算法进行离散信号的频谱计算。
FFT算法可以高效地计算出离散信号的频谱,由于计算复杂度低,广泛应用于信号处理和频谱分析的领域。
频谱分析的流程一般如下:1.采集或生成待分析的信号;2.对信号进行采样;3.对采样得到的信号进行窗函数处理,以改善频谱的分辨率和抑制信号泄漏;4.使用FFT算法对窗函数处理得到的信号进行傅里叶变换;5.对傅里叶变换得到的频谱进行幅度谱和相位谱分析;6.对频谱进行解释和分析。
三、实验内容实验所需材料和软件及设备:1.信号发生器或任意波形发生器;2.数字示波器;3.计算机。
实验步骤:1.连接信号发生器(或任意波形发生器)和示波器,通过信号发生器发送一个稳定的正弦波信号;2.调节信号频率、幅度和偏置,得到不同的信号;3.使用数字示波器对信号进行采样,得到离散时间信号;4.对采样得到的信号进行窗函数处理;5.对窗函数处理得到的信号进行FFT计算,得到频谱;6.使用软件将频谱进行幅度谱和相位谱的分析和显示。
四、实验结果与分析1.信号频谱分析结果如下图所示:(插入实验结果图)从频谱图中可以看出,信号主要集中在一些频率上,其他频率基本没有,表明信号主要由该频率成分组成。
matlab fft谱分析实验报告
Matlab FFT 谱分析实验报告介绍本实验报告旨在通过使用Matlab进行FFT(快速傅里叶变换)谱分析,详细介绍该方法的步骤和应用。
FFT是一种常用的信号处理技术,可将时域信号转换为频域信号,并提供了对信号频谱特征进行分析的能力。
实验步骤以下是进行FFT谱分析的步骤:1. 导入信号数据首先,我们需要将待分析的信号数据导入Matlab中。
可以使用load函数加载存储信号数据的文件,或者直接在脚本中定义信号数据。
2. 对信号数据进行预处理在进行FFT谱分析之前,通常需要对信号数据进行预处理。
这可能包括去除噪声、滤波等操作。
在本实验中,我们将假设信号数据已经经过了必要的预处理步骤。
3. 执行FFT变换使用fft函数对信号数据执行FFT变换。
该函数将信号从时域转换为频域,并返回频谱数据。
4. 计算频谱幅度通过对FFT变换结果应用幅度函数,可以计算出信号在不同频率下的幅度。
这将揭示信号中包含的主要频率分量。
5. 绘制频谱图通过使用Matlab的绘图功能,可以将频谱数据可视化为频谱图。
频谱图可以帮助我们更好地理解信号的频谱分布情况。
6. 分析结果根据频谱图,我们可以观察信号的主要频率成分以及它们的幅度。
这有助于我们了解信号的频域特征,并可以用于识别信号中的噪声或其他异常。
实验应用FFT谱分析在许多领域中都有广泛的应用。
以下是一些常见的应用领域:1. 信号处理FFT谱分析可用于处理和分析各种类型的信号,例如音频信号、生物医学信号和电力信号等。
通过分析信号的频谱特征,我们可以提取出信号中的重要信息。
2. 通信系统在通信系统中,FFT谱分析可以用于频谱分配、频谱监测和信号调制等方面。
通过分析信号的频谱特征,我们可以更好地设计和优化通信系统。
3. 振动分析FFT谱分析可用于振动分析领域,用于分析和诊断机械系统的振动特征。
通过分析振动信号的频谱,可以检测到机械系统中的故障和异常。
4. 音频处理在音频处理中,FFT谱分析可用于音频信号的频谱分析、音频合成和音频特征提取等方面。
fft谱分析实验报告
FFT谱分析实验报告1. 引言谱分析是一种常见的信号处理技术,用于将一个信号分解为不同频率的成分。
FFT(快速傅里叶变换)是一种高效的算法,用于计算离散傅里叶变换,广泛应用于谱分析中。
本实验旨在探究FFT在信号处理中的应用,并通过实验验证其有效性。
2. 实验目的本实验旨在: - 理解FFT算法的原理和实现方法; - 学习如何使用FFT对信号进行频谱分析; - 验证FFT算法的准确性和有效性。
3. 实验步骤3.1 准备实验材料和工具为了进行谱分析实验,我们需要准备以下材料和工具: - 信号源(例如音频文件、信号发生器等) - 电脑(用于运行信号处理软件) - 信号处理软件(例如MATLAB、Python等)3.2 选择信号源在本实验中,我们选择了一个音频文件作为信号源。
音频文件包含了不同频率的声音信号,适合用于谱分析。
3.3 导入信号源使用信号处理软件,将选择的音频文件导入到程序中。
3.4 实施FFT算法根据FFT算法的原理,我们可以使用信号处理软件实施FFT算法。
以下是实施FFT算法的步骤: 1. 对导入的音频信号进行采样。
2. 将采样后的信号进行傅里叶变换,得到信号的频域表示。
3. 可选地,对频域表示进行滤波或其他信号处理操作。
4. 将处理后的信号进行逆傅里叶变换,得到恢复后的信号。
3.5 分析结果通过实施FFT算法,我们得到了信号的频域表示。
可以通过绘制频谱图来直观地观察信号的频率成分。
频谱图通常以频率为横轴,幅度为纵轴。
通过观察频谱图,我们可以分析信号中存在的频率成分及其强度。
3.6 结果验证为了验证FFT算法的有效性,我们可以选择一些已知频率的信号作为测试样本。
通过对测试样本进行FFT分析,并与已知频率进行比较,可以评估FFT算法的准确性。
4. 结果与讨论通过实验,我们成功使用FFT算法对音频信号进行了谱分析。
通过观察频谱图,我们可以清楚地看到信号中存在的频率成分。
在结果验证部分,我们与已知频率进行了比较,结果表明FFT算法具有较高的准确性。
用FFT对信号做频谱分析
用FFT 对信号做频谱分析一、实验目的学习用FFT 对连续信号和时域离散信号进行谱分析方法,了解可能出现的分析误差及其原因,以便应用FFT 。
二、实验原理用FFT 对信号频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对于信号进行谱分析的重要问题是频谱分析率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频谱分辨率是2ᴨ/N ≤D.可以根据此式选择FFT 变换区间N 。
误差主要来自于用FFT 做频谱分析时,得到的是离散谱,而信号(周期信号外)是连续谱,只有当N 较大时,离散谱的包络才能逼近连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
三、实验步骤及内容(1)对以下序列进行谱分析:)()(41n n Rx =n n n n n n x 其他7430081)(2≤≤≤≤⎪⎩⎪⎨⎧-+= n7430034)(3其他≤≤≤≤⎪⎩⎪⎨⎧--=n n n n n x 选择FFT 的变换区间N 为8或16两种进行谱分析。
分别打印其幅频特性曲线,并进行对比,分析,讨论。
(2)对以下周期序列进行谱分析:n n x 4cos )(4π=n n n x 8cos 4cos )(5ππ+=选择FFT 的变换区间N 为8或16两种情况分别对以上序列进行谱分析。
分别打印幅频特性曲线,并进行对比,分析和讨论。
(3)对模拟周期信号进行谱分析:t t t t x πππ20cos 16cos 8cos )(6++=选择采样频率Fs=64Hz ,对变换区间N=16,32,64三种情况进行谱分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验 4 用FFT 进行谱分析
专业班级 学号 姓名 报告日期 .
一、实验目的
1.进一步加深对DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,
所以FFT 的运算结果必然满足DFT 的基本性质)。
2.熟悉FFT 算法原理和FFT 子程序的应用。
3.学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。
二、实验原理
1.快速傅立叶变换(FFT)算法
长度为N 的序列)(n x 的离散傅立叶变换)(k X 为:
∑-=-==1
01,....,0,)()(N n nk
N N k W n x k X
N 点的DFT 可以分解为两个N/2点的DFT ,每个N/2点的DFT 又可以分解为两个N/4点的DFT 。
依此类推,当N 为2的整数次幂时(M
N 2=),由于每分解一次降低一阶幂次,所以通过M 次的分解,最后全部成为一系列2点DFT 运算。
以上就是按时间抽取的快速傅立叶变换(FFT)算法。
当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT ,可以用末尾补零的方法,使其长度延长至2的整数次方。
序列)(k X 的离散傅立叶反变换为
x n N
X k W
n N N
nk k N ()(),,....,=
=--=-∑1
010
1
离散傅立叶反变换与正变换的区别在于N W 变为1
-N W ,并多了一个N 1的运算。
因为N W 和1
-N
W 对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT 和快速傅
立叶反变换(IFFT )算法合并在同一个程序中。
2.利用FFT 进行频谱分析
若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT 运算求得)(k X ,
)(k X 就代表了序列在[]π2,0之间的频谱值。
幅度谱 )()()(22
k X k X k X I R +=
相位谱 )
()
(arctan
)(k X k X k R I =ϕ
若信号是模拟信号,用FFT 进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT 来对连续信号进行谱分析。
按采样定理,采样频率s f 应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。
用FFT 对模拟信号进行谱分析的方框图如下所示。
三、主要实验仪器及材料
微型计算机、Matlab6.5教学版、TC 编程环境。
四、实验内容
1.知识准备
实验前学生应认真复习DFT 和FFT 有关的知识,掌握快速傅里叶变换的基本原理以及如何用FFT 等计算信号频谱。
2.离散时间信号(序列)的产生
利用MATLAB 或C 语言编程产生和绘制下列两有限长序列:
)8
cos(nT π
、
nT
nT )
sin(、)5.0cos(*2)25.0sin(nT nT ππ+ )25.0cos(2)125.0cos(nT nT ππ+、)25.0sin(nT π
3.用一种语言编写FFT 的通用程序块
4.画主程序实现框图并编写主程序,实现信号的谱分析。
5.记录下实验内容中各信号)(n x 的X(k)值,作出频谱图。
五、思考题
1. 根据实验中各)(n x 的X(k)值以及频谱图,说明参数的变化对信号频谱产生哪些影响?
2.如果周期信号的周期预先不知道,如何用FFT 进行分析?
六、实验报告要求
1.简述实验原理及目的。
2.结合实验中所得给定典型序列幅频特性曲线,与理论结合比较,并分析说明误差产生的原因以及用FFT 作谱分析时有关参数的选择方法。
3.总结实验所得主要结论。
4.简要回答思考题。
FFT 通用程序块:
void fft(double *dr,double *di,int N) { int lh,m; lh=N/2;
m=int(log(N)/log(2)+0.9999); int j=lh; int k;
for(int i=1;i<(N-1);i++) { if(i<j) { double tr,ti; tr=dr[i];ti=di[i]; dr[i]=dr[j];di[i]=di[j]; dr[j]=tr;di[j]=ti;
} k=lh;
while(j>=k) {j=j-k;k=k/2;} j=j+k;
}
for(i=1;i<=m;i++) { int b=int(pow(2.0,(i-1))); for(j=0;j<b;j++)
{
double p;
p=j*pow(2.0,(m-i))*2.0*PI/N;
for(k=j;k<N; )
{
double tr,ti;
tr=dr[k+b]*cos(p)+di[k+b]*sin(p);
ti=di[k+b]*cos(p)-dr[k+b]*sin(p);
dr[k+b]=dr[k]-tr;
di[k+b]=di[k]-ti;
dr[k]=dr[k]+tr;
di[k]=di[k]+ti;
k=int(k+pow(2.0,i));
}
}
}
}
4.
clc
clear
n=1:15;
x1=cos(n*pi)/4;
subplot(2,2,1);stem(x1,'.');title(' ');
y1=fft(x1,4);
i=0:3;
subplot(2,2,2); stem(i,abs(y1),'.');
xlabel('(N=4 wk=2pik/N)k');
ylabel('[X1(k)]');title('N=4的幅频特性曲线'); y1=fft(x1,8); i=0:7;
subplot(2,2,3); stem(i,abs(y1),'.');
xlabel('(N=8 wk=2pik/N)/k'); ylabel('[X1(k)]');
y1=fft(x1,16);title('N=8的幅频特性曲线'); i=0:15;
subplot(2,2,4); stem(i,abs(y1),'.');
xlabel('(N=32 wk=2pik/N)k');
ylabel('[X1(k)]');title('N=16的幅频特性曲线');
5
10
15
-0.2
-0.100.1
0.2
(N=4 wk=2pik/N)k [X 1(k )]
N=4的幅频特性曲线
(N=8 wk=2pik/N)/k
[X 1(k )]
N=8的幅频特性曲线0
51015
(N=32 wk=2pik/N)k
[X 1(k )]
N=16的幅频特性曲线
2)
00.51 1.52
0.005
0.01
0.0150
123
(N=4 wk=2pik/N)k [X 1(k )]
2468
(N=8 wk=2pik/N)/k
[X 1(k )]
N=8的幅频特性曲线
51015
(N=32 wk=2pik/N)k
[X 1(k )]
N=16的幅频特性曲线
3)
5
10
15
-4-2
2
123
(N=4 wk=2pik/N)k [X 1(k )]
N=4的幅频特性曲线
(N=8 wk=2pik/N)/k
[X 1(k )]
N=8的幅频特性曲线0
51015
(N=32 wk=2pik/N)k
[X 1(k )]
N=16的幅频特性曲线
4)
-20
2
4
123
(N=4 wk=2pik/N)k [X 1(k )]
2468
(N=8 wk=2pik/N)/k
[X 1(k )]
N=8的幅频特性曲线0
51015
(N=32 wk=2pik/N)k
[X 1(k )]
N=16的幅频特性曲线
5)sin(0.2
-1
-0.500.5
1
123
(N=4 wk=2pik/N)k [X 1(k )]
N=4的幅频特性曲
线
(N=8 wk=2pik/N)/k
[X 1(k )]
N=8的幅频特性曲
线(N=32 wk=2pik/N)k
[X 1(k )]
N=16的幅频特性曲线
实验总结:加深对DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法,所以FFT 的运算结果必然满足DFT 的基本性质)。
熟悉了FFT 算法原理和FFT 子程序的应用。
学会了FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。