DFT-FFT的应用之确定性信号谱分析

合集下载

DFT在信号频谱分析中的应用

DFT在信号频谱分析中的应用

DFT在信号频谱分析中的应用目录Ⅰ.设计题目 (1)Ⅱ.设计目的 (1)Ⅲ.设计原理 (1)Ⅳ.实现方法 (1)Ⅴ.设计内容及结果 (5)Ⅵ.改进及建议 (11)Ⅶ.思考题及解答 (14)Ⅷ.设计体会及心得 (15)Ⅸ.参考文献 (16)Ⅰ.设计题目DFT 在信号频谱分析中的应用Ⅱ.设计目的掌握离散傅里叶变换的有关性质,利用Matlab 实现DFT 变换。

了解DFT 应用,用DFT 对序列进行频谱分析,了解DFT 算法存在的问题及改进方法。

学习并掌握FFT 的应用。

Ⅲ.设计原理所谓信号的频谱分析就是计算信号的傅里叶变换。

连续信号与系统的傅里叶分析显然不便于直接用计算机进行计算,使其应用受到限制,而DFT 是一种时域和频域均离散化的变换,适合数值运算,成为分析离散信号和系统的有力工具。

工程实际中,经常遇到的连续信号Xa(t),其频谱函数Xa(jW)也是连续函数。

数字计算机难于处理,因而我们采用DFT 来对连续时间信号的傅里叶变换进行逼近,进而分析连续时间信号的频谱。

Ⅳ.实现方法离散傅里叶变换是有限长序列的傅里叶变换,它相当于把信号的傅里叶变换进行等频率间隔采样,并且有限长序列的离散傅里叶变换和周期序列的离散傅里叶级数本质是一样的。

快速傅里叶变换(FFT )并不是一种新的变换,它是离散傅里叶变换的一种快速算法,并且主要是基于这样的思路而发展起来的:(1)把长度为N 的序列的DFT 逐次分解成长度较短的序列的DFT 来计算。

(2)利用WN(nk)的周期性和对称性,在DFT 运算中适当的分类,以提高运算速度。

