本發(fā)明涉及信號(hào)處理領(lǐng)域,尤其是一種相位相關(guān)的高密度疊窗頻譜計(jì)算方法。
背景技術(shù):
頻譜分析方式有著多樣性的特征,就現(xiàn)階段來(lái)看,頻譜分析方式是多種多樣的,有cross算法、dft算法、prony算法、小波變換、卡爾曼濾波算法等,但是這些算法都存在各種各樣的不足,其中,dft算法的應(yīng)用范圍是最為廣泛的,在高次諧波以及非整次諧波含量較少的情況下,該種算法的精度是十分理想的,該種算法應(yīng)用了循環(huán)與遞歸算法,計(jì)算速度快,抗干擾性強(qiáng),能夠消除整次諧波對(duì)分析過(guò)程的不良影響。而使用加窗法與濾波法也能夠避免dft算法出現(xiàn)插值方向錯(cuò)誤的問(wèn)題。
對(duì)于一般的疊窗dft算法來(lái)說(shuō),其窗口間隔會(huì)被設(shè)定為窗口長(zhǎng)度的幾分之一,而且當(dāng)疊窗太疏時(shí)相位差不好用,從而導(dǎo)致一些基于疊窗fft的應(yīng)用會(huì)只保留模值,相位和相位差信息會(huì)被丟棄。但在實(shí)際應(yīng)用中,目前的這種疊窗dft算法會(huì)對(duì)音頻處理產(chǎn)生以下不利的影響:由于受運(yùn)算量所限,疊窗的間隔一般不能設(shè)置得太短,這樣就只能從各個(gè)離散,稀疏的時(shí)間點(diǎn)觀察數(shù)據(jù)。雖然對(duì)于模值而言,從各個(gè)離散和稀疏的時(shí)間點(diǎn)觀察數(shù)據(jù)影響并不大,因?yàn)猷徑翱诘哪V凳窍嗨频?,所以其測(cè)定值基本能反映實(shí)際狀況;但其對(duì)于相位信息的影響就大為不同了,其可能會(huì)因設(shè)定了一個(gè)較長(zhǎng)的窗口間隔而導(dǎo)致兩個(gè)窗口之間的相位差超過(guò)π,這樣就對(duì)相位信息變化速率的測(cè)定造成阻礙。
綜上所述,業(yè)內(nèi)亟需一種新的疊窗頻譜計(jì)算方法,能降低運(yùn)算量,并在保證模值分量正確檢出的同時(shí)測(cè)得更精確和直觀的相位變化信息。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問(wèn)題,本發(fā)明的目的在于:提供一種計(jì)算量低、精確和直觀的,相位相關(guān)的高密度疊窗頻譜計(jì)算方法。
本發(fā)明所采取的技術(shù)方案是:
一種相位相關(guān)的高密度疊窗頻譜計(jì)算方法,包括以下步驟:
進(jìn)行初始化,并輸入原始信號(hào);
采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算,得到信號(hào)的頻譜,所述基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法在進(jìn)行傅里葉變換時(shí)隨源信號(hào)窗口的移動(dòng)將原傅里葉變換矩陣的前若干行循環(huán)移動(dòng)到最底端來(lái)省略計(jì)算相鄰窗的重復(fù)部分,并在加窗時(shí)采用了iir濾波器對(duì)窗函數(shù)進(jìn)行擬合,以節(jié)省計(jì)算量;其中,信號(hào)的頻譜包含有模值譜、相位譜和瞬時(shí)相位差譜。
進(jìn)一步,所述采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算,得到信號(hào)的頻譜這一步驟,其包括:
step1、使用原傅里葉變換矩陣m對(duì)原始信號(hào)s進(jìn)行循環(huán)滾動(dòng)卷積運(yùn)算,得到中間計(jì)算矩陣并按照設(shè)定的存儲(chǔ)格式存儲(chǔ)中間計(jì)算矩陣;
step2、根據(jù)窗函數(shù)w計(jì)算iir參數(shù)k,并根據(jù)k對(duì)中間計(jì)算矩陣進(jìn)行iir濾波計(jì)算,得到近似擬合后的結(jié)果;
step3、根據(jù)近似擬合后的結(jié)果得到相應(yīng)信號(hào)的頻譜。
進(jìn)一步,所述步驟step1包括:
step11、定義原傅里葉變換矩陣m的前k行循環(huán)移動(dòng)到最底端,得到移動(dòng)后的傅里葉變換矩陣為m(k),其中,k為正整數(shù);
step12、定義s(k)為抽取s的第k到k+n-1個(gè)元素所組成的一個(gè)行向量,記s(k)=(sk,sk+1,…,sk+n-1);
step13、初始時(shí),令k=0;
step14、對(duì)s(k)與m(k)進(jìn)行卷積運(yùn)算,并將卷積運(yùn)算的中間結(jié)果按照設(shè)定的存儲(chǔ)格式存儲(chǔ)到中間計(jì)算矩陣中;
step15、記窗口間隔為v,將m(k)的前v行循環(huán)移動(dòng)到m(k)的最底端,得到m(k+v);
step16、令k:=k+v,使得步驟step15中所述的m(k+v)記為m(k),其中,“:=”為賦值符號(hào);
step17、判斷k+n-1是否已到達(dá)或超過(guò)s的長(zhǎng)度,若是,則完成中間計(jì)算矩陣的計(jì)算過(guò)程;反之,則返回步驟step14。
進(jìn)一步,所述中間計(jì)算矩陣的存儲(chǔ)規(guī)律為:中間計(jì)算矩陣中s同一列的下標(biāo)相同,且s的下標(biāo)從左到右各列遞增1,中間計(jì)算矩陣中m同一行的上標(biāo)相同,且m的上標(biāo)從第一行到第n行逐行遞增1,m同一列的下標(biāo)相同,m的下標(biāo)等于s下標(biāo)模n,具體存儲(chǔ)格式如下表所示:
上表中,s(s0,s1,…,si)為原始信號(hào),si為s中第i個(gè)元素,i∈[0,t),且i為自然數(shù),記
進(jìn)一步,所述步驟step2包括:
step21、確定窗函數(shù)w;
step22、根據(jù)窗函數(shù)w計(jì)算iir參數(shù)k的值k1,k2,…,kq;
step23、對(duì)中間計(jì)算矩陣的每一行使用iir參數(shù)k的值進(jìn)行iir濾波計(jì)算,得到結(jié)果矩陣a*。
進(jìn)一步,所述步驟step23對(duì)中間計(jì)算矩陣的每一行能使用不同窗函數(shù)w計(jì)算出的不同iir參數(shù)k來(lái)進(jìn)行iir濾波計(jì)算。
進(jìn)一步,以中間計(jì)算矩陣的每一行作為處理對(duì)象,若將中間計(jì)算矩陣某行的第i個(gè)元素記為xi,則步驟step23包括:
step231、根據(jù)iir參數(shù)k的值對(duì)xi按i=0,i=1,…,i=t-1的正向順序計(jì)算出x′i,所述x′i的計(jì)算公式為:
step232、根據(jù)iir參數(shù)k的值和x′i按i=t-1,i=t-2,…,i=0的反向順序計(jì)算出x″i,所述x″i的計(jì)算公式為:
step233、將對(duì)應(yīng)行的各x″i的值寫(xiě)回中間計(jì)算矩陣xi的相應(yīng)位置并進(jìn)行存儲(chǔ),最終得到結(jié)果矩陣a*。
進(jìn)一步,所述步驟step3包括:
step31、根據(jù)結(jié)果矩陣a*計(jì)算相應(yīng)信號(hào)的模值
step32、使用相位計(jì)算最終的相位差值d。
進(jìn)一步,所述步驟step32包括:
step321、計(jì)算
step322、根據(jù)公式
進(jìn)一步,所述采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算時(shí),能只選擇感興趣頻段進(jìn)行頻譜計(jì)算而省略不感興趣頻段的計(jì)算。
本發(fā)明的有益效果是:包括輸入原始信號(hào)和采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算,得到信號(hào)的頻譜的步驟,采用了基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法,通過(guò)在進(jìn)行傅里葉變換時(shí)隨源信號(hào)窗口的移動(dòng)將原傅里葉變換矩陣的前若干行循環(huán)移動(dòng)到最底端來(lái)使相鄰窗重復(fù)的部分可以省略計(jì)算,節(jié)省了計(jì)算量,并采用了計(jì)算量小的iir濾波器對(duì)窗函數(shù)進(jìn)行擬合,計(jì)算量更低;頻譜計(jì)算得到的信號(hào)的頻譜包含有模值譜、相位譜和瞬時(shí)相位差譜,在保證模值分量正確檢出的同時(shí),能測(cè)得相位和相位差,更精確和直觀。進(jìn)一步,對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算時(shí),能只選擇感興趣頻段進(jìn)行頻譜計(jì)算而省略不感興趣頻段的計(jì)算,提高了計(jì)算效率。
附圖說(shuō)明
圖1為本發(fā)明一種相位相關(guān)的高密度疊窗頻譜計(jì)算方法的具體流程圖;
圖2為傳統(tǒng)傅里葉變換方法的運(yùn)算形式示意圖;
圖3為實(shí)施例一高密度疊窗算法矩陣的移動(dòng)過(guò)程示意圖;
圖4為實(shí)施例一高密度疊窗算法矩陣的預(yù)乘優(yōu)化過(guò)程示意圖;
圖5為實(shí)施例一采用本發(fā)明的高密度疊窗算法計(jì)算低頻部分時(shí)的運(yùn)算過(guò)程示意圖。
具體實(shí)施方式
參照?qǐng)D1,一種相位相關(guān)的高密度疊窗頻譜計(jì)算方法,包括以下步驟:
進(jìn)行初始化,并輸入原始信號(hào);
采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算,得到信號(hào)的頻譜,所述基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法在進(jìn)行傅里葉變換時(shí)隨源信號(hào)窗口的移動(dòng)將原傅里葉變換矩陣的前若干行循環(huán)移動(dòng)到最底端來(lái)省略計(jì)算相鄰窗的重復(fù)部分,并在加窗時(shí)采用了iir濾波器對(duì)窗函數(shù)進(jìn)行擬合,以節(jié)省計(jì)算量;其中,信號(hào)的頻譜包含有模值譜、相位譜和瞬時(shí)相位差譜。
本發(fā)明在進(jìn)行變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合后,還需要進(jìn)行一些額外的運(yùn)算(如圖1所示的相位差計(jì)算等)才能得到最終的模值、相位和瞬時(shí)相位差。
參照?qǐng)D1、3和4,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算,得到信號(hào)的頻譜這一步驟,其包括:
step1、使用原傅里葉變換矩陣m對(duì)原始信號(hào)s進(jìn)行循環(huán)滾動(dòng)卷積運(yùn)算,得到中間計(jì)算矩陣并按照設(shè)定的存儲(chǔ)格式存儲(chǔ)中間計(jì)算矩陣;
step2、根據(jù)窗函數(shù)w計(jì)算iir參數(shù)k,并根據(jù)k對(duì)中間計(jì)算矩陣進(jìn)行iir濾波計(jì)算,得到近似擬合后的結(jié)果;
step3、根據(jù)近似擬合后的結(jié)果得到相應(yīng)信號(hào)的頻譜。
參照?qǐng)D3和4,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟step1包括:
step11、定義原傅里葉變換矩陣m的前k行循環(huán)移動(dòng)到最底端,得到移動(dòng)后的傅里葉變換矩陣為m(k),其中,k為正整數(shù);
step12、定義s(k)為抽取s的第k到k+n-1個(gè)元素所組成的一個(gè)行向量,記s(k)=(sk,sk+1,…,sk+n-1);
step13、初始時(shí),令k=0;
step14、對(duì)s(k)與m(k)進(jìn)行卷積運(yùn)算,并將卷積運(yùn)算的中間結(jié)果按照設(shè)定的存儲(chǔ)格式存儲(chǔ)到中間計(jì)算矩陣中;
step15、記窗口間隔為v,將m(k)的前v行循環(huán)移動(dòng)到m(k)的最底端,得到m(k+v);
step16、令k:=k+v,使得步驟step15中所述的m(k+v)記為m(k),其中,“:=”為賦值符號(hào);
step17、判斷k+n-1是否已到達(dá)或超過(guò)s的長(zhǎng)度,若是,則完成中間計(jì)算矩陣的計(jì)算過(guò)程;反之,則返回步驟step14。
其中,各種循環(huán)滾動(dòng)操作是邏輯上的操作,在實(shí)際計(jì)算中,m到m(k)的變換僅僅通過(guò)改變對(duì)m的讀取順序來(lái)實(shí)現(xiàn),并不實(shí)際改變m的存儲(chǔ)值。
進(jìn)一步作為優(yōu)選的實(shí)施方式,所述中間計(jì)算矩陣的存儲(chǔ)規(guī)律為:中間計(jì)算矩陣中s同一列的下標(biāo)相同,且s的下標(biāo)從左到右各列遞增1,中間計(jì)算矩陣中m同一行的上標(biāo)相同,且m的上標(biāo)從第一行到第n行逐行遞增1,m同一列的下標(biāo)相同,m的下標(biāo)等于s下標(biāo)模n,具體存儲(chǔ)格式如下表所示:
上表中,s(s0,s1,…,si)為原始信號(hào),si為s中第i個(gè)元素,i∈[0,t),且i為自然數(shù),記
參照?qǐng)D1,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟step2包括:
step21、確定窗函數(shù)w;
step22、根據(jù)窗函數(shù)w計(jì)算iir參數(shù)k的值k1,k2,…,kq;
step23、對(duì)中間計(jì)算矩陣的每一行使用iir參數(shù)k的值進(jìn)行iir濾波計(jì)算,得到結(jié)果矩陣a*。
本發(fā)明可采用butterworth,或chebyshev等現(xiàn)有的低通濾波器設(shè)計(jì)方法來(lái)根據(jù)窗函數(shù)w確定iir參數(shù)k的值,也就是說(shuō)iir參數(shù)k的值和w的轉(zhuǎn)換關(guān)系與iir濾波器的具體設(shè)計(jì)有關(guān)。
進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟step23對(duì)中間計(jì)算矩陣的每一行能使用不同窗函數(shù)w計(jì)算出的不同iir參數(shù)k來(lái)進(jìn)行iir濾波計(jì)算。
其中,步驟step23中間計(jì)算矩陣的每一行,可使用不同的w,以確定不同的iir參數(shù)k,以模擬使用不同σ參數(shù)的高斯窗或其它類(lèi)型寬窄不同的窗,從而讓不同頻段擁有不同的時(shí)間響應(yīng)特性。
進(jìn)一步作為優(yōu)選的實(shí)施方式,以中間計(jì)算矩陣的每一行作為處理對(duì)象,若將中間計(jì)算矩陣某行的第i個(gè)元素記為xi,則步驟step23包括:
step231、根據(jù)iir參數(shù)k的值對(duì)xi按i=0,i=1,…,i=t-1的正向順序計(jì)算出x′i,所述x′i的計(jì)算公式為:
step232、根據(jù)iir參數(shù)k的值和x′i按i=t-1,i=t-2,…,i=0的反向順序計(jì)算出x″i,所述x″i的計(jì)算公式為:
step233、將對(duì)應(yīng)行的各x″i的值寫(xiě)回中間計(jì)算矩陣xi的相應(yīng)位置并進(jìn)行存儲(chǔ),最終得到結(jié)果矩陣a*。
參照?qǐng)D1,進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟step3包括:
step31、根據(jù)結(jié)果矩陣a*計(jì)算相應(yīng)信號(hào)的模值
step32、使用相位計(jì)算最終的相位差值d。
進(jìn)一步作為優(yōu)選的實(shí)施方式,所述步驟step32包括:
step321、計(jì)算
step322、根據(jù)公式
進(jìn)一步作為優(yōu)選的實(shí)施方式,所述采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算時(shí),能只選擇感興趣頻段進(jìn)行頻譜計(jì)算而省略不感興趣頻段的計(jì)算。
下面結(jié)合說(shuō)明書(shū)附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步解釋和說(shuō)明。
實(shí)施例一
現(xiàn)有的疊窗dft算法當(dāng)疊窗太疏時(shí)相位差往往會(huì)因不好用而被丟棄,會(huì)對(duì)相位信息變化速率的測(cè)定造成阻礙;而當(dāng)疊窗密度高時(shí),其運(yùn)算量又會(huì)很大。為了解決上述問(wèn)題,本發(fā)明提出了一種相位相關(guān)的高密度疊窗頻譜計(jì)算方法,通過(guò)改變傅里葉變換的傳統(tǒng)計(jì)算方法,使其能更好地對(duì)數(shù)據(jù)進(jìn)行高密度傅里葉疊窗計(jì)算,在保證模值分量準(zhǔn)確算出的同時(shí),測(cè)得更精確和直觀的瞬時(shí)相位變化信息。
本發(fā)明相位相關(guān)的高密度疊窗頻譜計(jì)算方法的具體實(shí)現(xiàn)過(guò)程為:
(一)進(jìn)行初始化,并輸入原始信號(hào)。
其中,原始信號(hào)根據(jù)實(shí)際需要進(jìn)行調(diào)整,其主要包括pcm信號(hào)和音頻處理信號(hào)等信號(hào)。
如圖1所示,此過(guò)程可進(jìn)一步細(xì)分為如下步驟:
(1)確定變換矩陣的維度n*n;
(2)構(gòu)建原傅里葉變換矩陣m;
(3)輸入原始pcm信號(hào)s。
輸入原始信號(hào)后,接著可采用基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法對(duì)原始信號(hào)進(jìn)行頻譜計(jì)算。
(二)pft算法原理
為了克服傳統(tǒng)疊窗dft算法的缺陷,本實(shí)施例提出了基于變換矩陣循環(huán)滾動(dòng)和iir濾波器擬合的高密度疊窗算法(簡(jiǎn)稱(chēng)pft算法)。
pft算法的核心計(jì)算方式與原始的傅里葉變換(即ft)近似,通過(guò)對(duì)原始信號(hào)乘以不同頻率的sin和cos函數(shù)從而得到信號(hào)不同頻率的分量。但pft算法與ft的有以下幾個(gè)不同點(diǎn):
1)sin和cos函數(shù)的初始相位隨著窗口的移動(dòng)而改變,體現(xiàn)為矩陣m的循環(huán)移動(dòng);
2)為抑制疊窗ft的柵欄效應(yīng),ft的一般做法是對(duì)信號(hào)先進(jìn)行乘窗函數(shù)處理后再進(jìn)行傅里葉變換,而pft算法的加窗過(guò)程與傅里葉變換是同時(shí)進(jìn)行的;
3)pft算法在運(yùn)算過(guò)程中,相近的窗之間大部分的運(yùn)算過(guò)程和運(yùn)算結(jié)果是共享的,每一個(gè)窗的平均運(yùn)算量很小。
(三)快速疊窗過(guò)程
(1)快速疊窗過(guò)程概述
傳統(tǒng)的ft運(yùn)算形式如圖2所示,所以實(shí)際上ft就是將原始數(shù)據(jù)s分窗口乘以變換矩陣m得到中間結(jié)果(a0,b0,a1,b1,a2,b2…an/2-1,bn/2-1)t,n為變換矩陣m的階數(shù)。為更清楚地說(shuō)明s分窗口的細(xì)節(jié),記s(k)為抽取s的第k到k+n-1個(gè)元素所組成的一個(gè)行向量,即有s(k)=(sk,sk+1,…,sk+n-1);
定義計(jì)數(shù)變量k,用于記錄當(dāng)前計(jì)算的窗口的最左端元素對(duì)應(yīng)s的下標(biāo)。初始時(shí),k=0;記pft的窗口間隔為v,n為變換矩陣m的階數(shù)。
對(duì)s(k)與m(k)進(jìn)行點(diǎn)積運(yùn)算,得到一個(gè)窗口的中間結(jié)果,記為列向量a(k/v)=(a0,b0,a1,b1,a2,b2…an/2-1,bn/2-1)t。
不同的k得到的各個(gè)中間結(jié)果依次橫向并行排列,組合成中間計(jì)算矩陣a。
如果直接用ft來(lái)做疊窗變換,由于不同的窗的s不同,所以每個(gè)窗都要做圖2的計(jì)算,這樣運(yùn)算量會(huì)很大;而且當(dāng)疊窗間隔很短時(shí),即使采用fft來(lái)做運(yùn)算,其運(yùn)算量也會(huì)相當(dāng)大,因此需要對(duì)此做優(yōu)化。對(duì)圖2的m進(jìn)行改造,每計(jì)算完一次s(k)與m(k)的點(diǎn)積后,下一個(gè)窗口將為s(k+v),若在計(jì)算窗口s(k+v)時(shí),將m(k)的前v行循環(huán)移動(dòng)到最底端,將移動(dòng)后的結(jié)果記為m(k+v),如圖3所示,則a(k)=s(k)×m(k)與a(k+v)=s(k+v)×m(k+v)中的a(k)和a(k+v)存在較大比例的完全一致的部分,如圖4的斜線陰影部分所示;而不同的需要計(jì)算的部分,如圖4的豎線陰影部分所示,則只占少數(shù)。具體而言,有
從使用窗函數(shù)的角度出發(fā),應(yīng)對(duì)中間計(jì)算矩陣a的每一行進(jìn)行高斯模糊,并擬合高斯模糊的近似結(jié)果覆蓋原來(lái)的矩陣a。然而,高斯模糊是卷積操作,計(jì)算量很大,所以改為使用iir濾波器來(lái)近似擬合高斯模糊的結(jié)果,使用iir濾波后的結(jié)果覆蓋a原來(lái)的數(shù)據(jù),并將iir濾波后的結(jié)果記為a*。實(shí)際上這兩種計(jì)算方法結(jié)果很相似,最大的不同在于計(jì)算量。所以后文中在論及計(jì)算結(jié)果的區(qū)別時(shí)并不嚴(yán)格區(qū)分此步驟具體使用了這兩種方法中的何種方法。
若前面按傳統(tǒng)的ft計(jì)算方法,不對(duì)m進(jìn)行滾動(dòng)操作而直接做卷積,然后得到高斯模糊的結(jié)果,并用得到高斯模糊的結(jié)果覆蓋原來(lái)的矩陣a來(lái)進(jìn)行近似擬合,將高斯模糊后的a記為a#,將a#轉(zhuǎn)換為相應(yīng)的模值譜和相位譜,則有:模值譜
若前面按a(k)=s(k)×m(k)進(jìn)行計(jì)算,將a做iir濾波得到a*,使用a*求模值譜和相位譜,則模值譜
上面兩種計(jì)算方式所得到的相位譜λ,模值譜γ和相位譜λ*,模值譜γ*,有相同的物理意義。故相位譜λ,模值譜γ和相位譜λ*,模值譜γ*物理意義相同,其中,γ≡γ*,而λ*則與λ中的每一個(gè)對(duì)應(yīng)的分量都相差一個(gè)確定的角度,這個(gè)角度差僅與下標(biāo)i相關(guān)。雖然a*與a不相等,但是兩個(gè)結(jié)果可以互相轉(zhuǎn)換;且實(shí)際的應(yīng)用測(cè)試表明,往往a*,γ*,λ*的結(jié)果直接用起來(lái)更方便。
綜上,使用高斯模糊來(lái)替換加窗操作,是一種等效的變換方法,本身并不改變運(yùn)算量,但有利于后面使用簡(jiǎn)化算法。簡(jiǎn)化算法分別使用了a(k)=s(k)×m(k)代替?zhèn)鹘y(tǒng)ft和使用了iir濾波器替代高斯模糊,構(gòu)成了快速計(jì)算高密度疊窗ft方法的兩個(gè)方面,這兩個(gè)方法各自都能提高計(jì)算效率,且可以組合使用。值得一提的是,在上述的運(yùn)算過(guò)程中,不需要每一步去改寫(xiě)m,只需要在每次做乘法的時(shí)候改變對(duì)m的讀取順序即可。
(2)快速疊窗過(guò)程擴(kuò)展
如圖4所示,斜紋陰影部分用于計(jì)算a(u)和a(u+v)中乘法計(jì)算重復(fù)的部分。可見(jiàn)當(dāng)v較短時(shí),每個(gè)窗口都可以從上一個(gè)窗口中得到絕大部分的中間結(jié)果,從而在計(jì)算a(u+v)時(shí)只需要更新圖4豎紋陰影部分所示的少量乘積,就可以得到本窗口的變換結(jié)果。
此外,若只對(duì)部分頻段感興趣,例如只對(duì)低頻部分感興趣,則可以只計(jì)算低頻部分的數(shù)據(jù)。如圖5所示,圖5只要計(jì)算斜紋陰影部分的乘積,就可以得到豎紋部分的結(jié)果,這在一些應(yīng)用場(chǎng)合,例如語(yǔ)音信號(hào)處理中可以使用。
(3)快速疊窗過(guò)程的計(jì)算推理細(xì)節(jié)
在實(shí)際的時(shí)域-頻域變換處理過(guò)程中,除了上面提到的做乘法部分運(yùn)算外,還要做乘以窗函數(shù)和將各個(gè)乘積相加的工作。為了使這部分的運(yùn)算更簡(jiǎn)便,本實(shí)施例對(duì)上述步驟的中間乘法結(jié)果的存儲(chǔ)方式進(jìn)行了如下表1的約定:
表1中間計(jì)算矩陣
而當(dāng)v為1時(shí),無(wú)窗函數(shù)的變換處理結(jié)果矩陣如表2所示:
表2無(wú)窗函數(shù)的變換處理結(jié)果矩陣
由表2可知,若要直接計(jì)算所有的求和操作,其運(yùn)算量將會(huì)很大,但是,由于
即式(1)左邊的和式可由右邊的公式推出,所以實(shí)際的計(jì)算量將會(huì)降低很多。
當(dāng)窗口間隔v為p時(shí),遞推式與上式(1)近似,同樣可以有效減少運(yùn)算量:
為了得到更清晰的結(jié)果,在進(jìn)行疊窗傅里葉變換時(shí),常會(huì)通過(guò)預(yù)乘窗函數(shù)來(lái)抑制“柵欄效應(yīng)”。而在v為1時(shí),加窗函數(shù)的變換處理結(jié)果矩陣如下表3所示。
表3加窗函數(shù)的變換處理結(jié)果矩陣
表3中,w表示窗函數(shù),但由于有窗函數(shù)w的存在,求和公式不能再像公式(1)和公式(2)那樣進(jìn)行遞推了。雖然w具體是什么形狀會(huì)對(duì)旁瓣大小和主峰精確度等造成一定影響,但只要w是一個(gè)中間高兩邊低的函數(shù),就可達(dá)到減少柵欄效應(yīng)的目的。所以w有很大的選擇空間。利用這一特性,可以選取合適的w,使表3可以進(jìn)行快速近似計(jì)算。
不失一般性,此處w選取正態(tài)分布函數(shù)
來(lái)作為窗函數(shù),其中,均值
從高斯模糊的概念而言,對(duì)信號(hào)做高斯模糊就是使用式(3)的正態(tài)分布函數(shù)對(duì)信號(hào)進(jìn)行卷積,而正態(tài)分布有3σ特性,即
但是,可以參照這個(gè)思路,使用計(jì)算量很小的iir濾波器來(lái)進(jìn)行擬合,這是最關(guān)鍵的一步。具體而言,將中間矩陣某行的第i個(gè)元素抽出,記為xi,i∈[0,t),如果做傳統(tǒng)的高斯卷積就是
對(duì)于iir參數(shù)k,可采用但不限于butterworth,或chebyshev等現(xiàn)有的低通濾波器設(shè)計(jì)方法來(lái)確定,也就是說(shuō)iir參數(shù)k的值和w的轉(zhuǎn)換關(guān)系與iir濾波器的具體設(shè)計(jì)有關(guān)。
值得注意的是,使用iir濾波器時(shí),q一般取很小的值,一般有q遠(yuǎn)小于n。在處理長(zhǎng)窗口時(shí),例如窗口超過(guò)512時(shí),低階的算法會(huì)產(chǎn)生抖動(dòng)問(wèn)題,所以在實(shí)際使用長(zhǎng)窗口時(shí),需要對(duì)其進(jìn)行改進(jìn),適當(dāng)使用更高階數(shù)的iir濾波器。但是即使窗口再長(zhǎng),在處理音頻信號(hào)時(shí),其階數(shù)也一般不會(huì)超過(guò)10階。所以,在使用iir濾波器的近似算法對(duì)卷積過(guò)程進(jìn)行擬合后,其運(yùn)算量將明顯小于直接進(jìn)行高斯模糊的運(yùn)算量。
在實(shí)際使用時(shí),用于計(jì)算x″i的xi其實(shí)就是表2中的
本發(fā)明通過(guò)兩個(gè)元素通過(guò)求平方和再開(kāi)方的方式得到模值,通過(guò)這兩個(gè)元素的反正切函數(shù)來(lái)得到相位。從第0行開(kāi)始,每?jī)尚兄械囊粚?duì)
實(shí)際上,前面高斯模糊所使用的正態(tài)分布窗只是一個(gè)特例,若要使用不同形狀的窗口來(lái)獲得不同的旁瓣主峰特性,則可以通過(guò)改變窗函數(shù)w來(lái)調(diào)整iir濾波器的參數(shù)k的方式來(lái)實(shí)現(xiàn)。
iir濾波器計(jì)算x’和x”時(shí)是可以在原位進(jìn)行結(jié)果替換的,所以iir濾波器相比起傳統(tǒng)高斯模糊而言,空間的要求也更小。
另外,由于iir濾波器是無(wú)限響應(yīng)的,所以實(shí)際上窗口是無(wú)限長(zhǎng)的,但是可以通過(guò)調(diào)節(jié)窗函數(shù)主峰的寬度來(lái)獲得等效窗口長(zhǎng)度。例如,在使用iir濾波器模擬正態(tài)窗函數(shù)時(shí),由于±3σ中已包含了99%以上的面積,所以可以把窗口長(zhǎng)度看作是±3σ,在這個(gè)情況下,可以把±3σ稱(chēng)作等效窗口長(zhǎng)度。所以實(shí)際上等效窗口長(zhǎng)度是由窗函數(shù)來(lái)決定的。
由于是做橫向模糊,實(shí)際上對(duì)于不同的頻率(對(duì)應(yīng)表1中的不同行),可以采用不同的iir參數(shù),以模擬使用不同σ參數(shù)的高斯窗或其它類(lèi)型寬窄不同的窗,從而讓不同頻段擁有不同的時(shí)間響應(yīng)特性。例如,對(duì)信號(hào)的低頻分量使用較長(zhǎng)等效窗口長(zhǎng)度(對(duì)應(yīng)高斯窗的σ較大)的窗函數(shù),能保證低頻分量能被很好地檢出;而對(duì)高頻分量施以較短等效窗口長(zhǎng)度(對(duì)應(yīng)高斯窗的σ較小)的窗函數(shù),在保證高頻分量檢出的同時(shí)又能更清晰地檢出高頻分量的瞬時(shí)變化。從這一點(diǎn)看,pft算法比普通疊窗傅里葉變換要更加靈活。
(四)計(jì)算信號(hào)的相位差。
確定a近似擬合后的結(jié)果矩陣a*后,即可得到a*的模值
接著,可根據(jù)λ*進(jìn)行相位差計(jì)算,具體計(jì)算過(guò)程為:
記角度修正函數(shù)
定義相位差為
從上式可見(jiàn):
通過(guò)本發(fā)明的方法計(jì)算出信號(hào)的模值、相位和相位差,即可根據(jù)信號(hào)的模值、相位和相位差進(jìn)行后續(xù)的頻譜分析。
本發(fā)明提出了一種相位相關(guān)的高密度疊窗頻譜計(jì)算方法,通過(guò)改變傅里葉變換的傳統(tǒng)計(jì)算方法,使其能更好地對(duì)數(shù)據(jù)進(jìn)行高密度傅里葉疊窗計(jì)算,在保證模值分量準(zhǔn)確算出的同時(shí),測(cè)得更精確和直觀的瞬時(shí)相位變化信息。與現(xiàn)有技術(shù)相比,本發(fā)明的方法具有以下優(yōu)點(diǎn):
(1)能測(cè)得相位和幅值的精確連續(xù)變化情況;
(2)能有目的地選擇頻段,對(duì)不關(guān)心的頻段可以省略計(jì)算;
(3)對(duì)不同頻段可以用不同的窗口間隔來(lái)分析,典型情況是:對(duì)低頻信號(hào)使用較長(zhǎng)的窗口,而對(duì)高頻信號(hào)則使用較短的窗口,這樣既可以準(zhǔn)確識(shí)別低頻分量,又能對(duì)高頻信號(hào)獲得較好的時(shí)間響應(yīng)特性;
(4)對(duì)不同頻段可以使用不同的頻率間隔,例如在處理語(yǔ)音識(shí)別信號(hào)時(shí),可以對(duì)高頻部分施以更寬的頻率間隔,這既符合人類(lèi)的聽(tīng)覺(jué)特性,又能節(jié)省計(jì)算量。
以上是對(duì)本發(fā)明的較佳實(shí)施進(jìn)行了具體說(shuō)明,但本發(fā)明并不限于所述實(shí)施例,熟悉本領(lǐng)域的技術(shù)人員在不違背本發(fā)明精神的前提下還可做作出種種的等同變形或替換,這些等同的變形或替換均包含在本申請(qǐng)權(quán)利要求所限定的范圍內(nèi)。