实验二 离散傅立叶变换

合集下载

实验离散时间傅里叶变换和离散傅里叶变换

实验离散时间傅里叶变换和离散傅里叶变换

实验二离散时间傅里叶变换和离散傅里叶变换一.实验目的1. 深刻理解离散时间信号傅里叶变换的定义,与连续傅里叶变换之间的关系;2. 深刻理解序列频谱的性质(连续的、周期的等) ;3. 能用MATLAB编程实现序列的DTFT,并能显示频谱幅频、相频曲线;4. 深刻理解DFT的定义、DFT谱的物理意义、DFT与DTFT之间的关系;5. 能用MATLAB编程实现有限长序列的DFT ;6. 熟悉循环卷积的过程,能用MATLAB编程实现循环卷积运算。

二.实验原理1. 离散时间信号的频谱和图示化2. 离散傅里叶变换的定义和图示化三.实验结果w=[0:2:500]*pi*2/500;h=(1+0.9*exp(-j*w))./(1-0.9*exp(-j*w));magh=abs(h);plot(w/pi,magh);grid;xlabel( 'f' );ylabel( '|H(w)|' );n=[0:127];m=[0:127];x=exp(j*2*pi/128*m.* n);[xk]=dft(x,128);n=[0:127];m=[0:127];x=cos(2*pi/128*m.* n);[xk]=dft(x,128);stem( n,xk);xlabel( 'n' );ylabel( 'xk');« 0n=[0:127];m=[0:127]; [xk]=dft(x,128);stem( n,xk);xlabel( 'n' );ylabel( 'xk');n=[0:127];m=[0,127];x=s in(n);[xk]=dft(x,128);stem( n,xk);xlabel( 'n' );ylabel( 'xk');fC. ------------------------ ----------- ------------- ------------ ------------ ------------ -------------40 - -■3D ・-2D =-1D I- ii j | i■西k -____ g , ,上,___________注X] Sfl EC IDO 120 '40n=[0:127];m=[0:127];x=cos( n);[xk]=dft(x,128);stem( n,xk);xlabel( 'n' );ylabel( 'xk');n=[0:127];m=[0:127];x=n;[xk]=dft(x,128);stem( n,xk);xlabel( 'n' );ylabel( 'xk');n=[0:9];x1=[1,1,1,1,1,0,0,0,0,0];x2=[1,1,1,1,1,-1,-1,-1,-1,-1];[y]=circ on vt(x1,x2,10);stem( n,y);xlabel( 'n' );ylabel( 'y');。

数字信号处理 实验报告 实验二 应用快速傅立叶变换对信号进行频谱分析

数字信号处理 实验报告  实验二 应用快速傅立叶变换对信号进行频谱分析

数字信号处理实验报告实验二应用快速傅立叶变换对信号进行频谱分析2011年12月7日一、实验目的1、通过本实验,进一步加深对DFT 算法原理合基本性质的理解,熟悉FFT 算法 原理和FFT 子程序的应用。

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

3、通过本实验进一步掌握频域采样定理。

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

