数字信号处理 离散傅里叶变换的性质及应用

合集下载

精品文档-数字信号处理实验(MATLAB版)刘舒帆-第13章

精品文档-数字信号处理实验(MATLAB版)刘舒帆-第13章

y(n)=x((n+m)N)RN(n) x(n)左移m位的过程可由以下步骤获得:
(1)将x(n)以N为周期进行周期延拓,得到

x((n)N); (2)将
左移m位,得到
; ~x(n)
(3)取 y(n)。
~x(n)
~x(n
m)
的主值序列,~x(得n到mx)(n)循环移位序列
10
有限长序列的移位也称为循环移位,原因是将x(n)左移m 位时,移出的m位又依次从右端进入主值区。下面举例说明。
11
例13-2 已知有限长序列x(n)=[1,2,3,4,5,6],
求x(n)左移2位成为新的向量y(n),并画出循环移位的中间过
程。
解 MATLAB程序如下:
xn=[1,2,3,4,5,6];
%建立xn序列
Nx=length(xn);nx=0:Nx-1;
nx1=-Nx:2*Nx-1;%设立周期延拓的范围
subplot(4,1,2),stem(nx1,x1);%画出x1 subplot(4,1,3),stem(ny1,y1);%画出y1 subplot(4,1,4),stem(ny1,RN1.*y1); %画出y1的 主值部分 运行结果如图13-2所示。
13 图13-2 例13-2有限长序列的循环移位
x1=xn(mod(nx1,Nx)+1);%建立周期延拓序列
ny1=nx1-2;y1=x1;%将x1左移2位,得到y1
12
RN=(nx1>=0)&(nx1<Nx);%在x1的位置向量nx1上设置 主值窗
RN1=(ny1>=0)&(ny1<Nx);%在y1的位置向量ny1上设置 主值窗
subplot(4,1,1),stem(nx1,RN.*x1);%画出x1的主 值部分

数字信号处理____第二章 离散时间傅里叶变换(DTFT)

数字信号处理____第二章  离散时间傅里叶变换(DTFT)


x a (t )e
st
e
jk
2 T
t
dt
用傅里叶级数表示
即:Z变换可看成是x(n)乘以指数序列r-n后的傅里叶变换。 2、单位圆上的Z变换就是序列的傅里叶变换
X a ( s jk s )
k
周期延拓

