实验利用DFT分析模拟信号频谱

合集下载

实验二 用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 的频谱结构。

dft信号频谱的分析

dft信号频谱的分析

一,实验名称: DFT 的频谱分析 二,实验目的:1. 加深对 DFT 原理的理解,熟悉DFT 的性质。

2. 掌握离散傅里叶变换的有关性质,利用Matlab 实现DFT 变换3. 深刻理解利用 DFT 分析信号频谱的原理,分析实现过程中出现的现象及解决方法三,实验原理:所谓信号的频谱分析就是计算信号的傅里叶变换。

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

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

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

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

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

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

(对称性nkNnk NW W N-=+2,12-=NN W ;周期性nk N nk N nrN N k rN n N W 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 p e 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πππ所以∑∑-=-=--=11)()()(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 得 ∑-=-=10N2)()(N n nk j p P e n x k X π (1-2)令N2πj N eW -=,则(1-2)成为DFS []∑-===10)()()(N n nk N p p p W n x k X n x (1-3)(1-1)成为 IDFS []∑-=-==1)(1)()(N n nkNpp 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将其零频位置搬到频谱中心。
以上就是按时间抽取旳迅速傅立叶变换

实验三用FFT对信号进行频谱分析和MATLAB程序

实验三用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.实验目的和背景介绍。

实验报告

实验报告

数字信号处理实验报告指导老师:熊桂林姓名:马安洁班级:测控0802学号:0909082912中南大学信息科学与工程学院2011年6月实验一 模拟信号频谱分析1.实验目的● 学会应用DFT 对模拟信号进行频谱分析的方法;● 通过应用DFT 分析各种模拟信号的频谱,加深对DFT 的理解; ● 熟悉MATLAB 的基本操作,以及一些基本函数的使用,为以后的实验奠定基础。

2.实验原理⑴ 利用DFT 计算模拟信号的频谱连续周期信号的频谱:000/20/21()()T jk tT X jk x t edtT -Ω-Ω=⎰连续非周期信号的频谱:()()j tX j x t edt∞-Ω-∞Ω=⎰通过积分公式求取复杂的实际信号的频谱函数本身就比较困难,何况在许多情况下只是记录了实际信号的一段波形或数据,而没有对应的解析表达式。

若要对这些信号进行频谱分析,就必须利用离散傅里叶变换(DFT )。

DFT 表征一个在时域为有限长N 点的序列()x n 经过傅里叶变换成为另一个有限长序列()X k :21()()0,1,2,,1N jnkNn X k x n ek N π--===-∑离散傅里叶反变换(IDFT )定义为:211()()0,1,2,,1N jnkNk x n X k en N Nπ-===-∑由于DFT 变换对的时域、频域都是离散的,可以通过计算机实现,因此可以使用DFT 对连续信号进行频谱分析。

但必须要对连续信号进行离散化,并且当信号长度无限长时需要作截短处理。

因此恰当地确定抽样间隔T 和相应的长度,是决定DFT 结果是否符合实际的关键因素。

如果不满足抽样定理的约束条件,则会出现混叠失真;如果截断和选取的长度(也就是加窗)不合适,则会造成频谱扩散,使能量和功率产生泄漏。

DFT 的快速算法FFT ,可以快速高效地完成DFT 运算。

在MATLAB 的信号处理工具箱中提供了fft 函数和 ifft 函数,用于计算信号的快速傅里叶变换和反变换。

用DFT对模拟信号作频谱分析课件

用DFT对模拟信号作频谱分析课件
详细描述
通过DFT对正弦波信号进行频谱分析,可以观察到该信号在 频域中的表现,即其对应的频率分量。正弦波信号的频谱分 析展示了DFT在处理单一频率信号时的效果,能够准确地提 取出信号的频率信息。
实例二:方波信号的频谱分析
总结词
方波信号的频谱分析展示了DFT在处理复杂信号时的能力。
详细描述
方波信号是一种非单一频率的信号,其频谱分析需要使用DFT进行处理。通过对方波信号进行频谱分析,可以观 察到该信号在频域中的表现,即其包含的多个频率分量。这展示了DFT在处理复杂信号时的能力,能够准确地提 取出信号的频率信息。
假峰现象
01
DFT可能会出现假峰现象,即分析结果中出现一些不存在的频
率分量。
分辨率问题
02
DFT的分辨率有限,对于某些信号可能无法准确地区分相近的
频率分量。
对噪声敏感
03
DFT对噪声比较敏感,噪声可能会影响频谱分析的准确性。
DFT在频谱分析中的实现步骤
1. 采样
对模拟信号进行采样,得到离 散时间信号。
感谢观看
用DFT对模拟信 号作频谱分析课 件
contents
目录
• DFT基本原理 • 模拟信号的频谱分析 • DFT在频谱分析中的应用 • DFT在频谱分析中的实例 • DFT在频谱分析中的注意事项
01
CATALOGUE
DFT基本原理
DFT的定义
01
离散傅里叶变换(DFT):将离 散时间信号转换为频域表示的数 学工具。
DFT将信号分解为不同频率的正弦波 和余弦波的叠加。
通过DFT,可以分析信号中各个频率 分量的幅度和相位信息。
02
CATALOGUE
模拟信号的频谱分析

实验五 利用DFT分析模拟信号频谱

实验五 利用DFT分析模拟信号频谱
k=0:N-1;
w=0.54-0.46*cos(2*pi*k/(N-1)); x=y.*w; Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-(N/2):(N/2-1)); subplot(2,1,2); stem(f,abs(fftshift(Xm)));%画出幅度谱 xlabel('f(Hz)'); ylabel('magnitude'); title('幅度谱增加hamming窗后分析 N=?');
3.fsam=440;Tp=0.4;N=55;T=1/fsam; t=0:T:Tp; f1=100;f2=110; x=cos(2*pi*f1*t)+sin(2*pi*f2*t);%周期信号 Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-(N/2):(N/2-1)); subplot(2,1,1); stem(f,abs(fftshift(Xm)));%画出幅度谱 xlabel('f(Hz)'); ylabel('magnitude'); title('幅度谱 N=440'); %使用hamming对信号进行频谱分析 fsam=440;Tp=0.4;N=55;T=1/fsam; t=0:T:Tp; N=Tp/T+1; f1=100;f2=110; y=cos(2*pi*f1*t)+0.75*sin(2*pi*f2*t);%周期信号 %选择非矩形窗hamming窗分析
已知周期信号 x
t cos10t 2 sin 18t ,计算其频谱。

