x=rn(n)傅里叶变换matlab,第三章 离散傅立叶变换

本文深入探讨了离散傅立叶变换(DFT)的概念,指出DFT作为有限长序列的傅立叶表示,是数字信号处理的核心。介绍了DFT与连续傅立叶变换、傅里叶级数的关系,并通过举例展示了DFT在计算线性卷积和谱分析中的应用。此外,还讨论了DFT的性质,包括线性、循环移位定理和循环卷积定理,以及DFT在频域抽样理论中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三章离散傅立叶变换(DFT)

3.1引言

有限长序列在数字信号处理是很重要的一种序列,当然可以用Z变换和傅里叶变换来研究它,但是,可以导出反映它的"有限长"特点的一种有用工具是离散傅里叶变换(DFT)。离散傅里叶变换除了作为有限长序列的一种傅里叶表示法在理论上相当重要之外,而且由于存在着计算离散傅里叶变换的有效快速算法,因而离散傅里叶变换在各种数字信号处理的算法中起着核心的作用。

有限长序列的离散傅里叶变换(DFT)和周期序列的离散傅里叶级数(DFS)本质上是一样的。为了更好地理解DFT,需要先讨论周期序列的离散傅里叶级数DFS。而为了讨论离散傅里叶级数及离散傅里叶变换,我们首先来回顾并讨论傅里叶变换的几种可能形式。

(连续时间信号:如果在讨论的时间间隔内,除若干不连续点之外,对于任意时间值都可给出确定的函数值,此信号就称为连续时间信号。)

一、连续时间、连续频率——连续傅立叶变换(FT)

设x(t)为连续时间非周期信号,傅里叶变换关系如下图所示:

37031622_1.jpg

37031622_2.jpg

37031622_3.gif可以看出时域连续函数造成频域是非周期的谱,而时域的非周期造成频域是连续的谱。

二、连续时间,离散频率------傅里叶级数

设f(t)代表一个周期为T1的周期性连续时间函数,f(t)可展成傅里叶级数,其傅里叶级数的系数为37031622_4.gif,f(t)和37031622_4.gif组成变换对,表示为:

37031622_5.gif(37031622_6.gif)

37031622_7.gif

注意符号:如果是周期性的采样脉冲信号p(t),周期用T表示(采样间隔)。采样脉冲信号的频率为37031622_8.gif

37031622_9.jpg

37031622_10.jpg

可以看出时域连续函数造成频域是非周期的谱,而时域的周期造成频域是离散的谱

37031622_11.gif

三、离散时间,连续频率------序列的傅里叶变换

正变换:DTFT[x(n)]=37031622_12.gif

反变换:DTFT-137031622_13.gif

37031622_14.gif级数收敛条件为|37031622_15.gif|=37031622_16.gif

37031622_17.jpg

可以看出时域离散函数造成频域是周期的谱,而时域的非周期造成频域是连续的谱

37031622_18.gif

四、离散时间,离散频率------离散傅里叶变换

上面讨论的三种傅里叶变换对,都不适用在计算机上运算,因为至少在一个域(时域或频域)中,函数是连续的。因为从数字计算角度,我们感兴趣的是时域及频域都是离散的情况,这就是我们这里要谈到的离散傅里叶变换。

37031622_19.jpg

时域抽样间隔T,频域周期Ws=2p/T,

时域周期T1,频域抽样间隔W1=2p/T1

周期序列的离散傅里叶级数(DFS)

37031622_20.gif是周期为N的一个周期序列,即37031622_21.gif,r为任意整数。和连续时间周期信号一样,周期序列可用离散傅里叶级数来表示。

37031622_22.jpg

离散傅里叶级数(DFS)对:

正变换37031622_23.gif=DFS[37031622_20.gif] = 37031622_24.gif = 37031622_25.gif

37031622_26.gif

反变换37031622_20.gif=IDFS[37031622_23.gif]=37031622_27.gif=37031622_28.gif

37031622_29.gif

式中,37031622_30.gif37031622_31.gif37031622_32.gif均为整数。

观察37031622_23.gif=37031622_33.gif37031622_23.gif是一个周期序列吗?如是,周期为多少?

37031622_34.gif37031622_33.gif=37031622_23.gif

所以。37031622_23.gif是一个周期序列,周期为N。

37031622_20.gif,周期为N

37031622_23.gif,周期也为N。

37031622_35.jpg