z re
j
r 1 z e
j
X (z)
ze
sT
X (e
M N
y (n)

m 0
bm x (n m )

k 1
ak y (n k )
23
24
4
§2.3 离散线性移不变(LSI)系统的频域特征
2、变换域中的表述 用系统函数H(z)来表征(指明收敛域)

§2.3 离散线性移不变(LSI)系统的频域特征

用频率响应来H(ejω)表征
H (e
x ( n )e
j ( n )
]

X (e
*
j
)
满足共轭反对称性
X o (e
j
) X o (e
)
19
20
§2.2 离散时间傅里叶变换(DTFT)
4、信号的实部和虚部的傅里叶变换
x ( n ) Re[ x ( n )] j Im[ x ( n )]
§2.2 离散时间傅里叶变换(DTFT)

j
)] X e ( e
j
)
Im[ X ( e
j
)] Im[ X ( e
j
奇函数
j Im[ x ( n )]
1 2
[ x ( n ) x ( n )] 1 2

离散傅里叶变换(dft)在数字信号处理中的应用

离散傅里叶变换(dft)在数字信号处理中的应用

离散傅里叶变换(dft)在数字信号处理中的应用离散傅里叶变换(DFT)是数字信号处理领域中广泛应用的一种数学工具,它的应用领域非常广泛,正是由于DFT 可以对信号进行分析、处理和合成。

DFT的定义是将离散序列通过傅里叶变换转换成连续频域信号,可以用于分离不同频率的信号成分。

因此,它可以应用于音效处理、图像处理、通信等许多领域。

在音频处理方面,DFT可以帮助实现音频数据的压缩与解压缩,能够将音频文件压缩至较小的文件大小,同时保持音频文件的质量不变。

在音频分析方面,可以使用DFT 来显露一个音频信号的谐波和部分谐波频率,从而可以对音频进行分析和剖析,并在混音和制作工程中使用谐波分析的结果。

在图像处理方面,DFT可以被用于图像的变换及增强,可以将图像变换为一组频域数据,进而分析图像的特征和结构。

采用一些滤波器来过滤DFT生成的频域数据,有助于增强高频部分。

此外, DFT也可以为图片中的噪声降低提供帮助,实际应用中可以通过频率域滤波器对信号进行过滤,用余弦正弦出现的频率表示它的信号特征。

在通信方面,DFT可以用于频域等化和频域编码,用于抵抗信道的非线性扭曲,并通过合适的变换和编解码技巧来减少误差和失真。

在数字调制领域,DFT可用于准确地定位最近距离符号的频率和相位,以及重新调制输入数据并回传到通信线路。

其带宽开销低和精密度高的特性,使得其成为数字通信中的必备技术之一。

总的来说,DFT已经成为了数字信号处理中最实用的工具之一。

通过DFT,我们可以对信号进行变换、分析和合成,实现数据的压缩与解压缩,以及在通信、图像处理和音效处理方面提供了许多技术支持。

基于DFT的应用技术正在得到更广泛的关注,并被越来越多的领域所应用。

数字信号处理—原理、实现及应用(第4版)第3章 离散傅里叶变换及其快速算法 学习要点及习题答案

数字信号处理—原理、实现及应用(第4版)第3章  离散傅里叶变换及其快速算法 学习要点及习题答案

·54· 第3章 离散傅里叶变换(DFT )及其快速算法(FFT )3.1 引 言本章是全书的重点,更是学习数字信号处理技术的重点内容。

因为DFT (FFT )在数字信号处理这门学科中起着不一般的作用,它使数字信号处理不仅可以在时域也可以在频域进行处理,使处理方法更加灵活,能完成模拟信号处理完不成的许多处理功能,并且增加了若干新颖的处理内容。

离散傅里叶变换(DFT )也是一种时域到频域的变换,能够表征信号的频域特性,和已学过的FT 和ZT 有着密切的联系,但是它有着不同于FT 和ZT 的物理概念和重要性质。

只有很好地掌握了这些概念和性质,才能正确地应用DFT (FFT ),在各种不同的信号处理中充分灵活地发挥其作用。

学习这一章重要的是会应用,尤其会使用DFT 的快速算法FFT 。

如果不会应用FFT ,那么由于DFT 的计算量太大,会使应用受到限制。

但是FFT 仅是DFT 的一种快速算法,重要的物理概念都在DFT 中,因此重要的还是要掌握DFT 的基本理论。

对于FFT 只要掌握其基本快速原理和使用方法即可。

3.2 习题与上机题解答说明:下面各题中的DFT 和IDFT 计算均可以调用MA TLAB 函数fft 和ifft 计算。

3.1 在变换区间0≤n ≤N -1内,计算以下序列的N 点DFT 。

(1) ()1x n =(2) ()()x n n δ=(3) ()(), 0<<x n n m m N δ=- (4) ()(), 0<<m x n R n m N = (5) 2j()e, 0<<m n N x n m N π=(6) 0j ()e n x n ω=(7) 2()cos , 0<<x n mn m N N π⎛⎫= ⎪⎝⎭(8)2()sin , 0<<x n mn m N N π⎛⎫= ⎪⎝⎭(9) 0()cos()x n n ω=(10) ()()N x n nR n =(11) 1,()0n x n n ⎧=⎨⎩,解:(1) X (k ) =1N kn N n W -=∑=21j0eN kn nn π--=∑=2jj1e1ekN n k nπ---- = ,00,1,2,,1N k k N =⎧⎨=-⎩(2) X (k ) =1()N knNM n W δ-=∑=10()N n n δ-=∑=1,k = 0, 1, …, N -1(3) X (k ) =100()N knNn n n W δ-=-∑=0kn NW 1()N n n n δ-=-∑=0kn NW,k = 0, 1, …, N -1为偶数为奇数·55·(4) X (k ) =1m knN n W -=∑=11kmN N W W --=j (1)sin esin k m N mk N k N π--π⎛⎫⎪⎝⎭π⎛⎫ ⎪⎝⎭,k = 0, 1, …, N -1 (5) X (k ) =21j 0e N mn kn N N n W π-=∑=21j ()0e N m k nNn π--=∑=2j()2j()1e1em k N N m k Nπ--π----= ,0,,0≤≤1N k mk m k N =⎧⎨≠-⎩(6) X (k ) =01j 0eN nknN n W ω-=∑=021j 0e N k nN n ωπ⎛⎫-- ⎪⎝⎭=∑=002j 2j 1e1ek NN k N ωωπ⎛⎫- ⎪⎝⎭π⎛⎫- ⎪⎝⎭--= 0210j 202sin 2e2sin /2N k N N k N k N ωωωπ-⎛⎫⎛⎫- ⎪⎪⎝⎭⎝⎭⎡⎤π⎛⎫- ⎪⎢⎥⎝⎭⎣⎦⎡⎤π⎛⎫- ⎪⎢⎥⎝⎭⎣⎦,k = 0, 1, …, N -1或 X (k ) =00j 2j 1e 1e Nk N ωωπ⎛⎫- ⎪⎝⎭--,k = 0, 1, …, N -1(7) X (k ) =102cos N kn N n mn W N -=π⎛⎫ ⎪⎝⎭∑=2221j j j 01e e e 2N mn mn kn N N N n πππ---=⎛⎫ ⎪+ ⎪⎝⎭∑=21j ()01e 2N m k n N n π--=∑+21j ()01e 2N m k n N n π--+=∑=22j ()j ()22j ()j ()11e 1e 21e 1e m k N m k N N N m k m k N N ππ--+ππ--+⎡⎤--⎢⎥+⎢⎥⎢⎥--⎣⎦=,,20,,N k m k N mk m k N M ⎧==-⎪⎨⎪≠≠-⎩,0≤≤1k N - (8) ()22j j 21()sin ee 2j mn mnN N x n mn N ππ-π⎛⎫== ⎪-⎝⎭ ()()112222j j j ()j ()0011()=e e ee 2j 2j j ,2=j ,20,(0≤≤1)N N kn mn mn m k n m k n N N N N N n n X k W Nk m N k N mk k N --ππππ---+===--⎧-=⎪⎪⎨=-⎪⎪-⎪⎩∑∑其他(9) 解法① 直接计算χ(n ) =cos(0n ω)R N (n ) =00j j 1[e e ]2n n ωω-+R N (n )X (k ) =1()N knNn n W χ-=∑=0021j j j 01[e e ]e 2N kn n n N n ωωπ---=+∑=0000j j 22j j 11e 1e 21e 1e N N k k N N ωωωω-ππ⎛⎫⎛⎫--+ ⎪ ⎪⎝⎭⎝⎭⎡⎤--⎢⎥+⎢⎥⎢⎥--⎣⎦,k = 0, 1, … , N -1 解法② 由DFT 共轭对称性可得同样的结果。

离散傅里叶变换和离散时间傅里叶变换区别

离散傅里叶变换和离散时间傅里叶变换区别

离散傅里叶变换和离散时间傅里叶变换区别
离散傅里叶变换和离散时间傅里叶变换区别
离散傅里叶变换(Discrete Fourier Transform,DFT)和离散时间傅里叶变换(Discrete Time Fourier Transform,DTFT)是数字信号处理中常用的两种变换方法。

虽然它们都是傅里叶变换的离散形式,但是它们的应用场景和计算方式有所不同。

一、应用场景
离散傅里叶变换主要用于将时域信号转换为频域信号,常用于信号处理、图像处理、音频处理等领域。

而离散时间傅里叶变换则主要用于分析离散时间信号的频域特性,常用于数字滤波器设计、信号采样等领域。

二、计算方式
离散傅里叶变换的计算方式是将时域信号分解为一系列正弦和余弦函数的线性组合,然后通过计算每个正弦和余弦函数的振幅和相位来得到频域信号。

而离散时间傅里叶变换则是将离散时间信号看作是周期信号的一个周期,然后通过计算周期信号的傅里叶级数来得到频域信号。

三、计算复杂度
离散傅里叶变换的计算复杂度为O(N^2),其中N为信号长度。

而离散时间傅里叶变换的计算复杂度为O(N),其中N为信号长度。

因此,在计算复杂度上,离散时间傅里叶变换更加高效。

四、采样率
离散傅里叶变换的采样率是连续信号采样率的整数倍,而离散时间傅里叶变换的采样率则是任意的。

因此,在采样率上,离散时间傅里叶变换更加灵活。

综上所述,离散傅里叶变换和离散时间傅里叶变换虽然都是傅里叶变换的离散形式,但是它们的应用场景、计算方式、计算复杂度和采样率等方面都有所不同。

在实际应用中,需要根据具体的需求选择合适的变换方法。

数字信号处理第3章 离散傅里叶变换(DFT)

数字信号处理第3章 离散傅里叶变换(DFT)

Y(k)=DFT[y(n)]=aX1(k)+bX2(k), 0≤k≤N-1(3.2.1)
其中X1(k)和X2(k)分别为x1(n)和x2(n)的N点DFT。
3.2.2 循环移位性质
1. 序列的循环移位 设x(n)为有限长序列,长度为N,则x(n)的循环移 位定义为 y(n)=x((n+m))NRN(N) (3.2.2)
其中 XR(k)=Re[X(k)]=DFT[xep(n)]
(3.2.17)
X(k)=DFT[x(n)]=XR(k)+jXI(k) (3.2.18)
jXI(k)=jIm[X(k)]=DFT[xop(n)]
设x(n)是长度为N的实序列,且X(k)=DFT[x(n)],则
(1) X(k)=X*(N-k),0≤k≤N-1 (2) 如果 x(n)=x(N-m) 则X(k)实偶对称,即X(k)=X(N-k) (3.2.20) (3.2.19)
如果序列x(n)的长度为M, 则只有当频域采样点
数N≥M时, 才有
xN(n)=IDFT[X(k)]=x(n) 即可由频域采样X(k)恢复原序列x(n),否则产生时 域混叠现象。 这就是频域采样定理。
下面推导用频域采样X(k)表示X(z)的内插公式和内
插函数。设序列x(n)长度为M,在频域0~2π之间等间隔 采样N点,N≥M,则有
的值。
图 3.2.3 共轭对称与共轭反对称序列示意图
如同任何实函数都可以分解成偶对称分量和奇对
称分量一样,任何有限长序列x(n)都可以表示成共轭对 称分量和共轭反对称分量之和,即
x(n)=xep(n)+xop(n)
0≤n≤N-1
(3.2.11)
(3.2.13) (3.2.14)

数字信号处理-z变换与离散时间傅立叶变换(DTFT)

离散时间系统
N a i y i ( n ) T a i xi ( n ) i 1 i 1
N
9
4.移不变系统
——系统的响应与激励施加于系统的时刻无关
x ( n)
移位m
T[ ]
T [ x(n m)]
x ( n)
T[ ]
移位m
y ( n m)
10
5.单位抽样响应与卷积和
序列x(n)的Fourier反变换定义:
a<-1
0<a<1
-1<a<0
a=1
a=-1
7
5.复指数序列 x(n) Ca n
x(n) C a n cos(0 n ) j sin( 0 n )
|a|=1
C C e j a a e j0
|a|>1
|a|<1
8
3.线性系统
——满足叠加原理(可加性、比例性)
15
1.1 z变换的定义
序列x(n)的Z变换定义为:
X ( z) Z x(n) x(n) z
n

n
Z是复变量,所在的平面称为Z平面
16
1.2 z变换的收敛域
对于任意给定的序列x(n),使其Z变换X(z)收敛的所有z值
的集合称为X(z)的收敛域(Region of convergence,ROC)。
=X (e
jT
ˆ ( j ) ) X a
抽样序列在单位圆上的z变换=其理想抽样信号的傅里叶变换
52
第五节 序列的傅立叶变换(DTFT)
5.1 序列的傅立叶变换定义
序列x(n)的Fourier变换定义:
X (e ) DTFT [ x(n)]

数字信号处理之离散傅里叶变换


共轭对称性
对于实数输入信号,DFT 的结果X[k]满足共轭对称 性,即X[-k] = X[k]*。
离散傅里叶变换的矩阵表示
DFT可以表示为一个矩阵运算, 即X = W * x,其中X是DFT的输 出,x是输入信号,W是DFT的
权重矩阵。
权重矩阵W是一个复数矩阵,具 有特殊的结构,可以通过快速傅 里叶变换(FFT)算法进行高效
03
其他信号处理方法还包括短时 傅里叶变换、Wigner-Ville分 布等,可根据具体应用场景选 择合适的信号处理方法。
ቤተ መጻሕፍቲ ባይዱ 06
结论
离散傅里叶变换的重要性和应用价值
离散傅里叶变换(DFT)是数字信号处理领域 中的重要工具,它能够将信号从时域转换到频 域,从而揭示信号的频率成分和特征。
DFT在通信、雷达、声呐、图像处理、语音识 别等领域有着广泛的应用,是实现信号分析和 处理的关键技术之一。
图像压缩
通过对图像进行DFT变换,将图像从空间域变换到频域,可以提取出图像的主要频率成分 ,从而实现图像压缩。常见的图像压缩算法有JPEG和JPEG2000等。
05
离散傅里叶变换的局限性和改进方法
离散傅里叶变换的局限性
计算量大
离散傅里叶变换需要进行大量复杂的复数运算,对于大数据量信 号处理效率较低。
方式。
离散傅里叶变换的编程实现
01
编程语言如Python、C等提供了离散傅里叶变换的库函数,可 以直接调用进行计算。
02
编程实现时需要注意数据的输入输出、内存管理、异常处理等
问题,以保证程序的正确性和稳定性。
编程实现离散傅里叶变换时,可以根据实际需求选择不同的库
03
函数和算法,以达到最优的计算效果。

数字信号处理:离散傅里叶变换(DFT)


X (k ) XX((kkX)))X(XX(z(ez(zzjjjj))))222kk,,k, 200k0,kkkNN--1N1-1 0((33..1(1.3.44.)1k).4) NNN N
2021/8/24
6
3.1 离散傅里叶变换的定义
DFT的物理意义:
(1)x(n)的N点DFT 是x(n)的Z变换在单位
。 j 2 kn 8
解: (1) 设变换区间N=8, 则:n0
N 0
XX(k(k)
77
)
nn00
xx(Xn(n)W()Wk8k)8nkn 3373 eexj 28j(28knnkn)We8jk83nk NnN000
sin(3 k 2 sin kn
80,1,
,
7
(2) 设变换区间N=16, 则 2 k 8
设序列x(n)的长度为N, 其Z变换和DFT分别为:
N 1
X (z) ZT[x(n)] x(n)zn
n0
N 1
X (k) DFT[x(n)] x(n)WNkn
n0
0 k N-1
X (比k较) 上XXX面(((kkkX)二))式X(XX(z(可z(z)z)))得zzzezej2关jeN2Njk2Nke,系k,j,2N式 k00,0kkkNN--N11-10 ((33k..1(1.3.33.)1).3)N
(
j2 k
X
(k)
X(k)
DFT
[=x(Xn~ ()k]
)RNDD(nFF)ST[n[x~x(0~n()n] )RNnN01(n
[0, 2]上的N点
单位圆上的N
等间隔采样
DFT
点等间隔采样
~
X (k ) DFFTT [ x(n)] ZT DFT [x(n)RN (n)] X

数字信号处理——第2章 离散时间傅里叶变换与Z变换


• 总结:
①序列ZT的收敛域以极点为边界(包含0 和 ②收敛域内不含任何极点,可以包含0 ③相同的零极点可能对应不同的收敛域,即: 不同的序列可能有相同的ZT ④收敛域汇总:右外、左内、双环、有限长z平面


常见典型序列z变换
序列 Z变换 收敛域
z a
z b
注意:只有z变换和它的收敛域两者在一起才和序列相对应。 其它序列见P54: 表2-1 几种序列的z变换
2.3
z反变换

Z反变换: 从X(z)中还原出原序列x(n)
X ( z ) ZT [ x ( n)]
n

x (n) z n
实质:求X(z)幂级数展开式
Z反变换的求解方法: 留数定理法
部分分式法
长除法
1. 留数定理法
根据复变函数理论,可以推导出
x ( n)
1 2 j
X ( z ) z n 1dz
1 1 3z 1
n
z 2
2 n u ( n)
z 3
3
n
n
u (n 1)
x n 2 u n 3 u n 1
3. 幂级数法(长除法)
如果序列的ZT能表示成幂级数的形式,则序列x(n) 是幂 级数 说明: ①这种方法只对某些特殊的ZT有效。 ②如果ZT为有理函数,可用长除法将X(z)展开成幂级 数。 若为右边序列(特例:因果序列),将X(z)展开成负幂 级数; 若为左边序列(特例:反因果序列),将X(z)展开成正 幂级数; 中
z z 1 1 X z 1 z 2 z 3 1 2z 1 3 z 1
1 ZT [a u (n)] z a 1 1 az 1 n ZT [a u (n 1)] z a 1 1 az
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理实验题目:离散傅里叶变换的性质及应用学院:专业:学生姓名:班级/学号指导老师:一、实验目的1.了解DFT的性质及其应用2.熟悉MATLAB编程特点二、实验仪器及材料计算机,MATLAB软件三、实验内容及要求1.用三种不同的DFT 程序计算8()()x n R n =的256点离散傅里叶变换()X k ,并比较三种程序计算机运行时间。

(1)编制用for loop 语句的M 函数文件dft1.m ,用循环变量逐点计算()X k ; (2)编写用MATLAB 矩阵运算的M 函数文件dft2.m ,完成下列矩阵运算:0000121012(1)(1)(1) (0)(0) (1)(1)(1)(1) N NN NN N N NNN N N N N NN N X x W W W W X x W W W W x N X N W W W W -----⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥--⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦(3)调用fft 库函数,直接计算()X k ;(4)分别调用上述三种不同方式编写的DFT 程序计算序列()x n 的离散傅里叶变换()X k ,并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。

M 函数文件如下: dft1.m:function[Am,pha]=dft1(x) N=length(x); w=exp(-j*2*pi/N); for k=1:N sum=0; for n=1:Nsum=sum+x(n)*w^((k-1)*(n-1)); endAm(k)=abs(sum); pha(k)=angle(sum); end dft2.m:function[Am,pha]=dft2(x) N=length(x); n=[0:N-1];k=[0:N-1];w=exp(-j*2*pi/N);nk=n'*k;wnk=w.^(nk);Xk=x*wnk;Am=abs(Xk);pha=angle(Xk);dft3.m:function[Am,pha]=dft3(x)Xk=fft(x);Am=abs(Xk);pha=angle(Xk);源程序、运行结果及结论1、源程序<1>function[Am,pha] = dft1(x)N = length(x);w = exp(-j*2*pi/N);for k=1:Nsum = 0;for n = 1:Nsum = sum+x(n)*w^((k-1)*(n-1));endAm(k) = abs(sum);pha(k) = angle(sum);endend<2> function[Am,pha] = dft2(x)N = length(x);n = [0:N-1];k = [0:N-1];w = exp(-j*2*pi/N);nk = n'*k;wnk = w.^(nk);Xk = x*wnk;Am = abs(Xk); pha = angle(Xk);end<3> function[Am,pha] = dft3(x)Xk = fft(x);Am = abs(Xk); pha = angle(Xk);end<4> clear all;clc;x = [ones(1,8),zeros(1,256-8)];t = cputime;[Am1,pha1] = dft1(x);t1 = cputime-t;t = cputime;[Am2,pha2] = dft2(x);t2 = cputime-t;t = cputime;[Am3,pha3] = dft3(x);t3 = cputime-t;subplot(6,1,1);stem(Am1);title('幅频特性1'); subplot(6,1,2);stem(pha1);title('相频特性1'); subplot(6,1,3);stem(Am2);title('幅频特性2'); subplot(6,1,4);stem(pha2);title('相频特性2'); subplot(6,1,5);stem(Am3);title('幅频特性3'); subplot(6,1,6);stem(pha3);title('相频特性3');2、运行结果3、 结论从以上运行结果可以看出,调用FFT 库函数直接计算X(k)速度最快,所用时间趋于0,矩阵运算次之,用循环变量逐点计算运行速度最慢。

因此FF T 算法大大提高了DFT 的实用性。

2.利用DFT 实现两序列的卷积运算,并研究DFT 点数与混叠的关系。

(1)已知两序列: ⎩⎨⎧>≤≤=3;030;)5/3()(n n n h n ,用MATLAB 生成随机输入信号x(n),n 的取值为0~2;(2)用直接法(即用线性卷积的定义计算,见下式)计算线性卷积y(n)=x(n)*h(n)的结果,并以图形方式表示结果;20),()()(1-+≤≤-⨯=∑-=M N n m n h m x n y N m 其中:序列)1N n 0(),n (x -≤≤和序列)1M n 0(),n (h -≤≤(3)用MATLAB 编制利用DFT 计算线性卷积y(n)=x(n)*h(n)的程序;分别令圆周卷积的点数为L=5,6,8,10,以图形方式表示结果。

(4)对比直接法和圆周卷积法所得的结果。

源程序如下:用直接法和MATLAB 编制利用DFT 分别计算线性卷积y(n)=x(n)*h(n)的程序: N=0:3; M=3;x=rand(1,M); h=(3/5).^N; y1=conv(h,x);Xk2=fft(x,10); %做10点fft Hk2=fft(h,10); Yk2=Xk2.*Hk2; y2=ifft(Yk2);Xk3=fft(x,8); %做点8点fft Hk3=fft(h,8);Yk3=Xk3.*Hk3;y3=ifft(Yk3);Xk4=fft(x,6); %做6点fft Hk4=fft(h,6);Yk4=Xk4.*Hk4;y4=ifft(Yk4);Xk5=fft(x,5); %做5点fft Hk5=fft(h,5);Yk5=Xk5.*Hk5;y5=ifft(Yk5);Xk6=fft(x,4); %做4点fft 混频Hk6=fft(h);Yk6=Xk6.*Hk6;y6=ifft(Yk6);figure(1);n=[0:(length(x)-1)];subplot(4,2,1);stem(n,x); title('xn');xlabel('n');ylabel('幅度'); n=[0:(length(h)-1)];subplot(4,2,2);stem(n,h); title('hn');xlabel('n');ylabel('幅度'); n=[0:(length(y1)-1)];subplot(4,2,3);stem(n,y1); title('y1');xlabel('n');ylabel('幅度'); n=[0:(length(y2)-1)];subplot(4,2,4);stem(n,y2); title('y2');xlabel('n');ylabel('幅度'); n=[0:(length(y3)-1)];subplot(4,2,5);stem(n,y3); title('y3');xlabel('n');ylabel('幅度');n=[0:(length(y4)-1)];subplot(4,2,6);stem(n,y4);title('y4');xlabel('n');ylabel('幅度');n=[0:(length(y5)-1)];subplot(4,2,7);stem(n,y5);title('y5');xlabel('n');ylabel('幅度');n=[0:(length(y6)-1)];subplot(4,2,8);stem(n,y6);title('混频y6');xlabel('n');ylabel('幅度');MATLAB程序:将两个信号的DFT相乘,再做反变换,相当于时域做循环卷积。

而循环卷积是线性卷积以N为周期周期性延拓的结果,其中N为离散傅立叶变换的点数。

若x1(n)是N1点序列,x2(n)是N2点序列,则其线性卷积为N1+N2-1点,做N =max(N1,N2)点的傅立叶变换,则结果中将有N2-1点是混叠的。

题目中N1=16,N2=8,由程序运行结果可以看出,第二张图的前7(N2-1)个点为混叠结果,后9个点是线性卷积的结果。

所以,要用DFT来做线性卷积,DFT的点数必须大于或等于线性卷积的结果。

本题中取N1+N2-1=23为DFT的点数,即可得到正确的线性卷积结果。

四、思考题1.直接计算N=256点的DFT与用FFT计算256点,理论上速度差别应有多少?答:快速傅里叶变换是离散傅里叶变换的一种快速算法,计算N=256点DFT的x(k)所需要N^2=65536次复数乘法和N(N-1)=65280次复数加法,N=256点的FFT的x(k)所需要N/2lbN=1024次复数乘法和NlbN=2048次复数加法。

复数乘法运算速度提高倍数为N^2/(N/2lbN)=64,复数加法提高倍数为N(N-1)/(NlbN)=31.8752.说明为什么在实验内容2中L=6,8,10时采用FFT法对两序列计算圆周卷积的结果与线性卷积y(n)=x(n)*h(n)的结果相同,而与L=5时计算结果不同?答:用图形法求y1=x*h,可得到六个点,所以用FFT法对两序列计算圆周卷积的结果时,要求使得L>=M+N-1=6。

所以在实验内容2中L=6,8,10时采用FFT法对两序列计算圆周卷积的结果与线性卷积y(n)=x(n)*h(n)的结果相同,而与L=5时计算结果不同。

五、实验心得:通过这次实验,我对DFT的性质及其应用有了一个更加深入的了解,我并且熟悉了MATLAB编程特点。

这次实验不算难,不过还是要用心去编,不然很容易出现错误。

希望自己下次可以更细心一点,可以更好地完成实验内容。

相关文档
最新文档