DFT分析信号频谱

DFT分析信号频谱

2500
三、利用DFT分析连续非周期信号的频谱
x (t )
抽样 离散化
x[k ]
周期化
~ x[ k ]
DFT实现
~[ m ] X
A T
X ( j)
A
X (e )
A T
jw
m
m

2p 2p
w
N
m
假设连续信号持续时间有限,频带有限
讨论:
(1) x (t )无限长,其频带有限
加窗
DFT
x (t )
200 0
0
100
200
300
k
400
500
600
0
0
500
1000
k
1500
2000
2500
时域波形
10
x(n)
继续修改程序, 将时域信号取为 2048点,作2048 点DFT。
0
-10
0
500
1000
n 幅频特性
1500
2000
2500
1000
|X(k)|
500
0
0
500
1000
k
1500
2000
图1 连续非周期信号及其频谱
2. 连续时间周期信号 xT (t )
1 jn0t xT (t ) X (n0 ) xT (t )e dt T T
x (t ) T
X(nΩ0)
-T
0
T
t
0
Ω
图2 连续周期信号及其频谱
3.离散时间非周期信号 x[k ]
x[k ] X (e )
x(t)
X(jΩ)

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

实验二_应用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 取点数的增多, 能够看到的幅度谱的频率分量变得丰富, 得到的是高密度更高的谱, 也就是减轻了栅栏效应。