观察37031622_20.gif=37031622_27.gif,与连续时间信号与系统中的傅里叶级数对应,表明将周期序列分解成N个独立谐波分量。第0次谐波序列37031622_36.gif,基波序列37031622_37.gif,…,第k次谐波序列37031622_38.gif,第N-1次谐波序列37031622_39.gif。谐波频率37031622_40.gif,k=0,1,2,…,N-1,幅度为37031622_41.gif37031622_23.gif。例如:基波分量的频率为2p/N,幅度是37031622_41.gif37031622_42.gif。一个周期序列可以用其DFS表示它的频谱分布规律。

例题:37031622_20.gif如图所示,求37031622_20.gif的DFS

37031622_43.jpg

解:37031622_23.gif=DFS[37031622_20.gif] = 37031622_24.gif = 37031622_25.gif

37031622_26.gif

37031622_23.gif=37031622_44.gif=37031622_45.gif=37031622_46.gif=37031622_47.gif

=37031622_48.gif=37031622_49.gif37031622_26.gif

|37031622_23.gif|如下图所示。

37031622_50.jpg

离散傅立叶变换(DFT)

周期序列实际上只有有限个序列值才有意义,因而它的离散傅里叶级数表示式也适用于有限长序列,这就可以得到有限长序列的傅里叶变换(DFT)。

设x(n)是一个长度为M的有限长序列,

正变换37031622_51.gif=DFT[37031622_52.gif] = 37031622_53.gif = 37031622_54.gif

k=0,1,2,…,N-1(3.1.1)

反变换37031622_52.gif=IDFT[37031622_51.gif]=37031622_55.gif=37031622_56.gif

n=0,1,2,…,N-1(3.1.2)

式中37031622_30.gif,N称为DFT变换区间长度,N≥M。

例3.1.1:37031622_52.gif=R4(n),求37031622_52.gif的8点和16点DFT。

解:(1)DFT变换区间N=8,则:

37031622_51.gif=37031622_57.gif=37031622_45.gif=37031622_46.gif=37031622_47.gif

=37031622_49.gif,k=0,1,…,7

(2)DFT变换区间N=16,则:

37031622_51.gif=37031622_58.gif=37031622_59.gif

=37031622_60.gif,k=0,1,…,15

DFS与DFT的关系

1、有限长序列和周期序列的关系

设x(n)是一个长度为M的有限长序列,以N(N≥M)为周期进行周期延拓得37031622_20.gif37031622_20.gif是x(n)的周期延拓。如下图所示:

37031622_61.jpg

37031622_62.jpg

M=4,N=8,以N=8进行周期延拓。37031622_20.gif的周期为8。

用式子表示:

37031622_20.gif37031622_63.gif

37031622_20.gif=x(n模N)=x((n))N,(n模N)表示n对N取余数

例:设37031622_20.gif是以N=8周期对有限长序列x(n)(长度M=4)进行周期延拓得到的。37031622_64.gif=x(3),37031622_65.gif=x(2)。

有限长序列进行周期延拓得到周期序列。

定义:周期序列37031622_20.gif中从n=0到N-1的第一个周期为37031622_20.gif的主值区间,而主值区间上的序列称为37031622_20.gif的主值序列

周期序列的主值序列是有限长序列

利用前面的矩形序列符号RN(n)

37031622_66.gifRN(n)=   1,0≤n≤N-1

0,其他n

x(n)=37031622_20.gif RN(n)

x(n)的周期延拓序列是37031622_20.gif37031622_20.gif=x((n))N

37031622_20.gif的主值序列是x(n);x(n)=37031622_20.gif RN(n)

同理把频域周期序列37031622_23.gif也看作是有限长序列X(k)的周期延拓。X(k)是37031622_23.gif的主值序列

X(k)的周期延拓序列是37031622_23.gif37031622_23.gif=X((k))N

37031622_23.gif的主值序列是X(k);X(k)= 37031622_23.gif RN(n)

具体而言,我们把时域周期序列37031622_20.gif看作是有限长序列x(n)的周期延拓;同理把频域周期序列37031622_23.gif也看作是有限长序列X(k)的周期延拓。这样我们只要把DFS的定义式两边取主值区间,就得到了一个关于有限长序列的时频域对应的变换对。这就是数字信号处理课程里最重要的变换-------离散傅里叶变换(DFT)。

离散傅立叶级数(DFS)对:

正变换37031622_23.gif=DFS[37031622_20.gif] = 37031622_24.gif = 37031622_25.gif

37031622_26.gif