(对称性nkNnk NW W N-=+2,12-=NN W ;周期性nkN nk N nrN N k rN n NW W W W ---==)(,r 为任意整数,1=nrNN W )离散傅里叶变换的推导:离散傅里叶级数定义为nk j N k p p ek x Nn x N21)(1)(π∑-==(1-1) 将上式两端乘以nm j Neπ2-并对n在0~N-1求和可得⎥⎦⎤⎢⎣⎡==∑∑∑∑∑-=---=-=-=---=-10)(110101)(1N2N2N2)()(1)(N n m k n j N N k p N n N k m k n j pN n nm j pe k X ek XNen xπππ 因为{m k 1mk 0)(N )(1)(N 2N2N2-1-1N 11=≠---=-==∑m k j m k j N n m k n je eeNπππ所以∑∑-=-=--=110)()()(N2N k p N n nm j p m k k X en x δπ 这样∑-=-=10N2)()(N n nm j p p en x m X π用k 代替m 得∑-=-=1N2)()(N n nk j p P en x k X π(1-2)令N2πj N eW -=则(1-2)成为DFS []∑-===10)()()(N n nkN p p p W n x k X n x (1-3)(1-1)成为IDFS []∑-=-==1)(1)()(N n nkN pp p W k XNn x k X (1-4)式(1-3)、(1-4)式构成周期序列傅里叶级数变换关系。

实验二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结果重新组合以得到频域信号。

实验二 确定性信号谱分析

实验二  确定性信号谱分析

实验报告课程名称: 数字信号处理 指导老师: 成绩:__________________实验名称:DFT 的应用之一 − 确定性信号谱分析一、实验目的和要求谱分析即求信号的频谱。

本实验采用DFT 技术对周期性信号进行谱分析。

通过实验,了解用X(k)近似地表示频谱X(e j ω)带来的栅栏效应、混叠现象和频谱泄漏,了解如何正确地选择参数(抽样间隔T 、抽样点数N )。

二、实验内容和步骤2-1 选用最简单的周期信号:单频正弦信号、频率f=50赫兹,进行谱分析。

2-2 谱分析参数可以从下表中任选一组(也可自定)。

对各组参数时的序列,计算:一个正弦周期是否对应整数个抽样间隔?观察区间是否对应整数个正弦周期?2-3 对以上几个正弦序列,依次进行以下过程。

2-3-1观察并记录一个正弦序列的图形(时域)、频谱(幅度谱、频谱实部、频谱虚部)形状、幅度谱的第一个峰的坐标(U ,V )。

2-3-2 分析抽样间隔T 、截断长度N (抽样个数)对谱分析结果的影响; 2-3-3 思考X(k)与X(e j ω)的关系;2-3-4 讨论用X(k)近似表示X(e j ω)时的栅栏效应、混叠现象、频谱泄漏。

专业:________________ 姓名: 陈斌斌学号: 3120104034 日期:________________ 地点:________________实验名称:_______________________________姓名:______________学号:__________________ P.三、主要仪器设备MATLAB编程。

四、操作方法和实验步骤(参见“二、实验内容和步骤”)五、实验数据记录和处理程序清单:t =linspace(0,0.04,16);xn = sin(100*pi*t);N=length(xn);WNnk=dftmtx(N);Xk=xn*WNnk;subplot(2,2,1),stem(1:N,xn),title('时域离散序列x(n)');subplot(2,2,2),stem(1:N,abs(Xk)),title('幅度谱');subplot(2,2,3),stem(1:N,real(Xk)),title('频谱实部');subplot(2,2,4),stem(1:N,imag(Xk)),title('频谱虚部');六、实验结果与分析本实验以第五组参数为基准:采样频率:400 Hz6-1 实验前预习有关概念,并根据上列参数来推测相应频谱的形状、谱峰所在频率(U)和谱峰的数值(V)、混叠现象和频谱泄漏的有无。

用DFT(FFT)对时域离散信号进行频谱分析报告

用DFT(FFT)对时域离散信号进行频谱分析报告
Xk16=fft(xn,16); %计算xn的16点DFT
%以下为绘图部分
k=0:7;wk=2*k/8; %产生8点DFT对应的采样点频率(关于π归一化值)
subplot(2,1,1);stem(wk,abs(Xk8),'.'); %绘制8点DFT的幅频特性图
title('(a) 8点DFT的幅频特性图');xlabel('ω/π');ylabel('幅度');grid
subplot(3,2,5);stem(wk,abs(Xk16), '.'); %绘制16点DFT的幅频特性图
title('(e) 16点DFT的幅频特性图');xlabel('ω/π');ylabel('幅度');grid
四、结论与心得
成绩
教师签名
批改时间
年月日
2.掌握DFT(FFT)对时域离散信号进行频谱分析的方法。
二、实验原理简介
1.DFT和FFT原理:
长度为N的序列x(n)的离散傅里叶变换为X(k):
首先按n的奇偶把时间序列x(n)分解为两个长为N/2点的序列
x1(n)=x(2r) r=0.1,….,N/2-1
x2(n)=x(2r+1) r=0,1,…..,N/2-1
三、实验内容和数据记录
(1)复习DFT的定义,性质和用DFT作频谱分析的有关内容。
(2)用MATLAB编制程序产生以下典型信号供谱分析用:
x1(n)=R4(n)
x4(n)=cos(πn/4)
x5(n)=10*0.8n
(3)分别以变换区间N=8,,16,32对x1(n)=R4(n)进行DFT(FFT),画出相应的幅频特性曲线;

DFT-FFT的应用之确定性信号谱分析

DFT-FFT的应用之确定性信号谱分析

实验报告课程名称:数字信号处理指导老师:成绩:__________________实验名称:DFT/FFT的应用之一确定性信号谱分析实验类型:__验证_ 同组学生姓名:—一、实验目的和要求谱分析即求信号的频谱。

本实验采用DFT/FFT技术对周期性信号进行谱分析。

通过实验,了解用X(k)近似地表示频谱X(ejω)带来的栅栏效应、混叠现象和频谱泄漏,了解如何正确地选择参数(抽样间隔T、抽样点数N)。

二、实验内容和步骤2-1 选用最简单的周期信号:单频正弦信号、频率f=50赫兹,进行谱分析。

2-2 谱分析参数可以从下表中任选一组(也可自定)。

对各组参数时的序列,计算:一个正弦周期是否对应整数个抽样间隔?观察区间是否对应整数个正弦周期?信号频率f(赫兹)谱分析参数抽样间隔T(秒)截断长度N (抽样个数)50 第一组参数0.000625 3250 第二组参数0.005 3250 第三组参数0.0046875 3250 第四组参数0.004 3250 第五组参数0.0025 162-3 对以上几个正弦序列,依次进行以下过程。

2-3-1 观察并记录一个正弦序列的图形(时域)、频谱(幅度谱、频谱实部、频谱虚部)形状、幅度谱的第一个峰的坐标(U,V)。

2-3-2 分析抽样间隔T、截断长度N(抽样个数)对谱分析结果的影响;2-3-3 思考X(k)与X(e jω)的关系;2-3-4 讨论用X(k)近似表示X(ejω)时的栅栏效应、混叠现象、频谱泄漏。

三、主要仪器设备MATLAB编程。

四、操作方法和实验步骤(参见“二、实验内容和步骤”)五、实验数据记录和处理%program 2-2-1clear;clf;clc;%清楚缓存length=32;T=0.000625;t=0:0.001:31;%设置区间以及步长n=0:length-1;xt=sin(2*pi*50*t);xn=sin(2*pi*50*T*n);figure(1);subplot(2,1,1);plot(t,xt);xlabel('t');ylabel('x(t)');axis([0 0.1 -1 1]);title('原序列');subplot(2,1,2);stem(n,xn);xlabel('n');ylabel('xn)');title('抽样后序列');axis([0 length -1 1]);figure(2); %画出序列的实部、虚部、模、相角subplot(2,2,1);stem(n,real(xn));xlabel('n');ylabel('real(xn)');title('序列的实部');axis([0 length -1 1]); subplot(2,2,2);stem(n,imag(xn));xlabel('n');ylabel('imag(xn)');title('序列的虚部');axis([0 length -1 1]); subplot(2,2,3);stem(n,abs(xn));xlabel('n');ylabel('abs(xn)');title('序列的模');axis([0 length -1 1]); subplot(2,2,4);stem(n,angle(xn));xlabel('n');ylabel('angle(xn)');title('序列的相角');axis([0 length -1 1]); F=fft(xn,length); %计算DFTfigure(3); %画出DFT的的幅度,实部和虚部subplot(3,1,1);stem(n,abs(F));xlabel('k');ylabel('abs(F)');title('DFT幅度谱');subplot(3,1,2);stem(n,real(F));xlabel('k');ylabel('real(F)');title('dft 实部'); subplot(3,1,3);stem(n,imag(F));xlabel('k');ylabel('imag(F)');title('DFT的虚部'); 六、实验结果与分析 实验结果: 第一组参数:tx (t )原序列nx n )nr e a l (x n )ni m a g (x n )na b s(x n )na n g l e (x n )k a b s (F )-15kr e a l (F )dft 实部ki m a g (F )第二组参数:tx (t )nx n )nr e a l (x n )ni m a g (x n )na b s (x n )na n g l e (x n )k a b s (F )DFT 幅度谱-14kr e a l (F )dft 实部ki m a g (F )第三组参数:tx (t )原序列nx n )nr e a l (x n )ni m a g (x n )序列的虚部na b s(x n )na n g l e (x n )序列的相角k a b s (F )DFT 幅度谱kr e a l (F )dft 实部-14ki m a g (F )DFT的虚部第四组参数;tx (t )原序列nx n )抽样后序列nr e a l (x n )ni m a g (x n )na b s (x n )na n g l e (x n )k a b s (F )DFT 幅度谱kr e a l (F )dft 实部ki m a g (F )第五组数据:tx (t )原序列nx n )nr e a l (x n )ni m a g (x n )序列的虚部na b s (x n )na n g l e (x n )k a b s (F )DFT 幅度谱-15kr e a l (F )dft 实部ki m a g (F )实验数据分析6-1 实验前预习有关概念,并根据上列参数来推测相应频谱的形状、谱峰所在频率(U )和谱峰的数值(V )、混叠现象和频谱泄漏的有无:奈奎斯特定律的时候不会出现频率的混叠现象。

