專利名稱:一種基于數字信號處理器快速頻譜細化的方法
技術領域:
本發明屬于數字信號頻域分析技術領域,在數字信號頻域分析領域中頻譜分析設備通常會需要使用數字信號處理器進行細化的頻譜分析,本發明涉及快速、高效的頻譜分析方法。
背景技術:
在數字信號頻域分析領域中頻譜分析設備通常會需要使用數字信號處理器進行細化的頻譜分析,已有的頻譜分析設備使用離散傅里葉變換分析或離散快速傅里葉變換分析。離散傅里葉變換分析的方式,雖然能夠計算出任意點數任意頻譜范圍的頻譜,但如果一次分析大量的數據,數字信號處理器工作會非常繁瑣,運算使用的時間非常長。數字信號處理器進行離散快速傅里葉變換分析雖然運算快速,但只能得出2的N次方點數的頻譜數據, 并且計算出的頻譜是全景頻譜,通常會超過頻譜分析設備所關心的頻率范圍,很多頻譜數據并不需要被計算出來。
發明內容
本發明目的是解決頻譜分析設備中數字信號處理器進行大數據量的頻譜分析的工作時間過長,運算復雜的問題,提供頻域分析領域中一種基于數字信號處理器快速頻譜細化的方法。能夠實現本發明的硬件結構包括I)高速模擬與數字信號轉換芯片用于采樣需要分析的模擬信號,將模擬信號轉換為數字信號處理器能夠使用的數字信號,能夠工作在頻譜分析設備關心的頻率范圍的終止頻率的兩倍以上的采樣率上。該芯片可以采用National Semiconductor公司12位170MSPS的高速模擬與數字信號轉換芯片ADC12C170。2)、數字信號處理器用于接收高速模擬與數字信號轉換芯片輸出的數字信號,并對數字信號進行離散快速傅里葉變換分析和離散傅里葉變換分析,數字信號處理器需要有內部數據存儲器,能夠處理浮點數據,能夠實現對外部擴展數據存儲器進行的存儲和讀取操作,可以采用Analog Devices公司的SHARC系列32位浮點數字信號處理器芯片ADSP-21369。3)、外部擴展數據存儲器用于存儲數字信號處理器細化頻譜分析過程中使用的窗系數、蝶形算子、采樣波形、頻譜細化波形等的一些大數據量的數據,可以采用hynix公司的16位同步動態隨機存儲器芯片H57V2562GTR-75C。本發明的硬件結構示意圖如附圖I所示,本發明的程序開發的編譯環境可以為AnalogDevices 公司的 VisualDSP++5. O 軟件。本發明方法的全部流程如附圖2所示,其中步驟I到步驟4的詳細過程如附圖3所示,步驟5的詳細過程如附圖4所示,本發明技術方案的實現步驟如下步驟I、生成窗系數和蝶形算子數據
根據頻譜分析設備作頻譜分析的頻率分辨率帶寬值Frtw和高速模擬與數字信號轉換芯片的數據采樣率Fsam確定所需的采樣數據量Lsam,使用窗函數的補償系數為Pwin,所需的采樣數據量如公式I所述Lsam = [ (Fsam+Frbw) X Pwin+0. 5](I)公式(I)中“ □”為數據取整的符號,如[2.6] = 2,使用編譯器提供的窗函數生成數量為Lsam的窗系數,定義位于外部擴展數據存儲器中的Lsam個浮點類型的數據區作為窗系數的存儲器,命名為第一存儲器(I)。確定使用頻譜分析的點數L,本方法能夠處理L=2aXN點的頻譜分析,a和N均為正整數,確定N和a值,a —般可以取9至12,并確保數字信號處理器的內部存儲器能夠分配23個浮點數類型的數據區,根據L ^ Lsam推導出N的值,確保2aXN的值不小于所需的采樣數據量Lsam,且2a遠大于N。離散快速傅里葉變換的點數M為2的a次方,即M=2a,L=MXN=2aXN, (Μ >> N),根據M和N確定以下兩組的復數數據。
第一組數據為L個復數數據,為NX M蝶形算子(計算方法見公式(2 )),在步驟5. 2使用,設η和m為正整數,將在步驟4、步驟5中繼續使用,其中第(η — I) XM+m個數據為ぐ-t(Kn<NjKm〈M),j 為虛數単位,f= — I響—ι,πι-1= e—i(T7)(n—⑵將公式(2)轉換成能夠讓數字信號處理器實現的NXM蝶形算子計算公式(3)Re(W 1,m"1) = cos (2π(η - l)(m - 1)/L)= -sin (2ιτ(η - l)(m — 1)/L)(3)定義位于外部擴展數據存儲器中LX2個浮點類型的數據區作為NXM蝶形算子數據存儲器,命名為第二存儲器(2),從第二存儲器(2)的第一個位置開始奇數位置存儲復數數據的實部,偶數位置存儲復數數據的虛部。第二存儲器(2)的第I個位置存儲Re(WL3 °)(n=l, m=l),第二存儲器(2)的
第2個位置存儲im(Wt P)(n=l,m=l),第二存儲器(2)的第3個位置存儲Re^.+' ')
(n=l, m=2),第二存儲器(2)的第4個位置存儲丨m(v_ご')(n=l, m=2),......,第二存儲
器(2)的第(n-l)X2XM+(m-l)X2+l個位置存儲第二存儲器⑵的第
(n-1) X2XM+On-1) X2+2個位置存儲丨111(ノ<~1'塑ィ),……,第二存儲器(2)的第2XL-I個
位置存儲Re(wf_1‘ M_i)(n=N,m=M),第二存儲器(2)的第2XL個位置存儲Im(Vif_1 ‘ *卜1)(n=N,m=M)。第二組數據為NXN個復數數據,為NXN蝶形算子(計算方法見公式(4)),為步驟5. 3的N點離散傅里葉變換使用,設定其中第Oi1 - I) XN+n2個的數據為(Κη^Ν,Κη^Ν), j 為虛數単位,j2= — I:W^1"1,112"1 = e—D(4)將公式(4)轉換成能夠讓數字信號處理器實現的NXN蝶形算子計算公式(5)
Re(W^= cos (2π(Πι - l)(n2 - 1)/N)
lni(Wf Mr1) = —sin (2π(η, - l)(n2 - 1)/N)定義位于數字信號處理器的內部數據存儲器中NXNXZ個浮點類型的數據區作為N X N蝶形算子數據存儲器,命名為第三存儲器(3 ),從第三存儲器(3 )的第一個位置開始奇數位置存儲復數數據的實部,偶數位置存儲復數數據的虛部。第三存儲器(3)的第I個位置存儲Re(W^ 0Xn1=I, n2=l),第三存儲器(3)的第2個位置存儲Im(W^ cKn1=I, n2=l),第三存儲器(3)的第3個位置存儲Re(W:' 1Kn1=I,n2=2),第三存儲器(3)的第4個位置存儲Im(wJ 1Xn1=I, n2=2),……,第三存儲器(3)的第(Ii1 — I) X2XN+(n2 — I) X2+1個位置存儲Re(W^n:_1),第三存儲器(3)的第(Ii1 — I) X2XN+(n2 — I) X2+2個位置存儲_1),……,第三存儲器(3)的第 2XNXN — I個位置存儲ReOVifO1)U1=N, n2=N),第三存儲器(3)的第2XNXN個位置存儲Im(W^nt)(Ii1=N, n2=N)。本步驟在確定了頻譜分辨率帶寬Frtw和數據采樣率Fsam后只需操作一次,通過編譯器提供的功能將數據分別存儲在以上三個存儲器上,供每次采樣后的頻譜分析使用。步驟2、生成與頻譜分析設備關心的頻譜范圍有關的第四、第五存儲器的數據設定頻譜分析設備關心的頻譜范圍的起始頻率為Fstart,終止頻率為Fs_,起始頻率Fstart在L點頻譜上的位置為Istart (計算見公式(6)),終止頻率Fsttjp在L點頻譜上的位置為Is_ (計算方法如公式(7)):Istart = [(L + Fsam) XFstart-O. 5](6)Istop = [(L + Fsam) XFstop-O. 5](7)定義位于外部擴展數據存儲器中M個整型類型的數據區的存儲器,作為步驟5離散傅里葉變換的數量存儲器,命名為第四存儲器(4),和位于外部擴展數據存儲器中L個整型類型的數據區的存儲器,作為步驟5離散傅里葉變換的參數存儲器,命名為第五存儲器(5 ),將第四存儲器(4 )和第五存儲器(5 )初始化為O值。設定整數I從Istart到Istop逐個數取值(Istart ( I ( Is_),每次完成以下操作求取I整除M后得到的商數1_和余數Inwd,第四存儲器(4)的第IMd+l個位置讀取出來并加I后得到數值N·,再將Nnum存儲入到第四存儲器(4)的第Im()d+1個位置,將1_存儲到第五存儲器(5)的第I-XN+N·個位置。該步驟運算出的兩個存儲器的數值,即能夠在步驟5運算步驟中實現只運算出從
Fstart到Fsttjp的頻譜數據。如果頻譜分析設備所關心的頻譜范圍不變,即起始頻率Fstart的數值和終止頻率Fstop的數值都沒有變化,步驟2只在開始操作一次,不需要每次采樣都操作,只有起始頻率Fstart和終止頻率Fsttjp有變化時,需要重新操作步驟2。步驟3、將模擬信號轉換成數字信號,數字信號加窗后存儲到外部擴展數據存儲器定義位于外部擴展數據存儲器中L個浮點類型的數據區作為加窗后的采樣數據存儲器,命名為第六存儲器(6),使用高速模擬與數字信號轉換芯片將需要分析的模擬信號轉換成數字信號,連續采樣數量為Lsam的數字信號數據,將這些采樣數據逐個乘以從第一存儲器(I)的第一個位置開始讀取的每個數據,從第一個位置開始逐個存儲到第六存儲器
(6),共存儲Lsam個位置,第六存儲器(6)的第Lsam+1個位置到第L個位置共計L — Lsam個位置存儲為數值O。步驟4、對數據抽取分組,在數字信號處理器的內部數據存儲器中進行離散快速傅里葉變換定義位于數字信號處理器的內部數據存儲器中的M個浮點數類型的數據區,用于存儲M點離散快速傅里葉變換的輸入數據,命名為第七存儲器(7),定義位于外部擴展數據存儲器中LX2個浮點類型的數據區為本步驟的結果存儲器,命名為第八存儲器(8),存儲本步驟的N次M點離散快速傅里葉變換的復數結果。
·
將存儲在第六存儲器(6)中的L點浮點數據抽取成N組M點數據,依次作M點的離散快速傅里葉變換。正整數η的值為1,判斷η的值如果η小于或等于N,從第六存儲器(6)的數據中讀取M點的數據,讀取第六存儲器(6)中的第n,N+n,2 X Ν+η,……,L 一 Ν+η個位置的數據,存儲于第七存儲器(7),對這M點數據做M點的離散快速傅里葉變換,得出M點的復數結果,存儲到第八存儲器(8)的第(n— I) ΧΜΧ2+1到ηΧΜΧ2位置的共計MX2個位置,其中數據的實部存儲在奇數位置,虛部存儲在偶數位置,η的值加1,重新判斷η的值,重復以上操作;如果η大于N,則結束本步驟。步驟5、生成頻譜分析設備關心的頻譜范圍內的頻譜細化波形數據定義位于數字信號處理器的內部數據存儲器中ΝΧ2個浮點類型的數據區的存儲器,作為步驟5. 3的運算輸入存儲器,命名為第九存儲器(9),定義位于外部擴展數據存儲器中L個浮點類型的數據區為頻譜數據存儲器,命名為第十存儲器(10),正整數m的值為1,判斷m的數值如果m小于或等于M,則完成以下步驟5. I到步驟5. 3操作;否則結束本步驟,如附圖3所示步驟5. I.如果第四存儲器(4)中的第m個位置讀取的數據為0,跳出本輪循環,m加I進入下一輪循環,否則完成以下其余的操作,步驟5. 2.正整數η的值為1,判斷η的值當η小于或等于N時,如果m或η有ー個數值為1,則從第八存儲器(8)中的第(n-1) X2XM+(m — I) X2+1個位置開始的兩個位置讀取出兩個浮點數直接存儲到第九存儲器(9)的第(η — I) X2+1個位置開始的兩個位置,否則將第八存儲器(8)中的第(η —I) X2XM+(m 一 I) X2+1個位置開始的兩個位置讀取出兩個浮點數第一個數作為復數的實部和第二個數作為虛部與從第二存儲器(2)同樣位置讀取到的復數相乘,將復數結果存儲到第九存儲器(9)的第(η — I) X 2+1個位置開始的兩個位置,η的數值加1,重新判斷η的值,重復以上操作,當η大于N吋,則進行步驟5. 3的操作。步驟5. 3.正整數η的值為1,判斷η的值如果η小于或等于第四存儲器(4)中的第m個位置讀取的數值,則讀取出第五存儲器(5)的第(m — I) XN+n個位置的數據1_。從第九存儲器(9)中依次讀取出N個復數,第k次從第kX 2個位置讀取出數為Xk( I < k < N),
從第三存儲器(3)讀取出N個復數,第k次從第(kXN+Iqu。)X 2個位置讀取出復數wf, (l^k^ N),利用以下計算公式(8)求出離散傅里葉變換結果Dn,
K
k=1 (8)將Dn的模的平方|Dn|2 (實部數值和虛部數值的平方和)存儲入第十存儲器(10)的第Ι-ΧΜ+m位置,η的數值加1,重新判斷η的值,重復步驟5. 3操作;如果η大于第四存儲器(4)中的第m個位置讀取的數值,m的值加1,重新判斷m的值,重復完成步驟5. I到步驟5. 3的操作。復數求取模值的計算公式如(9)式 |Dj2= [Re (Dn)]2+[Im(Dn)]2(9)運算完成后,第十存儲器(10)即得到基于L點離散傅里葉頻譜分析的從Fstart到Fstop的線性頻譜數據,對各個數據求取常用對數后乘以10,得到對數頻譜數據,此數據即為頻譜細化波形數據。本發明的優點和有益效果本發明為了解決頻譜分析設備中數字信號處理器進行大數據量的頻譜分析的工作時間過長,運算復雜的問題,所以提供了一種快速、簡化的2的N次方的整倍數點數的頻譜分析技術方案,能夠省去大量的數據分析使用的時間。將L分解成L=MXN的形式,L點的離散傅里葉變換分解成作N個M點的離散快速傅里葉變換和M個N點的離散傅里葉變換,離散傅里葉變換的復數乘法計算量為L2,本方法的復數乘法計算量為匪log2M+L+MN2,能夠按照頻譜分析設備所關心的頻率范圍,只計算出部分頻譜波形,大幅減少了數字信號處理器的運算量,復數乘法計算量最多為匪log2M+L+(MN2)/2,提高數字信號處理器的工作效率。假設作L=10240點的離散傅里葉變換,分解為M=2048,N=5,本方法比直接的離散傅里葉變換運算量減少了 99. 7%,比離散快速傅里葉變換(16384點,必須為2的N次方)運算量減少了 35.3%。本發明將需要在外部擴展數據存儲器中進行的一次大數據量的運算分解成能夠在數字信號處理器內部數據存儲器中進行的多次小數據量運算,能夠大幅度縮短數字信號處理器的運算時間。本發明的創新點是采用一種方法,使用數字信號處理器,將需要在外部擴展數據存儲器中進行的一次大數據量的離散傅里葉變換細化頻譜分析運算分解成能夠在數字信號處理器內部數據存儲器中進行的多次小數據量的離散快速傅里葉變換和離散傅里葉變換的運算。其特點在于使用這種方法能夠減少數字信號處理器的細化頻譜分析運算量,能夠只分析得到頻譜分析設備關心頻率范圍內的頻譜,減少細化頻譜分析的數據量,實現2的N次方的整倍數的點數的頻譜分析,大大縮短數字信號處理器的運算處理時間,提高頻譜分析設備工作效率。
圖I本發明的硬件結構示意圖;圖2頻譜細化流程圖;圖3步驟I至步驟4的流程圖4步驟5的流程圖;圖5布萊特曼窗系數波形;圖6采樣到的數字信號;圖7加窗后的數字信號;圖8將加窗后的數字信號擴展到L點;圖9本發明生成的頻譜分析設備所關心頻譜波形。
具體實施例方式實施例 如圖I所示,結合一個實例說明本發明方法的硬件結構選擇的數字信號處理器為Analog Devices公司的SHARC系列32位浮點數字信號處理器芯片ADSP-21369,外部擴展數據存儲器為hynix公司的16位同步動態隨機存儲器芯片H57V2562GTR-75C,存儲容量為256Mbit,高速模擬與數字信號轉換芯片為National Semiconductor公司12位170MSPS的高速模擬與數字信號轉換芯片ADC12C170。步驟I、設定頻譜分析的頻率分辨率帶寬值Faw為30KHz (O. 03MHz),高速模擬與數字信號轉換芯片ADC12C170的數據采樣率Fsam為166. 4MHz,使用布萊克曼窗函數(補償系數Pwin為I. 62),所需的采樣數據量經公式(I)計算為=Lsam= [(166. 4 + 0. 03) X I. 62+0. 5]=8986個數據,使用布萊克曼窗函數生成數量為8986的布萊克曼窗系數,窗系數的波形如附圖5所示,通過編譯器提供的功能存儲入第一存儲器(I)。整數a—般可以取9至12,這里數值a取值ll,M=2n為2048,根據L彡8986推導出N的值,確定N取值5,L=2n X 5=2048 X 5=10240不小于所需的采樣數據量8986,2048遠大于5,進行10240的頻譜分析。按照步驟I中所述的方法,求出5X2048蝶形算子的數據。定義位于外部擴展數據存儲器中20480個浮點類型的數據區作為存儲5 X 2048蝶形算子的第二存儲器(2),從第ニ存儲器(2)的第一個位置開始奇數位置存儲復數數據的實部,偶數位置存儲復數數據的虛部。第二存儲器(2)的第I 個位置存儲Re(mr °)=cos(2X π XOX0/10240)=1 (n=l,m=l),第二存儲器(2)的第2 個位置存儲___)=—sin(2X π XOX0/10240)=()(η=1,m=l),第二存儲器(2)的第3 個位置存儲Re(じ:.')=005(2X i XOX 1/10240)= I (n=l,m=2),第二存儲器(2)的第4 個位置存儲 Im(Vこ')=-sin(2X π XOX I/10240)=0 (η=I,m=2),......,第二存儲器(2)的第(η — I) X 4096+(m — I) X 2+1個位置存儲Rei:.. )=cos(2 X πΧ (η— I) X (m — )/10240),
第二存儲器(2)的第(η — I) X 4096+(m 一 I) X 2+2個位置存儲
Im(じ .)=—.sin(2X- X(η I)X(m— Ij/10240),......,第 ニ 存儲器(2) 的第20479個位置存儲 Re(wf"1, M^)=cos(2X π Χ4Χ2047/10240)=0 3 67(η=Ν, m=M),第二存儲器(2)的第20480 個位置存儲 Im(wf_1 M_1 )= — sin(2 X π X 4 X2047/10240)=0.9518(η=Ν,m=M)。按照步驟I中所述的方法,求出5X5蝶形算子的數據。定義位于數字信號處理器的內部數據存儲器中50個浮點類型的數據區作為存儲5X5蝶形算子的第三存儲器(3),從第三存儲器(3)的第一個位置開始奇數位置存儲復數數據的實部,偶數位置存儲復數數據的虛部。第三存儲器(3)的第I 個位置存儲Re(Wご °)=cos(2X π XOX0/5)=1 Cn1=Ln2=I),第三存儲器(3)的第2 個位置存儲3)=—sin(2X π XOX0/5)=0Cn1=I,n2=l),第三存儲器(3)的第3 個位置存儲Re(w^ VcosiSX π XOX 1/5)=1 U1=I, η2=2),第三存儲器(3)的第4 個位置存儲Im(W^ sin(2X π XOX 1/5)=0U1=I,n2=2),......,第三存儲器(3)的第(Ii1 — I) X2XN+(n2 — I) X 2+1個位置存儲Re(W;;_1i.n:-i)=cos(2X π X(m — I)X(Ii1 —1)/5),第三存儲器(3)的第(Ii1 — I) X2XN+(n2 — I) X 2+2個位置存儲
^=-SinpX π X(η,-I)X(n,-1)/5),......,第三存儲器(3)的第2XNXN— I 個位置存儲x_1)=cos(2X π X4X4/5)=0.3090 Cn1=N, n2=N),第三存儲器(3)的第2XNXN 個位置存儲sin (2X π χ4X4/5)=— 0.9511(1^=1 η2=Ν);步驟2、設定起始頻率Fstart為5MHz,終止頻率Fsttjp為65MHz,經公式(6) (7)計算
Istart 和 Istop 的值,Istart=[(10240 + 166. 4) X5+0. 5] = 308Istop=[ (10240^-166. 4) X65+0. 5] = 4000按照步驟2中所述的方法,求取第四存儲器(4)和第五存儲器(5)的數值I=Istart=308整除M=2048后得到的商數1_=0和余數Im()d=308,第四存儲器(4)的第309個數值讀取出來(為O)并加I后得到1,再將I存儲入到第四存儲器(4)的第309個數值,將O存儲到第五存儲器(5)的第1541個數值。1=309整除2048后得到的商數O和余數309,第四存儲器(4)的第310個數值讀取出來(為O)并加I后得到1,再將I存儲入到第四存儲器(4)的第310個數值,將O存儲到第五存儲器(5)的第1546個數值。 ......1=2356整除2048后得到的商數I和余數308,第四存儲器(4)的第309個數值讀取出來(為I)并加I后得到2,再將2存儲入到第四存儲器(4)的第309個數值,將I存儲到第五存儲器(5)的第1542個數值;步驟3、定義10240個浮點類型的數據區作為存儲加窗后的采樣數據的第六存儲 器(6),使用高速模擬與數字信號轉換芯片連續采樣數字信號數量為8986的數據,采樣數據波形如附圖6所示,將這些采樣數據逐個乘以從第一存儲器(I)讀取到的數據,加窗后的采樣的數字信號數據波形如附圖7所示,從第一個位置開始逐個存儲到第六存儲器(6),共存儲8986個位置,第六存儲器(6)的第8987個位置到第10240個位置共計1254個位置存儲為數值O,第六存儲器(6)數據波形如附圖8所示;步驟4、正整數η的值為1,η小于5,從第六存儲器(6)的數據中讀取2048點的數據,讀取第六存儲器(6)中的第1,6,11,……,10236個位置的數據,存儲于位于數字信號處理器內部數據存儲器的第七存儲器(7),對這2048點數據做2048點的離散快速傅里葉變換,得出2048點的復數結果,存儲到第八存儲器(8)的第I到4096的位置,其中數據的實部存儲在奇數位置,虛部存儲在偶數位置,η的值加I。正整數η等于2,η小于5,讀取第六存儲器(6)中的第2,7,12,……,10237個位置的數據,存儲于第七存儲器(7),對這2048點數據做2048點的離散快速傅里葉變換,得出2048點的復數結果,存儲到第八存儲器(8)的第4097到8192的位置,η的值加1,重新判斷η的值,重復以上操作。......當正整數η等于5,讀取第六存儲器(6)中的第5,10,15,……,10240個位置的數據,存儲于第七存儲器(7),對這2048點數據做2048點的離散快速傅里葉變換,得出2048點的復數結果,存儲到第八存儲器(8)的第16385到20480的位置,η的值加1,此時η大于5,結束本步驟;步驟5、定義4096個浮點類型的數據區的第九存儲器(9),定義10240個浮點類型的數據區的第十存儲器(10),正整數m的值為1,判斷m的數值如果m小于或等于2048,則完成以下步驟5. I到步驟5. 3操作;否則結束本步驟步驟5. I.如果第四存儲器(4)中的第m個位置讀取的數據為0,跳出本輪循環,m加I進入下一輪循環,否則完成以下其余的操作。步驟5. 2.正整數η的值為I,判斷η的值當η小于或等于5時,如果m或η有一個數值為1,則從第八存儲器(8)中的第(n- I) X4096+(m-I) X2+1個位置開始的兩個位置讀取出兩個浮點數直接存儲到第九存儲器(9)的第(n - I) X2+1個位置開始的兩個位置,否則將第八存儲器(8)中的第(η —I) X4096+(m 一 I) X 2+1個位置開始的兩個位置讀取出兩個浮點數第一個數作為復數的實部和第二個數作為虛部與從第二存儲器(2)同樣位置讀取到的復數相乘,將復數結果存儲入到第九存儲器(9)的第(n - I) X 2+1個位置開始的兩個位置,η的數值加1,重新判斷η的值,重復以上操作;
當η大于5時,則進行步驟5. 3的操作;步驟5. 3.正整數η的值為1,判斷η的值如果η小于或等于第四存儲器(4)中的第m個位置讀取的數值,則讀取出第五存儲器(5)的第(m — l)X5+n個位置的數據1_。從第九存儲器(9 )中依次讀取出5個復數,第k次從第k X 2個位置讀取出數為Xk( I < k < N),從第三存儲器(3)讀取出5個復數,其中第k次從第(kX5+Iqu。)X2個位置讀取出復數
W^ucClN),利用公式(8)求出離散傅里葉變換結果Dn。將Dn的模的平方|Dn|2 (實部數值和虛部數值的平方和)存儲入第十存儲器(10)的第I_X2048+m位置,η的數值加1,重新判斷η的值,重復以上操作;如果η大于第四存儲器(4)中的第m個位置讀取的數值,m的值加1,重新判斷m的值,重復完成步驟5. I到步驟5. 3的操作。 運算完成后,第十存儲器(10)即得到基于10240點離散傅里葉頻譜分析的從5MHz到65MHz的線性頻譜數據,對各個數據求取常用對數后乘以10,即得到對數頻譜數據,頻譜波形如附圖9所示。
權利要求
1.一種基于數字信號處理器快速頻譜細化的方法,能夠實現本發明的硬件結構包括 1)高速模擬與數字信號轉換芯片用于采樣需要分析的模擬信號,將模擬信號轉換為數字信號處理器能夠使用的數字信號,能夠工作在頻譜分析設備關心的頻率范圍的終止頻率的兩倍以上的米樣率上; 2)、數字信號處理器用于接收高速模擬與數字信號轉換芯片輸出的數字信號,并對數字信號進行離散快速傅里葉變換分析和離散傅里葉變換分析,數字信號處理器需要有內部數據存儲器,能夠處理浮點數據,能夠實現對外部擴展數據存儲器進行的存儲和讀取操作; 3)、外部擴展數據存儲器用于存儲數字信號處理器細化頻譜分析過程中使用的窗系數、蝶形算子、采樣波形、頻譜細化波形的一些大數據量的數據; 其特征在于,該方法的步驟如下 步驟I、生成窗系數和蝶形算子數據 根據頻譜分析設備作頻譜分析的頻率分辨率帶寬值Frtw和高速模擬與數字信號轉換芯片的數據采樣率Fsam確定所需的采樣數據量Lsam,使用窗函數的補償系數為Pwin,所需的采樣數據量如公式(I)所述; Lsam = [ (Fsam^-Frbw) X Pwin+0. 5](O 公式(I)中“ □”為數據取整的符號,使用編譯器提供的窗函數生成數量為Lsam的窗系數,定義位于外部擴展數據存儲器中Lsam個浮點類型的數據區作為窗系數的存儲器,命名為第一存儲器(I);確定使用頻譜分析的點數L,本方法能夠處理L=2aXN點的頻譜分析,a和N均為正整數,確定N和a值,a—般取9至12,并確保數字信號處理器的內部存儲器能夠分配23個浮點數類型的數據區,根據L ≥ Lsam推導出N的值,確保2aXN的值不小于所需的采樣數據量Lsam,且2a遠大于N; 離散快速傅里葉變換的點數M為2的a次方,即M=2a,L=MXN=2aXN, M >> N,根據M和N確定以下兩組的復數數據; 第一組數據為L個復數數據,為NXM蝶形算子,計算方法見公式(2),在步驟5. 2中使用,設η和m為正整數,將在步驟4、步驟5中繼續使用,其中第(η — I) XM+m個數據為K"' Kn<N, l〈m〈M,j 為虛數單位,j2= — I ;
全文摘要
一種基于數字信號處理器快速頻譜細化的方法。該方法使用數字信號處理器,將大量數據的細化頻譜分析分解成多次小量數據分析,得到頻譜分析設備關心頻率范圍內的2的N次方的整倍數的點數的頻譜分析,減少分析的數據量和運算量,縮短處理時間,提高頻譜分析設備工作效率。本發明的方法包括生成窗系數和蝶形算子數據;生成與頻譜范圍有關的數據;模擬信號轉換成數字信號,存儲到外部擴展數據存儲器;對數據抽取分組,在數字信號處理器內部數據存儲器中進行離散快速傅里葉變換;生成頻譜細化波形數據。本方法在10240點頻譜分析時比離散傅里葉變換運算量減少了99.7%,比離散快速傅里葉變換(16384點,必須為2的N次方)運算量減少了35.3%。
文檔編號G06F17/00GK102841880SQ20121032610
公開日2012年12月26日 申請日期2012年9月6日 優先權日2012年9月6日
發明者孟敬, 李曉光 申請人:天津市德力電子儀器有限公司