反变换37031622_20.gif=IDFS[37031622_23.gif]=37031622_27.gif=37031622_28.gif

37031622_29.gif

式中,37031622_30.gif37031622_31.gif37031622_32.gif均为整数。

离散傅里叶变换(DFT)

正变换:37031622_51.gif=DFT[x(n)]= 37031622_54.gif,0≤k≤N-1

反变换:x(n)=IDFT[37031622_51.gif]=37031622_56.gif,0≤n≤N-1

或:37031622_51.gif37031622_54.gif RN(k)=37031622_23.gif RN(k)

x(n)= 37031622_56.gif RN(n) =

37031622_20.gif RN(n)

DFT隐含有周期性。

DFT和Z变换的关系

设序列x(n)的长度为N,其Z变换和DFT分别为:

37031622_67.gif   37031622_68.gif

37031622_51.gif=DFT[x(n)]= 37031622_54.gif,0≤k≤N-1

比较上面两式可以得到:

37031622_51.gif37031622_69.gif|37031622_70.gif,0≤k≤N-1(3.1.3)

37031622_51.gif=37031622_14.gif|37031622_71.gif,0≤k≤N-1(3.1.4)

(3.1.3)表明序列x(n)的N点DFT是x(n)的Z变换在单位圆上的N点等间隔采样。(3.1.4)表明37031622_51.gif是x(n)的傅立叶变换37031622_14.gif在区间[0,2π]上的N点等间隔采样。这就是DFT的物理意义。由此可见,DFT的变换区间长度N不同,表示对37031622_14.gif在[0,2π]区间上的采样间隔和采样点数不同,所以DFT的变换结果不同。例3.1.1中,37031622_52.gif= R4(n),DFT变换区间长度N分别取8点和16点,37031622_51.gif结果不同。下图为R4(n)的傅立叶变换37031622_14.gif和R4(n)的8点、16点37031622_51.gif的对应图。

37031622_72.jpg

3.2离散傅立叶变换的性质

一、线性

设x1(n)、x2(n)是两个有限长序列,长度分别为N1,N2,且y(n)=a x1(n)+b x2(n),a,b为常数。N=max[N1,N2]。

x1(n)有限长序列,长度为N;

x2(n)有限长序列,长度为N;

y(n)有限长序列,长度为N;

x1(n)的N点DFT为:X1(k)=DFT[x1(n)]= 37031622_73.gif

0≤k≤N-1

x2(n)的N点DFT为:X2(k)=DFT[x2(n)]= 37031622_74.gif

0≤k≤N-1

y(n)的N点DFT为:Y(k)=DFT[y(n)] =37031622_75.gif

=37031622_76.gif=aX1(k)+b

X2(k)

0≤k≤N-1

二、循环移位定理

1、序列的循环移位

设x(n)为有限长序列,长度为N,则x(n)的循环移位定义为

37031622_77.gif(3.2.2)

(3.2.2)表明先将x(n)以N为周期进行周期延拓得到序列37031622_20.gif= x((n))N,再将37031622_20.gif左移得到37031622_78.gif,最后取37031622_78.gif主值区间(n=0到N-1)上的序列值,则得到有限长序列x(n)的循环移位序列37031622_79.gif

过程如下图所示:

37031622_77.gif37031622_80.gif

37031622_81.jpg

2、时域循环移位定理

设x(n)为有限长序列,长度为N,37031622_79.gif为x(n)的循环移位序列,即37031622_77.gif,则

37031622_82.gifDFT[37031622_83.gif]=37031622_84.gif

其中37031622_51.gif=DFT[x(n)],0≤k≤N-1

证明:37031622_82.gif

37031622_85.gif

=37031622_86.gif

令n+m=n’,则有

37031622_87.gif=37031622_88.gif

=37031622_89.gif

由于上式中求和项以N为周期,所以对其在任一周期上的求和结果相同。将上式的求和区间改在主值区间,则得:

37031622_87.gif=37031622_90.gif

=37031622_91.gif

=37031622_92.gif37031622_51.gif,0≤k≤N-1

3、频域循环移位定理

如果37031622_51.gif=DFT[x(n)],0≤k≤N-1

37031622_87.gif=37031622_93.gif

则:y(n)=IDFT[37031622_87.gif]=37031622_94.gifx(n)

证明:y(n) =IDFT[37031622_87.gif]=37031622_95.gif37031622_96.gif

=37031622_95.gif37031622_97.gif

37031622_98.gif=37031622_99.gif,则有:

