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

合集下载

实验二用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对信号做频谱分析

用FFT对信号做频谱分析

用FFT对信号做频谱分析傅里叶变换(Fourier Transform)是一种将信号从时域转换到频域的数学方法,可用于信号的频谱分析。

通过傅里叶变换,我们可以将时域上的信号转换为频域上的频谱,帮助我们理解信号的频率组成以及各个频率分量的强弱。

频谱分析是对信号进行频率分析的过程,是了解信号在频域上的特性和频率成分的一种方法。

通过频谱分析,我们可以获得信号的频率分布情况,帮助我们了解信号的频率成分、频率峰值等信息。

在进行频谱分析时,常用的方法之一是采用快速傅里叶变换(FFT)。

FFT是一种高效的算法,能够快速计算离散傅里叶变换(DiscreteFourier Transform)。

下面将详细介绍FFT在频谱分析中的应用。

首先,我们需要将待分析的信号转换为数字信号,并对其进行采样,得到一个离散的信号序列。

然后,使用FFT算法对这个离散信号序列进行傅里叶变换,得到信号的频谱。

在进行FFT之前,需要进行一些预处理工作。

首先,需要将信号进行加窗处理,以减少泄露效应。

加窗可以选择矩形窗、汉宁窗、汉明窗等,不同的窗函数对应不同的性能和应用场景。

其次,需要对信号进行零填充,即在信号序列末尾添加零值,以增加频谱的分辨率。

零填充可以提高频谱的平滑度,使得频域上的分辨率更高。

接下来,我们使用FFT算法对经过加窗和零填充的信号序列进行傅里叶变换。

FFT算法将离散信号变换为离散频谱,得到信号的频率成分和强度。

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对信号作频谱分析

用FFT对信号作频谱分析快速傅立叶变换(FFT)是一种在信号处理中常用于频谱分析的方法。

它是傅立叶变换的一种快速算法,通过将信号从时间域转换到频域,可以提取信号的频率信息。

FFT算法的原理是将信号分解为不同频率的正弦波成分,并计算每个频率成分的幅度和相位。

具体而言,FFT将信号划分为一系列时间窗口,每个窗口内的信号被认为是一个周期性信号,然后对每个窗口内的信号进行傅立叶变换。

使用FFT进行频谱分析可以得到信号的频率分布情况。

频谱可以显示信号中各个频率成分的强度。

通过分析频谱可以识别信号中的主要频率成分,判断信号中是否存在特定频率的干扰或噪声。

常见的应用包括音频信号处理、图像处理、通信系统中的滤波和解调等。

使用FFT进行频谱分析的步骤如下:1.首先,获取待分析的信号,并确保信号是离散的,即采样频率与信号中的最高频率成分满足奈奎斯特采样定理。

2.对信号进行预处理,包括去除直流分量和任何不需要的干扰信号。

3.对信号进行分段,分段后的每个窗口长度在FFT算法中通常为2的幂次方。

常见的窗口函数包括矩形窗、汉明窗等。

4.对每个窗口内的信号应用FFT算法,将信号从时间域转换到频域,并计算每个频率成分的幅度和相位。

5.对所有窗口得到的频谱进行平均处理,以得到最终的频谱分布。

在使用FFT进行频谱分析时需要注意的问题有:1.噪声的影响:FFT对噪声敏感,噪声会引入幅度偏差和频率漂移。

可以通过加窗等方法来减小噪声的影响。

2.分辨率的选择:分辨率是指在频谱中能够分辨的最小频率间隔。

分辨率与信号长度和采样频率有关,需要根据需求进行选择。

3.漏泄效应:当信号中的频率不是FFT长度的整数倍时,会出现漏泄效应。

可以通过零填充等方法来减小漏泄效应。

4.能量泄露:FFT将信号限定在一个周期内进行计算,如果信号过长,则可能导致部分频率成分的能量泄露到其他频率上。

总之,FFT作为信号处理中常用的频谱分析方法,能够提取信号中的频率信息,广泛应用于多个领域。

应用FFT实现信号频谱分析

应用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算法和相应的软件工具,对信号进行频谱分析,以便于进一步的研究和应用。

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

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

实验四程序代码及实验结果图: (1)对以下序列进行谱分析。

⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它n n n n n n x n R n x ,074,330,4)(,074,830,1)()()(3241选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。

分别打印其幅频特性曲线。

并进行对比、分析和讨论。

实验程序代码及结果如下:%------------产生激励序列------------% x1n = ones(1,4); %产生序列向量x1(n)=R4(n) M=8;xa=1:(M/2); xb=(M/2):-1:1;x2n=[xa,xb]; %产生长度为8的三角波序列x2(n) x3n=[xb,xa]; %产生长度为8的倒三角波序列x3(n)n1 = 0:length(x1n)-1; %分别求出序列长度 n2 = 0:M-1; n3 = 0:M-1;n8k= 0:2/8:2-2/8; %产生数字归一化频率 n16k= 0:2/16:2-2/16; n32k= 0:2/32:2-2/32;%------------fft 做频谱分析------------% X1k8=fft(x1n,8); %x1n 的8点DFT X1k16=fft(x1n,16); %x1n 的16点DFT X1k32=fft(x1n,32); %x1n 的32点DFTX2k8=fft(x2n,8); %x2n 的8点DFT X2k16=fft(x2n,16); %x2n 的16点DFT X2k32=fft(x2n,32); %x2n 的32点DFTX3k8=fft(x3n,8); %x3n 的8点DFT X3k16=fft(x3n,16); %x3n 的16点DFT X3k32=fft(x3n,32); %x3n 的32点DFT%------------绘制x1n 的8/16/32点DFT------------% subplot(3,4,1);stem(n1,x1n); %绘制时域采样波形图title('x1(n)的时域波形图'); %标题xlabel('n'); %横坐标名称ylabel('时域幅度值'); %纵坐标名称subplot(3,4,2);stem(n8k,abs(X1k8)); %绘制8点DFT的幅频特性图title('x1(n)的8点DFT]'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,3);stem(n16k,abs(X1k16)); %绘制16点DFT的幅频特性图title('x1(n)的16点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,4);stem(n32k,abs(X1k32)); %绘制32点DFT的幅频特性图title('x1(n)的32点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称%------------绘制x2n的8/16/32点DFT------------%subplot(3,4,5);stem(n2,x2n); %绘制时域采样波形图title('x2(n)的时域波形图'); %标题xlabel('n'); %横坐标名称ylabel('时域幅度值'); %纵坐标名称subplot(3,4,6);stem(n8k,abs(X2k8)); %绘制8点DFT的幅频特性图title('x2(n)的8点DFT]'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,7);stem(n16k,abs(X2k16)); %绘制16点DFT的幅频特性图title('x2(n)的16点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,8);stem(n32k,abs(X2k32)); %绘制32点DFT的幅频特性图title('x2(n)的32点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称%------------绘制x3n的8/16/32点DFT------------%subplot(3,4,9);stem(n3,x3n); %绘制时域采样波形图title('x3(n)的时域波形图'); %标题xlabel('n'); %横坐标名称ylabel('时域幅度值'); %纵坐标名称subplot(3,4,10);stem(n8k,abs(X3k8)); %绘制8点DFT的幅频特性图title('x3(n)的8点DFT]'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,11);stem(n16k,abs(X3k16)); %绘制16点DFT的幅频特性图title('x3(n)的16点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称subplot(3,4,12);stem(n32k,abs(X3k32)); %绘制32点DFT的幅频特性图title('x3(n)的32点DFT'); %标题xlabel('ω/π');%横坐标名称ylabel('幅度'); %纵坐标名称2、对以下周期序列进行谱分析。

FFT算法分析实验实验报告

FFT算法分析实验实验报告

FFT算法分析实验实验报告一、实验目的快速傅里叶变换(Fast Fourier Transform,FFT)是数字信号处理中一种非常重要的算法。

本次实验的目的在于深入理解 FFT 算法的基本原理、性能特点,并通过实际编程实现和实验数据分析,掌握 FFT 算法在频谱分析中的应用。

二、实验原理FFT 算法是离散傅里叶变换(Discrete Fourier Transform,DFT)的快速计算方法。

DFT 的定义为:对于长度为 N 的序列 x(n),其 DFT 为X(k) =∑n=0 到 N-1 x(n) e^(j 2π k n / N) ,其中 j 为虚数单位。

FFT 算法基于分治法的思想,将 N 点 DFT 分解为多个较小规模的DFT,从而大大减少了计算量。

常见的 FFT 算法有基 2 算法、基 4 算法等。

三、实验环境本次实验使用的编程语言为 Python,主要依赖 numpy 库来实现 FFT 计算和相关的数据处理。

四、实验步骤1、生成测试信号首先,生成一个包含不同频率成分的正弦波叠加信号,例如100Hz、200Hz 和 300Hz 的正弦波。

设定采样频率为 1000Hz,采样时间为 1 秒,以获取足够的采样点进行分析。

2、进行 FFT 计算使用 numpy 库中的 fft 函数对生成的测试信号进行 FFT 变换。

3、频谱分析计算 FFT 结果的幅度谱和相位谱。

通过幅度谱确定信号中各个频率成分的强度。

4、误差分析与理论上的频率成分进行对比,计算误差。

五、实验结果与分析1、幅度谱分析观察到在 100Hz、200Hz 和 300Hz 附近出现明显的峰值,对应于生成信号中的频率成分。

峰值的大小反映了相应频率成分的强度。

2、相位谱分析相位谱显示了各个频率成分的相位信息。

3、误差分析计算得到的频率与理论值相比,存在一定的误差,但在可接受范围内。

误差主要来源于采样过程中的量化误差以及 FFT 算法本身的近似处理。

利用FFT对信号进行频谱分析

利用FFT对信号进行频谱分析

∑-=--==101,....,0,)(1)(N k nk N N n W k X N n x (3.2) 离散傅立叶反变换与正变换的区别在于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 来对连续信号进行谱分析。

按采样定理,采样频率s f 应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。

用FFT 对模拟信号进行谱分析的方框图如下所示。

3.在运用DFT 进行频谱分析的过程中可能产生三种误差:(1)混叠序列的频谱是被采样信号频谱的周期延拓,当采样速率不满足Nyquist 定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。

避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解。

在一般情况下,为了保证不出现频谱混叠,在采样前,先进行抗混叠滤波。

(2)泄漏实际中我们往往用截短的序列来近似很长的甚至是无限长的序列,这样可以使用较短的DFT 来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。

抗混叠低通滤波器 采样T=1/f s N 点FFT泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
实验三:用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三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。

【实验结果如下】:
四、【附录】(实验中代码)
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),'.'); %绘制8点DFT的幅频特性图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('(1a) 16点DFT[x_1(n)]');xlabel('ω/π');ylabel('幅度'); %x2n 和 x3n
M=8;xa=1:(M/2); xb=(M/2):-1:1;
x2n=[xa,xb]; %产生长度为8的三角波序列x2(n)
x3n=[xb,xa];
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),'.'); %绘制8点DFT的幅频特性图title('(2a) 8点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,3);stem(f,abs(X3k8),'.'); %绘制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('(2a) 16点DFT[x_2(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,4);stem(f,abs(X3k16),'.'); %绘制8点DFT的幅频特性图title('(3a) 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),'.'); %绘制8点DFT的幅频特性图title('(4a) 8点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,3);stem(f,abs(X5k8),'.'); %绘制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('(4a) 16点DFT[x_4(n)]');xlabel('ω/π');ylabel('幅度'); subplot(2,2,4);stem(f,abs(X5k16),'.'); %绘制8点DFT的幅频特性图title('(5a) 16点DFT[x_5(n)]');xlabel('ω/π');ylabel('幅度');
%x8n
Fs=64; T=1/Fs;
N=16;n=0:N-1; %对于N=16的情况
nT = n*T;
x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT)
X8k16=fft(x8n,16);
N=16;
f=2/N*(0:N-1);
figure(4);
subplot(2,2,1);stem(f,abs(X8k16),'.'); %绘制8点DFT的幅频特性图title('(8a) 16点DFT[x_8(n)]');xlabel('ω/π');ylabel('幅度'); N=32;n=0:N-1; %对于N=16的情况
nT = n*T;
x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT)
X8k32=fft(x8n,32);
N=32;
f=2/N*(0:N-1);
subplot(2,2,2);stem(f,abs(X8k32),'.'); %绘制8点DFT的幅频特性图
title('(8a) 32点DFT[x_8(n)]');xlabel('ω/π');ylabel('幅度');
N=64;n=0:N-1; %对于N=16的情况
nT = n*T;
x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT)
X8k64=fft(x8n,64);
N=64;
f=2/N*(0:N-1);
subplot(2,2,3);stem(f,abs(X8k64),'.'); %绘制8点DFT的幅频特性图
title('(8a) 64点DFT[x_8(n)]');xlabel('ω/π');ylabel('幅度');
五、思考题及实验体会
通过实验,我知道了用FFT对信号作频谱分析是学习数字信号处理的重要内容。

经常需要进行谱分析的信号是模拟信号和时域离散信号。

对信号进行谱分析的重要问题是频谱分辨率D和分析误差。

频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2л/N≤D。

可以根据此式选择FFT的变换区间N。

误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。

周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。

如果不知道信号周期,可以尽量选择信号的观察时间长一些。

对模拟信号进行频谱分析时,首先要按照采样定理将其变成时域离散信号。

如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的普分析进行。

相关文档
最新文档