实验一 利用DFT分析信号频谱

实验一 利用DFT分析信号频谱

实验一 利用DFT 分析信号频谱一、实验目的1.加深对DFT 原理的理解。

2.应用DFT 分析信号的频谱。

3.深刻理解利用DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法。

二、实验设备与环境计算机、MATLAB 软件环境。

三、实验基础理论 1.DFT 与DTFT 的关系DFT 实际上是DTFT 在单位圆上以k Njezπ2=的抽样,数学公式表示为:∑-=-===102)(|)()(2N n k Njez en x z X k X k Njππ ,1,..1,0-=N k(2—1) 2、利用DFT 求DTFT方法一:利用下列公式:)2()()(1∑-==-=N k k j Nkk X e X πωφω(2—2)其中21)2/sin()2/sin()(--=N j eN N ωωωωφ为内插函数方法二:实际在MATLAB 计算中,上述插值运算不见得是最好的办法。

由于DFT 是DTFT 的取样值,其相邻两个频率样本点的间距为Nπ2,所以如果我们增加数据的长度N ,使得到的 DFT 谱线就更加精细,其包络就越接近DTFT 的结果,这样就可以利用DFT 计算DTFT 。

如果没有更多的数据,可以通过补零来增加数据长度。

3、利用DFT 分析连续时间函数利用DFT 分析连续时间函数是,主要有两个处理:①抽样,②截断 对连续时间信号)(t x a 一时间T 进行抽样,截取长度为M ,则 nT j M n a tj a a e nT x T dt et x j X Ω--=+∞∞-Ω-∑⎰==Ω)()()(10 (2—3)再进行频域抽样可得 )()(|)(122k TX enT x T j X M M n n Nk ja NTk a ==Ω∑-=-=Ωππ (2—4)因此,利用DFT 分析连续时间信号的步骤如下: (1)、确定时间间隔,抽样得到离散时间序列)(n x .(2)、选择合适的窗函数和合适长度M ,得到M 点离散序列)()()(n w n x n x M =. (3)、确定频域采样点数N ,要求N ≥M 。

用DFT对时域离散信号进行频谱分析

用DFT对时域离散信号进行频谱分析

用DFT对时域离散信号进行频谱分析DFT(离散傅里叶变换)和FFT(快速傅里叶变换)是用于对时域离散信号进行频谱分析的常用方法之一、在本文中,我将介绍DFT和FFT的原理和应用,并探讨它们的优势和劣势。

频谱分析是一种研究信号频率成分的方法。

它可以用于分析信号的频域特征,例如信号频谱的幅度和相位信息。

频谱分析广泛应用于通信、声学、图像处理、金融等领域。

DFT是傅里叶变换在时域离散信号上的一种离散形式。

傅里叶变换将信号从时域转换到频域,使我们能够分析信号包含的不同频率的成分。

DFT计算离散信号的系数,这些系数表示了信号在不同频率上的幅度和相位信息。

DFT的计算复杂度为O(N^2),其中N是信号的长度。

这意味着DFT对于长时间序列的计算是非常昂贵的。

为了解决DFT计算复杂度高的问题,人们引入了FFT算法。

FFT是一种基于DFT的快速算法,可以大大提高计算效率。

FFT的计算复杂度为O(NlogN)。

当信号的长度是2的幂次时,FFT的计算速度尤为快速。

FFT算法利用了傅里叶变换中的对称和周期性特性,通过分治法将DFT计算分解成多个小规模的DFT计算,从而加快了计算速度。

FFT算法有多种变体,包括Cooley-Tukey算法、Gentleman-Sande算法等。

使用DFT和FFT进行频谱分析有很多应用。

其中一种常见的应用是信号滤波。

通过分析信号的频谱,我们可以确定信号中所包含的不同频率的成分,从而选择性地滤除或增强一些频率的信号成分。

另一种应用是频谱分析可用于频率识别。

通过观察信号频谱的峰值和分布情况,我们可以确定信号的主要频率成分,从而进行信号的识别和辨别。

尽管DFT和FFT在频谱分析中非常有用,但它们也存在一些局限性。

首先,这些方法假设信号是离散、周期且稳定的。

对于非周期信号和突发信号,DFT和FFT的结果可能会产生混淆或误导。

其次,DFT和FFT的分辨率取决于采样率和信号长度,这可能会导致频域分辨率较低。

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

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

实验一应用DFT 和FFT 对信号进行频谱分析一、实验目的1. 加深对离散傅立叶变换(DFT )和快速傅立叶变换(FFT )的理解,掌握两种变换的编程实现方法。

2. 掌握应用FFT 对典型信号进行频谱分析的方法。

3. 比较DFT 和FFT ,理解FFT 的优点和不足。

二、实验原理及方法(参见教材) 1.频谱;2.序列的频谱;3.时域、频域采样的基本理论; 4.DFT 的意义及应用;5.DFT 用于频谱分析带来的问题(混淆、泄露、栅栏效应); 6.FFT 算法。

三、实验内容①观察高斯序列的时域和频域特性,(p, q 取值的影响),频域特性分别使用DFT 和FFT 求取。

a. p=8时,q=2, 4, 8;b. q=8时,p=8,13,14.②观察衰减正弦序列x b (n)的时域频域特性,频域特性分别使用DFT 和FFT 求取。

取a=0.1时,f=0.0625, 0.4375, 0.5625, 观察频谱的形状及谱峰位置,哪种取值时有混淆和泄露现象,说明原因。

③观察三角波序列和反三角波序列的时域和频域特性。

a. 用8点的FFT 分析x c (n)和 x d (n)的幅频特性,观察二者时域序列和频谱形状。

b. 在x c (n)和 x d (n)末尾补零,用16点FFT 分析其幅频特性,观察其较a. 的变化,分析原因。

c. 用DFT 分析其幅频特性,并与FFT 的结果进行比较。

四、实验步骤1、熟悉原理,掌握方法。

2、 编制信号频谱分析主程序和相应的子程序。

①信号产生子程序: a. 高斯(GAUSS )序列为参数其它q p n e n x q p n a ,,0150,)(2)(⎪⎪⎩⎪⎪⎨⎧≤≤=--b. 衰减正弦序列⎪⎩⎪⎨⎧≤≤=-其它,0150),2sin()(n fn e n x an b πc. 三角波序列⎪⎪⎩⎪⎪⎨⎧≤≤-≤≤+=其它,074,830,1)(n n n n n x cd. 反三角波序列⎪⎪⎩⎪⎪⎨⎧≤≤-≤≤-=其它,074,330,4)(n n n n n x d ②DFT 和FFT 子程序③信号频谱分析主程序 3、程序流程图如下:五、实验结果编制的程序界面如下:1、高斯序列的DFT及FFT变换2、衰减正弦序列的DFT及FFT变换3、三角波序列的DFT及FFT变换4、反三角波序列的DFT及FFT变换六讨论1 、刚开始试验时感觉无从下手,这是因为对C++不熟悉;后来在老师和同学的指导下,了解了基本操作后,自己才知道怎样做。

实验三DFT和FFT频谱分析

实验三DFT和FFT频谱分析

实验三DFT和FFT频谱分析、实验目的1.掌握DFT频谱分析的原理与编程方法。

2.理解FFT算法的编程思想。

2.熟练掌握利用FFT对信号作频谱分析,包括正确地进行参数选择、画频谱及读频谱图。

3.利用FFT频谱分析进行快速卷积和太阳黑子周期性检测。

二、实验环境1.Windows xp以上操作系统2.安装MATLAB2007a 软件三、实验原理1.离散傅里叶变换(DFT)设序列为x(n),长度为N,则N 1X(ej 3 k)=DFT[x(n)]=送x(n) e-j o k n,n z02 n其中3 k= k(k=0,1,2, …-M,通常M>N,以便观察频谱的细节。

|X(ej 3 kH-x(n)的幅频谱。

M矚慫润厲钐瘗睞枥庑赖賃軔。

矚慫润厲钐瘗睞枥庑赖賃。

2.谱分析参数选择1)设信号x(t)最高频率为fc,对其进行取样得x(n),根据取样定理,取样频率fs必须满足: fs>=2fc。

聞創沟燴鐺險爱氇谴净祸測。

聞創沟燴鐺險爱氇谴净祸。

2)设谱分辨率为F,则最小记录时间tpmin=1/F ;取样点数N> 2fc/F为使用快速傅里叶变换(FFT)进行谱分析,N还须满足:N=2E (E为整数)。

3.用FFT计算信号x(n)的频谱。

[设x(n)为实信号]快速傅里叶变换(FFT)是DFT的一种快速算法,其使得DFT的运算速度大为加快。

1)对信号x(n)作N点FFT,得频谱X(k)(k=0~N-1)X(k)=XR(k)+jXI(k) (k=0~N/2-1)XR(k) — X(k)的实部;Xl(k) — X(k)的虚部。

