傅里叶变换 拉普拉斯变换 Z变换笔记
最近学到工程测试技术,感到大一学的微积分真的和没学差不多,于是上找博文学习,最后总算弄懂了一点,记录下来。
首先体验一个小的实验
x=linspace(0,30,1000)
y1=8/pi*sin(pi/10*x)
y2=8/3/pi*sin(3*pi/10*x)
y3=8/5/pi*sin(5*pi/10*x)
y=y1
y4=-2*(-1).^(mod(ceil(x/10),2))
for n=3:2:100 n
y=y+8/n/pi*sin(n*pi/10*x)
end
plot(x,y,x,y4)
hold on
plot([0,30],[0,0],'--')
这里简单的展示了一下傅里叶级数的效果,下面详细的介绍一下三个函数
Part1 函数的正交
{1,
s
i
n
(
x
)
sin(x)
sin(x),
c
o
s
(
x
)
cos(x)
cos(x),·····,
s
i
n
(
n
x
)
sin(nx)
sin(nx),
c
o
s
(
n
x
)
cos(nx)
cos(nx)}
这里选择两个个推导
∫ − π π c o s n x ∗ c o s n x d x \int_{-\pi}^\pi{cosnx*cosnx}\,dx ∫−ππcosnx∗cosnxdx
= ∫ − π π 1 + c o s 2 n x 2 d x =\int_{-\pi}^\pi{\frac{1+cos2nx}{2}}\,dx =∫−ππ21+cos2nxdx
= π + 1 2 ∫ − π π c o s 2 n x d x =\pi+\frac{1}{2}\int_{-\pi}^\pi{cos2nx}\,dx =π+21∫−ππcos2nxdx
= π =\pi =π
∫ − π π c o s n x ∗ s i n m x d x \int_{-\pi}^\pi{cosnx*sinmx}\,dx ∫−ππcosnx∗sinmxdx
= ∫ − π π s i n ( n + m ) x + s i n ( m − n ) x 2 d x =\int_{-\pi}^\pi{\frac{sin(n+m)x+sin(m-n)x}{2}}\,dx =∫−ππ2sin(n+m)x+sin(m−n)xdx
= − 1 2 [ c o s ( n + m ) x m + n + c o s ( m − n ) x m − n ] ∣ − π π =-\frac{1}{2}[\frac{cos(n+m)x}{m+n}+\frac{cos(m-n)x}{m-n}]|_{-\pi}^\pi =−21[m+ncos(n+m)x+m−ncos(m−n)x]∣−ππ
= 0 =0 =0
Part2 傅里叶级数推导
通过以上的推导可以知道给出的上述函数坐标系是正交的,因此傅里叶级数可以表示为
f ( x ) = ∑ n = 0 ∞ a n c o s n x + ∑ n = 0 ∞ b n s i n n x = a 0 + ∑ n = 1 ∞ ( a n c o s n x + b n s i n n x ) f(x)=\sum_{n=0}^{\infty}a_ncosnx+\sum_{n=0}^{\infty}b_nsinnx=a_0+\sum_{n=1}^{\infty}(a_ncosnx+b_nsinnx) f(x)=∑n=0∞ancosnx+∑n=0∞bnsinnx=a0+∑n=1∞(ancosnx+bnsinnx)
这与通常书本上的会有一些区别
f ( x ) = a 0 + ∑ n = 1 ∞ ( a n c o s n x + b n s i n n x ) f(x)=a_0+\sum_{n=1}^{\infty}(a_ncosnx+b_nsinnx) f(x)=a0+∑n=1∞(ancosnx+bnsinnx)
这里书本上除以2主要是为了结构上的一致,通过后面的分析就可以知道,这里先不用管
通过推导可知
a
0
=
1
2
π
∫
−
π
π
f
(
x
)
d
x
a_0=\frac{1}{2\pi}\int_{-\pi}^{\pi}f(x)\,dx
a0=2π1∫−ππf(x)dx
a
n
=
1
π
∫
−
π
π
f
(
x
)
c
o
s
(
n
x
)
d
x
a_n=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)cos(nx)\,dx
an=π1∫−ππf(x)cos(nx)dx
b
n
=
1
π
∫
−
π
π
f
(
x
)
s
i
n
(
n
x
)
d
x
b_n=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)sin(nx)\,dx
bn=π1∫−ππf(x)sin(nx)dx
这里便可以看出课本上将
a
0
a_0
a0除以的原因了
最终得到傅里叶级数
f
(
x
)
=
a
0
2
+
∑
n
=
1
∞
(
a
n
c
o
s
n
x
+
b
n
s
i
n
n
x
)
f(x)=\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_ncosnx+b_nsinnx)
f(x)=2a0+∑n=1∞(ancosnx+bnsinnx)
Part3周期为2L的傅里叶级数的展开
f
(
t
)
=
f
(
t
+
2
L
)
f(t)=f(t+2L)
f(t)=f(t+2L)
换元
x
=
π
L
t
⇒
t
=
L
π
x
x=\frac{\pi}{L}t\Rightarrow\,t=\frac{L}{\pi}x
x=Lπt⇒t=πLx
则有
f
(
t
)
=
f
(
L
π
x
)
⇒
g
(
x
)
f(t)=f(\frac{L}{\pi}x)\Rightarrow\,g(x)
f(t)=f(πLx)⇒g(x)
这里
g
(
x
)
g(x)
g(x)的周期为
2
π
2\pi
2π
通过Part2的推导可知
g
(
x
)
=
a
0
2
+
∑
n
=
1
∞
(
a
n
c
o
s
n
x
+
b
n
s
i
n
n
x
)
g(x)=\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_ncosnx+b_nsinnx)
g(x)=2a0+∑n=1∞(ancosnx+bnsinnx)
a 0 = 1 π ∫ − π π f ( x ) d x a_0=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)\,dx a0=π1∫−ππf(x)dx
a n = 1 π ∫ − π π f ( x ) c o s ( n x ) d x a_n=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)cos(nx)\,dx an=π1∫−ππf(x)cos(nx)dx
b n = 1 π ∫ − π π f ( x ) s i n ( n x ) d x b_n=\frac{1}{\pi}\int_{-\pi}^{\pi}f(x)sin(nx)\,dx bn=π1∫−ππf(x)sin(nx)dx
逆向带回f(t)得到
f
(
t
)
=
a
0
2
+
∑
n
=
1
∞
(
a
n
c
o
s
n
π
L
t
+
b
n
s
i
n
n
π
L
t
)
f(t)=\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_ncos\frac{n\pi}{L}t+b_nsin\frac{n\pi}{L}t)
f(t)=2a0+∑n=1∞(ancosLnπt+bnsinLnπt)
a 0 = 1 L ∫ − L L f ( t ) d t a_0=\frac{1}{L}\int_{-L}^{L}f(t)\,dt a0=L1∫−LLf(t)dt
a n = 1 L ∫ − L L f ( t ) c o s ( n π L t ) d t a_n=\frac{1}{L}\int_{-L}^{L}f(t)cos(\frac{n\pi}{L}t)\,dt an=L1∫−LLf(t)cos(Lnπt)dt
b n = 1 L ∫ − L L f ( t ) s i n ( n π L t ) d t b_n=\frac{1}{L}\int_{-L}^{L}f(t)sin(\frac{n\pi}{L}t)\,dt bn=L1∫−LLf(t)sin(Lnπt)dt
这里进一步简化,设函数的周期为T
则有
f
(
t
)
=
a
0
2
+
∑
n
=
1
∞
(
a
n
c
o
s
n
ω
t
+
b
n
s
i
n
n
ω
t
)
f(t)=\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_ncosn\omega t+b_nsinn\omega t)
f(t)=2a0+∑n=1∞(ancosnωt+bnsinnωt)
a 0 = 2 T ∫ 0 T f ( t ) d t a_0=\frac{2}{T}\int_{0}^{T}f(t)\,dt a0=T2∫0Tf(t)dt
a n = 2 T ∫ 0 T f ( t ) c o s n ω t d t a_n=\frac{2}{T}\int_{0}^{T}f(t)cosn\omega t\,dt an=T2∫0Tf(t)cosnωtdt
b n = 2 T ∫ 0 T f ( t ) s i n n ω t d t b_n=\frac{2}{T}\int_{0}^{T}f(t)sinn\omega t\,dt bn=T2∫0Tf(t)sinnωtdt
Part4 傅里叶级数&&欧拉公式
傅里叶级数
f
(
t
)
=
a
0
2
+
∑
n
=
1
∞
(
a
n
c
o
s
n
ω
t
+
b
n
s
i
n
n
ω
t
)
f(t)=\frac{a_0}{2}+\sum_{n=1}^{\infty}(a_ncosn\omega t+b_nsinn\omega t)
f(t)=2a0+∑n=1∞(ancosnωt+bnsinnωt)
a 0 = 2 T ∫ 0 T f ( t ) d t a_0=\frac{2}{T}\int_{0}^{T}f(t)\,dt a0=T2∫0Tf(t)dt
a n = 2 T ∫ 0 T f ( t ) c o s n ω t d t a_n=\frac{2}{T}\int_{0}^{T}f(t)cosn\omega t\,dt an=T2∫0Tf(t)cosnωtdt
b n = 2 T ∫ 0 T f ( t ) s i n n ω t d t b_n=\frac{2}{T}\int_{0}^{T}f(t)sinn\omega t\,dt bn=T2∫0Tf(t)sinnωtdt
欧拉公式
e
i
θ
=
c
o
s
θ
+
i
s
i
n
θ
e^{i\theta}=cos\theta+isin\theta
eiθ=cosθ+isinθ
c o s θ = 1 2 ( e i θ + e − i θ ) cos\theta=\frac{1}{2}(e^{i\theta}+e^{-i\theta}) cosθ=21(eiθ+e−iθ)
s i n θ = − i 2 ( e i θ − e − i θ ) sin\theta=\frac{-i}{2}(e^{i\theta}-e^{-i\theta}) sinθ=2−i(eiθ−e−iθ)
代入可得
f
(
t
)
=
∑
−
∞
∞
c
n
e
i
n
w
t
f(t)=\sum_{-\infty}^{\infty}c_ne^{inwt}
f(t)=∑−∞∞cneinwt
c
(
n
)
=
{
a
0
2
,
n
=
0
a
n
−
i
b
n
2
,
n
=
1
,
2
,
3
,
⋅
⋅
⋅
⋅
a
−
n
+
i
b
−
n
2
,
n
=
−
1
,
−
2
,
−
3
,
⋅
⋅
⋅
⋅
c(n)=\begin {cases} \frac{a_0}{2}, & n=0 \\ \frac{a_n-ib_n}{2}, & n=1,2,3,···· \\ \frac{a_{-n}+ib_{-n}}{2},&n=-1,-2,-3,···· \end {cases}
c(n)=⎩⎪⎨⎪⎧2a0,2an−ibn,2a−n+ib−n,n=0n=1,2,3,⋅⋅⋅⋅n=−1,−2,−3,⋅⋅⋅⋅
c
0
=
a
0
2
=
1
T
∫
0
T
f
(
t
)
d
t
c_0=\frac{a_0}{2}=\frac{1}{T}\int_{0}^{T}f(t)dt
c0=2a0=T1∫0Tf(t)dt
c n = 1 T ∫ 0 T f ( t ) e − n w t i d t c_n=\frac{1}{T}\int_{0}^{T}f(t)e^{-nwti}dt cn=T1∫0Tf(t)e−nwtidt
c
n
=
1
T
∫
0
T
f
(
t
)
e
−
n
w
t
i
d
t
c_n=\frac{1}{T}\int_{0}^{T}f(t)e^{-nwti}dt
cn=T1∫0Tf(t)e−nwtidt
因此
f
(
t
)
=
f
(
t
+
T
)
f(t)=f(t+T)
f(t)=f(t+T)通过欧拉公式变换的傅里叶级数(傅里叶变换FT)为
f
(
t
)
=
∑
−
∞
∞
c
n
e
−
n
w
t
f(t)=\sum\limits_{-\infty}^{\infty}c_ne^{-nwt}
f(t)=−∞∑∞cne−nwt
c n = 1 T ∫ 0 T f ( t ) e − n w t i d t c_n=\frac{1}{T}\int_{0}^{T}f(t)e^{-nwti}dt cn=T1∫0Tf(t)e−nwtidt
Part5 傅里叶变换(FT)
这里贴一张图
我们经常可以听到傅里叶变换时将时域信号变换到频域信号
这里引用上一小节的内容
f T ( t ) = ∑ − ∞ ∞ c n e − n w 0 t f_T(t)=\sum\limits_{-\infty}^{\infty}c_ne^{-nw_0t} fT(t)=−∞∑∞cne−nw0t
c n = 1 T ∫ − T 2 T 2 f T ( t ) e − n w 0 t i d t ( w 0 = 2 π T ) c_n=\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}f_T(t)e^{-nw_0ti}dt \qquad(w_0=\frac{2\pi}{T}) cn=T1∫−2T2TfT(t)e−nw0tidt(w0=T2π)
对于非周期函数(
T
→
∞
T\rightarrow \infty
T→∞)
lim
T
→
∞
f
T
(
t
)
→
f
(
t
)
\lim\limits_{T\rightarrow \infty}f_T(t)\rightarrow f(t)
T→∞limfT(t)→f(t)
此处频域之间的间隔
Δ
ω
\Delta\omega
Δω随T的增大而不断变小,最终
T
→
∞
T\rightarrow \infty
T→∞时
Δ
w
→
0
\Delta w\rightarrow 0
Δw→0,这就是是与不连续到频域连续的变换
于是
f
T
(
t
)
=
∑
n
=
−
∞
∞
1
T
∫
−
T
2
T
2
f
T
(
t
)
e
−
i
n
w
0
t
d
t
e
i
n
w
0
t
f_T(t)=\sum\limits_{n=-\infty}^{\infty}\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}f_T(t)e^{-inw_0t}dte^{inw_0t}
fT(t)=n=−∞∑∞T1∫−2T2TfT(t)e−inw0tdteinw0t
f T ( t ) = ∑ n = − ∞ ∞ Δ w 2 π ∫ − T 2 T 2 f T ( t ) e − i n w 0 t d t e i n w 0 t ∗ f_T(t)=\sum\limits_{n=-\infty}^{\infty}\frac{\Delta w}{2\pi}\int_{-\frac{T}{2}}^{\frac{T}{2}}f_T(t)e^{-inw_0t}dte^{inw_0t}\qquad * fT(t)=n=−∞∑∞2πΔw∫−2T2TfT(t)e−inw0tdteinw0t∗
T
→
∞
T\rightarrow \infty
T→∞
∫
−
t
2
t
2
d
t
=
∫
−
∞
+
∞
d
t
\int_{-\frac{t}{2}}^{\frac{t}{2}}dt=\int_{-\infty}^{+\infty}dt
∫−2t2tdt=∫−∞+∞dt
∑
n
=
−
∞
∞
Δ
w
→
∫
−
∞
+
∞
d
ω
\sum\limits_{n=-\infty}^{\infty}\Delta w \rightarrow \int_{-\infty}^{+\infty}d\omega
n=−∞∑∞Δw→∫−∞+∞dω
将上式代入
∗
*
∗式得
f
(
t
)
=
1
2
π
∫
−
∞
+
∞
∫
−
∞
+
∞
f
(
t
)
e
−
i
w
t
d
t
e
i
w
t
d
w
f(t)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty}f(t)e^{-iwt}dt\,e^{iwt}dw
f(t)=2π1∫−∞+∞∫−∞+∞f(t)e−iwtdteiwtdw
这里截取中间的积分
F
(
ω
)
=
∫
−
∞
+
∞
f
(
t
)
e
−
i
w
t
d
t
(
傅
里
叶
变
换
F
T
)
F(\omega)=\int_{-\infty}^{+\infty}f(t)e^{-iwt}dt\qquad (傅里叶变换FT)
F(ω)=∫−∞+∞f(t)e−iwtdt(傅里叶变换FT)
f
(
t
)
=
1
2
π
∫
−
∞
+
∞
F
(
ω
)
e
i
w
t
d
w
(
傅
里
叶
变
换
的
逆
变
化
)
f(t)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}F(\omega)e^{iwt}dw\qquad (傅里叶变换的逆变化)
f(t)=2π1∫−∞+∞F(ω)eiwtdw(傅里叶变换的逆变化)
Part6离散傅里变换(DFT)
这里应用前面推导的傅里叶级数
f T ( t ) = ∑ − ∞ ∞ c n e − n w 0 t f_T(t)=\sum\limits_{-\infty}^{\infty}c_ne^{-nw_0t} fT(t)=−∞∑∞cne−nw0t
c n = 1 T ∫ − T 2 T 2 f T ( t ) e − n w 0 t i d t = 1 T ∫ 0 T f T ( t ) e − n w 0 t i d t ( w 0 = 2 π T ) c_n=\frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}}f_T(t)e^{-nw_0ti}dt =\frac{1}{T}\int_{0}^{T}f_T(t)e^{-nw_0ti}dt \qquad(w_0=\frac{2\pi}{T}) cn=T1∫−2T2TfT(t)e−nw0tidt=T1∫0TfT(t)e−nw0tidt(w0=T2π)
c
n
=
1
N
∑
n
=
0
N
−
1
f
(
T
N
n
)
e
−
i
2
π
k
n
N
c_n=\frac{1}{N}\sum\limits_{n=0}^{N-1}f(\frac{T}{N}n)e^{-{i\frac{2\pi kn}{N}}}
cn=N1n=0∑N−1f(NTn)e−iN2πkn
这里w离散,故将其换成了k
这里进一步简化为
c
n
=
1
N
∑
n
=
0
N
−
1
Y
n
W
−
n
k
c_n=\frac{1}{N}\sum\limits_{n=0}^{N-1}Y_nW^{-nk}
cn=N1n=0∑N−1YnW−nk
W
=
e
2
π
N
i
W=e^{\frac{2\pi}{N}i}
W=eN2πi
Y
n
=
f
(
n
2
π
N
)
Y_n=f(n\frac{2\pi}{N})
Yn=f(nN2π)
离散傅里叶逆变换
根据
f
(
t
)
=
1
2
π
∫
−
∞
+
∞
F
(
w
)
e
i
w
t
d
w
f(t)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}F(w)e^{iwt}dw
f(t)=2π1∫−∞+∞F(w)eiwtdw类似推导的
f
(
t
)
=
1
N
∑
n
=
0
N
−
1
Y
(
n
)
e
i
2
π
k
n
N
f(t)=\frac{1}{N}\sum\limits_{n=0}^{N-1}Y(n)e^{i\frac{2\pi kn}{N}}
f(t)=N1n=0∑N−1Y(n)eiN2πkn
快速傅里叶变换
是离散傅里叶变换的简化
如果原来计算DFT的复杂度是NN次运算(N代表输入采样点的数量),进行FFT的运算复杂度是Nlg10(N)
拉普拉斯变换(Laplace Transform)
傅里叶变换有其固有局限性:必须满足迪利克雷条件
- 在一周期内,连续或只有有限个第一类间断点;
- 在一周期内,极大值和极小值的数目应是有限个;
- 在一周期内,信号是绝对可积的
这里第三点极大的限制了傅里叶变换的应用范围
因此laplace变换引入了一个补偿因子,使信号衰减
e
−
σ
t
e^{-\sigma t}
e−σt,将原本不满足迪利克雷条件的函数变换为满足
∫
−
∞
+
∞
f
(
t
)
e
−
σ
t
e
−
i
w
t
d
t
\int_{-\infty}^{+\infty}f(t)e^{-\sigma t}e^{-iwt}\,dt
∫−∞+∞f(t)e−σte−iwtdt
此处令
s
=
σ
+
w
i
s=\sigma +wi
s=σ+wi
则变形为
∫
−
∞
+
∞
f
(
t
)
e
−
s
t
d
t
\int_{-\infty}^{+\infty}f(t)e^{-st}dt
∫−∞+∞f(t)e−stdt
Z变换
Z变换是基于拉普拉斯变换提出的,不同于拉普拉斯变换的是,Z变换用于分析离散系统,而拉普拉斯变换用于分析连续系统
这里引入单位冲击函数
f ( t ) σ T ( t ) = ∑ n = 0 ∞ f ( n T ) σ ( t − n T ) f(t)\sigma_T(t)=\sum_{n=0}^{\infty}f(nT)\sigma(t-nT) f(t)σT(t)=∑n=0∞f(nT)σ(t−nT)
s = i w + σ s=iw+\sigma s=iw+σ
F s ( s ) = ∫ 0 ∞ [ ∑ n = 0 ∞ f ( n T ) σ ( t − n T ) ] e − s t d t F_s(s)=\int_{0}^{\infty}[\sum_{n=0}^{\infty}f(nT)\sigma(t-nT)]e^{-st}\,dt Fs(s)=∫0∞[∑n=0∞f(nT)σ(t−nT)]e−stdt
= ∑ n = 0 ∞ f ( n t ) e − s n T =\sum_{n=0}^{\infty}f(nt)e^{-snT} =∑n=0∞f(nt)e−snT
令
z
=
e
s
t
z=e^{st}
z=est
则上式子变为
=
∑
n
=
0
∞
f
(
n
t
)
z
−
n
=\sum_{n=0}^{\infty}f(nt)z^{-n}
=∑n=0∞f(nt)z−n
z = e s t = e ( σ + j w ) T = e σ T e j w t = A ( c o s n w t + i s i n ( w t ) ) = A ( a + i b ) z=e^{st}=e^{(\sigma+jw)T}=e^{\sigma T}e^{jwt}=A(cosnwt+isin(wt))=A(a+ib) z=est=e(σ+jw)T=eσTejwt=A(cosnwt+isin(wt))=A(a+ib)
e ( σ + j w ) n T = e σ n T e j w n t = A ( c o s w n t + i s i n w n t ) e^{(\sigma+jw)nT}=e^{\sigma nT}e^{jwnt}=A(coswnt+isinwnt) e(σ+jw)nT=eσnTejwnt=A(coswnt+isinwnt)
当 z → z n z\rightarrow z^n z→zn时相当于打碎了原来的螺旋前进