1. 傅里叶变换的集中形式及应用

傅立叶变换是以时间为自变量的信号和以频率为自变量的频谱函数之间的一种变换关系。

由于自变量时间和频率可以是连续的,也可以是离散的,因此可以组成几种不同的变换对。

(1)非周期的连续时间,连续频率-----傅里叶变换

  正变换

                X(jΩ)={-∞,+∞}x(t)*exp^-jΩt dt

  反变换

                x(t)=1/2π{-∞,+∞} X(jΩ)*exp^jΩt dt

  练习一:

         时域函数:连续时间矩形脉冲

         频域:连续频率的非周期函数

(2)周期的连续时间,离散频率----傅里叶级数

T0的 时间信号x(t) 的傅里叶级数展开的系数为X(jkΩ0),构成的傅里叶变换对如下:

  正变换

                X(jkΩ)= {-T0/2,+T0/2}x(t)*exp^-jkΩ0t dt

  反变换

                X(t)= ∑k={-∞,+∞} X(jkΩ0)*exp^jkΩ0t

    式中X(jkΩ0)是以角频率Ω0为间隔的离散函数形成频域的离散频谱,Ω0与时间信号的周期之间的关系为Ω0=2ΠF=2π/T0.傅里叶级数展开将连续时间周期函数分解为无穷多个角频率为Ω0整数倍的谐波,k为各次谐波序号。

    练习二

            时域:连续时间周期矩形脉冲

            频域:非周期的频域

时域的周期性对应于频域的离散性

(3)非周期的离散时间、连续频率---序列的傅里叶变换

     非周期离散时间信号的傅里叶变换就是序列的傅里叶变换

     正变换

                       X(e^jω)= ∑n={-∞,+∞}x(n) e^-jωn

    反变换

                    x(n)=1/2π{-π,+π}X(e^jω) e^jωn   dω      式中,ω是数字频率

    如果序列x(n)是模拟信号x(t)经过抽样得到,抽样时间间隔为Ts,抽样频率为fs=1/TS,抽样角频率为Ωs=2π/Ts,由于数字频率ω与模拟角频率Ω之间的关系为ω=ΩTs,因此抽样数字频率ωssTs=2π,则上面的变换对也可写成

    正变换

                     X(e^jΩT)= ∑n={-∞,+∞}x(nT) e^jnΩT

    反变换

                     x(nT)=1/Ωs{-Ωs/2,+ Ωs/2}X(e^jΩT) e^jnΩT  dΩ

    练习三

Ts为周期进行采样

            频域:以Ωs为周期严拓

时域的离散造成频域的周期严拓,时域的非周期性对应于频域的连续性

(4)离散时间,离散频率----离散傅里叶变换

    由于数字信号处理是希望在计算机上实现各种运算和变换,其所涉及的变量和运算都是离散的,而前面三种傅里叶变换对中,时域或频域中至少有一个域是连续的,所以都不可以在计算机上进行运算和实现,因此对于数字信号处理,应该找到在时域和频域都是离散的傅里叶变换,即离散傅里叶变换。

:时域的周期性导致频域的离散性,时域的连续函数在频域形成非周期频谱;而时域的离散性造成频域的周期延拓,时域的非周期性对应于频域的连续函数形式。那么对于时域和频域都是离散的离散傅里叶变换,应该形成时域和频域都具有周期性的函数。

    如果序列x(n)是模拟信号x(t)经过抽样得到,抽样时间间隔为Ts,则频率函数的周期为Ωs=2π/ Ts,如果频率函数也是离散的,其采样间隔为Ω0,则时间函数的周期为T0=2π/Ω0,当时间函数序列一个周期内的抽样点数为N时,有

                                                         N=T0/TSs0

N,即离散傅里叶变换的时间序列和频率序列的周期都是N,可以得到表示于一个周期内的常用的离散傅里叶变换对如下:

    正变换

                     X(k)= ∑n={0,N-1}x(n) e^-j2π/Nnk

    反变换

                     x(n)=1/N∑n={0,N-1}X(k) e^j2π/Nnk

  时域:对周期矩形脉冲信号以TS为周期进行抽样,得到离散时间序列

  频域:是傅里叶级数以周期ΩS的延拓

(5)傅里叶变换形式的归纳

时域

频域

连续性和非周期性

非周期性和连续性

连续性和周期性T0