y(n)= 37031622_95.gif37031622_100.gif

=37031622_94.gif(37031622_95.gif37031622_101.gif)

=37031622_94.gif(37031622_95.gif37031622_102.gif)

=37031622_94.gif(37031622_95.gif37031622_103.gif)

=37031622_94.gif x(n)

三、循环卷积定理

有限长序列x1(n)和x2(n),长度分别为N1和N2,N=max[N1,N2]。

x1(n)和x2(n)的N点DFT分别为:

X1(k)=DFT[x1(n)]

X2(k)=DFT[x2(n)]

如果X(k)= X1(k) X2(k)

则:x(n)= IDFT[X(k)]= 37031622_104.gif

循环卷积过程:

37031622_105.jpg

37031622_106.jpg

37031622_107.jpg

37031622_108.jpg

37031622_109.jpg

37031622_110.jpg

循环卷积过程中,要求对循环反转,循环移位,特别是两个长度位N的序列的循环卷积长度仍为N。显然与一般的线性卷积不同,故称为循环卷积。记为:x(n)

37031622_111.gif

= 37031622_104.gif

四、复共轭序列的DFT

37031622_112.gif37031622_113.gif的复共轭序列,长度为N,

已知37031622_51.gif=DFT[37031622_113.gif],

则DFT[37031622_112.gif]=37031622_114.gif   0≤k≤N-1

37031622_115.gif

证明:DFT[37031622_112.gif]=37031622_116.gif RN(k)

=37031622_117.gif RN(k)

=37031622_118.gif RN(k)

=37031622_119.gif RN(k)

=37031622_114.gif,0≤k≤N-1

已知37031622_51.gif=DFT[37031622_113.gif],

则DFT[37031622_120.gif]=37031622_121.gif

证明:∵37031622_51.gif=DFT[37031622_113.gif],即

37031622_52.gif=IDFT[37031622_51.gif]=37031622_56.gif=37031622_55.gif

37031622_122.gif=37031622_123.gif

= 37031622_124.gif

37031622_120.gif=[37031622_124.gif]37031622_125.gif

=37031622_126.gif

=IDFT[37031622_121.gif]

即DFT[37031622_120.gif]=37031622_121.gif

五、DFT的共轭对称性

第二章2.2节中已详细讨论了序列傅立叶变换的对称性,那里的对称性是指关于坐标原点的纵坐标对称性。DFT也有对称性,但由于DFT中讨论的序列37031622_52.gif及其离散傅立叶变换37031622_51.gif均为有限长序列,且定义区间为0到N-1,所以这里的对称性是指关于N/2点的对称性。下面讨论DFT的共轭对称性质。

1、有限长共轭对称序列和共轭反对称序列

为了区别于序列傅立叶变换中所定义的共轭对称和共轭反对称序列,下面用37031622_127.gif37031622_128.gif分别表示有限长共轭对称序列和共轭反对称序列。二者的定义如下:

37031622_127.gif=37031622_129.gif,0≤n≤N-1

37031622_128.gif=-37031622_130.gif,0≤n≤N-1

(关于N/2点的对称性)

当N为偶数时,将上式的n换成N/2-n,得到

37031622_131.gif=37031622_132.gif,0≤n≤N/2-1

当N为奇数时,将上式的n换成(N-1)/2-n,得到

37031622_133.gif=37031622_134.gif,0≤n≤(N-1)/2-1

任意有限长序列37031622_52.gif可表示成共轭对称分量和共轭反对称分量之和。

37031622_52.gif=37031622_127.gif+37031622_128.gif    0≤n≤N-1

将上式中的n换成N-n,并取复共轭,得到:

37031622_120.gif=37031622_129.gif+37031622_130.gif

=37031622_127.gif-37031622_128.gif

37031622_127.gif=37031622_135.gif(37031622_52.gif+37031622_120.gif)

37031622_128.gif=37031622_135.gif(37031622_52.gif37031622_136.gif)

2、DFT的共轭对称性

(1)将有限长序列x(n)分成实部与虚部,即:

37031622_52.gif=37031622_137.gif+j37031622_138.gif

则:37031622_139.gif

证明:37031622_137.gif=37031622_135.gif(37031622_52.gif+37031622_112.gif)

DFT[37031622_137.gif]=37031622_135.gif(37031622_51.gif+37031622_114.gif)

=37031622_140.gif

j37031622_138.gif=37031622_135.gif(37031622_52.gif37031622_141.gif)

