日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

小数延迟滤波器

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小数延迟滤波器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:桂。

時間:2017-10-10??22:38:46

鏈接:http://www.cnblogs.com/xingshansi/p/7648274.html?


前言

陣列信號處理中,經常用到小數延遲(fractional delay,FD)的思路,例如Beamforming、GSC等等,本文摘錄幾個小數延遲的實現方式,不打算做系統性的梳理,具體可參考課件。

一、問題模型

給出用到的資料:

1)部分code:網盤code.

2)stanford課件,對應鏈接:https://ccrma.stanford.edu/~jos/Interpolation/

3)Beamforming應用實例:http://www.labbookpages.co.uk/audio/beamforming/fractionalDelay.html

以均勻線陣為例:

設麥克風陣列共用M個陣元,中心為參考點,陣元間距為d,信號入射角為θ,聲音傳播速度為c,則根據幾何知識,第m(0≤m≤M-1)個陣元的時延為τm?= (d/c) sinθ(m-(K-1)/2)。

麥克風采集的是數字信號,設采樣周期為T,則對時域離散的信號來說,時延為D = τ/T。通常D不是一個整數,而對離散信號來說,整數時延才有意義。對于非整數D,可以分解為整數部分和分數部分D = ?D? + d,式中,?D?為D的向下取整,0≤d<1。對于非零的分數部分d,此時信號實際值介于兩個相鄰采樣點之間,即分數延遲。在實際處理中,可對d四舍五入取整,然后加上?D?,得到近似整數時延,但這種方法處理的結果不夠精確。為了得到精確的結果,通常借助小數延遲的思路。

二、小數延遲濾波器

  A-一階FIR設計

思路主要來自Taloy一階近似:

從而

即:

其中η為對應的小數延遲,濾波器架構(低通信號有效):

  B-一階IIR設計

此時對應的濾波器為全通濾波器(All pass),近似逼近

濾波器響應:

濾波器架構:

對應時間延遲:

?  C-Sinc逼近

根據小數延遲濾波器的特性:

  • 幅度響應:全通
  • 相位響應:線性

得出濾波器:

對于采樣信號,需要限定在-fs/2 ~ fs/2之間,即相當于對濾波器進行了頻域截斷,截斷的濾波器特性:

求解該濾波器:

容易證明該濾波器是原型濾波器均方誤差最小的逼近。?

%線陣為例 delay = d*sin(theta)*fs/c*(0:1:element_num); n = -64:63; i = 3;%延遲的陣元 h = sinc(n+delay(i)); H = zeros(1,256); H(1:128) = h; output = ifft((fft(sig)).*(fft(H)));%sig為輸入信號 %相比時域卷積,頻域點乘進一步節省資源

  存疑:如果不是[-pi pi],而是取[0 2*pi],即sin(2*pi*f0*t)其中f0為大于fs/2的信號,簡單的逼近結果錯誤,延遲如何實現?

已解決,具體參考:過采樣的小數延遲實現。

  D-Sinc加窗

由于C中濾波器存在截斷,防止能量泄露的一個常用思路就是:加窗截斷。

即:

α < 1 provides for a nonzero transition band。

對應code:

function h = hsincw2(L,d,wp,win) % HSINCW2 % MATLAB m-file for sinc windowing method for FD filter design % h = hsincw2(L,d,wp,win) designs an (L-1)th-order FIR % filter to approximate a fractional delay of d samples, % where 0 <= d < 1, wp is the passband of approximation and % win is a length-L window function % (e.g., win = chebwin(L,ripple), with sidelope ripple in dB). % Output: length-L filter coefficient vector h % Function Calls: standard MATLAB functions and sinc.m % % Timo Laakso 23.12.1992 % Revised by Vesa Valimaki 19.10.1995 % Last modified 14.01.1996N = L-1; % filter order M = N/2; % middle value if (M-round(M))==0 % if L is even...D = M + d; % D = M + delse D = M + d -0.5; % ...otherwise end; b = (0:N)-D; % sample instants h = sinc(wp*b); % shifted & sampled sinc function h = h.*win; % windowing by the given window function

  E-拉格朗日插值

該思路主要是借助拉格朗日插值,近似得出小數延遲位置的數值。關于拉格朗日插值法的介紹有很多。

濾波器逼近:

基于Taloy展開的性質:

這一特性符合拉格朗日插值的思路,利用此思路:

得出濾波器實現架構

對應code:

function h = lagrange(N, delay) %LAGRANGE h=lagrange(N,delay) returns order N FIR % filter h which implements given delay % (in samples). For best results, % delay should be near N/2 +/- 1. n = 0:N; h = ones(1,N+1); for k = 0:N index = find(n ~= k); h(index) = h(index) * (delay-k)./ (n(index)-k); end

  不同插值個數對應的系數:

  F-Farrow濾波器

該思路為多項式擬合,即將每一階h看作是多項式擬合:

濾波器可表述為:

簡化:

α可存在RAM里,利用查找表直接調用,便可以實現快速的小數延遲。

其中,參數求解:

對應實現架構:

總結

以上是生活随笔為你收集整理的小数延迟滤波器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。