残骛楼諍锩瀨濟2 / 12溆塹籟婭骤。

残骛楼諍锩瀨濟溆塹籟婭。

Matlab 语句:Y=fft(x,N) 其中:X----X (n );Y----X(k)』2 22)幅频谱:|X(k)|= V XR (K)+X I (K), 由于x(n)为实信号,因此|X(k)|对称,Matlab 语句:abs(Y)iii)功率谱:PSD(k)=|X(k)|2/N=X(k)X*(k)/N Matlab 语句:PSD=Y .*conj(Y)/N其中:conj(Y)-- X*(k)[X(k) 的共轭]4.读频谱图频谱图中任意频率点k 对应实际频率为:fk=fs/N*k 。

实验二 应用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)。

用DFT(FFT)对连续信号进行频谱分析

用DFT(FFT)对连续信号进行频谱分析

电子信息工程系实验报告课程名称:数字信号处理Array实验项目名称:用DFT(FFT)对连续信号进行频谱分析实验时间:班级:通信姓名: xxp 学号:一、实验目的:1.掌握用DFT(FFT)对模拟信号进行谱分析的方法,理解可能出现的分析误差及其原因,以便在实际中正确应用FFT。

2.熟悉应用FFT实现两个序列的线性卷积的方法。

二、实验原理:1.用DFT(FFT)对连续信号进行频谱分析用DFT(FFT)对模拟信号做谱分析是一种近似的谱分析。