DFT[j37031622_138.gif]=37031622_135.gif(37031622_51.gif37031622_142.gif)

=37031622_143.gif

(2)将有限长序列x(n)分成共轭对称部分和共轭反对称部分,即

37031622_52.gif=37031622_127.gif+37031622_128.gif,0≤n≤N-1

则:37031622_144.gif

证明:37031622_127.gif=37031622_135.gif(37031622_52.gif+37031622_120.gif)

DFT[37031622_127.gif]=37031622_135.gif(37031622_51.gif+37031622_121.gif)

=37031622_145.gif

37031622_128.gif=37031622_135.gif(37031622_52.gif37031622_136.gif)

DFT[37031622_128.gif]=37031622_135.gif(37031622_51.gif37031622_146.gif)

=37031622_147.gif

3.3频率域抽样理论

时域采样定理告诉我们,在一定条件下,可以由时域采样信号恢复原来的连续信号。那么能不能也由频域采样信号恢复频域连续信号?频域采样理论是什么?

已知序列37031622_113.gif及序列37031622_113.gif的长度为M。37031622_113.gif的Z变换为:37031622_67.gif。因为37031622_69.gif收敛域包含单位圆,所以其序列傅立叶变换37031622_14.gif存在。

37031622_14.gif在区间[0,2π]上进行N点等间隔采样(对X(z)在单位圆上进行N点等间隔采样),得到37031622_51.gif37031622_148.gif

37031622_51.gif37031622_69.gif|37031622_70.gif=37031622_149.gif,0≤k≤N-1

37031622_148.gif进行IDFS得周期序列37031622_150.gif,取37031622_150.gif的主值序列37031622_151.gif37031622_151.gif与原序列37031622_113.gif相等吗?相等的条件是什么?由此导出频域采样定理。

37031622_20.gif=IDFS[37031622_23.gif]

=37031622_28.gif

=37031622_152.gif

=37031622_153.gif

=37031622_154.gif

=37031622_155.gif,r为整数

=37031622_63.gif

37031622_156.gif式中37031622_157.gif= 1  m=n+rN,r为整数

0其他m

37031622_20.gif37031622_63.gif

从上式得:X(z)在单位圆上的N点等间隔采样37031622_148.gif的IDFS,为原序列37031622_113.gif以N为周期的周期延拓序列。

37031622_151.gif=37031622_20.gifRN(n)=37031622_63.gifRN(n)  

(3.3.3)

所以只有当频域采样点数N≥M时,才有

37031622_151.gif=IDFT[37031622_51.gif]=37031622_113.gif

即可由频域采样37031622_51.gif恢复原序列37031622_113.gif,否则产生时域混叠现象。这就是频域采样定理。

满足频域采样定理,N≥M,即可由频域采样37031622_51.gif来表示的37031622_69.gif

设序列37031622_113.gif长度为M,在频域0~2π之间等间隔采样N点,N≥M。

37031622_158.gif

37031622_51.gif37031622_69.gif|37031622_70.gif,0≤k≤N-1

根据频域抽样定理,

37031622_113.gif=IDFT[37031622_51.gif]=37031622_152.gif

37031622_159.gif

=37031622_160.gif

=37031622_161.gif

=37031622_162.gif

37031622_163.gif,称为内插函数

37031622_69.gif=37031622_164.gif,称为内插公式

当z=37031622_165.gif时,37031622_166.gif

37031622_14.gif=37031622_167.gif

进一步化简,可得:

37031622_168.gif

37031622_14.gif=37031622_169.gif

在数字滤波器的结构与设计中,我们将会看到,频域采样理论及有关公式可提供一种有用的滤波器结构和滤波器设计途径。

3. 4  DFT的应用举例

一、求两个不同实序列37031622_170.gif37031622_171.gif的N点DFT。

37031622_52.gif=37031622_170.gif+j37031622_171.gif

37031622_52.gif37031622_51.gif37031622_114.gif37031622_135.gif(37031622_51.gif+37031622_114.gif)→37031622_135.gif(37031622_51.gif37031622_142.gif)

利用DFT的共轭对称性

DFT[37031622_170.gif]=37031622_135.gif(37031622_51.gif+37031622_114.gif)

=37031622_140.gif

DFT[j37031622_138.gif]=37031622_135.gif(37031622_51.gif37031622_142.gif)

=37031622_143.gif

DFT[37031622_138.gif]=37031622_172.gif(37031622_51.gif37031622_142.gif)

