实验二 用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将其零频位置搬到频谱中心。
以上就是按时间抽取旳迅速傅立叶变换

实验二用DFT及FFT进行谱分析

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

用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、在实验之前,认真复习 DFT 和 FFT 有关的知识,阅读本实验原 理与方法和实验附录部分中和本实验有关的子程序,掌握子程序的原理 并学习调用方法。 2、编制信号产生子程序及本实验的频掊分析主程序。实验中需要用 到的基本信号包括: (1)高斯序列: (2)衰减正弦序列: (3)三角波序列: (4)反三角序列:
四、思考题
能说出哪一个低频分量更多一些吗?为什么? 2、 对一个有限长序列进行离散傅里叶变换(DFT),等价于将该序 列周期延拓后进行傅里叶级数(DFS)展开。因为 DFS 也只是取其中一 个周期来运算,所以 FFT 在一定条件下也可以用以分析周期信号序 列。如果实正弦信号,用 16 点的 FFT来做 DFS 运算,得到的频谱是信 号本身的真实谱吗?
(二)上机实验内容
1、观察高斯序列的时域和频域特性 ①固定信号中的参数 p=8,改变 q 的值,使 q 分别等于 2,4,8。观 察它们的时域和幅频特性,了解 q 取不同值的时候,对信号时域特性和 幅频特性的影响。 ②固定 q=8,改变 p,使 p 分别等于 8,13,14,观察参数 p 变化对 信号序列时域及幅频特性的影响。注意 p 等于多少时,会发生明显的泄 漏现象,混淆现象是否也随之出现?记录实验中观察到的现象,绘制相 应的时域序列和幅频特性曲线。 2、观察衰减正弦序列的时域和幅频特性 ①令α=0.1 并且 f=0.0625,检查谱峰出现的位置是否正确,注意频谱 的形状,绘制幅频特性曲线。 ②改变 f=0.4375,再变化 f=0.5625,观察这两种情况下,频谱的形状 和谱峰出现的位置,有无混淆和泄漏现象发生?说明产生现象的原因。 3、观察三角波序列和反三角波序列的时域和幅频特性

用FFT对信号作频谱分析

用FFT对信号作频谱分析

