自相关函数学习思考
自相关函数学习思考自相关(Autocorrelation),也叫序列相关,是一个信号与其自身在不同时间点的互相关。非正式地来说,自相关是对同一信号在不同时间的两次观察,通过对比来评判两者的相似程度。自相关函数就是信号x(t)x(t)x(t)和它的时移信号x(t−τ)x(t-\tau)x(t−τ)的乘积平均值。它是时移变量τ的函数。也就是说一个函数f(t)f(t)f(t)的自相关函数为::R(τ)=
自相关函数学习思考
自相关(Autocorrelation),也叫序列相关,是一个信号与其自身在不同时间点的互相关。非正式地来说,自相关是对同一信号在不同时间的两次观察,通过对比来评判两者的相似程度。自相关函数就是信号x(t)x(t)x(t)和它的时移信号x(t−τ)x(t-\tau)x(t−τ)的乘积平均值。它是时移变量τ的函数。
也就是说一个函数f(t)f(t)f(t)的自相关函数为::
R(τ)=∫−∞+∞f(t)f(t−τ)dt R(\tau)=\int_{-\infty}^{+\infty}f(t)f(t-\tau)dt R(τ)=∫−∞+∞f(t)f(t−τ)dt
假设f(t)f(t)f(t)是周期T=2πwT=\frac{2\pi}{w}T=w2π无穷大的周期函数,那么R(τ)R(\tau)R(τ)可以写成周期积分:
R(τ)=∫−πwπwf(t)f(t−τ)dt R(\tau)=\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}f(t)f(t-\tau)dt R(τ)=∫−wπwπf(t)f(t−τ)dt
根据傅里叶级数的原理,f(t)f(t)f(t)可以写成傅里叶级数的形式:
f(t)=A0+∑n=1∞Ansin(nwt+ψn),(1) f(t) = A_0+\sum_{n=1}^{\infty}A_nsin(nwt+\psi_n), (1) f(t)=A0+n=1∑∞Ansin(nwt+ψn),(1)
f(t−τ)f(t-\tau)f(t−τ)则可以写成
f(t−τ)=A0+∑n=1∞Ansin(nwt−nwτ+ψn),(2) f(t-\tau) = A_0+\sum_{n=1}^{\infty}A_nsin(nwt-nw\tau+\psi_n), (2) f(t−τ)=A0+n=1∑∞Ansin(nwt−nwτ+ψn),(2)
因此∫−πwπwf(t)f(t−τ)dt\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}f(t)f(t-\tau)dt∫−wπwπf(t)f(t−τ)dt,可以分解成从(1)和(2)式中任意抽取两个项相乘后积分再求和,有下面四种情况:
- 两个抽取都是直流项
∫−πwπwA0∗A0dt=2πwA02\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}A_0*A_0dt=\frac{2\pi}{w}A_0^2∫−wπwπA0∗A0dt=w2πA02 - 一个抽取是直流项,另一个抽取是交流项
∫−πwπwA0∗Ansin(nwt−nwτ+ψn)dt=−A0Annwcos(nwt−nwτ+ψn)∣−πwπw=0\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}A_0*A_nsin(nwt-nw\tau+\psi_n)dt=-\frac{A_0A_n}{nw} cos(nwt-nw\tau+\psi_n)|_{-\frac{\pi}{w}}^{\frac{\pi}{w}}=0∫−wπwπA0∗Ansin(nwt−nwτ+ψn)dt=−nwA0Ancos(nwt−nwτ+ψn)∣−wπwπ=0
∫−πwπwA0∗Ansin(nwt+ψn)dt=−A0Annwcos(nwt+ψn)∣−πwπw=0\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}A_0*A_nsin(nwt+\psi_n)dt=-\frac{A_0A_n}{nw} cos(nwt+\psi_n)|_{-\frac{\pi}{w}}^{\frac{\pi}{w}}=0∫−wπwπA0∗Ansin(nwt+ψn)dt=−nwA0Ancos(nwt+ψn)∣−wπwπ=0 - 两个抽取都是交流项,但n不相同
sin(nawt+ψna)sin(nbwt−nbwτ+ψnb)==12(cos(nawt+ψna−nbwt+nbwτ−ψnb)−cos(nawt+ψna+nbwt−nbwτ+ψnb))=12(cos((na−nb)wt+nbwτ+ψna−ψnb)−cos((na+nb)wt−nbwτ+ψna+ψnb)) \begin{aligned} sin(n_awt+\psi_{n_a})sin(n_bwt - n_bw\tau+\psi_{n_b})&= \hspace{6cm}\\ &=\frac{1}{2} \left( cos(n_awt+\psi_{n_a}-n_bwt + n_bw\tau-\psi_{n_b}) - cos(n_awt+\psi_{n_a}+n_bwt - n_bw\tau+\psi_{n_b}) \right) \\ &=\frac{1}{2} \left( cos((n_a-n_b)wt+ n_bw\tau+\psi_{n_a}-\psi_{n_b}) - cos((n_a+n_b)wt- n_bw\tau+\psi_{n_a}+\psi_{n_b}) \right) \end{aligned} sin(nawt+ψna)sin(nbwt−nbwτ+ψnb)==21(cos(nawt+ψna−nbwt+nbwτ−ψnb)−cos(nawt+ψna+nbwt−nbwτ+ψnb))=21(cos((na−nb)wt+nbwτ+ψna−ψnb)−cos((na+nb)wt−nbwτ+ψna+ψnb))
∫−πwπwAnaAnbsin(nawt+ψna)sin(nbwt−nbwτ+ψnb)dt==∫−πwπw12AnaAnb(cos((na−nb)wt+nbwτ+ψna−ψnb)−cos((na+nb)wt−nbwτ+ψna+ψnb))dt=12AnaAnb(1(na−nb)wsin((na−nb)wt+nbwτ+ψna−ψnb)∣−πwπw−1(na+nb)wsin((na+nb)wt−nbwτ+ψna+ψnb)∣−πwπw)=0 \begin{aligned} \int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}A_{n_a}A_{n_b}sin(n_awt+\psi_{n_a})sin(n_bwt - n_bw\tau+\psi_{n_b})dt&= \hspace{4cm}\\ &=\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}\frac{1}{2} A_{n_a}A_{n_b}\left( cos((n_a-n_b)wt+ n_bw\tau+\psi_{n_a}-\psi_{n_b}) - cos((n_a+n_b)wt- n_bw\tau+\psi_{n_a}+\psi_{n_b}) \right)dt\\ &=\frac{1}{2} A_{n_a}A_{n_b}\left( \frac{1}{(n_a-n_b)w}sin((n_a-n_b)wt+ n_bw\tau+\psi_{n_a}-\psi_{n_b})|_{-\frac{\pi}{w}}^{\frac{\pi}{w}}- \frac{1}{(n_a+n_b)w}sin((n_a+n_b)wt- n_bw\tau+\psi_{n_a}+\psi_{n_b})|_{-\frac{\pi}{w}}^{\frac{\pi}{w}} \right)\\ &=0 \end{aligned} ∫−wπwπAnaAnbsin(nawt+ψna)sin(nbwt−nbwτ+ψnb)dt==∫−wπwπ21AnaAnb(cos((na−nb)wt+nbwτ+ψna−ψnb)−cos((na+nb)wt−nbwτ+ψna+ψnb))dt=21AnaAnb((na−nb)w1sin((na−nb)wt+nbwτ+ψna−ψnb)∣−wπwπ−(na+nb)w1sin((na+nb)wt−nbwτ+ψna+ψnb)∣−wπwπ)=0
- 两个抽取都是交流项,但n相同
∫−πwπwAnaAnbsin(nawt+ψna)sin(nbwt−nbwτ+ψnb)dt==∫−πwπw12AnaAnb(cos((na−nb)wt+nbwτ+ψna−ψnb)−cos((na+nb)wt−nbwτ+ψna+ψnb))dt=12An2(cos(nwτ)∣−πwπw−12nwsin(2nwt−nwτ+2ψn)∣−πwπw)=12An2(2πwcos(nwτ)−0)=πwAn2cos(nwτ) \begin{aligned} \int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}A_{n_a}A_{n_b}sin(n_awt+\psi_{n_a})sin(n_bwt - n_bw\tau+\psi_{n_b})dt&= \hspace{4cm}\\ &=\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}\frac{1}{2} A_{n_a}A_{n_b}\left( cos((n_a-n_b)wt+ n_bw\tau+\psi_{n_a}-\psi_{n_b}) - cos((n_a+n_b)wt- n_bw\tau+\psi_{n_a}+\psi_{n_b}) \right)dt\\ &=\frac{1}{2} A_{n}^2\left( cos(nw\tau)|_{-\frac{\pi}{w}}^{\frac{\pi}{w}}- \frac{1}{2nw}sin(2nwt- nw\tau+2\psi_{n})|_{-\frac{\pi}{w}}^{\frac{\pi}{w}} \right)\\ &=\frac{1}{2} A_{n}^2\left( \frac{2\pi}{w}cos(nw\tau)-0 \right)\\ &= \frac{\pi}{w}A_{n}^2cos(nw\tau) \end{aligned} ∫−wπwπAnaAnbsin(nawt+ψna)sin(nbwt−nbwτ+ψnb)dt==∫−wπwπ21AnaAnb(cos((na−nb)wt+nbwτ+ψna−ψnb)−cos((na+nb)wt−nbwτ+ψna+ψnb))dt=21An2(cos(nwτ)∣−wπwπ−2nw1sin(2nwt−nwτ+2ψn)∣−wπwπ)=21An2(w2πcos(nwτ)−0)=wπAn2cos(nwτ)
综合四种情况可知:
∫−πwπwf(t)f(t−τ)dt=2πwA02+πw∑n=1∞An2cos(nwτ) \int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}f(t)f(t-\tau)dt=\frac{2\pi}{w}A_0^2+\frac{\pi}{w} \sum_{n=1}^{\infty} A_{n}^2cos(nw\tau) ∫−wπwπf(t)f(t−τ)dt=w2πA02+wπn=1∑∞An2cos(nwτ)
由(3)式可知,在τ=0\tau=0τ=0时,自相关函数R(τ)R(\tau)R(τ)有最大值2πwA02+πw∑n=1∞An2\frac{2\pi}{w}A_0^2+\frac{\pi}{w} \sum_{n=1}^{\infty} A_{n}^2w2πA02+wπ∑n=1∞An2
如果f(t)f(t)f(t)是只包含交流分量的函数,在频域上是一条幅值为III的直线(从nan_ana到nbn_bnb),那么这样的f(t)f(t)f(t)自相关函数可以进一步进行化简:
R(τ)=∫−πwπwf(t)f(t−τ)dt=2πwA02+πw∑n=1∞An2cos(nwτ)=πw∑nanbI2cos(nwτ)≈πwI2∫nanbcos(nwτ)dn≈πwI2sin(nwτ)wτ∣nanb≈πwI2(sin(nbwτ)−sin(nawτ))wτ≈πwI2(sin(na+nb2wτ+nb−na2wτ)−sin(na+nb2wτ−nb−na2wτ))wτ≈πwI22cos(na+nb2wτ)sin(nb−na2wτ)wτ≈T2(nb−na)I2cos(na+nb2wτ)sin(nb−na2wτ)nb−na2wτ....(4) \begin{aligned} R(\tau)&=\int_{-\frac{\pi}{w}}^{\frac{\pi}{w}}f(t)f(t-\tau)dt\\ &=\frac{2\pi}{w}A_0^2+\frac{\pi}{w} \sum_{n=1}^{\infty} A_{n}^2cos(nw\tau) \\ &=\frac{\pi}{w} \sum_{n_a}^{n_b} I^2cos(nw\tau) \\ &\approx \frac{\pi}{w} I^2\int_{n_a}^{n_b} cos(nw\tau)dn \\ &\approx \frac{\pi}{w} I^2 \frac{sin(nw\tau)}{w\tau}|_{n_a}^{n_b}\\ &\approx \frac{\pi}{w} I^2 \frac{( sin(n_bw\tau) - sin(n_aw\tau))}{w\tau}\\ &\approx \frac{\pi}{w} I^2 \frac{( sin(\frac{n_a+n_b}{2}w\tau+\frac{n_b-n_a}{2}w\tau) - sin(\frac{n_a+n_b}{2}w\tau-\frac{n_b-n_a}{2}w\tau))}{w\tau}\\ &\approx \frac{\pi}{w} I^2 \frac{2cos(\frac{n_a+n_b}{2}w\tau)sin(\frac{n_b-n_a}{2}w\tau)}{w\tau}\\ &\approx \frac{T}{2}(n_b-n_a) I^2 \frac{cos(\frac{n_a+n_b}{2}w\tau)sin(\frac{n_b-n_a}{2}w\tau)}{\frac{n_b-n_a}{2}w\tau} ....(4)\\ \end{aligned} R(τ)=∫−wπwπf(t)f(t−τ)dt=w2πA02+wπn=1∑∞An2cos(nwτ)=wπna∑nbI2cos(nwτ)≈wπI2∫nanbcos(nwτ)dn≈wπI2wτsin(nwτ)∣nanb≈wπI2wτ(sin(nbwτ)−sin(nawτ))≈wπI2wτ(sin(2na+nbwτ+2nb−nawτ)−sin(2na+nbwτ−2nb−nawτ))≈wπI2wτ2cos(2na+nbwτ)sin(2nb−nawτ)≈2T(nb−na)I22nb−nawτcos(2na+nbwτ)sin(2nb−nawτ)....(4)
观察(4)式可以发现,cos(na+nb2wτ)cos(\frac{n_a+n_b}{2}w\tau)cos(2na+nbwτ)振动速度比sin(nb−na2wτ)sin(\frac{n_b-n_a}{2}w\tau)sin(2nb−nawτ)要快,
而且sin(nb−na2wτ)nb−na2wτ\frac{sin(\frac{n_b-n_a}{2}w\tau)}{\frac{n_b-n_a}{2}w\tau}2nb−nawτsin(2nb−nawτ)是除着τ\tauτ增大,按nb−na2wτ\frac{n_b-n_a}{2}w\tau2nb−nawτ倒数衰减的正弦波形。
所以,R(τ)R(\tau)R(τ)在原函数是宽带频率函数时,其波形是衰减的较慢正弦波形乘以一个比较快的余弦波。
用ipython进行验证:
import numpy as np
import matplotlib.pyplot as plt
import math
%matplotlib inline
N = 512
spectral = [0j] * N
na=100
nb=120
for i in range(N):
if na<=i<=nb:
spectral[i] = (1+0j) * N / 2 #由于 ifft是用X(k)=N * Amp N倍幅值计算的 所以要乘以N 除以2是正负频各分一半幅值
if N - nb <=i<= N - na:
spectral[i] = (1+0j) * N / 2
inputwave = np.fft.ifft(spectral)
inputwave = np.real(inputwave)
R_wave = [0]*N
for tau in range(N):
sumt = 0
for i in range(N):
temp = i - tau
sumt = sumt + inputwave[i] * inputwave[temp] #自相关函数
R_wave[tau] = sumt
approxR_wave = [0]*N #近似计算的自相关波形
nc = (na+nb)/2
dn = (nb-na)/2
amp = N * (nb-na) * 1**2 / 2
for i in range(1,N):
tau = i
if i > N/2:
tau = N - i #相移不能大于半周期,大于相当于是负相移
psi = nc * tau * 2 * math.pi / N
cositem = math.cos(psi)
psi = dn * tau * 2 * math.pi / N
sinitem = math.sin(psi)
approxR_wave[i] = amp * cositem * sinitem / psi
approxR_wave[0] = amp
plt.figure(figsize=(15,10))
plt.plot(R_wave)
plt.plot(approxR_wave)
如果f(t)f(t)f(t)是频域正态分布的宽带信号呢?
用ipython进行试验,看看波形
sigma = 5 #标准差
mu = (na + nb) / 2 #期望(均数)
for i in range(N):
if na<=i<=nb:
temp = (i-mu)/sigma
temp = temp ** 2
temp = temp / 2
temp = math.exp(-temp)
temp = temp/(math.sqrt(2 * math.pi)*sigma)
spectral[i] = temp * (1+0j) * N / 2 #由于 ifft是用X(k)=N * Amp N倍幅值计算的 所以要乘以N 除以2是正负频各分一半幅值
if N - nb <=i<= N - na:
temp = (i- N +mu)/sigma
temp = temp ** 2
temp = temp / 2
temp = math.exp(-temp)
temp = temp/(math.sqrt(2 * math.pi)*sigma)
spectral[i] = temp*(1+0j) * N / 2
inputwave = np.fft.ifft(spectral)
inputwave = np.real(inputwave)
R_wave1 = [0]*N
for tau in range(N):
sumt = 0
for i in range(N):
temp = i - tau
sumt = sumt + inputwave[i] * inputwave[temp] #自相关函数
R_wave1[tau] = sumt
plt.figure(figsize=(15,10))
plt.plot(np.abs(spectral))
plt.figure(figsize=(15,10))
plt.plot(R_wave)
plt.figure(figsize=(15,10))
plt.plot(R_wave1)
有正态分布的宽带频域
直线分布的宽带频域自相关时域波形
正态分布的宽带频域自相关时域波形
对比可以看到,正态分布的自相关函数波形中间杂波小得多,而且振动的频率分量更少一些(向中心频率靠,相当于做了滤波)
更多推荐
所有评论(0)