应用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++不熟悉;后来在老师和同学的指导下,了解了基本操作后,自己才知道怎样做。

数字信号处理第三章8 用DFT对模拟信号作频谱分析

数字信号处理第三章8 用DFT对模拟信号作频谱分析
2013-8-8 数字信号处理
信号最高频率f h的确定
t0 Th / 2
1 1 fh Th 2t0
2013-8-8
数字信号处理
例:有一频谱分析用的FFT处理器,其抽样点数 必须是2的整数幂,假设没有采用任何的数据处理 措施,已给条件为:
1)频率分辨率 10 Hz 2)信号最高频率 4kHz
x(n)为周期序列,周期N 14
抽样点数至少为14点
或者因为频率分量分别为500、 、 600 700Hz
得 F0 100Hz
N f s / F0 1400/100 14
最小记录点数N 14
2013-8-8 数字信号处理
2013-8-8
数字信号处理
T 2 f / f s 2 k / N
2013-8-8
X ( j) T x (nT )e jnT
n 0
数字信号处理
3)频域抽样:一个周期分N段,采样间隔 F0 ,时域周期延拓,
周期为 T0 1/ F0
N-1 n 0 N 1
n 0
0 2 F0
X ( jk 0 ) T x (nT )e jk0nT
试确定以下参量: 1)最小记录长度T0 3)在一个记录中最少点数N
2)抽样点间的最大时间间隔T(即最小抽样频率)
2013-8-8
数字信号处理
解: 1)最小记录长度:
1 1 T0 0.1s F0 10
2)最大抽样间隔 (f s 2 f h
f s 1/ T)
1 1 T 0. ms 125 3 2 f h 2 4 10
2013-8-8 数字信号处理
f fs * k / N

用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来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数,也相当于在频域将信号的频谱和矩形窗函数的频谱卷积,所得的频谱是原序列频谱的扩展。

用fft对信号作频谱分析的程序

用fft对信号作频谱分析的程序

