稀疏傅里葉變換原理說明(二)


書接上回:稀疏傅里葉變換原理說明(一)


三、流程中各部分詳解

3.3 降采樣FFT

降采樣指的是頻域降采樣,當然這一步也是在時域上進行操作的。先看公式:

$$y_{i}=\sum_{j=0}^{\frac{N}{B}-1}x_{i+Bj}$$

上述操作等價於

$$\hat{y}_{i}=\hat{x}_{i(n/B)}, 其中 i=0,1,2,3,...,B-1$$

需要說明的是,Â的含義是對信號序列A進行傅里葉變換后的結果,上同。這里舉個例子:

這個例子中,N=4096,濾波器長度ω=384,分筐數B=64。這里與公式稍有出入是因為:之前在濾波器處提到,從信號序列中取出與濾波器序列長度相同的部分序列進行處理,而降采樣在濾波之后,因此降采樣也沒必要對所有的信號序列進行處理,只需要對被濾波器取出來的那部分進行處理即可,因此公式實際為:

$$y_{i}=\sum_{j=0}^{\frac{ \omega }{B}-1}x_{i+Bj}, 其中 i=0,1,2,3,...,B-1$$

既然這一步叫降采樣FFT,因此FFT是不能少的,而fft的對象就是經過了求和后的序列y。原本需要進行N點FFT運算,現在只需要進行B點FFT運算,這也是SFT提升運算速度的關鍵之一。

注:分筐

在SFT的理論框架中,將頻譜重排和濾波操作合稱為分筐。分筐的含義是指,原始信號頻譜中譜線所在的位置(1~N),經過一系列變換后,變到了另一個新位置之中(1~B),每一個新位置的幅值都是由原信號頻譜中N/B個位置的幅值按比例相加得到的。正因為這種相加特性,稀疏性的作用就體現出來了:因為大部分點的幅值都是趨近於0,因此每個筐中有很大概率只會有一條譜線。

論文《稀疏傅里葉變換理論及研究進展》【1】中有一張很好的圖能描述以上過程:

左圖中虛線是原始信號所在的位置和幅值,實線是經過濾波器卷積后頻譜,總點數N=256、分筐數B=8,因此一個筐中有256/8=32個點進行相加。時域上的相加操作等效於頻域上的采樣操作,采樣點分別是0、32、64、96、128、160、192、224,也就是右圖中的結果。采樣點數從256變成了8,明顯是一個降低的過程,因此這一過程也被稱為降采樣。

3.4 定位

定位和估值問題的實質都是從B個筐中,想辦法恢復或者模擬出原信號。

原信號譜線所在位置經“分筐”后變到一個新位置,是一個映射過程,又因為每個位置都和一個幅值對應,所以這個過程與“哈希映射”非常相似。利用這種思想進行信號恢復的方法稱為“哈希映射法”。除了這種方法外,還有其他恢復方法,但使用“哈希映射法”居多。有的恢復方法可能不分為“定位”和“求值”,統一叫做“重構”,這也是在稀疏傅里葉變換原理說明(一)中的理論框架圖將“定位”和“求值”用虛線框住的原因。

 使用“哈希映射法”進行定位的流程如下。

首先,對降采樣FFT后的信號序列z_hat(這個hat后綴指的是該字母Â頭上的玩意,指代FFT后的頻域序列,懶得編輯公式了)按照幅值大小進行排序,取出總計dK個最大值所在的坐標。這里的K指的是稀疏度,d一般是一個大於零的整數,用來確定運算精度。

這是取dK個坐標而不是K個坐標是因為:經過頻譜重排、濾波器、降采樣等操作,不可避免地會生成額外的頻率分量,多取一些坐標利於排查出哪些“筐”中是有用信號哪些“筐”是無用信號。但d取得越大,后續計算速度就越慢。下圖中的例子中,K=1,d=2,因此取最大兩個值的坐標J(1)=25和J(2)=26

由之前的分析可知,每個筐中都是N/B個頻率成分的和,因此一個筐對應有N/B個坐標值,利用函數

low = mod(ceil((J(i) - 1 - 0.5) * N / B), N)
high = mod(ceil((J(i) - 1 + 0.5) * N / B), N)

確定需要進行逆映射的坐標位置的集合。本例中N=4096,B=64,一個筐中含有64個位置。J(1)=25對應的范圍為1504~1567,J(2)=26對應的范圍為1568~1632,再分別對這些范圍內的值進行逆映射,就可以對應上原信號的頻率了。逆映射公式為:

$$j=(i \ast \sigma ^{-1}) \% N$$

σ-1是σ關於模N下的逆元,而這個σ就是最開始進行頻譜重排的縮放因子。

以J(1)為例,逆映射的結果是:

坐標范圍 1504 1505 1506 1507 1508 。。。 1566 1567
原始頻率 417 1700 2983 170 1453 。。。 2139 3422

因此,第25號“筐”中的幅值是原始信號中頻率成分的位置在417、1700、2983、170。。。等的和。J(2)同理。

這里需要說明的是,這只是一次“定位”得到的結果。一個頻譜重排的縮放因子σ對應一個逆元σ-1,對應B個筐,對應dK個最大值的坐標,對應dkN/B個原始信號的頻率成分。SFT作為一種估計算法,是不可能單靠一次“定位”就能得到原始信號中有用頻率成分的位置的,需要統計多次“定位”的結果。每個“定位”流程選取的σ和σ-1都不一樣,因此每個流程中dkN/B個原始信號的頻率成分也不一樣。假設總共進行了L次定位,則會得到L*(dkN/B)個原始信號的頻率成分坐標,統計其中出現次數大於等於L/2的數,就可以認為該數是有用信號的坐標值了。


【1】:論文鏈接:https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CJFD&dbname=CJFDLAST2017&filename=BJLG201702001&uniplatform=NZKPT&v=mrzmIb3Tbl2BfzP0LjRql-IlIjVoB4_KtuZ1JtiGprUQSd08oI01SU0gtx2a_CEy

由於篇幅限制,后續內容放在了“稀疏傅里葉變換原理說明(三)”當中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM