前言
专题的上一篇文章[MATLAB] 傅里叶变换专题(三):傅里叶变换,我们已经讨论了傅里叶变换(FT)。但是问题仍然没有解决,即时域和频域如何同时离散化,因此这一小节,我们将探讨离散时间傅里叶变换(DTFT),实现时域的离散化。
采样定理
首先,我们需要了解采样定理。令
x
c
(
t
)
x_c(t)
xc(t)是限带连续时间信号,其频谱最高频率为
Ω
h
\Omega_h
Ωh,即
∣
Ω
∣
>
Ω
h
\left| \Omega \right| > {\Omega _h}
∣Ω∣>Ωh,
X
c
(
j
Ω
)
=
0
X_c(j\Omega)=0
Xc(jΩ)=0。此时,要想采样以后用样本能够不失真地重构原始信号,那么,采样频率
Ω
s
\Omega_s
Ωs必须满足
Ω
s
>
2
Ω
h
\Omega_s>2\Omega_h
Ωs>2Ωh。若不满足,则会出现混叠。
时域采样对应频域延拓,令
x
s
(
t
)
x_s(t)
xs(t)和
X
s
(
j
Ω
)
X_s(j\Omega)
Xs(jΩ)分别为采样信号与采样频谱,则可以得到如下关系:
X
s
(
j
Ω
)
=
1
T
s
∑
k
=
−
∞
∞
X
c
[
j
(
Ω
−
2
π
T
s
k
)
]
{X_s}\left( {j\Omega } \right) = \frac{1}{T_s}\sum\limits_{k = - \infty }^\infty {{X_c}\left[ {j\left( {\Omega - \frac{{2\pi }}{T_s}k} \right)} \right]}
Xs(jΩ)=Ts1k=−∞∑∞Xc[j(Ω−Ts2πk)]
其中,
T
s
=
2
π
Ω
s
T_s = \frac{{2\pi }}{{{\Omega _s}}}
Ts=Ωs2π表示采样周期。
这里我们不再对采样定理进行展开,感兴趣的铁子们可以自行查阅相关资料。
T → \to →DTFT的公式推导
设
x
(
t
)
x(t)
x(t)为非周期连续时间信号,则其FT变换对为:
X
(
j
Ω
)
=
∫
−
∞
∞
x
(
t
)
e
−
j
Ω
t
d
t
X\left( {j\Omega } \right) = \int\limits_{ - \infty }^\infty {x\left( t \right){e^{ - j\Omega t}}dt}
X(jΩ)=−∞∫∞x(t)e−jΩtdt
x ( t ) = 1 2 π ∫ − ∞ ∞ X ( j Ω ) e j Ω t d Ω x\left( t \right) = \frac{1}{{2\pi }}\int\limits_{ - \infty }^\infty {X\left( {j\Omega } \right){e^{j\Omega t}}d\Omega } x(t)=2π1−∞∫∞X(jΩ)ejΩtdΩ
- 首先,我们对连续时间信号进行采样,
t
=
n
T
t=nT
t=nT,采样时间间隔为
T
T
T,采样频率为
Ω
s
=
2
π
T
{\Omega _s} = \frac{{2\pi }}{{{T}}}
Ωs=T2π。则FT正变换可以写作:
X ( e j Ω T ) = ∑ n = − ∞ ∞ x ( n T ) e − j n Ω T X\left( {{e^{j\Omega T}}} \right) = \sum\limits_{n = - \infty }^\infty {x\left( {nT} \right)} {e^{ - jn\Omega T}} X(ejΩT)=n=−∞∑∞x(nT)e−jnΩT
值得注意的是,此时 X ( e j Ω T ) X\left( {{e^{j\Omega T}}} \right) X(ejΩT)是采样信号的频谱,经过了频域延拓。
接着,从 X ( e j Ω T ) X\left( {{e^{j\Omega T}}} \right) X(ejΩT)恢复出 x ( n T ) x(nT) x(nT)的主要思路如下:(1)由于 X ( e j Ω T ) X\left( {{e^{j\Omega T}}} \right) X(ejΩT)是周期信号,因此截取一个周期,补偿振幅变化,再使用IFT即可得到 x ( t ) x(t) x(t);
x ( t ) = 1 Ω s ∫ − Ω s 2 Ω s 2 X ( e j Ω T ) e j Ω t d Ω x\left( t \right) = \frac{1}{{{\Omega _s}}}\int\limits_{ - \frac{{{\Omega _s}}}{2}}^{\frac{{{\Omega _s}}}{2}} {X\left( {{e^{j\Omega T}}} \right){e^{j\Omega t}}d} \Omega x(t)=Ωs1−2Ωs∫2ΩsX(ejΩT)ejΩtdΩ
仔细观察可以发现,积分限的改变代表滤波,截取一个周期;系数的改变代表振幅补偿(采样定理),整个式子依旧是IFT
(2)对
x
(
t
)
x(t)
x(t)进行采样,令
t
=
n
T
t=nT
t=nT,即可恢复出
x
(
n
T
)
x(nT)
x(nT)。
x
(
n
T
)
=
1
Ω
s
∫
−
Ω
s
2
Ω
s
2
X
(
e
j
Ω
T
)
e
j
n
Ω
T
d
Ω
x\left( {nT} \right) = \frac{1}{{{\Omega _s}}}\int\limits_{ - \frac{{{\Omega _s}}}{2}}^{\frac{{{\Omega _s}}}{2}} {X\left( {{e^{j\Omega T}}} \right){e^{jn\Omega T}}d} \Omega
x(nT)=Ωs1−2Ωs∫2ΩsX(ejΩT)ejnΩTdΩ
-
最后,进行变量替换,令 w = Ω T w = \Omega T w=ΩT,同时自变量用 n n n表示,则可以得到DTFT变换对:
X ( e j w ) = ∑ n = − ∞ ∞ x ( n ) e − j n w X\left( {{e^{jw}}} \right) = \sum\limits_{n = - \infty }^\infty {x\left( n \right)} {e^{ - jnw}} X(ejw)=n=−∞∑∞x(n)e−jnwx ( n ) = 1 2 π ∫ − π π X ( e j w ) e j w n d w x\left( n \right) = \frac{1}{{2\pi }}\int\limits_{ - \pi }^\pi {X\left( {{e^{jw}}} \right){e^{jwn}}d} w x(n)=2π1−π∫πX(ejw)ejwndw
这里的** w w w是数字角频率,单位为rad。**
以上的公式推导,仍然很难给铁子们建立一个直观印象,下面我们将使用MATLAB进行仿真验证。
仿真验证
- step1 假设满足采样定理,已经对采样信号频域进行滤波(保留一个周期)。
syms Omega t;
Xs = rectangularPulse(Omega); % 假设频域已经滤波,但是没有经过振幅补偿
sample_Omega = 10*pi; % 采样角频率
sample_T = 2*pi/sample_Omega; % 采样周期
n = -30:30; % 采样点数
- step2 对于Xs,首先,采用DTFT变换得到时域采样点;接着,采用公式推导中的思路,补充振幅并进行IFT变换,得到未采样的连续时间信号。
xs = zeros(1,length(n));
for idx=1:length(n)
xs(idx) =(1/sample_Omega)*int(Xs*exp(1i*n(idx)*Omega*sample_T),Omega,[-sample_Omega/2,sample_Omega/2]);
end % 原始定义得到时域采样点
Xc = sample_T*Xs;
xc = ifourier(Xc,t); % 通过IFT直接得到未采样的时间信号
- step3 绘制图像。可以明显看出,原始定义得到的离散点实际上就是对连续时间信号进行采样,理论得到验证。
仿真总结
-
通过DTFT,我们可以实现时域离散,但是频域依旧连续。但是,我们最终目标仍然是时域和频域均离散,因此DFT将在之后进行研究。
-
DTFT后,频域已经变成数字角频率 w w w,单位rad。
-
DTFT在以后的研究中比较尴尬,用的不多(个人感觉)。
创作不易,希望铁子们可以给出宝贵的建议,这将是我这个小菜猫不断前进的动力,谢谢!