用FFT 对信号作频谱分析0 引言傅里叶变换⎰∞∞--=t t x X t j d e )()(ωω是对时域信号x (t ) 进行频谱分析的重要方法之一,当x (t )是频率为ω0的单频正弦波信号时X (ω)呈单线状谱,即在ω=ω0处X (ω)为一条竖直线。

在具体的应用中,实际使用的对有限长度为N 的信号离散序列x (n )做FFT ,进而得到其离散傅里叶变换X (k )。

∑-=-=10π2e)()(N n Nnk j n x k X (k ,n =0,1,…,N -1)显然,连续信号中的ω、t 分别为ω=k Δω、t = n Δt ,且有tN f Δπ2πΔ2Δ==ω。

其中,Δt 为x (t )的采样间隔、Δω或Δf 为频率分辨率。

当x (t )的频率ω0刚好等于Δω的整倍数k 0时,X (ω)或X (k )仍然呈单线状。

然而绝大多数情况下ω0并不刚好等于Δω的整倍数,此时的X (ω)、X (k )如图1所示,显然,ω0处于最高的离散谱线k 与次高的离散谱线k ±1(k +1或k -1)之间。

为能通过FFT 准确地确定时域信号x (t )的频率、振幅和初相,人们研究了多种谱线校正方法[1-2]。

本文所介绍的是一种基于离散傅里叶变换基本特性的谱线校正方法。

1 有限长信号的傅里叶变换实际上有限长信号的傅里叶变换可以看成是对无限长的信号加上一个宽度为T 、幅度为1的矩形窗w (t )的加窗傅里叶变换。

由于矩形窗函数w (t )的时域及频域W (ω)表示分别为⎪⎪⎩⎪⎪⎨⎧>≤=2021)(Tt T t t w ⎪⎭⎫ ⎝⎛=⎪⎭⎫⎝⎛=π2s i n c 22s i n )(T T T T T W ωωωω 所以,当无限长的信号x (t )为可以余弦函数表示的频率为ω0的正弦波时)(21)cos()(00m 0m t j t j e e U t U t x ωωω-+==根据傅里叶变换的频移特性,w (t )x (t )的傅里叶变换X (ω)应为kkk k k +1k +1k -1 k -1 |X (k )| |X (k )| |X (k -1)||X (k -1)| |X (k +1)||X (k +1)|图1 离散谱分布示意图(a )(b )[])()(2)(00mωωωωω++-=W W U X 如图2所示[3]。

实验二 用FFT分析语音信号的频谱

实验二  用FFT分析语音信号的频谱

实验二用FFT分析语音信号的频谱
一、实验目的
1、分析实际工程中一个语音信号的频谱。

2、掌握FFT反变换的意义。

二、实验内容
1、实际中通过一个语音信号进行采样,获得数字信号对频谱信号进行FFT进行
分析。

2、去除频谱中幅值小于1的系数进行反变换,重构原来语音进行对比分析。

3、
三、实验用设备仪器及材料
P4计算机MATLAB软件
四、实验原理
实验程序如下:
[x,f,n,o]=wavread(‘bird.wav’);
subplot(2,2,1);plot(x);title(‘原始语音信号’);
y=fft(x);subplot(2,2,2);plot(abs(y));title(‘FFT变换’);
y(abs(y)<1)=0;x=ifft(y);
subplot(2,2,3);plot(abs(y));title(‘去掉幅值小于1的FFT变换值’);
subplot(2,2,4);plot(real(x));title(‘重构语音信号’);
wavwrite(x,f,’bird1.wav’);
五、实验步骤和及方法
1、对一个语音进行FFT,画出其频谱。

2、去掉幅值小于1的系数,进行傅立叶变换。

3、给出一个语音信号,用MATLAB进行FFT分析。

六、实验报告要求
1、对FFT变换及IFFT有一定的认识。

2、了解数据压缩的意义。

3、画出语音信号时频图、及重构语音图。

用FFT对信号作频谱分析

用FFT对信号作频谱分析

实验二用FFT对信号作频谱分析一、实验目的(1)学习使用FFT对模拟信号和时域离散信号进行频谱分析的方法(2)了解可能出现的分析误差及其原因,以便正确应用FFT二、实验内容:(1)根据参考资料使用FFT进行谐波分析;利用函数生成一组数据,用以模拟电力现场的测量数据,使用FFT对其进行频谱分析;程序:clearfs=1000;t=0:1/fs:0.6;f1=100;f2=300;x1=sin(2*pi*f1*t); %正弦信号x1x2=sin(2*pi*f2*t); %正弦信号x2x=x1+x2;l=length(x);xx=x+randn(1,l); %叠加随机噪声信号figure(1)subplot(7,1,1)plot(x1);subplot(7,1,2)plot(x2);subplot(7,1,3)plot(x);subplot(7,1,4)plot(xx);number=512;y=fft(x,number); %对x取512点的快速傅里叶变换n=0:length(y)-1;f=fs*n/length(y);subplot(7,1,5)plot(f,abs(y));yy=fft(xx,number); %对xx取512点的快速傅里叶变换subplot(7,1,6)plot(f,abs(yy));pyy=y.*conj(y)/number; %y的能量subplot(7,1,7)plot(f,abs(pyy));实验结果见附图1(2)使用操作系统自带的录音机,录制各种声音,保存成.wav文件;将该声音文件读入(采样保存到)某矩阵中,对该采样信号使用FFT进行频谱分析,比较各种语音信号所包含的频谱成分及频率范围。

程序:number=512;fs=1000;x=wavread('你自己的音频名,如a.wav');%读取音频文件y=fft(x,number); %对x取512点的傅里叶变换n=0:length(y)-1;f=fs*n/length(y);subplot(2,1,1)plot(f,abs(y));pyy=y.*conj(y)/number; %y的能量subplot(2,1,2)plot(f,abs(pyy));实验结果见附图2三、实验结论由实验结果可以看出,实验得到了FFT对模拟信号和时域离散信号进行频谱分析的结果。

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

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

实验二应用FFT对信号进行频谱分析姓名: 刘竟伦班级: 11电子A 学号: 1115105037 日期 2014 年 3月15日指导老师戴在平华侨大学信息科学与工程学院电子工程系一、实验目的(1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。

(2) 熟悉FFT 算法原理和FFT 子程序的应用。

(3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法, 了解可能出现的分析误差及其原因, 以便在实际中正确应用FFT 。

二、实验原理与方法(1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。

(2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。

(3) 编制信号产生子程序, 产生以下典型信号供谱分析用:应当注意,如果给出的是连续信号xa (t ),则首先要根据其最高频率确定采样速率fs 以及由频率选择采样点数N ,然后对其进行软件采样(即计算择要以能分辨开其中的三个频率对应的谱线为准则。

对周期序列,最好截取周期的整数倍进行分析,否则有可能产生较大1423()()1,03()8470403()3470x n R n n n x n n n n n x n n n =⎧+≤≤⎪=-≤≤⎨⎪⎩-≤≤⎧⎪=-≤≤⎨⎪⎩456()cos 4()sin 8()cos8cos16cos20x n n x n n x n t t tπππππ===++的分析误差。

请实验者根据DFT的隐含周期性思考这个问题。

(4) 编写主程序。

三、上机实验内容及实验结果图(1)对2中所给出的信号逐个进行谱分析。

下面给出针对各信号的FFT变换区间N以及对连续信号x6(t)的采样频率fs。

x1(n),x2(n),x3(n),x4(n),x5(n),:N=8,16x6(t):fs=64(hz),N=16,32,64x1(n)=R4(n)对应x1(n)的matlab源程序代码:n=[0:7];x=[1 1 1 1 0 0 0 0]f1=fft(x,8)f2=fft(x,16)subplot(2,2,1)stem(n,x);axis([0 8 0 2])xlabel('n')ylabel('xl(n)')title('xl的波形 ') subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([0 16 0 5])xlabel('k')ylabel('|xl(k)|')title('xl(n)的16点fft') subplot(2,2,3)k=[0:7]stem(k,abs(f1));axis([0 10 0 5])xlabel('k')ylabel('|xl(k)|')title('xl(n)的8点fft') 得到如下波形图:2.对应x2(n)的matlab 源程序代码: n=[0:7];x=[1 2 3 4 4 3 2 1]f1=fft(x,8)f2=fft(x,16)subplot(2,2,1)stem(n,x); 1423()()1,03()8470403()3470x n R n n n x n n n n n x n n n =⎧+≤≤⎪=-≤≤⎨⎪⎩-≤≤⎧⎪=-≤≤⎨⎪⎩axis([0 8 0 4])xlabel('n')ylabel('x2(n)')title('x2的波形')subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([0 16 0 20])xlabel('k')ylabel('|x2(k)|')title('x2(n)的16点fft') subplot(2,2,3)k=[0:7]stem(k,abs(f1));axis([0 10 0 20])xlabel('k')ylabel('|x2(k)|')title('x2(n)的8点fft')3.对应x3(n)的matlab 源程序代码: n=[0:7];x=[4 3 2 1 1 2 3 4]f1=fft(x,8)f2=fft(x,16)subplot(2,2,1)stem(n,x);axis([0 8 0 4])xlabel('n')ylabel('x3(n)')title('x3的波形')subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([0 16 0 20])xlabel('k')ylabel('|x3(k)|')title('x3的16点fft')subplot(2,2,3)k=[0:7]stem(k,abs(f1));axis([0 8 0 20])xlabel('k')ylabel('|x3(k)|')title('x3(n)的8点fft')1423()()1,03()8470403()3470x n R n n n x n n n n n x n n n =⎧+≤≤⎪=-≤≤⎨⎪⎩-≤≤⎧⎪=-≤≤⎨⎪⎩4.x4(n)=cos(pi/4*n)对应x4(n)的matlab源程序代码:n=[0:7];x=cos(0.25*pi*n)f1=fft(x,8)subplot(2,2,1)stem(n,x);axis([0 8 -4 4])xlabel('n')ylabel('x4(n)')title('x4的波形')n=[0:15]x=cos(0.25*pi*n)f2=fft(x,16)subplot(2,2,2)stem(n,x);axis([0 16 -4 4])ylabel('x4(n)')title('x4的波形')subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([0 16 0 20])xlabel('k')ylabel('|x4(k)|')title('x4(n)的16点fft')subplot(2,2,3)k=[0:7]stem(k,abs(f1));axis([0 8 0 20])xlabel('k')ylabel('|x4(k)')title('x4(n)的8点fft')X5(n)=sin(pi/8*n)对应x5(n)的matlab源程序代码:clearn=[0:7]x=sin((pi*n)/8)f1=fft(x,8)subplot(2,2,1)stem(n,x);axis([0 8 -4 4]) xlabel('n')ylabel('x5(n)')title('x5的波形图 ') x=sin(0.125*pi*n)f2=fft(x,16)subplot(2,2,2)stem(n,x);axis([0 16 -4 4]) xlabel('n')ylabel('x5(n)')title('x5的波形图 ') subplot(2,2,4)k=[0:15]stem(k,abs(f2)); axis([0 16 0 20]) xlabel('k')ylabel('|x5(k)|') title('x5的16点fft') subplot(2,2,3)k=[0:7]stem(k,abs(f1)); axis([0 8 0 20]) xlabel('k')ylabel('|x5(k)|') title('x5的8点 fft')X6(t)=cos(pi*8*n)+sin(pi*16*t)+cos(20*pi*t) 对应x6(n)的matlab源程序代码:Ts=1/16;n=0:15;Xa=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi);f1=fft(Xa,16);subplot(3,2,1);stem(n,Xa);axis([0 15 -2 3]);xlabel('n');ylabel('x6(n)')title('x6(n) N=16') %ÏÔʾx6£¨n£©N=16;k=0:15subplot(3,2,2);stem(k,abs(f1));axis([0 16 0 15])xlabel('k')ylabel('|x6(k)|')title('x6(n) N=16的16点 fft');n=0:31;Xb=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi); f2=fft(Xb,32);subplot(3,2,3);stem(n,Xb);axis([0 32 -2 3]);xlabel('n');ylabel('x6(n)')title('x6(n) N=32') %ÏÔʾx6£¨n£©N=32;k=0:31;subplot(3,2,4);stem(k,abs(f2));axis([0 32 0 20])xlabel('k')ylabel('|x6(k)|')title('x6(n) N=32 的32点fft');n=0:63;Xc=cos(8*n*Ts*pi)+cos(16*n*Ts*pi)+cos(20*n*Ts*pi); f3=fft(Xc,64);subplot(3,2,5);stem(n,Xc);axis([0 64 -2 3]);xlabel('n');ylabel('x6(n)')title('x6(n) N=16') %ÏÔʾx6£¨n£©N=64;k=0:63;subplot(3,2,6);stem(k,abs(f3));axis([0 64 0 40])xlabel('k')ylabel('|x6(k)|')title('x6(n) N=64的64点 fft');(2) 令x7(n)=x4(n)+x5(n),用FFT计算 8 点和 16 点离散傅里叶变换,X(k)=DFT[x(n)]n=[0:7];x=cos(0.25*pi*n)+sin(0.125*pi*n)f1=fft(x,8)subplot(2,2,1)stem(n,x);axis([0 8 -4 4])xlabel('n')ylabel('x7(n)')title('x7的波形图 ')n=[0:15]x=cos(0.25*pi*n)+sin(0.125*pi*n)f2=fft(x,16)subplot(2,2,2)stem(n,x);axis([0 16 -4 4])xlabel('n')ylabel('x7(n)')title('x7的波形图 ') subplot(2,2,4)k=[0:15]stem(k,abs(f2));axis([0 16 0 20])xlabel('k')ylabel('|x7(k)|')title('x7(n)的16点fft ') subplot(2,2,3)k=[0:7]stem(k,abs(f1));axis([0 8 0 20])xlabel('k')ylabel('|x7(k)|')title('x7(n)的8点fft ')(3) 令x8(n)=x4(n)+jx5(n),重复(2)。

用快速傅里叶变换对信号进行频谱分析

用快速傅里叶变换对信号进行频谱分析

用快速傅里叶变换对信号进行频谱分析快速傅里叶变换(FFT)是一种用于对信号进行频谱分析的算法。

它是傅里叶变换(Fourier Transform)的一种高效实现方式,能够在较短的时间内计算出信号的频谱,并可用于信号处理、数据压缩、图像处理等领域。

傅里叶变换是一种将信号从时域转换为频域的方法,它将时域信号分解为多个不同频率的正弦波的叠加。

傅里叶变换的结果表示了信号在不同频率上的强度,可用于分析信号的频谱特征。

对于一个连续信号x(t),傅里叶变换定义为:X(ω) = ∫[x(t)e^(-jωt)]dt其中,X(ω)表示频域上的频谱,ω为频率。

实际应用中,信号通常以离散形式存在,即由一系列采样点组成。

为了对离散信号进行频谱分析,需要进行离散傅里叶变换(DFT)。

然而,传统的DFT算法计算复杂度较高,随信号长度的增加而呈指数级增长。

为了解决这个问题,Cooley-Tukey算法提出了一种高效的FFT算法。

该算法利用了DFT的周期性特点,将信号的长度分解为2的幂次,然后通过迭代计算将问题规模减小。

这种分治思想使得计算复杂度从指数级降低到线性级别,大大提高了计算效率。

具体而言,FFT算法的基本思路如下:1.将信号长度N分解为2的幂次L。

2.将N点DFT分解为两个N/2点DFT和一个旋转因子计算。

3.递归地应用步骤2,直到得到长度为1的DFT。

4.对于所有的DFT结果进行合并,得到完整的N点DFT。

FFT算法具有较高的计算效率和优良的数值稳定性,已成为信号处理中最常用的频谱分析方法之一FFT在信号处理中的应用十分广泛。

例如,可以利用FFT对音频信号的频谱进行分析,从而实现音频的频谱显示、音乐频谱分析、噪声抑制等功能。

在图像处理中,FFT可用于图像频谱分析、图像滤波、图像压缩等领域。

此外,FFT还常用于模拟信号的数字化处理、电力系统谐波分析、最优滤波器设计等方面。

总结起来,快速傅里叶变换是一种高效的频谱分析算法,可用于对信号的频谱特征进行分析和处理。

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

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

利用FFT对信号进行频谱分析傅里叶变换(Fast Fourier Transform,FFT)是一种用于将信号从时域转换为频域的数学算法,在信号处理中经常被用于频谱分析。

频谱分析可以用来确定信号中包含的不同频率的成分,帮助我们理解信号的特性以及包含的信息。

在进行频谱分析之前,我们首先需要了解一些基本概念。

信号可以被看作是一个函数,表示随时间变化的其中一种物理量。

这个函数可以在时域上表示,也可以在频域上表示。

在时域中,信号在不同时间点上的取值。

而在频域中,信号的成分按其频率进行表示,即信号中包含的不同频率的成分。

傅里叶变换可以将一个信号从时域转换为频域,通过将信号分解成一系列正弦和余弦的和,表示信号中包含的不同频率的成分。

FFT是一种高效的算法,能够在计算机上快速地进行傅里叶变换,使频谱分析变得可行。

进行频谱分析的基本步骤如下:1.采集信号:首先需要获得要分析的信号,可以通过传感器、麦克风等设备采集到的模拟信号,或者从文件中读取的数字信号。

2.离散化:将连续的信号离散化,即将信号在时间上进行采样,得到一系列离散的数据点,通常是均匀采样。

3.预处理:根据具体应用的需求,对信号进行预处理。

预处理的方法包括去除噪声、滤波、去除基线漂移等。

4.应用FFT:将预处理后的信号应用FFT算法,将信号从时域转换为频域。

FFT算法可以将信号转换为频谱表示,显示信号中不同频率的成分。

5.频谱分析:对得到的频谱进行分析,可以观察信号中存在的频率成分及其相对强度。

可以通过频谱分析来确定信号中的主要频率、频率的幅值等信息。

6.可视化:可以将得到的频谱进行可视化,使得结论更加直观明了。

常见的可视化方法包括将频谱绘制成线图、柱状图、瀑布图等形式。

频谱分析可应用于多个领域,如音频处理、图像处理、通信信号处理等。

在音频处理中,许多音频效果的实现都依赖于对音频信号的频谱分析,如均衡器、滤波器等。

在通信中,频谱分析可以帮助我们理解信号传输中的问题,例如频率偏移、多径效应等。

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

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

用FFT对信号作频谱分析实验报告实验目的:利用FFT对信号进行频谱分析,掌握FFT算法的原理及实现方法,并获取信号的频谱特征。

实验仪器与设备:1.信号发生器2.示波器3.声卡4.计算机实验步骤:1.将信号发生器与示波器连接,调节信号发生器的输出频率为待测信号频率,并将示波器设置为XY模式。

2.将示波器的输出接口连接至声卡的输入接口。

3.打开计算机,运行频谱分析软件,并将声卡的输入接口设置为当前输入源。

4.通过软件选择频谱分析方法为FFT,并设置采样率为合适的数值。

5.通过软件开始进行频谱分析,记录并保存频谱图像和数据。

实验原理:FFT(快速傅里叶变换)是一种计算机算法,用于将时域信号转换为频域信号。

它通过将一个信号分解成多个不同频率的正弦波或余弦波的合成,并计算每个频率分量的幅度和相位信息。

实验结果与分析:通过对待测信号进行FFT频谱分析,我们可以得到信号在频域上的频谱特征。

频谱图像可以展示出信号中不同频率成分的能量分布情况,可以帮助我们了解信号的频率构成及其相对重要程度。

在实验中,我们可以调节信号发生器的输出频率,观察频谱图像的变化。

当信号频率与采样率相等时,我们可以得到一个峰值,表示信号的主频率。

同时,我们还可以观察到其他频率分量的存在,其幅度与信号频率的差距越小,幅度越低。

通过对不同信号进行频谱分析,我们可以了解信号的频率成分及其分布情况。

这对于信号处理、通信等领域具有重要意义。

实验结论:通过FFT频谱分析,我们可以获得信号在频域上的频谱特征,可以清晰地观察到信号的主频率以及其他频率分量的存在。

这为信号处理及相关应用提供了有价值的信息。

实验中,我们使用了信号发生器、示波器、声卡和计算机等设备,通过连接和软件进行了频谱分析实验。

通过实验,我们掌握了FFT算法的原理及实现方法,并且获取到了信号的频谱特征。

然而,需要注意的是,频谱分析仅能得到信号在其中一时刻或一段时间内的频率成分,不能得到信号的时域信息。

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

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

实验二 应用 FFT 对信号进行频谱分析一、实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉 FFT 算法及其程序的编写。

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

3、了解应用 FFT 进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用 FFT 。

二、实验原理与方法一个连续信号 )(t x a 的频谱可以用它的傅立叶变换表示为⎰+∞∞-Ω-=Ωdt e t x j X t j a a )()( (2-1)如果对该信号进行理想采样,可以得到采样序列)()(nT x n x a = (2-2)同样可以对该序列进行z 变换,其中T 为采样周期∑+∞-∞=-=n n z n x z X )()( (2-3) 当 ωj ez =的时候,我们就得到了序列的傅立叶变换 ∑+∞-∞=-=n n j j e n x e X ωω)()( (2-4)其中ω称为数字频率,它和模拟域频率的关系为s f T Ω=Ω=ω(2-5)式中的s f 是采样频率。

上式说明数字频率是模拟频率对采样率s f 的归一化。

同模拟域的情况相似,数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。

序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系∑-=)2(1)(Tm j X T e X a j πωω (2-6) 即序列的频谱是采样信号频谱的周期延拓。

从式(2-6)可以看出,只要分析采样序列的频谱,就可以得到相应的连续信号的频谱。

注意:这里的信号必须是带限信号,采样也必须满足 Nyquist 定理。

在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。

无限长的序列也往往可以用有限长序列来逼近。

对于有限长的序列我们可以使用离散傅立叶变换(DFT ),这一变换可以很好地反应序列的频域特性,并且容易利用快速算法在计算机上实现当序列的长度是 N 时,我们定义离散傅立叶变换为:∑-===10)()]([)(N n kn NW n x n x DFT K X (2-7) 其中,N j N e W π2-=它的反变换定义为:∑-=-==10)(1)]([)(N k kn N W k X N k X IDFT n x (2-8) 根据式(2-3)和(2-7)令 k N W z -=,则有)]([)()(10n x DFT W n x z X N n kn N W z k N ==∑-==- (2-9)可以得到 k N k N j W z W e z X k X k N -===-,)()(2π是 z 平面单位圆上幅角为k Nπω2=的点,就是将单位圆进行 N 等分以后第 k 个点。

实验二应用快速傅里叶变换对信号进行频谱分析

实验二应用快速傅里叶变换对信号进行频谱分析

实验二应用快速傅里叶变换对信号进行频谱分析引言频谱分析是一个常见的信号处理技术,它可以将一个信号分解成一系列不同频率的成分。

其中,傅里叶变换是一种常用的频谱分析方法。

在本实验中,我们将学习并应用快速傅里叶变换(FFT)算法对信号进行频谱分析。

一、理论背景快速傅里叶变换(FFT)是一种基于离散傅里叶变换(DFT)的算法,它能够快速计算出信号的频域表达。

傅里叶变换的公式为:X(k)=Σ(x(n)*e^(-j*2π*n*k/N))其中,X(k)代表频域上的第k个频率成分,x(n)代表时域上的第n个采样点,e为自然对数的底,j为虚数单位,N为采样点的总数。

快速傅里叶变换的主要思想是将信号分解成一系列长度为2的子序列,再通过迭代地应用DFT对这些子序列进行变换。

这样可以大幅度减少计算量,使得FFT算法在实际应用中具有较高的效率。

二、实验目的1.掌握快速傅里叶变换(FFT)算法的原理及实现方法。

2.学习如何使用FFT进行频谱分析,并理解频谱图的含义。

3.通过实验对比分析,了解FFT与其他频谱分析方法的差异。

三、实验步骤1.准备实验材料和仪器:一台电脑、MATLAB或其他信号分析软件。

2. 定义并生成需要分析的信号。

可以使用MATLAB中的sin、cos、randn等函数生成均匀分布或正态分布的随机信号,设置采样率和采样点数。

3.对信号进行FFT分析。

使用FFT算法对信号进行傅里叶变换,并得到频谱图。

4.对频谱图进行分析。

观察频谱图中的主要频率成分,并分析信号的频谱特征。

四、实验结果及分析1.生成信号并进行FFT分析。

通过MATLAB或其他信号分析软件,生成需要分析的信号,并进行FFT变换。

2.绘制频谱图。

根据FFT的结果,绘制出信号的频谱图。

频谱图通常以频率为横坐标,幅度为纵坐标进行绘制。

3.频谱分析。

观察频谱图,分析信号的频谱特征。

可以通过主要频率成分、频谱能量分布等参数来进行分析。

五、实验注意事项1.确保信号的采样率和采样点数足够满足信号分析的要求。

用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三种情况进行谱分析。

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

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

应用FFT对信号进行频谱分析引言频谱分析是信号处理中的一项核心技术。

对于FFT(快速傅里叶变换)来说,它是一种以较快的速度计算傅里叶变换的算法,广泛应用于信号处理、通信、音频处理、图像处理等领域。

本文将介绍如何应用FFT对信号进行频谱分析。

一、信号的频谱分析1.傅里叶变换傅里叶变换是将一个信号分解成一系列互相正交的复指数形式的波的和的过程。

它将一个信号从时域转换到频域,给出信号在频率上的分布情况。

2.FFT算法傅里叶变换是一个连续的过程,需要进行积分计算。

然而,FFT是一种离散的傅里叶变换算法,通过将输入信号离散化,使用一种快速的算法来加速计算过程。

FFT算法能够将信号从时域转换到频域并给出高精度的频谱分析结果。

二、应用FFT进行频谱分析的步骤1.信号采样首先,需要对待分析的信号进行采样。

采样是指以一定频率对信号进行等间隔的时间点采样,将连续的信号离散化。

2.零填充为了提高频谱分析的精度,可以对信号进行零填充。

在采样的信号序列中增加零值,可以增加频谱分析的细节。

3.FFT计算使用FFT算法对离散信号进行傅里叶变换计算。

在实际应用中,通常使用现有的FFT库函数,如MATLAB的fft函数或Python的numpy.fft模块。

4.频谱绘制得到FFT计算的结果后,可以通过绘制频谱图来展示信号在不同频率上的能量分布情况。

常见的频谱绘制方式包括直方图、折线图和曲线图等。

三、应用FFT进行频谱分析的实例为了更好地理解FFT的应用,以音频信号的频谱分析为例进行说明。

1.音频信号采样选择一个音频文件,将其转换为数字信号,然后对其进行采样,得到一系列离散的数字信号。

2.FFT计算使用FFT算法对采样的数字信号进行傅里叶变换计算,得到信号在频域上的能量分布情况。

3.频谱绘制将计算得到的频域信息进行可视化。

可以通过绘制频谱图来展示信号在不同频率上的能量分布情况,例如绘制直方图、折线图或曲线图等。

4.结果分析通过观察频谱图,可以分析信号的主要频率分量、频率范围、能量分布等。

实验二 用FFT对信号进行频谱分析

实验二 用FFT对信号进行频谱分析

东莞理工学院实验报告课程名称: 数字信号处理 实验室名称: 实验名称:实验二 用FFT 对信号进行频谱分析 指导老师:所在院系: 专业班级: 姓名: 学号: 日期: 成绩:1、实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其产生原因,以便正确应用FFT 。

2、实验原理与方法用FFT 对信号作频谱分析是学习数字信号处理的重要内容。

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

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

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

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

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

对于长度为M 的有限长序列x (n ),其N 点DFT (N ≥M )X (k )就是x (n )的FT 即)(ωj e X 在[0,2π]内的N点等间隔采样,频谱分辨率就是采样间隔2π/N 。

对于周期为N 的周期序列)(~n x ,其频谱是离散谱: ∑∞-∞=⎪⎭⎫ ⎝⎛-==k j k N k X Nn x e X πωδπω2)(~2)](FT[)( 其中,)](~[DFS )(~n x k X =,因此周期序列的频谱结构也可以用离散傅立叶级数系数)(~k X 表示。

截取)(~n x 的主值序列)()(~)(n R n x n x N =,并进行N 点DFT ,得到: )()(~)]([DFT )(k R k X n x k X N N ==因此也可以用)(k X 表示)(~n x 的频谱结构。

如果截取长度为)(~n x 的整数个周期mN ,m 为整数,即)()(~)(n R n x n x mN mN =,那么 整数整数≠=⎪⎩⎪⎨⎧⎪⎭⎫⎝⎛==m k m k m k mX n x k X mN mN //0)]([DFT )(于是,)(k X mN 也可以表示)(~n x 的频谱结构。

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

东莞理工学院实验报告课程名称: 数字信号处理 实验室名称: 实验名称:实验二 用FFT 对信号进行频谱分析 指导老师:所在院系: 专业班级: 姓名: 学号: 日期: 成绩:1、实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其产生原因,以便正确应用FFT 。

2、实验原理与方法用FFT 对信号作频谱分析是学习数字信号处理的重要内容。

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

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

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

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

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

对于长度为M 的有限长序列x (n ),其N 点DFT (N ≥M )X (k )就是x (n )的FT 即)(ωj e X 在[0,2π]内的N点等间隔采样,频谱分辨率就是采样间隔2π/N 。

对于周期为N 的周期序列)(~n x ,其频谱是离散谱: ∑∞-∞=⎪⎭⎫ ⎝⎛-==k j k N k X Nn x e X πωδπω2)(~2)](FT[)( 其中,)](~[DFS )(~n x k X =,因此周期序列的频谱结构也可以用离散傅立叶级数系数)(~k X 表示。

截取)(~n x 的主值序列)()(~)(n R n x n x N =,并进行N 点DFT ,得到: )()(~)]([DFT )(k R k X n x k X N N ==因此也可以用)(k X 表示)(~n x 的频谱结构。

如果截取长度为)(~n x 的整数个周期mN ,m 为整数,即)()(~)(n R n x n x mN mN =,那么 整数整数≠=⎪⎩⎪⎨⎧⎪⎭⎫⎝⎛==m k m k m k mX n x k X mN mN //0)]([DFT )(于是,)(k X mN 也可以表示)(~n x 的频谱结构。

由此可见,对于周期序列,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。

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

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

如果模拟信号持续时间很长,采样点数太多,会导致无法存储和计算,需截取有限点进行DFT 。

因此对模拟信号进行频谱分析必然是近似的,其近似程度与信号带宽、采样频率和截取长度有关。

工程上,滤除幅度很小的高频成分和截去幅度很小的部分信号是允许的。

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

3、实验内容及步骤(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 先绘制各序列的FT 频谱图,然后选择FFT 的变换区间N 为8和16 两种情况,通过序列的DFT 分析其频谱。

分别打印其幅频特性曲线,并进行对比、分析和讨论。

(2)对以下周期序列进行谱分析:4()cos 4x n n π=5()cos(/4)cos(/8)x n n n ππ=+选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。

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

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

(3)对模拟周期信号进行谱分析6()cos8cos16cos20x t t t t πππ=++选择采样频率Hz F s 64=,变换区间N =16,32,64 三种情况进行谱分析。

分别打印其幅频特性,并进行分析和讨论。

4、实验程序清单clear all;close all%****内容一:有限长序列的频谱分析************ %产生三个序列 x1n=ones(1,4);M=8;xa=1:(M/2); xb=(M/2):-1:1;x2n=[xa,xb]; %产生长度为8的三角波序列x3n=[xb,xa];%获得序列x1n的傅立叶变换X1jw=fft(x1n,1024); %用1024个点的fft获得傅立叶变换的密集采样w=2*pi/1024*(0:1023);%采样频率位置subplot(3,1,1);plot(w/pi,abs(X1jw)); %绘制FT的幅频特性title('(1a) X_1(e^{j\omega})');xlabel('\omega/\pi');;ylabel('幅度');X1k8=fft(x1n,8); %8个点DFTX1k16=fft(x1n,16); %16个点DFT%补充绘图8个点及16个点的DFT幅频特性,提示用stem指令绘图w=2*pi/8*(0:7);subplot(3,1,2);stem(w/pi,X1k8,'.'); %绘制FT的幅频特性title('(1b) 8点DFT[x1(n)])');xlabel('\omega/\pi');;ylabel('幅度');w=2*pi/16*(0:15);subplot(3,1,3);stem(w/pi,X1k16,'.'); %绘制FT的幅频特性title('(1c) 16点DFT[x1(n)])');xlabel('\omega/\pi');;ylabel('幅度');%补充程序对x2n及x3n的频谱进行分析clear all;close allM=8;xa=1:(M/2); xb=(M/2):-1:1;x2n=[xa,xb]; %产生长度为8的三角波序列X2jw=fft(x2n,1024); %用1024个点的fft获得傅立叶变换的密集采样w=2*pi/1024*(0:1023);%采样频率位置subplot(3,1,1);plot(w/pi,abs(X2jw)); %绘制FT的幅频特性title('(2a) X_2(e^{j\omega})');xlabel('\omega/\pi');;ylabel('幅度');X2k8=fft(x2n,8); %8个点DFTX2k16=fft(x2n,16); %16个点DFTw=2*pi/8*(0:7);subplot(3,1,2);stem(w/pi,abs(X2k8),'.'); %绘制FT的幅频特性title('(2b) 8点DFT[x2(n)])');xlabel('\omega/\pi');;ylabel('幅度');w=2*pi/16*(0:15);subplot(3,1,3);stem(w/pi,abs(X2k16),'.'); %绘制FT的幅频特性title('(2c) 16点DFT[x2(n)])');xlabel('\omega/\pi');;ylabel('幅度');clear all;close allM=8;xa=1:(M/2); xb=(M/2):-1:1;x3n=[xb,xa];X3jw=fft(x3n,1024); %用1024个点的fft获得傅立叶变换的密集采样w=2*pi/1024*(0:1023);%采样频率位置subplot(3,1,1);plot(w/pi,abs(X3jw)); %绘制FT的幅频特性title('(3a) X_2(e^{j\omega})');xlabel('\omega/\pi');;ylabel('幅度');X3k8=fft(x3n,8); %8个点DFTX3k16=fft(x3n,16); %16个点DFTw=2*pi/8*(0:7);subplot(3,1,2);stem(w/pi,abs(X3k8),'.'); %绘制FT的幅频特性title('(3b) 8点DFT[x3(n)])');xlabel('\omega/\pi');;ylabel('幅度');w=2*pi/16*(0:15);subplot(3,1,3);stem(w/pi,abs(X3k16),'.'); %绘制FT的幅频特性title('(3c) 16点DFT[x3(n)])');xlabel('\omega/\pi');;ylabel('幅度');%****内容二:周期序列的频谱分析************N=8; %设置FFT的变换区间长度为8%根据区间长度8,截取序列n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4jw=fft(x4n,1024);X5jw=fft(x5n,1024);w=2*pi/8*(0:8);%补充程序,对两序列进行8点的DFT%补充程序,根据区间长度16,截取序列,并进行16个点的DFT%补充程序,显示8个点及16个点DFT的幅度频谱X4k8=fft(x4n,8); %8个点DFTX5k8=fft(x5n,8); %8个点DFTN=16; %设置FFT的变换区间长度为16%根据区间长度16,截取序列n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n,16); %16个点DFTX5k16=fft(x5n,16); %16个点DFTw=2*pi/8*(0:7);subplot(2,2,1);stem(w/pi,abs(X4k8),'.'); %绘制FT的幅频特性title('(4b) 8点DFT[x4(n)])');xlabel('\omega/\pi');;ylabel('幅度');subplot(2,2,3);stem(w/pi,abs(X5k8),'.'); %绘制FT的幅频特性title('(5b) 8点DFT[x5(n)])');xlabel('\omega/\pi');;ylabel('幅度');w=2*pi/16*(0:15);subplot(2,2,2);stem(w/pi,abs(X4k16),'.'); %绘制FT的幅频特性title('(4c) 16点DFT[x4(n)])');xlabel('\omega/\pi');;ylabel('幅度');subplot(2,2,4);stem(w/pi,abs(X5k16),'.'); %绘制FT的幅频特性title('(5c) 16点DFT[x5(n)])');xlabel('\omega/\pi');;ylabel('幅度');%****内容三:模拟周期信号的频谱分析************Fs=64;T=1/Fs;%设置采样频率和采样间隔N=16;n=0:N-1; %设置采样点数为16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(n)进行16点的采样X6k16=fft(x6nT); %16点DFTX6k16=fftshift(X6k16); %将零频率移到频谱中心Tp=N*T;F=1/Tp; %计算出频谱采样间隔k=-N/2:N/2-1;fk=k*F; %找出采样频谱对应的频率位置%补充程序,绘制16点DFT 频谱图,通过采样序列16点DFT 反映模拟信号频谱 axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))])subplot(3,1,1);stem(fk,abs(X6k16),'.'); %绘制FT 的幅频特性title('(6a) 16点DFT[x6(nT)])'); xlabel('\omega/\pi');;ylabel('幅度');%补充程序,设置采样点数为32,通过采样序列的32点DFT 反映模拟信号频谱 %补充程序,设置采样点数为64,通过采样序列的64点DFT 反映模拟信号频谱 N=32;n=0:N-1; %设置采样点数为32x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(n)进行32点的采样 X6k32=fft(x6nT); %32点DFTX6k32=fftshift(X6k32); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %计算出频谱采样间隔k=-N/2:N/2-1;fk=k*F; %找出采样频谱对应的频率位置 axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))])subplot(3,1,2);stem(fk,abs(X6k32),'.'); %绘制FT 的幅频特性title('(6b) 32点DFT[x6(nT)])'); xlabel('\omega/\pi');;ylabel('幅度'); N=64;n=0:N-1; %设置采样点数为64x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(n)进行64点的采样 X6k64=fft(x6nT); %64点DFTX6k64=fftshift(X6k64); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %计算出频谱采样间隔k=-N/2:N/2-1;fk=k*F; %找出采样频谱对应的频率位置 axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))])subplot(3,1,3);stem(fk,abs(X6k64),'.'); %绘制FT 的幅频特性title('(6c) 64点DFT[x6(nT)])'); xlabel('\omega/\pi');;ylabel('幅度');5、实验结果及分析(1)程序运行结果及讨论1)对以下序列进行谱分析:(1a) X 1(e j ω)ω/π幅度(1b) 8点DFT[x1(n)])ω/π幅度ω/π幅度(2a) X 2(e jω)ω/π幅度(2b) 8点DFT[x2(n)])ω/π幅度(2c) 16点DFT[x2(n)])ω/π幅度分析:图(1b )和(1c )说明x1(n)=R4(n)的8点DFT 和16点DFT 分别是x1(n)的频谱函数的8点和16点采样。

相关文档
最新文档