首先一般的模拟信号(周期信号除外)的频谱是连续谱,而用FFT做谱分析得到的是数字谱,因此应该取FFT的点数多一些,用它的包络作为模拟信号的近似谱。

另外,如果模拟信号不是严格的带限信号,会因为频谱混叠现象引起谱分析的误差,这种情况下可以预先将模拟信号进行预滤,或者尽量将采样频率取高一些。

最后要注意一般的模拟信号是无限长的,分析时要截断,截断的长度与对模拟信号进行频谱分析的分辨率有关。

如果要进行谱分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍,如果不知道信号的周期,要尽量选择观测时间长一些,以减少截断效应的影响。

在运用DFT(FFT)对模拟信号进行谱分析的过程中主要可能产生以下三种误差:(1) 混叠现象对模拟信号进行谱分析时首先要对其采样,当采样速率不满足Nyquist定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原模拟信号的频谱。

避免混叠现象的唯一方法是保证采样速率足够高,使频谱混叠现象不致出现,即在确定采样频率之前,必须对频谱的性质有所了解,在一般情况下,为了保证高于折叠频率的分量不会出现,在采样前,先用低通模拟滤波器对信号进行滤波。

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

DFT在信号频谱分析中的应用

DFT在信号频谱分析中的应用

设计一 DFT 在信号频谱分析中的应用一、设计题目DFT 在信号频谱分析中的应用二、设计目的1. 熟悉DFT 的性质。

2. 加深理解信号频谱的概念及性质。

3. 了解高密度谱与高分辨率频谱的区别。

三、设计原理所谓信号的频谱分析就是计算信号的傅里叶变换。

连续信号与系统的傅里叶分析显然不便于直接用计算机进行计算,使其应用受到限制,而DFT 是一种时域和频域均离散化的变换,适合数值运算,成为分析离散信号和系统的有力工具。

工程实际中,经常遇到的连续信号Xa(t),其频谱函数Xa(jW)也是连续函数。

数字计算机难于处理,因而我们采用DFT 来对连续时间信号的傅里叶变换进行逼近,进而分析连续时间信号的频谱。

四、实现方法离散傅里叶变换是有限长序列的傅里叶变换,它相当于把信号的傅里叶变换进行等频率间隔采样,并且有限长序列的离散傅里叶变换和周期序列的离散傅里叶级数本质是一样的。

快速傅里叶变换(FFT )并不是一种新的变换,它是离散傅里叶变换的一种快速算法,并且主要是基于这样的思路而发展起来的:(1)把长度为N 的序列的DFT 逐次分解成长度较短的序列的DFT 来计算。

(2)利用WN(nk)的周期性和对称性,在DFT 运算中适当的分类,以提高运算速度。