用fft对信号作频谱分析的程序实验(1)function shiyan1x1=[1,1,1,1];n1=0:3;n2=4:7;xa=n1+1;xb=8-n2;x2=[xa,xb];xa1=4-n1;xb1=n2-3;x3=[xa1,xb1];X18=fft(x1,8);k1=0:8-1;subplot(3,2,1);stem(k1,abs(X18),'.'); axis([0,8,0,1.2*max(abs(X18))]); title('8点DFT[x1]');ylabel('幅度');X116=fft(x1,16);k2=0:16-1;subplot(3,2,2);stem(k2,abs(X116),'.'); axis([0,16,0,1.2*max(abs(X116))]); title('16点DFT[x1]');ylabel('幅度');X28=fft(x2,8);subplot(3,2,3);stem(k1,abs(X28),'.'); axis([0,8,0,1.2*max(abs(X28))]); title('8点DFT[x2]');ylabel('幅度');X216=fft(x2,16);subplot(3,2,4);stem(k2,abs(X216),'.'); axis([0,16,0,1.2*max(abs(X216))]); title('16点DFT[x2]');ylabel('幅度');X38=fft(x3,8);subplot(3,2,5);stem(k1,abs(X38),'.'); axis([0,8,0,1.2*max(abs(X38))]); title('8点DFT[x3]');ylabel('幅度');X316=fft(x3,16);subplot(3,2,6);stem(k2,abs(X316),'.'); axis([0,16,0,1.2*max(abs(X316))]); title('16点DFT[x3]');ylabel('幅度');实验(2)function shiyan2n1=0:8-1;n2=0:16-1;x48=cos(pi/4*n1);x58=cos(pi/4*n1)+cos(pi/8*n1); x416=cos(pi/4*n2);x516=cos(pi/4*n2)+cos(pi/8*n2);X48=fft(x48,8);X416=fft(x416,16);X58=fft(x58,8);X516=fft(x516,16);k1=0:8-1;k2=0:16-1;subplot(2,2,1);stem(k1,abs(X48),'.'); axis([0,8,0,5]);title('8点DFT[x4]');ylabel('幅度');subplot(2,2,2);stem(k2,abs(X416),'.'); axis([0,16,0,10]); title('16点DFT[x4]');ylabel('幅度');subplot(2,2,3);stem(k1,abs(X58),'.'); axis([0,8,0,10]);title('8点DFT[x5]');ylabel('幅度');subplot(2,2,4);stem(k2,abs(X516),'.'); axis([0,16,0,10]); title('16点DFT[x5]');ylabel('幅度');实验(3)function shiyan3Fs=64;T=1/Fs;N1=16;N2=32;N3=64;n1=0:N1-1;n2=0:N2-1;n3=0:N3-1;x816=cos(8*pi*n1*T)+cos(16*pi*n1*T)+cos(20*pi*n1*T); x832=cos(8*pi*n2*T)+cos(16*pi*n2*T)+cos(20*pi*n2*T); x864=cos(8*pi*n3*T)+cos(16*pi*n3*T)+cos(20*pi*n3*T); X816=fft(x816,16);X816=fftshift(X816);X832=fft(x832,32);X832=fftshift(X832);X864=fft(x864,64);X864=fftshift(X864);Tp=N1*T;F=1/Tp;k=-N1/2:N1/2-1;fk=k*F;subplot(3,1,1);stem(fk,abs(X816),'.'); title('16点DFTx8');xlabel('f(Hz)');ylabel('幅度');Tp=N2*T;F=1/Tp;k=-N2/2:N2/2-1;fk=k*F;subplot(3,1,2);stem(fk,abs(X832),'.'); title('32点DFTX8');xlabel('f(Hz)');ylabel('幅度');Tp=N3*T;F=1/Tp;k=-N3/2:N3/2-1;fk=k*F;subplot(3,1,3);stem(fk,abs(X864),'.'); title('64点DFTX8');xlabel('f(Hz)');ylabel('幅度');。

实验四 利用离散傅立叶变换(DFT)分析信号的频谱

实验四   利用离散傅立叶变换(DFT)分析信号的频谱

实验四 利用离散傅立叶变换(DFT )分析信号的频谱一、实验目的1、通过这一实验,能够熟练掌握快速离散傅里叶变换(FFT )的原理及其用FFT 进行频谱分析的基本方法。

2、在通过计算机上用软件实现FFT 及信号的频谱分析。

3、通过实验对离散傅里叶变换的主要性质及FFT 在数字信号处理中的重要作用有进一步的了解。

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

通过实验可以加深理解。