二、用DFT计算线性卷积

1、线性卷积

37031622_173.gif

y(n)=x(n)*h(n)= 37031622_174.gif

设两序列分别的长度是N和M,线性卷积后的序列长度为(N+M-1)

2、循环卷积

37031622_170.gif37031622_171.gif的N点DFT分别为:

X1(k)=DFT[37031622_170.gif]

X2(k)=DFT[37031622_171.gif]

如果X(k)= X1(k) X2(k),0≤k≤N-1

则:x(n)= IDFT[X(k)]= 37031622_104.gif

37031622_111.gif

x(n)

3、循环卷积的计算

由于DFT有快速算法FFT,当N很大时,在频域计算的速度快得多,因而常用DFT(FFT)计算循环卷积。

37031622_175.gif

4、利用循环卷积计算线性卷积

在实际应用中,为了分析时域离散线性系统对序列进行滤波处理等,需要计算两个序列的线性卷积。与计算循环卷积一样,为了提高运算速度,也希望用DFT(FFT)计算线性卷积。而DFT只能直接用来计算循环卷积。

线性卷积和循环卷积之间有什么关系?

假设h(n)和x(n)都是有限长序列,长度分别是N和M。它们的线性卷积

37031622_176.gif=x(n)*h(n)= h(n)*x(n)=37031622_177.gif

=37031622_178.gif,长度为N+M-1。

取L≥max[N,M],h(n)和x(n)的循环卷积

37031622_179.gif h(n)éx(n) = 37031622_180.gif

37031622_20.gif=x((n))L = 37031622_181.gif

37031622_179.gif37031622_182.gif

=37031622_183.gif

=37031622_184.gif        

(3.4.3)

上式说明,37031622_185.gif等于37031622_186.gif以L为周期进行周期延拓序列的主值序列。37031622_186.gif的长度为N+M-1,因此只有当循环卷积长度L≥N+M-1时,37031622_185.gif等于37031622_186.gif

例如:如下图所示,N=4,M=5,线性卷积长度=8,当取循环卷积长度为6时,37031622_185.gif37031622_186.gif

当取循环卷积长度为8时,37031622_185.gif=37031622_186.gif

当取循环卷积长度为10时,37031622_185.gif=37031622_186.gif

37031622_187.jpg

小结:取L=N+M-1,可用DFT计算线性卷积。这种方法称为快速卷积。用DFT计算线性卷积的框图如下:

37031622_188.gif

当M>>N时,L=N+M-1,h(n)需补很多零点,且长序列必须全部输入后才能进行快速计算。因此要求存储容量大,运算时间长,如在处理地震信号和语音信号时。实际中采用的方法是将长序列分段计算,这种分段处理方法有两种:重叠相加法和重叠保留法。

5、重叠相加法

设序列h(n)长度为N,x(n)为无限长序列。将x(n)均匀分段,每段长度取M,则

37031622_189.gif

式中

37031622_190.gif

h(n)和x(n)的线性卷积

37031622_191.gif h(n)*x(n)= h(n)*37031622_192.gif

=37031622_193.gif

=37031622_194.gif

式中37031622_195.gif

运算过程如下图所示:

37031622_196.jpg

每一分段卷积37031622_197.gif的长度为N+M-1,因此37031622_197.gif37031622_198.gif有N-1个点重叠,必须把重叠部分的37031622_197.gif37031622_198.gif相加,才能得到完整的卷积序列37031622_79.gif。这种方法不要求大的存储容量,且运算和延时也大大减少。

三、用DFT对信号进行谱分析

所谓信号的谱分析,就是计算信号的傅立叶变换。连续信号与系统的傅立叶分析显然不便于直接用计算机进行计算,使其应用受到限制,而DFT是一种时域和频域均离散化的变换,适合数值运算。对连续信号和系统,可以通过时域采样,应用DFT进行近似谱分析。

1、用DFT对连续信号进行谱分析

傅立叶变换理论:

37031622_199.jpg

若信号持续时间有限长,则其频谱无限宽;若频谱有限宽,则其持续时间无限长。

所以,严格地讲,持续时间有限的带限信号是不存在的。

但在工程中,常用DFT对连续信号进行谱分析。