非周期性和离散型(Ω0=2π/ T0

离散型和非周期性

周期性ΩS=2π/ TS和连续性

离散型Ts和周期性T0

周期性ΩS=2π/ TS和离散型Ω0=2π/ T0

    由于长度为N的有限长序列可以看做是周期为N的周期序列的一个周期,因此利用DFS计算周期序列的一个周期,就可以得到有限长序列的离散傅里叶变换

    正变换

                     X(k)= ∑n={0,N-1}x(n) e^-j2π/Nnk= X(k)= ∑n={0,N-1}x(n) WNexp^nk

                      x(n)=1/N∑n={0,N-1}X(k) WNexp^-nk

       定义几个与X(k)相关的序列

幅度谱A(k)=|X(k)|

相位谱φ(k)=arctan{XI(k)/ XR(k)}

功率谱S(k)=A(k)*A(k)

2.离散傅里叶变换的物理意义及隐含的周期性

(1)物理意义

设x(n)是长度为N的有限长序列,则其傅里叶变换,Z变换与离散傅里叶变换分别用以下三个关系式表示

X(e^jω)= ∑n={0,N-1}x(n) e^jωn   

X(z)= ∑n={0,N-1}x(n)z^-n

X(k)= ∑n={0,N-1}x(n) e^-j2π/Nnk

单位圆上的Z变换就是序列的傅里叶变换

x(n)的频谱X(ejω)在[0,2π]上的N点等间隔采样,也就是对序列频谱的离散化,这就是DFT的物理意义.

(2)DFT隐含的周期性

DFT的一个重要特点就是隐含的周期性,从表面上看,离散傅里叶变换在时域和频域都是非周期的,有限长的序列,但实质上DFT是从DFS引申出来的,它们的本质是一致的,因此DTS的周期性决定DFT具有隐含的周期性。可以从以下三个不同的角度去理解这种隐含的周期性

(1) 从序列DFT与序列FT之间的关系考虑X(k)是对频谱X(ejω)在[0,2π]上的N点等间隔采样,当不限定k的取值范围在[0,N-1]时,那么k的取值就在[0,2π]以外,从而形成了对频谱X(ejω)的等间隔采样。由于X(ejω)是周期的,这种采样就必然形成一个周期序列

(2) 从DFT与DFS之间的关系考虑。X(k)= ∑n={0,N-1}x(n) WNexp^nk,当不限定N时,具有周期性

(3) 从WN来考虑,当不限定N时,具有周期性

用DFT对模拟信号进行谱分析

在工程实际中经常遇到的模拟信号xn(t),其频谱函数Xn(jΩ)也是连续函数,为了利用DFT对xn(t)进行谱分析,对xn(t)进行时域采样得到x(n)= xn(nT),再对x(n)进行DFT,得到X(k)则是x(n)的傅里叶变换X(ejω)在频率区间[0,2π]上的N点等间隔采样,这里x(n)和X(k)都是有限长序列

然而,傅里叶变换理论证明,时间有限长的信号其频谱是无限宽的,反之,弱信号的频谱有限款的则其持续时间将为无限长,因此,按采样定理采样时,采样序列应为无限长,这不满足DFT的条件。实际中,对于频谱很宽的信号,为防止时域采样后产生‘频谱混叠’,一般用前置滤波器滤除幅度较小的高频成分,使信号的贷款小于折叠频率;同样对于持续时间很长的信号,采样点数太多也会导致存储和计算困难,一般也是截取有限点进行计算。上述可以看出,用DFT对模拟信号进行谱分析,只能是近似的,其近似程度取决于信号带宽、采样频率和截取长度

模拟信号xn(t)的傅里叶变换对为

X(jΩ)={-∞,+∞}x(t)*exp^-jΩt dt

x(t)=1/2π{-∞,+∞} X(JΩ)*e^jΩt dt

用DFT方法计算这对变换对的方法如下:

(a)对xn(t)以T为间隔进行采样,即xn(t)|t=nT= xa(nT)= x(n),由于

                                                                                               t→nT,dt→T, {-∞,+∞}→∑n={-∞,+∞}

因此得到

                X(jΩ)≈∑n={-∞,+∞}x(nT)*exp^-jΩnT*T

                 x(nT)≈1/2π{0, Ωs} X(JΩ)*e^jΩnT Dω

(b)将序列x(n)= xn(t)截断成包含有N个抽样点的有限长序列

X(jΩ)≈T∑n={0,N-1}x(nT)*exp^-jΩnT*T

由于时域抽样,抽样频率为fs=1/T,则频域产生以fs为周期的周期延拓,如果频域是带限信号,则有可能不产生频谱混叠,成为连续周期频谱序列,频谱的周期为fs=1/T

(c)为了数值计算,频域上也要抽样,即在频域的一个周期中取N个样点,fs=NF0,每个样点间隔为F0,频域抽样使频域的积分式变成求和式,而在时域就得到原来已经截断的离散时间序列的周期延拓,时间周期为T0=1/F0。因此有

Ω→kΩ0,dΩ→Ω0,{-∞,+∞} dΩ→∑n={-∞,+∞}Ω0

T0=1/F0=N/fs=NT

Ω0=2ΠF0

Ω0T=Ω0/fs=2π/N

X(jkΩ0)≈T∑n={0,N-1}x(nT)*exp^-jkΩ0nT

3.应用中需要注意的若干问题

(1)时域和频域混叠

    根据采样定理,只有当采样频率大于信号最高频率的两倍时,才能避免频域混叠。实际信号的持续时间是有限的,因而从理论上来说,其频谱宽度是无限的,无论多大的采样频率也不能满足采样定理。但是超过一定范围的高频分量对信号已没有多大的影响,因而在工程上总是对信号先进性低通滤波

DFT得到的频率函数也是离散的,其频域抽样间隔为F0,即频率分辨力。为了对全部信号进行采样,必须是抽样点数N满足条件

                                                                                  N=T0/T=fs/F0

fc和频率分辨力F0有矛盾。若要fc增加,则抽样间隔T就要减小,而FS就要增加,若在抽样点数N不变的情况下,必然是F0增加,分辨力下降。唯一有效的方法是增加记录长度内的点数N,在fc和F0给定的条件下,N必须满足

                                                                                                     N>2fc/F0

(2)截断效应

在实际中遇到的序列x(n),其长度往往是有限长,甚至是无限长,用DFT对其进行谱分析时,必须将其截断为长度为N的有限长序列

                                                            Y(n)=x(n).RN(n)

根据频率卷积定理

                                                            Y(ejω)=1/2Πx(ejω)*H(ejω)

|ω|<2π/N叫做主瓣,其余部分叫做旁瓣

(3)频谱泄露

x(n)的频谱是离散谱线,经截断后使每根谱线都带上一个辛格谱,就好像使谱线向两边眼神,通常将这种是遇上的截断导致频谱展宽成为泄露,泄露使得频谱变得模糊,分辨率降低

(4)谱间干扰

因截断使主谱线两边形成许多旁瓣,引起不同分量间的干扰,成为谱间干扰,这不仅影响频谱分辨率,严重时强信号的旁瓣可能湮灭弱信号的主谱线。

    截断效应是无法完全消除的,只能根据要求折中选择有关参量。

(5)栅栏效应

       N点DFT是在频率区间[0,2π]上对信号的频谱进行N点等间隔采样,得到的是若干个离散点

X(k),且它们之限制为基频F0的整数倍,这部好像在栅栏的一边通过缝隙看另一边的景象,只能在离散点的地方看到真实的景象,其余部分频谱成分被遮拦,所以称为栅栏效应。

    减小栅栏效应,可以在时域数据末端增加一些零值点,是一个周期内的点数增加

(6)信号长度的选择

DFT运算的正确性。实际的信号往往是随机的,没有确定的周期,因此在实际中,应经可能估计出几个典型的、带有一定周期性的信号区域进行频谱分析,然后在取其平均值,从而得到合理的结果。

4. MATLAB验证N点DFT的物理意义

已知x(n)=R4(n),X(ejω)=FT[x(n)],绘制相应的幅频和相频曲线,并计算N=8,N=16时的DFT

程序清单如下:

N1=8;N2=16;
n=0:N1-1;k1=0:N1-1;k2=0:N2-1;
w=2*pi*(0:2047)/2048;
Xw=(1-exp(-j*4*w))./(1-exp(-j*w));
xn=[(n>=0)&(n<4)];
X1k=fft(xn,N1);
X2k=fft(xn,N2);
subplot(3,2,1);plot(w/pi,abs(Xw));xlabel(‘w/π’)
subplot(3,2,2);plot(w/pi,angle(Xw));axis([0,2,-pi,pi]);line([0,2],[0,0]);
xlabel(‘w/π’)
subplot(3,2,3);stem(k1,abs(X1k),’.’);
xlabel(‘k(w=2πk/N1)’);ylabel(‘|X1(k)|’);hold on
plot(N1/2*w/pi,abs(Xw))
subplot(3,2,4);stem(k1,angle(X1k));
axis([0,N1,-pi,pi]);line([0,N1],[0,0]);
xlabel(‘k(w=2πk/N1)’);ylabel(‘Arg|X1(k)|’);hold on
plot(N1/2*w/pi,angle(Xw))
subplot(3,2,5);stem(k2,abs(X2k));
axis([0,N1,-pi,pi]);line([0,N1],[0,0]);
xlabel(‘k(w=2πk/N2)’);ylabel(‘|X2(k)|’);hold on
plot(N2/2*w/pi,abs(Xw))
subplot(3,2,6);stem(k2,angle(X2k),’.’);
xlabel(‘k(w=2πk/N2)’);ylabel(‘|X2(k)|’);hold on
plot(N2/2*w/pi,angle(Xw))