二、实验原理与方法1、一个连续时间信号)(t x a 的频谱可以用它的傅立叶变换表示()()j t a a X j x t e dt +∞-Ω-∞Ω=⎰2、对信号进行理想采样,得到采样序列()()a x n x nT =3、以T 为采样周期,对)(n x 进行Z 变换()()n X z x n z +∞--∞=∑4、当ωj ez =时,得到序列傅立叶变换SFT()()j j n X e x n e ωω+∞--∞=∑5、ω为数字角频率sT F ωΩ=Ω=6、已经知道:12()[()]j a m X e X j T T Tωωπ+∞-∞=-∑ ( 2-6 )7、序列的频谱是原模拟信号的周期延拓,即可以通过分析序列的频谱,得到相应连续信号的频谱。

(信号为有限带宽,采样满足Nyquist 定理)8、无线长序列可以用有限长序列来逼近,对于有限长序列可以使用离散傅立叶变换(DFT )。

可以很好的反映序列的频域特性,且易于快速算法在计算机上实现。

当序列()x n 的长度为N 时,它的离散傅里叶变换为:1()[()]()N knN n X k DFT x n x n W-===∑ 其中2jNN W eπ-=,它的反变换定义为:101()[()]()N knN k x n IDFT X k X k W N --===∑比较Z 变换式 ( 2-3 ) 和DFT 式 ( 2-7 ),令kN z W -=则1()()[()]|kNN nkN N Z W X z x n W DFT x n ---====∑ 因此有()()|kNz W X k X z -==k N W -是Z 平面单位圆上幅角为2kNπω=的点,也即是将单位圆N 等分后的第k 点。

实验二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实验报告

离散傅立叶变换DFT实验报告

实验一 离散时间系统的时域分析一、实验目的1. 运用MATLAB 仿真一些简单的离散时间系统,并研究它们的时域特性。

2. 运用MATLAB 中的卷积运算计算系统的输出序列,加深对离散系统的差分方程、冲激响应和卷积分析方法的理解。

二、实验原理离散时间系统其输入、输出关系可用以下差分方程描述:∑=∑=-=-M k k N k k k n x p k n y d 00][][当输入信号为冲激信号时,系统的输出记为系统单位冲激响应 ][][n h n →δ,则系统响应为如下的卷积计算式:∑∞-∞=-=*=m m n h m x n h n x n y ][][][][][ 当h[n]是有限长度的(n :[0,M])时,称系统为FIR 系统;反之,称系统为IIR 系统。

在MATLAB 中,可以用函数y=Filter(p,d,x) 求解差分方程,也可以用函数 y=Conv(x,h)计算卷积。

例1clf;n=0:40;a=1;b=2;x1= 0.1*n;x2=sin(2*pi*n);x=a*x1+b*x2;num=[1, 0.5,3];den=[2 -3 0.1];ic=[0 0]; %设置零初始条件y1=filter(num,den,x1,ic); %计算输入为x1(n)时的输出y1(n)y2=filter(num,den,x2,ic); %计算输入为x2(n)时的输出y2(n)y=filter(num,den,x,ic); %计算输入为x (n)时的输出y(n)yt= a*y1+b*y2;%画出输出信号subplot(2,1,1)stem(n,y);ylabel(‘振幅’);title(‘加权输入a*x1+b*x2的输出’);subplot(2,1,2)stem(n,yt);ylabel(‘振幅’);title(‘加权输出a*y1+b*y2’);(一)、线性和非线性系统对线性离散时间系统,若)(1n y 和)(2n y 分别是输入序列)(1n x 和)(2n x 的响应,则输入)()()(21n bx n ax n x +=的输出响应为)()()(21n by n ay n y +=,即符合叠加性,其中对任意常量a 和b 以及任意输入)(1n x 和)(2n x 都成立,否则为非线性系统。

实验二快速Fourier变换

实验二快速Fourier变换

实验二快速傅里叶变换(FFT)及其应用一、实验目的1・在理论学习的基础上,通过本实验,加深对FFT的理解,熟悉MATLAB中的有尖函数。

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

3. 了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFTo4・熟悉应用FFT实现两个序列的线性卷积和相尖的方法。

二、实验原理与方法在各种信号序列中,有限长序列信号处理占有很重要地位,对有限长序列,我们可以使用离散Fouier变换(DFT)。

这一变换不但可以很好的反映序列的频谱特T生,而且易于用快速算法在计算机上实现,当序列x(n)的长度为N时,它的DFT定义为:反变换为:有限长序列的DFT是其Z变换在单位圆上的等距采样,或者说是序列Fourier变换的等距采样,因此可以用于序列的谱分析。

FFT并不是与DFT不同的另一种变换,而是为了减少DFT运算次数的一种快速算法。

它是对变换式进行一次次分解,使其成为若干小点数的组合,从而减少运算量。

常用的FFT是以2为基数的,其长度。

它的效率高'程序简单'使用非常方便,当要变换的序列长度不等于2的整数次方时,为了使用以2为基数的FFT,可以用末位补零的方法,使其长度延长至2的整数次方。

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

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

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

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

实验二 离散傅里叶变换(DFT )实验【实验目的】1.进一步熟悉CCS 集成开发环境的软硬件调试方法2.学习DFT 的基本原理3.掌握如何在DSP 中实现DFT 算法【实验内容】1. 了解DFT 的基本原理。

2.了解命令文件中伪指令MEMORY 和SECTIONS 的作用。

2. CCS 中的软硬件开发环境的熟悉。

3. 常用信号(包括正弦波,方波,三角波,锯齿波)的DFT 。

【实验器材】1.DSP 开发板2.DSP 仿真器3 .PC 机(软件:CCS ,全称:Code composer studio )三 实验原理。

傅里叶变换是一种将信号从时域变换到频域的变换形式,是信号处理的重要分析工具。

离散傅里叶变换(DFT )是傅里叶变换在离散系统中的表示形式。

本实验是在学生首先产生一信号后,对该信号进行DFT ,并在CCS 中利用其自带的观察窗口或Memory 菜单来查看变换前后的波形或频谱值,从而完成了一个简易频谱分析仪。

让学生更加直观形象地体会DFT 的整个过程假设信号为x (0),x(1),……,x (N),那么其离散傅立叶变换后的实部和虚部以及频谱幅度分别为:2()0()()()()N j k n N r i n X k x n eX k jX k π-===+∑ 0(0)()(0)0N r i i X x i X =∴==∑ 002 ()()cos(())2()()sin(())(0)Nr n N i i X k x n k n N X k x n k n k N ππ===⨯⨯⨯=-⨯⨯⨯>∑∑()A k =具体的实现过程的时候需要根据硬件的特性来实现。

比如cos和sin的值都可事先通过软件计算出结果,保存在两个数组中,直接对其进行查表操作。

若缓存数量为128,即N=128。

对于cos和sin的系数,根据需要可以首先计算出128点的sin值,而cos的值则可以通过sin表整体后移N/4点,也就是整体后移32点后得到。

二维离散傅里叶变换及相关性质实验

二维离散傅里叶变换及相关性质实验

撰写人姓名: 撰写时间: 审查人姓名:实 验 全 过 程 记 录一、实验目的1、掌握二维傅里叶变换的原理和方法;2、掌握编程实现生成图像频谱图、中心化频谱及相互比较等方法。

二、实验内容:编程实现图像频谱图、中心化频谱,并进行相互比较。

三、实验用仪器设备及材料软件需求:操作系统:Windows Xp 或更新的版本开发工具:MATLAB 7.01、Photoshop CS3硬件需求:Pentium Ⅲ 1G 以上的CPU 处理器、256MB 以上的内存、1.5G 以上自由硬盘空间、CD-ROM 驱动器、打印机、打印纸等。

四、实验步骤: 1、复习二维傅里叶变换的原理和方法;2、启动MATLAB 软件;3、编程实现如下要求:⑴产生右图所示亮块图像()1,f x y (128×128,暗处=0,明处=255),对其进行FFT (快速傅里叶变换);⑵同屏显示原图1f 和FFT(1f )的频谱图;⑶令()()()21,1,x y f x y f x y +=-,重复以上过程,比较二者频谱的异同,并简述理由; ⑷将()2,f x y 顺时针旋转45得到()3,f x y ,显示FFT(3f )的频谱,并与FFT (2f )的频谱进行比较。

4、撰写实验报告内容⑴简述实验过程;⑵复制实验程序;⑶复制实验结果(如结果数据、生成的图像等);⑷心得体会。

五、撰写实验报告:%实验一:二维离散傅里叶变换及相关性质实验%构造原始图像f1=zeros(128,128);f1(24:104,48:80)=1;subplot(3,2,1);imshow(f1);xlabel('构造原始图像');%求原始图像的傅里叶频谱J=fft2(f1);F=abs(J);J1=fftshift(F);subplot(3,2,2);imshow(J1,[5 50]);xlabel('原始图像的傅里叶频谱');%构造f2的图像f2=f1;for x=1:128for y=1:128f2(x,y)=(-1)^(x+y)*f1(x,y);endendsubplot(3,2,3);imshow(f2);xlabel('构造f2的图像');%求f2的傅里叶频谱I=fft2(f2);F=abs(I);J2=fftshift(F);subplot(3,2,4);imshow(J2,[5 50]);xlabel('f2的傅里叶频谱');%将f2顺时针旋转得到f3f3=imrotate(f2,-45,'bilinear','crop'); subplot(3,2,5);imshow(f3);xlabel('f2图像顺时针旋转45度');%求f3的傅里叶频谱K=fft2(f3);F=abs(K);J3=fftshift(F);subplot(3,2,6);imshow(J3,[5 50]);xlabel('f3的傅里叶频谱');成绩评定:指导教师:年月日。

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

的系数
,并最后乘以1/N,那么, e e DFT的计算程序就可以用来计算IDFT。
j
2 nk N
改为
j
2 nk N
例:已知序列 x(n) cos(0.48n) cos(0.52n),(0 n 100) 试绘制序列及其傅立叶变换幅度谱
N=100;
n=0:N-1;
plot(w/pi,magX);
subplot(2,1,2); plot(w/pi,angX/pi);
检验频移特性
乘以复数指数对应于一个频移
令 x(n) cos(n / 2),0 n 100
y(n) e j n / 4 x(n)
n=0:100; k=-100:100;
xn=cos(0.48*pi*n)+cos(0.52*pi*n); xk=dft(xn,N); magxk=abs(xk); subplot(2,1,1)
plot(n,xn)
subplot(2,1,2) k=0:length(magxk)-1;
plot(k,magxk)
xn=xk*WNnk/N;
离散傅立叶变换的正、逆变换定义为:
X (k ) DFT [ x(n)] x(n)e
n 0
N 1
N 1
j
2 nk N
1 x(n) IDFT [ x(k )] X (k )e N k 0
j
2 kn N
比较正、逆变换的定义式可以看出,只要把DFT公式中
其中
WN e
j
2 N
利用MATLAB实现傅立叶级数计算
编写函数实现DFS计算
function xk=dfs(xn,N)
n=[0:1:N-1]; k=n; WN=exp(-j*2*pi/N); nk=n’*k; WNnk=WN.^nk; xk=xn* WNnk;
四种不同傅里叶变换对
傅里叶级数(FS):连续时间, 离散频率的傅里叶变换。
周期连续时间信号傅里叶级数(FS)得到非周期离散频 谱密度函数。
傅里叶变换(FT):连续时间, 连续频率的傅里叶变换。
非周期连续时间信号通过连续付里叶变换(FT)得到非
周期连续频谱密度函数。
序列的傅里叶变换(DTFT):离散时间,连续频率的傅里
离散傅里叶级数(DFS)

x(n) 为周期为N的周期序列, 则其离散傅里叶级数
(DFS) 变换对为:
正变换
(k ) DFS[ x(n)] x(n)e X
n 0
N 1
j
2 nk N
nk x(n)WN n 0
N 1
逆变换
2 N 1 j nk 1 N 1 x(n) IDFS[ (k )] X (k )e N (k )WN nk X X N n 0 k 0
叶变换。非周期离散的时间信号(单位园上的Z变换
(DTFT))得到周期性连续的频率离散频率的傅里叶
变换。
上面讨论的前三种傅里叶变换对,都不适用在
计算机上运算, 因为至少在一个域( 时域或频 域)中, 函数是连续的。因为从数字计算角度 我们感兴趣的是时域及频域都是离散的情况, 这就是第四种离散傅里叶变换。
例:xn=[0,1,2,3],N=4
xn=[0,1,2,3]; N=4; xk=dfs(xn,N)’
逆运算IDFS
function xn=idfs(xk,N)


n=[0:1:N-1];
k=n;


WN=exp(-j*2*pi/N);
nk=n’*k;


WNnk=WN.^(-nk);
分析:因为x(n)是复指数,它满足周期性,我
们将在两个周期中的401个频点上作计算来观
察其周期性。
n=0:10; x=(0.9*exp(j*pi/3)).^n; k=-200:200; w=(pi/100)*k; X=x*(exp(-j*pi/100)).^(n'*k); magX=abs(X); angX=angle(X); subplot(2,1,1);
会。
分重要的地位。在实际应用中,有限长序列有 相当重要的地位,由于计算机容量的限制,只 能对过程进行逐段分析。由于有限长序列,引 入DFT(离散付里叶变换)。
傅里叶变换
建立以时间t为自变量的“信号”与以频率f为 自变量的“频率函数”(频谱)之间的某种变换关系。 所以“时间”或“频率”取连续还是离散值, 就形成 各种不同形式的傅里叶变换对。
subplot(2,2,2);plot(w/pi,angle(X)/pi);
axis([-1,1,-1,1]); subplot(2,2,3);plot(w/pi,abs(Y)); axis([-1,1,0,60]); subplot(2,2,4);plot(w/pi,angle(Y)/pi); axis([-1,1,-1,1]);
x=cos(pi*n/2); w=(pi/100)*k;
X=x*(exp(-j*pi/100)).^(n'*k); y=exp(j*pi*n/4).*x; Y=y*(exp(-j*pi/100)).^(n'*k); subplot(2,2,1);plot(w/pi,abs(X)); axis([-1,1,0,60]);
bme j ( n m )
m 0
M
消去共有项 e j n 得
M
H (e j )
m0
bm e j m
N l 1
1 al e jl
例:一个LTI系统的差分方程如下:
y(n)=0.8y(n-1)+x(n)
求H(ejw) 求出并画出它对输入x(n) cos(0.05 n)u(n) 的稳态响应
把差分方程改写成
y(n)-0.8y(n-1)=x(n)
利用上面分析的公式,可得
1 H (e ) j 1 0.8e
j
将系统的输入x(n)带入
H (e
因此
j 0.05
1 ) 4.0928e j 0.5377 1 0.8e j 0.05
yrs (n) 4.0928cos(0.05 n 0.5377) 4.0928cos[0.05 (n 3.42)]
从图中可以看出幅值和相位均沿频率轴平移了

4
从差分方程求频率响应
当LTI系统用差分方程表示如下:
y (n) al y (n l )
l 1 N m0
b
M
m
x ( n m)
上式做变换
H (e )e
j
j n
al H (e )e
j l 1
N
j ( n l )
实验二
离散傅立叶变换
一、实验目的
掌握离散傅里叶变换的有关性质。 利用matlab验证有关性质。 利用傅立叶变换进行相关运算。
二、实验原理及方法
在工程技术的许多分支中,要掌握的基本 内容之一就是正确理解时域和频域的关系。对 于数字系统来说,就是要精通离散傅立叶变换,
因此离散傅立叶变换在数字信号处理中占有十
stem(n,x)
xlabel('n');ylabel('x(n)');title('输入序列');
subplot(2,1,2);
stem(n,y)
xlabel('n');ylabel('y(n)');title('输出序列');
四、实验报告要求
简述实验目的和实验原理。
总结实验中的主要结论,你的收获和体
DFT的应用
DFT在数字滤波、功率谱分析、仿真、系统分
析、通讯理论方面有广泛的应用。
DFT的特性
周期性 对称性 线性 时移 频移 共轭 折叠 实序列的对称性 卷积
利用MATLAB对DFT的特性进行验证
例: (n) (0.9exp( j / 3))n , 0 n 10 x
输出端信号放大4.0928倍并移位3.42个采样周期
函数filter
对给定输入和差分方程系数时求解差分方程的数值解。
格式
y=filter(b,a,x)
其中b,a为差分方程的系数向量,x是输入序列。 输出y和输入x的长度一致。
b=1;
a=[1,-0.8]; n=0:100; x=cos(0.05*pi*n); y=filter(b,a,x); subplot(2,1,1);
相关文档
最新文档