对于持续时间无限长的信号,采样点数太多以至无法存储和计算,只好截取有限点;对于频谱很宽的信号,为防止时域采样后频谱混叠失真,可用预滤波法滤除幅度较小的高频成分,使连续信号的带宽小于折叠频率。这样,连续信号37031622_200.gif持续时间为有限长,37031622_201.gif为有限带宽。为了利用DFT对37031622_200.gif进行频谱分析,先对37031622_200.gif进行时域采样得x(n),再对x(n)进行DFT得到X(k),X(k)为x(n)的傅立叶变换37031622_202.gif在频率区间[0,2p]上的N点等间隔采样。这里X(k)和x(n)均为有限长。所以用DFT对连续信号进行谱分析是近似的,其近似程度与信号带宽、采样频率和截取长度有关。

设连续信号37031622_200.gif持续时间为37031622_203.gif,最高频率为37031622_204.gif

37031622_205.jpg

37031622_206.gif

37031622_207.gif

37031622_200.gif以采样间隔37031622_208.gif采样得x(n)=37031622_209.gif。设共采样N点,并对37031622_210.gif作零阶近似,t=nT,dt=T得:37031622_211.gif

37031622_212.jpg

显然,37031622_213.gif仍是f的连续周期函数,如上图b所示。

37031622_213.gif在区间[0,37031622_214.gif]上等间隔采样N点,采样间隔为F,如下图c所示。

37031622_215.jpg

参数37031622_214.gif37031622_203.gif、N、F的关系:

37031622_214.gif=37031622_216.gif37031622_203.gif=37031622_217.gif

37031622_214.gif=37031622_218.gif37031622_219.gif=37031622_220.gif

∴F=37031622_214.gif/N=37031622_221.gif

37031622_222.gif代入37031622_213.gif,得到37031622_213.gif的采样:

37031622_223.gif,0≤k≤N-1

37031622_224.gif=37031622_225.gif,x(n)=37031622_209.gif

37031622_224.gif=37031622_226.gif   (3.4.7)

用同样的方法,由

37031622_200.gif=37031622_227.gif

推出:37031622_200.gif=37031622_228.gif

t=nT,df=F,37031622_222.gif

x(n)=37031622_229.gif=37031622_230.gif

=37031622_231.gif

=37031622_232.gif        

(3.4.8)

(3.4.7)说明,连续信号的频谱特性可以通过对连续信号采样并进行DFT再乘以T的近似方法得到。时域采样信号可由(3.4.8)得到。

2、用DFT进行谱分析存在的问题

栅栏效应:只能看见N个离散采样点的谱特性,看不到37031622_210.gif的全部频谱特性。

由于栅栏效应,有可能漏掉(挡住)大的频谱分量。为了把原来被“栅栏”挡住的频谱分量检测出来,可以采用在原序列尾部补零的方法,改变序列长度N(即改变DFT变换区间长度),从而增加频域采样点数和采样点位置,使原来漏掉的某些频谱分量被检测出来。

频率响应的混叠失真及参数选择:

设信号最高频率为37031622_204.gif,按时域抽样定理,抽样频率37031622_214.gif>237031622_204.gif,采样间隔37031622_233.gif(时域抽样之前用预滤波器将高于37031622_204.gif频率的信号分量加以滤除),否则会产生频率响应的混叠失真。一般情况下取

37031622_214.gif=(2.5~3.0)37031622_204.gif

对于DFT,频率函数也要抽样变成离散序列,抽样间隔为F,时域周期为37031622_203.gif=37031622_217.gif。F称为频率分辨率,显然F越小,谱分析的结果就越接近原连续信号频谱。所以F较小时,我们称频率分辨率较高。

一组参数:37031622_204.gif37031622_214.gif,T,F,N,37031622_203.gif

抽样定理:37031622_214.gif>237031622_204.gif

37031622_214.gif=NF

F=37031622_214.gif/N

当N保持不变,要提高谱的分辨率,必须降低37031622_214.gif。但37031622_214.gif受抽样定理的限制。如维持37031622_214.gif不变,为提高频率分辨率可以增加采样点数N,因为NT=37031622_203.gif,所以只有增加对信号的观察时间37031622_203.gif

参数选择:由37031622_214.gif>237031622_204.gif,得N>37031622_234.gif

37031622_203.gif37031622_217.gif

例3.4.1:对实信号进行谱分析,要求谱分辨率F≤10Hz,信号最高频率37031622_204.gif=2.5kHz,试确定最小记录时间,最少的采样点数。如果37031622_204.gif不变,要求谱分辨率增加一倍,最少的采样点数和最小的记录时间是多少?

解:F≤10Hz

N>37031622_234.gif=2×2500/10=500