(对称性nk Nnk N WW N-=+2,12-=NN W ;周期性nkN nk N nrN N k rN n NW W W W ---==)(,r 为任意整数,1=nrNNW )离散傅里叶变换的推导:离散傅里叶级数定义为nk j N k p p ek x Nn x N21)(1)(π∑-==(1-1)将上式两端乘以nm j Neπ2-并对n在0~N-1求和可得⎥⎦⎤⎢⎣⎡==∑∑∑∑∑-=---=-=-=---=-10)(110101)(10N2N2N2)()(1)(N n m k n j N N k p N n N k m k n j pN n nm j pe k X ek XNen xπππ 因为{m k 1mk 0)(N )(10)(N 2N2N2-1-1N 11=≠---=-==∑m k j m k j N n m k n jeeeNπππ所以∑∑-=-=--=110)()()(N2N k p N n nm j pm k k X en xδπ 这样∑-=-=10N2)()(N n nm j p p en x m X π用k 代替m得∑-=-=1N2)()(N n nk j pP en xk X π(1-2)令N2πj NeW -=则(1-2)成为DFS []∑-===10)()()(N n nkN pp p W n xk X n x (1-3)(1-1)成为IDFS []∑-=-==10)(1)()(N n nkN p p p W k X Nn x k X (1-4)式(1-3)、(1-4)式构成周期序列傅里叶级数变换关系。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DFT在信号频谱分析中的应用[精选5篇]

DFT在信号频谱分析中的应用[精选5篇]

DFT在信号频谱分析中的应用[精选5篇]第一篇:DFT在信号频谱分析中的应用设计一 DFT在信号频谱分析中的应用一、设计目的1.熟悉DFT的性质。

2.加深理解信号频谱的概念及性质。

3.了解高密度谱与高分辨率频谱的区别。

二、设计任务与要求1.学习用DFT和补零DFT的方法来计算信号的频谱。

2.用MATLAB语言编程来实现,在做课程设计前,必须充分预习课本DTFT、DFT及补零DFT的有关概念,熟悉MATLAB语言,独立编写程序。

三、设计内容1.用MATLAB语言编写计算序列x(n)的N点DFT的m函数文件dft.m。

并与MATLAB中的内部函数文件fft.m作比较。

参考程序如下: function Xk=dft(xn,N)if length(xn)xn=[xn,zeros(1,N-length(xn))];end n=0:N-1;for k=0:N-1Xk(1,k+1)=sum(xn.*exp((-1)*j*n*k*(2*pi/N)));end 2.对离散确定信号 x(n)=cos(0.48πn)+cos(0.52πn)作如下谱分析:(1)截取x(n)使x(n)成为有限长序列N(0≤n≤N-1),(长度N自己选)写程序计算出x(n)的N点DFT X(k),画出时域序列图xn~n和相应的幅频图X(k)~k。

参考程序如下:(假设N取11,即0≤n≤10 时, 编写程序,计算出X(n)的11点DFT Xk)n = 0:10;xn=cos(0.48*pi*n)+cos(0.52*pi*n);Xk = fft(xn, 11);subplot(2,1,1);stem(n, xn);grid;subplot(2,1,2);stem(n, abs(Xk));grid;(2)将(1)中x(n)补零加长至M点,长度M自己选,(为了比较补零长短的影响,M可以取两次值,一次取较小的整数,一次取较大的整数),编写程序计算x(n)的M点DFT, 画出时域序列图和两次补零后相应的DFT幅频图。

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

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

20090401310074 海南大学实验二 应用FFT 对信号进行频谱分析一、实验目的1、进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。

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

二、实验原理i.模拟信号频率Ω和采样得到的数字信号频率ω的关系:/s T f ω=Ω=Ωii.DTFT 与对应的理想采样信号的频谱之间的对应关系为:|^()()jw a T X j X e ω=ΩΩ=即DTFT 与FT 的关系为:12()[()]j a r X e X j r T T Tωωπ∞=-∞=-∑就是说,只要知道了采样序列的频谱,就可以得到相应的连续信号的频谱。

(满足耐奎斯特采样定理)iii.DFT 是对离散时间序列的频域采样,是对ZT 上单位圆上的均匀采样,或者是DTFT 上[0,2]π的等间距采样。

当满足频域的采样定理时,便可以由频域的采样值恢复ZT 或者是DTFT 。

所以能用DFT 对信号进行频谱分析。

当采样的点数足够时,便能用它的包络作为模拟信号的近似谱。

近似的过程中,可能会有混叠现象,泄露现象和栅栏效应这三种误差。

iv.离散傅立叶变换DFT :10()(),0,1,2...,1N nkN n X k x n W k N -===-∑[]101()()(),0,1,2...,1N nkN n x n IDFT X k X k W n N N --====-∑反变换与正变换的区别在于N W 变为1-N W ,并多了一个N 1的运算。

因为N W 和1-N W 对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此借助FFT 来实现IFFT.三、实验内容和结果:1. 高斯序列的时域和频域特性:高斯序列的时域表达式:2(),015()0,n p q a e n x n -⎧⎪≤≤=⎨⎪⎩其它i. 固定参数p=8,改变参数q 的值,记录时域和频域的特性如下图。

实验4-应用的DFT实现信号频谱分析

实验4-应用的DFT实现信号频谱分析

实验四应用FFT 实现信号频谱分析一、实验目的(1)能够熟练掌握快速离散傅里叶变换(Fast Fourier Transform,FFT)的原理及应用FFT 进行频谱分析的基础方法。

(2)对离散傅里叶变换的主要性质及FFT 在数字信号处理中的重要作用有进一步的了解。

二、基本原理1.离散傅里叶变换(DFT )及其主要性质DFT 表示离散信号的离散频谱,DFT 的主要性质中有奇偶对称特性`虚实特性等。

通过实验可以加深理解。

实序列的DFT 具有偶对称的实部和奇对称的虚部,这可以证明如下:由定义,可得][m X =∑-=10][N k km Nw k x =∑-=10)2cos(][N k km N k x π-j ∑-=10)2sin(][N k km N k x π][m N X -=∑-=-10)(][N k k m N Nw k x =kn NN k Nk N w wk x --=∑10][ =∑-=-10][N k km N wk x =∑-=10)2cos(][N k km N k x π-j ∑-=10)2sin(][N k km N k x π 所以: x[k]=k]-[N *x实序列DFT 的这个特性,在本实验中可以通过实指数序列及三角序列看出来。

对于单一频率的三角序列来说,它的DFT 谱线也是单一的,这个物理意义可以从实验中得到验证,在理论上可以推导如下:设:]Xk =sin )2(k Nπ][k R N 其DFT 为: ][m X =∑-=-102][N k km N j e k x π=∑-=-102)2sin(N k km N j e k N ππ =j21km N j k N j N k k N j e e e πππ22102)(---=∑- =j21)()1(210)1(2k m N j N k k m N j e e +--=-∑-ππ从而 X(0)=j21)(2102k N j N k k N j e e ππ--=∑-=0 X(1)=j21)1(410k N j N k e π--=∑-=jN 2= -j 2N X(N-2)=0…… X(N-1)=22)(21102)2(2N j j N e eJ N k n j N N j =-=-∑-=--ππ 以上这串式中]0[X 反应了][k x 的支流分量,]1[X 是][k x 的一次谐波,又根据虚实特性]1[]1[*X N X =-而其他分量均为零。

数字信号处理实验五用DFT(FFT)对信号进行频谱分析

数字信号处理实验五用DFT(FFT)对信号进行频谱分析

开课学院及实验室:电子楼3172018年 4月 29 日3()x n :用14()()x n R n =以8为周期进行周期性延拓形成地周期序列.(1> 分别以变换区间N =8,16,32,对14()()x n R n =进行DFT(FFT>,画出相应地幅频特性曲线;(2> 分别以变换区间N =4,8,16,对x 2(n >分别进行DFT(FFT>,画出相应地幅频特性曲线; (3> 对x 3(n >进行频谱分析,并选择变换区间,画出幅频特性曲线.<二)连续信号 1. 实验信号:1()()x t R t τ=选择 1.5ms τ=,式中()R t τ地波形以及幅度特性如图7.1所示.2()sin(2/8)x t ft ππ=+式中频率f 自己选择.3()cos8cos16cos 20x t t t t πππ=++2. 分别对三种模拟信号选择采样频率和采样点数.对1()x t ()R t τ=,选择采样频率4s f kHz =,8kHz ,16kHz ,采样点数用τ.s f 计算.对2()sin(2/8)x t ft ππ=+,周期1/T f =,频率f 自己选择,采样频率4s f f =,观测时间0.5p T T =,T ,2T ,采样点数用p s T f 计算.图5.1 R(t>地波形及其幅度特性对3()cos8cos16cos 20x t t t t πππ=++,选择采用频率64s f Hz =,采样点数为16,32,64. 3. 分别对它们转换成序列,按顺序用123(),(),()x n x n x n 表示.4. 分别对它们进行FFT.如果采样点数不满足2地整数幂,可以通过序列尾部加0满足.5. 计算幅度特性并进行打印.五、实验过程原始记录<数据、图表、计算等)(一> 离散信号%14()()x n R n = n=0:1:10。

数字信号处理--实验五-用DFT(FFT)对信号进行频谱分析

数字信号处理--实验五-用DFT(FFT)对信号进行频谱分析

学生实验报告开课学院及实验室:电子楼3172013年4月29日、实验目的学习DFT 的基本性质及对时域离散信号进行频谱分析的方法,进一步加深对频域概念和数字频率的理解,掌握 MATLAB 函数中FFT 函数的应用。

二、实验原理离散傅里叶变换(DFT)对有限长时域离散信号的频谱进行等间隔采样,频域函数被离散化了, 便于信号的计算机处理。

设x(n)是一个长度为 M 的有限长序列,x(n)的N 点傅立叶变换:X(k)N 1j 三 knDFT[x(n)]N x(n)e N0 k N 1n 0其中WNe.2 jN,它的反变换定义为:1X(n)NkN 1nkX(k)W N0 令z W N k,X(zz WN k则有:N 1x( n)Wj kn 0可以得到,X(k)X(Z)Z WN kZ W N*是Z 平面单位圆上幅角为2kN 的点,就是将单位圆进行N 等分以后第 K 个点。

所以, X(K)是Z 变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。

时域采样在满足Nyquist 定理时,就不会发生频谱混叠。

DFT 是对序列傅立叶变换的等距采样,因此可以用于序列的频谱分析。

如果用FFT 对模拟信号进行谱分析,首先要把模拟信号转换成数字信号,转换时要求知道模拟 信号的最高截至频率,以便选择满足采样定理的采样频率。

般选择采样频率是模拟信号中最高频率的3~4倍。

另外要选择对模拟信号的观测时间,如果采样频率和观测时间确定,则采样点数也确定 了。

这里观测时间和对模拟信号进行谱分析的分辨率有关,最小的观测时间和分辨率成倒数关系。

最小的采样点数用教材相关公式确定。

要求选择的采样点数和观测时间大于它的最小值。

如果要进行谱分析的模拟信号是周期信号,最好选择观测时间是信号周期的整数倍。

如果不知道■ 厂1*1IE向i1A I1f Ii i 0r 1 疋0Jfb-4W0 70000图5.1 R(t)的波形及其幅度特性xn=[on es(1,4),zeros(1,7)];%输入时域序列向量 xn=R4( n)%计算xn 的8点DFTXk16=fft(x n,16);%计算xn 的16点DFTXk32=fft(x n,32); %计算xn 的32点DFTk=0:7;wk=2*k/8;对 x 3(t) cos8 t cos16 t cos20 t ,选择采用频率 f s 64Hz ,采样点数为 16 , 32 , 64。

DFT、FFT及数字谱分析

DFT、FFT及数字谱分析

X Wx
W 1
0 N
W
n N N
W
n N
WN的规律
W
WN
n
N 2
W
n 2 N
n N
n 2N
W
DFT、FFT及数字谱分析 ——离散傅里叶变换(DFT)
例:已知 (n) {1,1,1,1},求X (k ) x
W40 0 W4 W W40 0 W4 W W
0 4 1 4 2 4 3 4
将x' (n)补0成为 点长序列 (n) 8 x
X ( k ) {4, 1 j (1 2 ), 0, 1 j ( 2 1), 0, 1 j ( 2 1), 0, 1 j (1 2 )}
prog01、02
DFT、FFT及数字谱分析 ——离散傅里叶变换(DFT)
X (k ) DFT[ x(n )] x(n )W , k N 1 0
k 2 r N
N kr k 0 k 1 Y (k ) y(r )WN x(2r )WN 2 r 2 r 0 r 0 2
N 1 2
N 1 2
同理:Z (k ) z (r )W
r 0
N 1 2
kr N 2
x(2r 1)W
r 0
N 1 2
k 2 r N
k x(2r 1)WN ( 2 r 1)WN k r 0 N 1 2 r 0
N 1 2
W Z (k ) x(2r 1)W
k N
k ( 2 r 1) N
N 0 k 1 2
k Y (k ) x(2r )WN 2 r r 0 N 1 2
DFT、FFT及数字谱分析 ——数字谱分析
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
课程名称:数字信号处理指导老师:成绩:__________________
实验名称:DFT/FFT的应用之一确定性信号谱分析实验类型:__验证_ 同组学生姓名:—
一、实验目的和要求
谱分析即求信号的频谱。

本实验采用DFT/FFT技术对周期性信号进行谱分析。

通过实验,了解用X(k)近似地表示频谱X(ejω)带来的栅栏效应、混叠现象和频谱泄漏,了解如何正确地选择参数(抽样间隔T、抽样点数N)。

二、实验内容和步骤
2-1 选用最简单的周期信号:单频正弦信号、频率f=50赫兹,进行谱分析。

2-2 谱分析参数可以从下表中任选一组(也可自定)。

对各组参数时的序列,计算:一个正弦周期是否对应整数个抽样间隔?观察区间是否对应整数个正弦周期?
信号频率f(赫兹)谱分析参数抽样间隔T
(秒)
截断长度N (抽样个数)
50 第一组参数0.000625 32
50 第二组参数0.005 32
50 第三组参数0.0046875 32
50 第四组参数0.004 32
50 第五组参数0.0025 16
2-3 对以上几个正弦序列,依次进行以下过程。

2-3-1 观察并记录一个正弦序列的图形(时域)、频谱(幅度谱、频谱实部、频谱虚部)形状、幅度谱的第一个峰的坐标(U,V)。

2-3-2 分析抽样间隔T、截断长度N(抽样个数)对谱分析结果的影响;
2-3-3 思考X(k)与X(e jω)的关系;
2-3-4 讨论用X(k)近似表示X(ejω)时的栅栏效应、混叠现象、频谱泄漏。

三、主要仪器设备
MATLAB编程。

四、操作方法和实验步骤
(参见“二、实验内容和步骤”)
五、实验数据记录和处理
%program 2-2-1
clear;clf;clc;%清楚缓存
length=32;
T=0.000625;
t=0:0.001:31;%设置区间以及步长
n=0:length-1;
xt=sin(2*pi*50*t);
xn=sin(2*pi*50*T*n);
figure(1);
subplot(2,1,1);plot(t,xt);
xlabel('t');ylabel('x(t)');
axis([0 0.1 -1 1]);title('原序列');
subplot(2,1,2);
stem(n,xn);xlabel('n');ylabel('xn)');
title('抽样后序列');axis([0 length -1 1]);
figure(2); %画出序列的实部、虚部、模、相角
subplot(2,2,1);stem(n,real(xn));
xlabel('n');ylabel('real(xn)');title('序列的实部');axis([0 length -1 1]); subplot(2,2,2);stem(n,imag(xn));
xlabel('n');ylabel('imag(xn)');title('序列的虚部');axis([0 length -1 1]); subplot(2,2,3);stem(n,abs(xn));
xlabel('n');ylabel('abs(xn)');title('序列的模');axis([0 length -1 1]); subplot(2,2,4);stem(n,angle(xn));
xlabel('n');ylabel('angle(xn)');title('序列的相角');axis([0 length -1 1]); F=fft(xn,length); %计算DFT
figure(3); %画出DFT的的幅度,实部和虚部
subplot(3,1,1);stem(n,abs(F));
xlabel('k');ylabel('abs(F)');title('DFT幅度谱');
subplot(3,1,2);stem(n,real(F));
xlabel('k');ylabel('real(F)');title('dft 实部'); subplot(3,1,3);stem(n,imag(F));
xlabel('k');ylabel('imag(F)');title('DFT的虚部'); 六、实验结果与分析 实验结果: 第一组参数:
t
x (t )
原序列
n
x n )
n
r e a l (x n )
n
i m a g (x n )
n
a b s
(x n )
n
a n g l e (x n )
k a b s (F )
-15
k
r e a l (F )
dft 实

k
i m a g (F )
第二组参数:
t
x (t )
n
x n )
n
r e a l (x n )
n
i m a g (x n )
n
a b s (x n )
n
a n g l e (x n )
k a b s (F )
DFT 幅度谱
-14
k
r e a l (F )
dft 实部
k
i m a g (F )
第三组参数:
t
x (t )
原序列
n
x n )
n
r e a l (x n )
n
i m a g (x n )
序列的虚

n
a b s
(x n )
n
a n g l e (x n )
序列的相角
k a b s (F )
DFT 幅度

k
r e a l (F )
dft 实

-14
k
i m a g (F )
DFT的虚部
第四组参数;
t
x (t )
原序列
n
x n )
抽样后序

n
r e a l (x n )
n
i m a g (x n )
n
a b s (x n )
n
a n g l e (x n )
k a b s (F )
DFT 幅度

k
r e a l (F )
dft 实

k
i m a g (F )
第五组数据:
t
x (t )
原序

n
x n )
n
r e a l (x n )
n
i m a g (x n )
序列的虚部
n
a b s (x n )
n
a n g l e (x n )
k a b s (F )
DFT 幅度谱
-15
k
r e a l (F )
dft 实部
k
i m a g (F )
实验数据分析
6-1 实验前预习有关概念,并根据上列参数来推测相应频谱的形状、谱峰所在频率(U )和谱峰的数值(V )、
混叠现象和频谱泄漏的有无:
奈奎斯特定律的时候不会出现频率的混叠现象。

由于采样后,信号的频谱在频域上周期上延拓,而且截断后,相当于频谱在频域上与sinc 函数进行卷积,因此采样后的信号总是存在高频分量,因此总是存在频域混叠的现象,也会存在频域泄露的现象。

6-2 观察实验结果(数据及图形)的特征,做必要的记录。

1、 抽样间隔不同会影响谱峰所在位置以及峰值 2、 混叠现象
k a b s (F )
k
r e a l (F )
k
i m a g (F )
可以很清晰看到左右两个之间产生了混叠,是由于不满足采样定律造成的。

3、 泄露现象
k a b s (F )
DFT 幅度谱
k
r e a l (F )
dft 实部
-14
k
i m a g (F )
DFT的虚部
由于混叠和泄露现象不能完全区分清楚,但是这张图上可以看出,在峰值左右同样产生了较高峰值的频率
5-2 用基本理论、基本概念来解释各种现象。

(1) 混叠
序列的频谱是被采样信号频谱的周期延拓,当采样速率不满足Nyquist 定理时,就会发生频谱混叠,使得采样后的信号序列频谱不能真实的反映原信号的频谱。

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

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

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

泄漏不能与混叠完全分开,因为泄漏导致频谱的扩展,从而造成混叠。

为了减少泄漏的影响,可以选择适当的窗函数使频谱的扩散减至最小。

相关文档
最新文档