离散时间傅里叶变换(DTFT,Discrete Time Fourier Transform)
如果 x ( n ) x(n) x(n)绝对可加,即
∑ − ∞ ∞ ∣ x ( n ) ∣ < ∞ \sum_{-\infty}^\infty |x(n)|<{\infty} −∞∑∞∣x(n)∣<∞
则其DTFT为
X ( e j w ) ≜ F [ x ( n ) ] = ∑ n = − ∞ ∞ x ( n ) e − j w X(e^{jw}){\triangleq}F[x(n)]=\sum_{n=-\infty}^{\infty} x(n)e^{-jw} X(ejw)≜F[x(n)]=n=−∞∑∞x(n)e−jw
傅里叶变换其实就是信号在时域和频域的变换,对于基本上所有函数(有一些限制),都可以用各种频率和幅度的正弦和余弦函数的组合表示
以方波信号的傅里叶变换为例
clear all;
close all;
n = -2:2; x = [0, 1, 1, 1, 0]; k = 0:500; w = (pi / 500) * k;
X = x * (exp(-1j * pi / 500)) .^ (n' * k);
magX = abs(X); angX = angle(X);
realX = real(X); imagX = imag(X);
subplot(2, 2, 1); plot(k / 500, magX); grid;
xlabel('w'); title('幅度');
subplot(2, 2, 3); plot(k / 500, angX / pi); grid;
xlabel('w'); title('相位');
subplot(2, 2, 2); plot(k / 500, realX); grid;
xlabel('w'); title('实部');
subplot(2, 2, 4); plot(k / 500, imagX); grid;
xlabel('w'); title('虚部');
其实就是经典的方波信号可以通过各种频率的正余弦信号合成
逆离散时间傅里叶变换(IDTFT,Inverse Discrete Time Fourier Transform)
x ( n ) ≜ F − 1 [ X ( e j w ) ] = 1 / 2 π ∫ − π π x ( e j w ) e j w d w x(n){\triangleq}F^{-1}[X(e^{jw})]=1/2{\pi}\int_{-\pi}^{\pi}x(e^{jw})e^{jw}dw x(n)≜F−1[X(ejw)]=1/2π∫−ππx(ejw)ejwdw
卷积
为什么做傅里叶变换,很大一个原因就是时域的卷积可以转换成频域的相乘
F
[
x
1
(
n
)
∗
x
2
(
n
)
]
=
F
[
x
1
(
n
)
]
F
[
x
2
(
n
)
]
=
X
1
(
e
j
w
)
X
2
(
e
j
w
)
F[x_1(n)*x_2(n)]=F[x_1(n)]F[x_2(n)]=X_1(e^{jw})X_2(e^{jw})
F[x1(n)∗x2(n)]=F[x1(n)]F[x2(n)]=X1(ejw)X2(ejw)
通过傅里叶变化,我们可以把几乎任意信号转换成不同频率
w
w
w的
e
j
w
n
e^{jwn}
ejwn的和,假如
x
(
n
)
=
e
j
w
0
n
x(n)=e^{jw_0n}
x(n)=ejw0n,则脉冲响应
h
(
x
)
h(x)
h(x)为
y
(
n
)
=
h
(
n
)
∗
e
j
w
0
n
=
∑
k
=
−
∞
∞
h
(
k
)
e
j
w
0
(
n
−
k
)
=
[
∑
k
=
−
∞
∞
h
(
k
)
e
−
j
w
0
(
k
)
]
e
j
w
0
n
=
[
F
[
h
(
n
)
∣
w
=
w
0
]
]
e
j
w
0
n
y(n)=h(n)*e^{jw_0n}=\sum_{k=-\infty}^\infty h(k) e^{jw_0(n-k)}=[\sum_{k=-\infty}^\infty h(k) e^{-jw_0(k)}]e^{jw_0n}=[F[h(n)|_{w=w_0}]]e^{jw_0n}
y(n)=h(n)∗ejw0n=k=−∞∑∞h(k)ejw0(n−k)=[k=−∞∑∞h(k)e−jw0(k)]ejw0n=[F[h(n)∣w=w0]]ejw0n
也就说通过对输入信号做傅里叶变换,本来是通过复杂的卷积获得输出,现在直接通过简单的乘法就可以获得输出信号了
假如LTI系统可以用下面的差分方程表示:
y
(
n
)
+
∑
l
=
1
N
a
l
y
(
n
−
l
)
=
∑
m
=
0
M
b
m
x
(
n
−
m
)
y(n)+\sum_{l=1}^{N}a_ly(n-l)=\sum_{m=0}^{M}b_mx(n-m)
y(n)+l=1∑Naly(n−l)=m=0∑Mbmx(n−m)
则通过傅里叶变换可以求得其频率响应函数
H
(
e
j
w
n
)
+
∑
l
=
1
N
a
l
H
(
e
j
w
)
e
j
w
(
n
−
l
)
=
∑
m
=
0
M
b
m
e
j
w
(
n
−
m
)
H(e^{jwn})+\sum_{l=1}^{N}a_lH(e^{jw})e^{jw(n-l)}=\sum_{m=0}^{M}b_me^{jw(n-m)}
H(ejwn)+l=1∑NalH(ejw)ejw(n−l)=m=0∑Mbmejw(n−m)
H
(
e
j
w
n
)
=
∑
m
=
0
M
b
m
e
−
j
w
m
/
[
1
+
∑
l
=
0
N
a
l
e
−
j
w
l
]
H(e^{jwn})=\sum_{m=0}^{M}b_me^{-jwm}/[1+\sum_{l=0}^{N}a_le^{-jwl}]
H(ejwn)=m=0∑Mbme−jwm/[1+l=0∑Nale−jwl]
数字信号处理(MATLAB版) 美 维纳 K 英格尔 西安交通大学出版社