无源定位之时差估计的精确时差估计算法(ETDE)及MATLAB实现程序
精確時差估計算法(ETDE)及MATLAB實現程序
- 算法原理
- 算法總結
- 性能分析
- 實驗結果
算法原理
假設兩接收站分別接收的帶噪信號為
{x(kT)=s(kT)+ε1(kT)y(kT)=s(kT?D)+ε2(kT)\left\{ \begin{matrix} x(kT)=s(kT)+{{\varepsilon }_{1}}(kT) \\ y(kT)=s(kT-D)+{{\varepsilon }_{2}}(kT) \\ \end{matrix} \right.{x(kT)=s(kT)+ε1?(kT)y(kT)=s(kT?D)+ε2?(kT)?
其中延遲 DDD為分數時延,s(kT)s(kT)s(kT) 、ε1(kT){{\varepsilon }_{1}}(kT)ε1?(kT)和 ε2(kT){{\varepsilon }_{2}}(kT)ε2?(kT)為互不相干的寬平穩零均值高斯白噪聲隨機過程。其中分數時延可以通過對信號進行內插重建得到。為簡化模型且不失一般性,假設采樣間隔為單位時間 。故延遲信號可以通過對信號進行與sinc函數進行卷積得到。
y(k)=x(k?D)=∑n=?∞+∞sin?c(n?D)x(k?D)y(k)=x(k-D)\text{=}\sum\limits_{n=-\infty }^{+\infty }{\sin \text{c}(n-D)x(k-D)}y(k)=x(k?D)=n=?∞∑+∞?sinc(n?D)x(k?D)
其中函數 ,sin?c(v)=sin?(πv)πv\sin \text{c}(v)=\frac{\sin (\pi v)}{\pi v}sinc(v)=πvsin(πv)?由于理想的分數延時濾波器難以實現。一般使用加窗截斷得到其近似解,近似誤差隨濾波器階數的增加而增加,截斷后的延遲信號如下
y(k)=x(k?D)=∑n=?MMsin?c(n?D)x(k?D)y(k)=x(k-D)\text{=}\sum\limits_{n=-M}^{M}{\sin \text{c}(n-D)x(k-D)}y(k)=x(k?D)=n=?M∑M?sinc(n?D)x(k?D)
對于ETDE算法,利用估計的延時 D^(k)\hat{D}(k)D^(k)來代替上式的真實值DDD ,并用sinc函數代替自適應算法中的濾波器系數,通過求解瞬時均方誤差 ∣e(k)∣2{{\left| e(k) \right|}^{2}}∣e(k)∣2最小值的梯度下降法的局部最優解獲得估計的分數時延值。
算法總結
e(k)=y(k)?∑n=?MMsin?c(n?D^(k))x(k?D)=y(k)?x(k?D^(k))e(k)=y(k)-\sum\limits_{n=-M}^{M}{\sin \text{c}(n-\hat{D}(k))x(k-D)} \\ =y(k)-x(k-\hat{D}(k)) \\ e(k)=y(k)?n=?M∑M?sinc(n?D^(k))x(k?D)=y(k)?x(k?D^(k))
D^(k+1)=D^(k)-2μ?e2(k)?D^(k)=D^(k)-2μe(k)∑n=?MMf(v)x(k?D)f(v)=cos?(πv)?sin?c(v)vv=n?D^(k)\hat{D}(k+1)=\hat{D}(k)\text{-}2\mu \frac{\partial {{e}^{2}}(k)}{\partial \hat{D}(k)} \\ \text{=}\hat{D}(k)\text{-}2\mu e(k)\sum\limits_{n=-M}^{M}{f(v)x(k-D)} \\ f(v)=\frac{\cos (\pi v)-\sin c(v)}{v}v=n-\hat{D}(k) \\ D^(k+1)=D^(k)-2μ?D^(k)?e2(k)?=D^(k)-2μe(k)n=?M∑M?f(v)x(k?D)f(v)=vcos(πv)?sinc(v)?v=n?D^(k)
同時保證濾波器階數M遠遠大于延時 。
性能分析
估計均方誤差的理論計算值如下
var?(D^)=6μσn2(σs2+σn2)σs2[3?μ(3π2σs2+π2σn2)]orvar?(D^)=6μσs2(SNR+1)SNR[3SNR?μπ2σs2(3SNR+1)]\operatorname{var}(\hat{D})\text{=}\frac{6\mu \sigma _{n}^{2}(\sigma _{s}^{2}+\sigma _{n}^{2})}{\sigma _{s}^{2}[3-\mu (3{{\pi }^{2}}\sigma _{s}^{2}+{{\pi }^{2}}\sigma _{n}^{2})]} \\ or \\ \operatorname{var}(\hat{D})=\frac{6\mu \sigma _{s}^{2}(SNR+1)}{SNR[3SNR-\mu {{\pi }^{2}}\sigma _{s}^{2}(3SNR+1)]} \\ var(D^)=σs2?[3?μ(3π2σs2?+π2σn2?)]6μσn2?(σs2?+σn2?)?orvar(D^)=SNR[3SNR?μπ2σs2?(3SNR+1)]6μσs2?(SNR+1)?
實驗結果
實驗條件: s(k)s(k)s(k)、ε1(kT){{\varepsilon }_{1}}(kT)ε1?(kT)和 ε2(kT){{\varepsilon }_{2}}(kT)ε2?(kT)為互不相關的寬平穩零均值寬帶高斯白噪聲隨機過程。源信號功率為單位功率,步長 μ=0.0003\mu=0.0003μ=0.0003。設置時延在±5T\pm 5T±5T 內,濾波器階數設置為M=10M=10M=10 可以保證可接受的截斷誤差。設置真實誤差 D=1.7TD=1.7TD=1.7T,迭代次數 3000次,兩接收機的信噪比均為SNR=0dBSNR=0dBSNR=0dB 設置迭代初始估計時延為 D^(0)=2.0T\hat{D}(0)\text{=}2.0TD^(0)=2.0T。進行100次蒙特卡洛試驗
文獻結果
代碼下載地址
參考文獻:
H. C. So, P. C. Ching, and Y. T. Chan, “A new algorithm for explicit adaptation of time delay,” IEEE Trans. Signal Process., vol. 42, no. 7, pp. 1816–1820, Jul. 1994, doi: 10.1109/78.298289.
總結
以上是生活随笔為你收集整理的无源定位之时差估计的精确时差估计算法(ETDE)及MATLAB实现程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术痴迷少年
- 下一篇: MATLAB编程规范