数字信号处理 离散傅里叶变换的性质及应用
- 格式:docx
- 大小:132.47 KB
- 文档页数:9
离散傅里叶变换(dft)在数字信号处理中的应用离散傅里叶变换(DFT)是数字信号处理领域中广泛应用的一种数学工具,它的应用领域非常广泛,正是由于DFT 可以对信号进行分析、处理和合成。
DFT的定义是将离散序列通过傅里叶变换转换成连续频域信号,可以用于分离不同频率的信号成分。
因此,它可以应用于音效处理、图像处理、通信等许多领域。
在音频处理方面,DFT可以帮助实现音频数据的压缩与解压缩,能够将音频文件压缩至较小的文件大小,同时保持音频文件的质量不变。
在音频分析方面,可以使用DFT 来显露一个音频信号的谐波和部分谐波频率,从而可以对音频进行分析和剖析,并在混音和制作工程中使用谐波分析的结果。
在图像处理方面,DFT可以被用于图像的变换及增强,可以将图像变换为一组频域数据,进而分析图像的特征和结构。
采用一些滤波器来过滤DFT生成的频域数据,有助于增强高频部分。
此外, DFT也可以为图片中的噪声降低提供帮助,实际应用中可以通过频率域滤波器对信号进行过滤,用余弦正弦出现的频率表示它的信号特征。
在通信方面,DFT可以用于频域等化和频域编码,用于抵抗信道的非线性扭曲,并通过合适的变换和编解码技巧来减少误差和失真。
在数字调制领域,DFT可用于准确地定位最近距离符号的频率和相位,以及重新调制输入数据并回传到通信线路。
其带宽开销低和精密度高的特性,使得其成为数字通信中的必备技术之一。
总的来说,DFT已经成为了数字信号处理中最实用的工具之一。
通过DFT,我们可以对信号进行变换、分析和合成,实现数据的压缩与解压缩,以及在通信、图像处理和音效处理方面提供了许多技术支持。
基于DFT的应用技术正在得到更广泛的关注,并被越来越多的领域所应用。
·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为信号长度。
因此,在计算复杂度上,离散时间傅里叶变换更加高效。
四、采样率
离散傅里叶变换的采样率是连续信号采样率的整数倍,而离散时间傅里叶变换的采样率则是任意的。
因此,在采样率上,离散时间傅里叶变换更加灵活。
综上所述,离散傅里叶变换和离散时间傅里叶变换虽然都是傅里叶变换的离散形式,但是它们的应用场景、计算方式、计算复杂度和采样率等方面都有所不同。
在实际应用中,需要根据具体的需求选择合适的变换方法。
傅里叶变换在信号处理中的应用概述傅里叶变换是一种重要的数学工具,广泛应用于信号处理领域。
通过将信号从时域转换到频域,傅里叶变换可以帮助我们了解信号的频率特性,从而对信号进行分析和处理。
本文将介绍傅里叶变换的基本原理,并探讨其在信号处理中的几个常见应用。
1. 傅里叶变换的基本原理傅里叶变换是将一个连续时间域的信号转换到连续频率域的过程。
其基本原理可以用以下公式表示:X(f) = ∫[x(t) * exp(-j2πft)] dt其中,X(f)表示信号的频谱,x(t)表示信号在时域的表示,f表示频率,j是虚数单位。
通过将信号分解为多个频率成分,傅里叶变换可以使我们更好地理解信号的频率分布情况。
2. 傅里叶级数和离散傅里叶变换傅里叶级数是傅里叶变换在周期信号上的应用。
它将周期信号表示为一系列正弦波的叠加。
傅里叶级数的表示形式为:x(t) = Σ[Cn * exp(j2πnft)]其中,Cn为信号的频谱系数,它描述了信号在各个频率分量上的能量大小。
通过计算每个频率分量的系数,我们可以还原出原始的周期信号。
离散傅里叶变换是傅里叶变换在离散信号上的应用。
它将离散信号转化为离散频率信号。
离散傅里叶变换的计算公式为:X(k) = Σ[x(n) * exp(-j2πnk/N)]其中,X(k)为信号的频谱,x(n)为离散信号的值,N为信号的长度。
通过离散傅里叶变换,我们可以分析离散信号的频谱特性。
3. 傅里叶变换在滤波中的应用滤波是信号处理中常见的操作,用于去除信号中的噪声或不需要的频率成分。
傅里叶变换在滤波中有着重要的应用。
我们可以通过分析信号的频谱,并根据需求选择性地去除特定频率分量,从而实现信号的滤波。
4. 傅里叶变换在图像处理中的应用傅里叶变换在图像处理领域也有着广泛的应用。
通过将图像转换到频域,我们可以分析图像的频率特征,进而实现图像的增强、去噪等操作。
例如,可以通过高通滤波器来增强图像的边缘信息,或者通过低通滤波器来去除图像中的高频噪声。
第三章离散傅立叶变换(DFT)3.1 引言有限长序列在数字信号处理是很重要的一种序列,当然可以用Z变换和傅里叶变换来研究它,但是,可以导出反映它的"有限长"特点的一种有用工具是离散傅里叶变换(DFT)。
离散傅里叶变换除了作为有限长序列的一种傅里叶表示法在理论上相当重要之外,而且由于存在着计算离散傅里叶变换的有效快速算法,因而离散傅里叶变换在各种数字信号处理的算法中起着核心的作用。
有限长序列的离散傅里叶变换(DFT)和周期序列的离散傅里叶级数(DFS)本质上是一样的。
为了更好地理解DFT,需要先讨论周期序列的离散傅里叶级数DFS。
而为了讨论离散傅里叶级数及离散傅里叶变换,我们首先来回顾并讨论傅里叶变换的几种可能形式。
(连续时间信号:如果在讨论的时间间隔内,除若干不连续点之外,对于任意时间值都可给出确定的函数值,此信号就称为连续时间信号。
)一、连续时间、连续频率——连续傅立叶变换(FT)设x(t)为连续时间非周期信号,傅里叶变换关系如下图所示:可以看出时域连续函数造成频域是非周期的谱,而时域的非周期造成频域是连续的谱。
二、连续时间,离散频率------傅 里 叶 级 数设f(t)代表一个周期为T 1的周期性连续时间函数,f(t)可展成傅里叶级数,其傅里叶级数的系数为n F ,f(t)和n F 组成变换对,表示为:tjn n n e F t f 1)(Ω∞-∞=∑=(112Ω=πT )dte tf T F TT t jn n ⎰-Ω-=221111)(1注意符号:如果是周期性的采样脉冲信号p(t),周期用T 表示(采样间隔)。
采样脉冲信号的频率为Ts π2=Ω可以看出时域连续函数造成频域是非周期的谱,而时域的周期造成频域是离散的谱三、离散时间,连续频率------序列的傅里叶变换正变换:DTFT[x(n)]=()()j nj n X e x n eωω∞-=-∞=∑反变换:DTFT-11[()]()()2j n j j X e x n X e e d πωωωπωπ-==⎰)(ωj e X 级数收敛条件为|()j nn x n eω∞-=-∞∑|=∞<∑∞-∞=n n x )(可以看出时域离散函数造成频域是周期的谱,而时域的非周期造成频域是连续的谱四、离散时间,离散频率------离散傅里叶变换上面讨论的三种傅里叶变换对,都不适用在计算机上运算,因为至少在一个域(时域或频域)中,函数是连续的。
实验一离散傅里叶变换的性质及应用一、实验目的1、了解DFT的性质及应用。
2、熟悉MATLAB编程的特点。
二、实验内容1、用三种不同的DFT程序计算x(n)=R8(n)的傅里叶变换X(e jw),并比较三种程序计算机运行时间。
(1) 用for loop 语句的M函数文件dft1.m,用循环变量逐点计算X(k);(2) 编写用MATLAB矩阵运算的M函数文件dft2.m,完成上述运算;(3) 编写函数dft3.m,调用FFT库函数,直接计算X(k);(4) 分别利用上述三种不同方式编写的DFT程序计算序列x(n)的傅立叶变换X(e jw),并画出相应的幅频和相频特性,再比较各个程序的计算机运行时间。
M函数文件如下:dft1.m: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);enddft2.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) x=[ones(1,8),zeros(1,248)];t=cputime;[Am1,pha1]=dft1(x);t1=cputime-tn=[0:(length(x)-1)];w=(2*pi/length(x))*n;figure(1)subplot(2,1,1), plot(w,Am1,'b'); grid;title('Magnitude part');xlabel('frequency in radians');ylabel('|X(exp(jw))|');subplot(2,1,2), plot(w,pha1,'r'); grid;title('Phase Part');xlabel('frequency in radians');ylabel('argX[exp(jw)]/radians');(2) x=[ones(1,8),zeros(1,248)];t=cputime;[Am2,pha2]=dft2(x);t2=cputime-tn=[0:(length(x)-1)];w=(2*pi/length(x))*n;figure(2)subplot(2,1,1), plot(w,Am2,'b'); grid;title('Magnitude part');xlabel('frequency in radians');ylabel('|X(exp(jw))|');subplot(2,1,2), plot(w,pha2,'r'); grid;title('Phase Part');xlabel('frequency in radians');ylabel('argX[exp(jw)]/radians');(3) x=[ones(1,8),zeros(1,248)];t=cputime;[Am3,pha3]=dft3(x);t3=cputime-t;n=[0:(length(x)-1)];w=(2*pi/length(x))*n;figure(3)subplot(2,1,1), plot(w,Am3,'b'); grid;title('Magnitude part');xlabel('frequency in radians');ylabel('|X(exp(jw))|');subplot(2,1,2), plot(w,pha3,'r'); grid;title('Phase Part');xlabel('frequency in radians');ylabel('argX[exp(jw)]/radians')从以上运行结果可以看出,调用FFT库函数直接计算X(k)速度最快,矩阵运算次之,用循环变量逐点计算运行速度最慢。
离散傅里叶变换和傅里叶变换离散傅里叶变换(Discrete Fourier Transform, DFT)和傅里叶变换(Fourier Transform)是信号处理和频谱分析中非常重要的概念。
它们可以帮助我们理解信号的频率成分,对信号进行频域分析,以及在数字信号处理中起到了非常重要的作用。
本篇文章将从简单到复杂,从浅入深地介绍离散傅里叶变换和傅里叶变换的概念和应用,帮助大家更深入地理解这两个概念。
一、离散傅里叶变换1. 概念概述离散傅里叶变换是傅里叶变换在离散域上的表示。
它将一个离散的信号转化为一组离散的频谱成分,用于分析信号的频域特性。
在许多数字信号处理的应用中,离散傅里叶变换被广泛应用,比如音频分析、图像处理等领域。
2. 计算公式离散傅里叶变换的计算公式可以表示为:$X_k = \sum_{n=0}^{N-1} x_n \cdot e^{\frac{-j2\pi kn}{N}}$其中,$X_k$表示频谱分量,$x_n$表示输入信号的离散样本,而$e^{\frac{-j2\pi kn}{N}}$则是复指数函数。
3. 应用场景离散傅里叶变换在数字信号处理中有着广泛的应用,包括语音处理、图像处理、通信系统等。
它可以帮助我们分析信号的频谱特性,对信号进行压缩、滤波等操作。
二、傅里叶变换1. 概念概述傅里叶变换是一种数学变换,将一个时域上的信号转化为频域上的表示。
通过傅里叶变换,我们可以将信号分解为不同频率成分,从而更好地理解信号的频谱特性。
2. 计算公式傅里叶变换的计算公式可以表示为:$X(f) = \int_{-\infty}^{\infty}x(t) \cdot e^{-j2\pi ft} dt$其中,$X(f)$表示频谱成分,$x(t)$表示输入信号,而$e^{-j2\pi ft}$则是复指数函数。
3. 应用场景傅里叶变换在信号处理、通信系统、图像处理等领域都有着非常重要的应用。
它可以帮助我们分析信号的频谱特性,进行滤波、压缩等操作,同时也在图像处理中起到了重要作用。
数字信号处理实验题目:离散傅里叶变换的性质及应用学院:专业:学生姓名:班级/学号指导老师:一、实验目的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编程特点。
这次实验不算难,不过还是要用心去编,不然很容易出现错误。
希望自己下次可以更细心一点,可以更好地完成实验内容。