37031622_203.gif37031622_217.gif=1/10=0.1s

为使频率分辨率提高1倍,F=5Hz,

N>37031622_234.gif=2×2500/5=1000

37031622_203.gif37031622_217.gif=1/5=0.2s

截断效应:如果37031622_200.gif持续时间无限长,上述分析中要进行截断处理,所以会产生频率混叠和泄漏现象,从而使谱分析产生误差。

37031622_235.gif

如上图所示,无限长序列37031622_170.gif的频谱为37031622_236.gif(只画出一个周期),现截取一个时间段信号37031622_171.gif,其频谱为37031622_237.gif。这里,截取有限长个数据,就相当于在时域乘一个矩形窗函数,窗内的数据并不改变。时域中相乘,频域中相当于卷积。卷积的结果37031622_171.gif与原来的频谱不相同,有失真。这种失真最主要的是造成频谱的“扩散”(拖尾、变宽)。这就是所谓的“频谱泄漏”

应该说明,泄漏也会造成混叠,因为泄漏会导致频谱的扩展,从而使最高频率有可能超过折叠频率37031622_214.gif/2,造成频率响应的混叠失真。

减小泄漏的方法,首先是取更长的数据,也就是窗宽加宽,当然数据太长,必然使运算存储量都增加,其次数据不要突然截断,也就是不要加矩形窗,而是要缓慢截断,即加各种缓变的窗(例如三角形窗、升余弦窗等),使得窗谱的旁瓣能量更小,卷积后造成的泄漏减小。这个问题在FIR滤波器设计一章中将会讨论到。

### 解决 IntelliJ IDEA 中 `@Autowired` 注解导致的红色波浪线错误 在使用 Spring 框架时,如果遇到 `@Autowired` 注解下的依赖注入对象显示为红色波浪线错误或者黄色警告的情况,通常是由以下几个原因引起的: #### 1. **Spring 插件未启用** 如果 Spring 支持插件未被激活,则可能导致 IDE 无法识别 `@Autowired` 或其他 Spring 特定的功能。可以通过以下方式解决问题: - 打开设置菜单:`File -> Settings -> Plugins`。 - 确认已安装并启用了名为 “Spring Framework Support” 的官方插件[^1]。 #### 2. **项目配置文件缺失或不正确** Spring 需要通过 XML 文件、Java Config 类或其他形式来定义 Bean 定义。如果没有正确加载这些配置文件,可能会导致 `@Autowired` 报错。 - 确保项目的 `applicationContext.xml` 或者基于 Java 的配置类(带有 `@Configuration` 和 `@Bean` 注解)已被正确定义和引入。 - 对于 Spring Boot 项目,确认是否存在 `spring.factories` 文件以及是否包含了必要的组件扫描路径[^3]。 #### 3. **模块依赖关系问题** 当前模块可能缺少对 Spring Core 或 Context 组件库的有效引用。这可能是由于 Maven/Gradle 构建工具中的依赖项声明不足造成的。 - 检查 `pom.xml` (Maven) 或 `build.gradle` (Gradle),确保包含如下核心依赖之一: ```xml <!-- For Maven --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> ``` ```gradle // For Gradle implementation 'org.springframework:spring-context:${springVersion}' ``` - 更新项目依赖树以应用更改:右键点击项目根目录 -> `Maven -> Reload Project` 或运行命令 `./gradlew build --refresh-dependencies`。 #### 4. **IDE 缓存损坏** Intellij IDEA 的缓存机制有时会因各种因素而失效,从而引发误报错误。清除缓存可以有效缓解此类情况。 - 使用快捷组合键 `Ctrl + Alt + Shift + S` 进入项目结构对话框;也可以尝试执行操作序列:`File -> Invalidate Caches / Restart... -> Invalidate and Restart`. #### 5. **启动异常影响正常解析** 若之前存在类似 `com.intellij.diagnostic.PluginException` 的严重初始化失败日志记录,则表明某些关键服务未能成功加载,进而干扰到后续功能表现[^2]。建议重新下载最新稳定版本的 IDEA 并按照标准流程完成初次部署工作。 ```java // 示例代码片段展示如何正确运用 @Autowired 注解实现自动装配 @Service public class StudentService { private final Repository repository; public StudentService(@Qualifier("specificRepository") Repository repo){ this.repository = repo; } } @Component class SpecificComponent{ @Autowired private transient StudentService studentService; // 此处应无任何编译期告警现象发生 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值