例如:实序列的DFT 具有偶对称的实部和奇对称的虚部,这可以证明如下: 由定义∑-==10)()(N n kn NW n x k X ∑∑-=-=-=1010)2sin()()2cos()(N n N n kn N n x j kn N n x ππ ∑-=-=-10)()()(N n n k N N W n x k N X∑-=-=10)(N n kn N Nn W W n x ∑-=-=10)(N n kn N W n x ∑∑-=-=+=1010)2sin()()2cos()(N n N n kn N n x j kn N n x ππ )(*)(k N X k X -=∴实序列DFT 的这个特性,在本实验中可以通过实指数序列及三角序列看出来。

对于单一频率的三角序列来说它的DFT 谱线也是单一的,这个物理意义我们可以从实验中得到验证,在理论上可以推导如下: 设:)()2sin()(n R n N n x N π=,其DFT 为: ∑-=-=102)()(N n kn N j en x k X π kn Nj N n e n N ππ210)2sin(--=∑= kn N j N n n N j n N j e e e j πππ21022)(21--=-∑-= ∑-=+----=10)1(2)1(2)(21N n k n N j k n N j e e j ππ 从而∑-=-=-=10220)(21)0(N n n N j n N j e e j X ππ∑-=--==-=10422)1(21)1(N n n N j N j j N e j X π 0)2(=X0)2(=-N X22)(21)1(102)2(2N j j N e e j N X N n n j n N N j =-=-=-∑-=--ππ以上这串式中)0(X 反映了)(n x 的直流分量,)1(x 是)(n x 的一次谐波,又根据虚实特性)1()1(*X N X =-,而其它分量均为零。

利用DFT分析模拟信号频谱

利用DFT分析模拟信号频谱

利用DFT分析模拟信号频谱傅里叶变换(Fourier transform)是一种信号分析方法,可以将一个时域信号转换为频域表示。

信号的频谱分析对于数字信号处理和通信系统设计至关重要。

在数字频域分析中,离散傅里叶变换(DFT)是一种常用的方法,它将一个离散的时域序列转换为离散的频域序列。

DFT的原理是将输入序列分解成一系列复数的正弦和余弦函数,这些函数的频率从0到N-1,N是输入序列的长度。

每个频率的幅度和相位表示了在该频率上的信号能量和相对于其他频率的权重。

DFT的计算可以使用快速傅里叶变换(FFT)算法来实现,这是一种高效的计算方法,可以大大减少计算复杂度。

下面我们将详细介绍如何使用DFT分析信号频谱。

首先,我们需要定义信号,并将其表示为离散的时域序列。

可以通过采样连续信号或直接生成离散信号来获得时域序列。

假设我们有一个长度为N的信号x(n),n表示时域中的样本索引。

然后,我们可以使用以下公式计算信号的DFT:X(k) = Σ[x(n) * exp(-j * 2π * k * n / N)], n=0 to N-1其中,X(k)是频域中的样本,表示信号在频率k上的能量。

计算得到的频域样本X(k)是复数,其模值表示信号在该频率上的幅度,而相位表示信号在该频率上的相位关系。

为了可视化频谱,我们可以使用频谱图。

频谱图的横轴表示频率,纵轴表示幅度或能量。

可以将频率在0到N-1之间的频谱样本可视化为柱状图。

在实际应用中,我们经常需要将频谱转换为双边频谱或单边频谱来进行分析。

双边频谱包含了负频率和正频率的信息,而单边频谱只包含正频率的信息。

对于实数序列,频谱是对称的,只需要保留正频率即可。

另外,还有一些常见的频谱分析技术,如功率谱密度(PSD)估计和窗函数。

功率谱密度表示了信号在不同频率上的能量分布,窗函数可以改善DFT的频率分辨率和泄漏问题。

通过DFT分析信号频谱,我们可以了解信号在不同频率上的能量分布,从而更好地理解信号的特征和性质。

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

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

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

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

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

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

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

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

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

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

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

5 / 11
时域抽样时产生混叠,可以降低抽样频率,以减少 DFT 的计算量。
2.分析例 1.5.1 中的周期信号 x(t)=cos(2πf1t)+2sin(18πt)的频谱时,如果分析长度 不为正周期(例如周期 T0=1.5s),利用 fft 函数计算并绘出其频谱,与例 1.5.1 中的分 析结果相比有何差别,总结对周期信号进行频谱分析时,如何选取信号的分析长度。
【例15.5.2】
fsam=50;Tp=6;N=512;T=1/fsam; t=0:T:Tp; x=exp(-2*t); X=T*fft(x,N); subplot(2,1,1); plot(t,x); xlabel('t');title('时域波形 N=512');legend('理论值'); w=(-N/2:N/2-1)*(2*pi/N)*fsam; y=1./(j*w+2); subplot(2,1,2); plot(w,abs(fftshift(X)),w,abs(y),'r-.'); title('幅度谱 N=512');xlabel('w'); legend('理论值','计算值',0); axis([-10,10,0,1.4])
Magnitude
幅度谱 1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-10 -8 -6 -4 -2
0
2
4
6
8 10
f(Hz)
2. 利用 DFT 计算连续非周期信号的频谱
连续时间非周期信号 x(t)的频谱函数 X(jw)是连续谱,定义为 X(jw)=∫x(t)e^-jwt dt 相比离散非周期信号的 DFT 分析方法,连续非周期信号的 DFT 分析方法增加了时 域抽样的环节。如果不满足抽样定理的约束条件,会出现混叠误差。如果信号在 时域加窗截短过程中,窗口宽度(截断长度)或窗口类型不合适,则会产生较大 的频率泄露而影响频谱分辨率。因此,合理地确定抽样间隔 T 和相应的截断长度 Tp 是决定 DFT 能否正确地分析信号频谱的关键。 连续非周期信号的分析步骤为: (1) 根据时域抽样定理,确定时域抽样间隔 T,得到离散序列 x[k]。 (2) 确定信号截断的长度 M 及窗函数的类型,得到有限长 M 点离散序列
【例15.5.1】
已知周期信号 xt cos10t 2 sin 18t ,计算其频谱。
clc,clear,class all T0=1;N=19;T=T0/N;%周期T0=1、FFT的点数N、时域抽样间隔T
t=0:T:T0;
1 / 11
x=cos(2*pi*5*t)+2*sin(2*pi*9*t);%周期信号 Xm=fft(x,N)/N;%利用FFT计算频谱 f=(-(N-1)/2:(N-1)/2)/N/T;%若N为偶数f=1/T/N*(-N/2:(N/2-1)) stem(f,abs(fftshift(Xm)));% 画出幅度谱 xlabel('f(Hz)');ylabel('Magnitude');title('幅度谱');
时 域 波 形 N=512 1
理论值
0.5
0
0
1
2
3
4
5
6
t
幅 度 谱 N=512
理论值
1
计算值
0.5
0
-10 -8 -6 -4 -2
0
2
4
6
8 10
w
3 / 11
3. 实验设备及材料 MATLAB 软件、计算机。
4.实验方法步骤及注意事项
实验方法步骤: (1) 打开 MATLAB 软件 (2) 根据题目要求编写程序 (3) 运行程序 (4) 分析实验结果 (5) 关闭计算机 注意事项: (1)对于实验仪器要轻拿轻放,遵守实验的规则。 (2)程序运行前要检查程序是否正确。
若在信号截断时使用 Hamming 窗,由实验确定能够分辨最小谱峰间隔△f 和信号长度 Tp 的关系。若采用不同参数的 kaiser 窗,重新确定能够分辨最小谱峰间隔△f 和信号 长度 Tp 的关系。
3.fsam=440;Tp=0.4;N=55;T=1/fsam; t=0:T:Tp; f1=100;f2=110; x=cos(2*pi*f1*t)+sin(2*pi*f2*t);%周期信号 Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-(N/2):(N/2-1)); subplot(2,1,1); stem(f,abs(fftshift(Xm)));%画出幅度谱 xlabel('f(Hz)'); ylabel('magnitude'); title('幅度谱 N=440'); %使用hamming对信号进行频谱分析 fsam=440;Tp=0.4;N=55;T=1/fsam; t=0:T:Tp; N=Tp/T+1; f1=100;f2=110; y=cos(2*pi*f1*t)+0.75*sin(2*pi*f2*t);%周期信号 %选择非矩形窗hamming窗分析 k=0:N-1; w=0.54-0.46*cos(2*pi*k/(N-1)); x=y.*w; Xm=fft(x,N)/N; %利用FFT计算其频谱 f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-(N/2):(N/2-1)); subplot(2,1,2); stem(f,abs(fftshift(Xm)));%画出幅度谱 xlabel('f(Hz)'); ylabel('magnitude'); title('幅度谱增加hamming窗后分析 N=?');
2..T0=1;N=36;T=T0/N; t=0:T:T0; x=cos(10*pi*t)+2*sin(18*pi*t); Xm=fft(x,N)/N; f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-(N/2):(N/2-1)); subplot(2,1,1); stem(f,abs(fftshift(Xm)));%画出幅度谱 xlabel('f(Hz)'); ylabel('magnitude'); title('幅度谱 N=36'); T0=1;N=90;T=T0/N; t=0:T:T0; x=cos(10*pi*t)+2*sin(18*pi*t); Xm=fft(x,N)/N; f=(-(N-1)/2:(N-1)/2)/N/T; %若N为偶数f=1/T/N*(-(N/2):(N/2-1)); subplot(2,1,2); stem(f,abs(fftshift(Xm)));%画出幅度谱 xlabel('f(Hz)'); ylabel('magnitude'); title('幅度谱 N=90');
实验时间 2012 年 4 月 18 日 实验室
同析三栋 313 实验室
一.实验预习 1.实验目的
应用离散傅里叶变化 DFT 分析模拟信号 x(t)的频谱,深刻理解利用 DFT 分析模拟信
号频谱的原理、分析过程中出现的现象及解决方法。
实验原理、实验流程或装置示意图 实验原理:
连续周期信号相对于离散周期信号,连续非周期信号相对于离散非周期信号,都可 以通过时域抽样定理建立相互关系。因此,在离散信号 DFT 分析方法的基础上,增 加时域抽样的步骤,就可以实现连续信号的 DFT 分析。 1. 利用 DFT 分析连续周期信号的频谱
1.fsam=50; Tp=6; T=1/fsam; N=512; t=0:T:Tp; x=exp(-2*t);
4 / 11
X=T*fft(x,N); subplot(2,1,1); plot(t,x); xlabel('t'); title('ʱÓò²¨ÐÎ N=512') legend('ÀíÂÛÖµ'); w=(-N/2:N/2)*(2*pi/N)*fsam; y=1./(j*w+2); subplot(2,1,2); plot(w,abs(fftshift(X)),abs(y)); title('·ù¶ÈÆ× N=512'); xlabel('w'); legend('ÀíÂÛÖµ','¼ÆËãÖµ',0); axis([-10,10,0,1,4]);
则频谱中有(2p+1)根谱线;若周期信号的频谱无限宽,则认为集中信号 90%以上(或根据工程允许而定)能量的前(p+1)次谐波为近似的频谱范 围,其余谐波忽略不计。取 N>=2p+1。 (3) 对连续周期信号以抽样间隔 T 进行抽样,T=T0/N。 (4) 利用 FFT 函数对 x[k]作 N 点 FFT 运算,得到 X[m]。 (5) 最后求得连续周期信号的频谱为 X(mw0)=1/NX[M]。 (6) 因为当对连续周期信号按间隔 T 进行均匀抽样,每周期抽取 N 点时,则有 t=Kt,T0=NT,dt_T, 代入式(1.5.1)可得若能够按照满足抽样定理的抽样间隔抽样,并选取 整周期为信号分析长度,则利用 DFT 计算得到的离散频谱值等于原连续周 期信号离散频谱 X(mw0)的准确值。
二.实验内容 1.利用 FFT 分析信号 x(t)=e^-2t*u(t)的频谱。 (1)确定 DFT 计算的各参数(抽样间隔 T,时域截断长度 Tp,频谱分辨率△fc 等)。 (2)比较理论值与计算值,分析误差原因,提出改善误差的措施。 1.利用 FFT 分析信号 x(t)=e^-2t*u(t)的频谱。 (1)确定 DFT 计算的各参数(抽样间隔 T,时域截断长度 Tp,频谱分辨率△fc 等)。 (2)比较理论值与计算值,分析误差原因,提出改善误差的措施。
相关文档
最新文档