摘要:基于信號(hào)分離技術(shù)在當(dāng)前環(huán)境下被廣泛應(yīng)用的背景,該文提出了一種基于FPGA平臺(tái)的信號(hào)分離系統(tǒng)。通過(guò)對(duì)需要分離的信號(hào)進(jìn)行ADC采集,并通過(guò)FFT算法處理獲取信號(hào)的頻譜,從而得到疊加信號(hào)的特征。依據(jù)疊加信號(hào)的特征利用直接數(shù)字頻率生成(DDS)技術(shù)生成各個(gè)疊加信號(hào),實(shí)現(xiàn)對(duì)待分離信號(hào)中疊加信號(hào)的分離。該設(shè)計(jì)具有采樣精度高、分離信號(hào)輸出同步性好等優(yōu)點(diǎn),能夠精確實(shí)現(xiàn)對(duì)信號(hào)的分離。
關(guān)鍵詞:FPGA;信號(hào)分離;頻譜分析;直接數(shù)字頻率生成(DDS)
doi:10.3969/J.ISSN.1672-7274.2024.08.008
中圖分類號(hào):TN 98" " " " " " " " "文獻(xiàn)標(biāo)志碼:A" " " " " " 文章編碼:1672-7274(2024)08-00-04
FPGA-based Signal Separation Device
WANG Rui
(North China University of Technology, Beijing 100144, China)
Abstract: The paper proposes a signal separation system based on FPGA platform, taking into account the widespread use of signal separation technology in the current environment. The signals to be separated are acquired through ADC and their spectrum is obtained using FFT algorithm to extract their features. Based on the characteristics of the superimposed signals, each superposition signal is generated using DDS technology to achieve accurate signal separation with high sampling precision and synchronized output.
Keywords: FPGA; signal separation; spectrum analysis; direct digital synthesis(DDS)
0" "引言
信號(hào)分離技術(shù)已經(jīng)在多個(gè)領(lǐng)域中取得廣泛應(yīng)用。在衛(wèi)星通信領(lǐng)域中[1,2],通過(guò)對(duì)信號(hào)進(jìn)行重構(gòu)干擾抵消的方式來(lái)進(jìn)行信號(hào)分離,實(shí)現(xiàn)衛(wèi)星信號(hào)的隱蔽接收[3];在電子戰(zhàn)領(lǐng)域,信號(hào)分離技術(shù)是電子戰(zhàn)識(shí)別、干擾等后續(xù)任務(wù)的基礎(chǔ)[4];在故障診斷應(yīng)用中[5,6],如對(duì)風(fēng)力發(fā)電機(jī)的故障進(jìn)行診斷,信號(hào)分離技術(shù)可以分離出聲音干擾信號(hào),幫助對(duì)風(fēng)力發(fā)電機(jī)的故障進(jìn)行準(zhǔn)確診斷[7]。但是在不同頻率、不同波形的信號(hào)相互混合疊加的條件下,準(zhǔn)確地對(duì)混雜的信號(hào)進(jìn)行精確的分離仍然具有較大的挑戰(zhàn)。而基于STM32微控制器所設(shè)計(jì)的信號(hào)分離裝置具有采樣頻率低、分立器件較多、輸出的多路信號(hào)相位有略微差異等問(wèn)題[8]。本文提出了一種基于FPGA平臺(tái)實(shí)現(xiàn)的信號(hào)分離系統(tǒng),在實(shí)現(xiàn)精確分離信號(hào)的基礎(chǔ)上較好地解決了使用上述STM32平臺(tái)時(shí)出現(xiàn)的問(wèn)題。
1" "系統(tǒng)總體設(shè)計(jì)
本文設(shè)計(jì)的FPGA信號(hào)分離裝置所使用的FPGA芯片為XC7Z010CL400-1,系統(tǒng)主要由ADC信號(hào)采集、FFT信號(hào)處理、DDS信號(hào)生成和DAC信號(hào)輸出四部分組成。其中ADC信號(hào)采集和DAC信號(hào)輸出通過(guò)硬件電路完成,ADC采集到的電壓信號(hào)轉(zhuǎn)換成幅度碼后由FPGA芯片進(jìn)行存儲(chǔ)和處理,輸入DAC模塊的信號(hào)幅度碼由FPGA芯片產(chǎn)生并輸入。FFT信號(hào)處理和DDS信號(hào)發(fā)生則由FPGA芯片電路實(shí)現(xiàn),通過(guò)軟件編程完成。通過(guò)ADC電路將待分離的信號(hào)轉(zhuǎn)換為幅度碼存儲(chǔ)后,經(jīng)過(guò)FFT處理獲取待分離信號(hào)的頻譜。依據(jù)頻譜信息可以知道輸入信號(hào)中疊加信號(hào)的種類、頻率等信息,利用這些信息即可通過(guò)DDS生成分離后的信號(hào)的波形幅度碼。將這些幅度碼輸入DAC模塊即可生成分離后的信號(hào)。系統(tǒng)框圖如圖1所示。
2" "系統(tǒng)硬件設(shè)計(jì)
2.1 ADC信號(hào)采集電路
ADC信號(hào)采集電路所使用的芯片是AD9280芯片。AD9280是一個(gè)8位模數(shù)轉(zhuǎn)換芯片,采用單電源供電,內(nèi)置一個(gè)片內(nèi)采用保持放大器和基準(zhǔn)電壓源。其采用多級(jí)差分流水線架構(gòu),數(shù)據(jù)速率可達(dá)32MSPS,在整個(gè)工作溫度范圍內(nèi)保證無(wú)失碼。其采用一個(gè)單時(shí)鐘輸入來(lái)控制內(nèi)部轉(zhuǎn)換周期,輸出格式為二進(jìn)制。而其采用的2.7~5.5V電源供電,適合高速應(yīng)用中的低功耗操作。
ADC采集電路由通過(guò)一個(gè)采集端對(duì)待分離信號(hào)進(jìn)行采集,通過(guò)9個(gè)引腳與FPGA連接,其一為時(shí)鐘信號(hào)引腳,由FPGA發(fā)出,用來(lái)控制ADC對(duì)輸入信號(hào)的采集。
2.2 DAC信號(hào)輸出電路
DAC信號(hào)輸出電路所使用的芯片是AD9708芯片。AD9708芯片是電流輸出DAC,標(biāo)稱滿量程輸出電流為20 mA,輸出阻抗大于100 kΩ。AD9708芯片具有靈活的單電源工作電壓范圍(2.7~5.5 V),功耗較低,可通過(guò)調(diào)節(jié)單個(gè)電阻的阻值大小來(lái)調(diào)節(jié)滿量程電流輸出,可將功耗進(jìn)一步降低至45 mW而不發(fā)生性能的下降,便于低功耗應(yīng)用,且方便攜帶。
本系統(tǒng)對(duì)兩信號(hào)疊加后的信號(hào)進(jìn)行分離,故采用兩個(gè)AD9708芯片對(duì)分離后的信號(hào)進(jìn)行DAC轉(zhuǎn)換,通過(guò)兩個(gè)輸出端對(duì)分離信號(hào)進(jìn)行輸出,除去電源端通過(guò)18個(gè)引腳與FPGA進(jìn)行連接。其中2個(gè)為時(shí)鐘端。
2.3 FPGA信號(hào)處理電路
采用的FPGA芯片為XC7Z010CL400-1。其通過(guò)9個(gè)引腳與ADC采集電路連接,用于給ADC發(fā)送時(shí)鐘信號(hào)和接受ADC采集到的8位電壓幅度碼數(shù)據(jù);通過(guò)18個(gè)引腳與DAC信號(hào)輸出電路連接,用于分別給兩個(gè)DAC信號(hào)發(fā)生電路發(fā)送時(shí)鐘信號(hào)和發(fā)送DDS生成的兩路8位波形幅度碼。其通過(guò)一個(gè)引腳與按鍵連接,用于整個(gè)信號(hào)分離系統(tǒng)的開(kāi)啟。系統(tǒng)上電后處于待機(jī)狀態(tài),當(dāng)按鍵按下后系統(tǒng)開(kāi)始工作,開(kāi)始對(duì)輸入的信號(hào)進(jìn)行采集、分離和輸出。
3" "系統(tǒng)軟件設(shè)計(jì)
3.1 采集信號(hào)存儲(chǔ)設(shè)計(jì)
由于本系統(tǒng)所使用的FFT算法需要一次性輸入1 024個(gè)待處理的波形幅度碼數(shù)據(jù),故需要采用RAM來(lái)存儲(chǔ)采集到的電壓數(shù)據(jù)。同樣由于FFT輸出數(shù)據(jù)需要進(jìn)行波形分析和頻率分析等處理,F(xiàn)FT輸出數(shù)據(jù)也需要使用RAM進(jìn)行存儲(chǔ)。該系統(tǒng)所使用的RAM存儲(chǔ)深度為1 024位,數(shù)據(jù)位寬適應(yīng)ADC采集數(shù)據(jù)二進(jìn)制數(shù)位寬,為8位。支持?jǐn)?shù)據(jù)復(fù)位功能,采用低電平復(fù)位。具有使能端,使能端為高電平時(shí),RAM工作,可以寫(xiě)入和讀出數(shù)據(jù),使能端為低電平時(shí),無(wú)法寫(xiě)入和讀出數(shù)據(jù)。采用單端口RAM,數(shù)據(jù)均經(jīng)過(guò)一個(gè)端口進(jìn)行寫(xiě)入和讀出,讀寫(xiě)無(wú)法同時(shí)進(jìn)行。讀寫(xiě)控制位為高電平時(shí),RAM為寫(xiě)入狀態(tài);讀寫(xiě)控制位為低電平時(shí),RAM為讀取狀態(tài)。具有10位的地址端和一位的時(shí)鐘輸入端。
3.2 FFT分析設(shè)計(jì)
FFT(快速傅里葉變換)是一種高效的算法,用于計(jì)算離散傅里葉變換(DFT)。DFT是一種將離散信號(hào)從時(shí)域轉(zhuǎn)換到頻域的方法。假設(shè)有一個(gè)長(zhǎng)度為N的離散信號(hào)序列
(1)
其DFT變換可以表示為
(2)
FFT算法通過(guò)利用DFT的對(duì)稱性和周期性,可以有效降低DFT的計(jì)算復(fù)雜度,從而實(shí)現(xiàn)高效的信號(hào)頻譜分析和處理。FFT算法中最基本的計(jì)算單元是蝶形運(yùn)算(butterfly operation)。蝶形運(yùn)算將兩個(gè)信號(hào)值進(jìn)行線性組合,其中一個(gè)信號(hào)值乘以后與另一個(gè)信號(hào)值相加,形成新的信號(hào)值。蝶形運(yùn)算的形式如下:
(3)
式中,和分別表示偶數(shù)索引和奇數(shù)索引的信號(hào)值;和分別表示蝶形運(yùn)算后的結(jié)果。FFT算法通過(guò)遞歸地應(yīng)用分組計(jì)算的方法和蝶形運(yùn)算,計(jì)算出最終的DFT頻譜序列。這個(gè)結(jié)果序列中包含疊加信號(hào)的類型以及頻率等信息。
本系統(tǒng)所設(shè)計(jì)的FFT部分需要一次性輸入1 024點(diǎn)信號(hào)幅度碼數(shù)據(jù),以此滿足較高的輸出信號(hào)頻率精度;同時(shí)由于采用FFT算法對(duì)輸入信號(hào)幅度碼數(shù)據(jù)處理時(shí)間較長(zhǎng),為了避免對(duì)后續(xù)的波形分析產(chǎn)生影響,F(xiàn)FT處理模塊還需要對(duì)輸出狀態(tài)進(jìn)行監(jiān)測(cè),只有在分析完成后后續(xù)分析才能繼續(xù)進(jìn)行。因此在設(shè)計(jì)中,F(xiàn)FT模塊主要由輸入控制端、數(shù)據(jù)端、輸出有效端、輸出段組成。
對(duì)上述DFT頻譜序列進(jìn)行分析,即可獲知疊加信號(hào)的頻率和類型。本系統(tǒng)在驗(yàn)證時(shí),輸入的疊加信號(hào)為2個(gè)正弦波的疊加信號(hào)與正弦波和三角波的疊加信號(hào)。根據(jù)正弦波和三角波的特點(diǎn),如果輸入的信號(hào)為2個(gè)不同頻率正弦波的疊加,那么該信號(hào)的幅度譜中會(huì)出現(xiàn)2個(gè)峰值;如果輸入的信號(hào)為三角波和正弦波的疊加,那么該信號(hào)的幅度譜呈現(xiàn)正弦波峰值與三角波數(shù)個(gè)峰值的疊加。
3.3 頻譜分析設(shè)計(jì)
根據(jù)上述分析,系統(tǒng)在將輸入信號(hào)經(jīng)過(guò)FFT處理后,首先進(jìn)行信號(hào)成分的分析。依據(jù)三角波幅度譜的特性,幅度譜中基波的五次諧波后的諧波幅度可忽略不計(jì),在判別波形類型的過(guò)程中僅考慮信號(hào)的基波、3次諧波和5次諧波。信號(hào)成分分析首先查找FFT結(jié)果數(shù)組中的最大值與次大值,再依次查找最大值、次大值附近3次諧波處、5次諧波處幅度值是否滿足三角波的頻譜特點(diǎn)。如果滿足,即對(duì)應(yīng)的最大值(次大值)為三角波基波的幅度值,另一個(gè)次大值(最大值)為正弦波的幅度值。如果最大值與次大值的3次諧波、5次諧波信號(hào)均不滿足三角波幅度譜特性,則判定這兩個(gè)信號(hào)均為正弦波。查找最大值與次大值的算法采取逐項(xiàng)比較的方式進(jìn)行;查找最大值時(shí),如果對(duì)應(yīng)頻率的幅度大于或等于當(dāng)前最大值,則當(dāng)前頻率的幅度為最大值,并且將當(dāng)前頻率的索引記錄下來(lái)。查找次大值與查找最大值同時(shí)進(jìn)行,被替換下的原最大值即為次大值,原最大值的索引即是次大值的索引。
在分析出信號(hào)的類型后,需要分析所疊加信號(hào)的頻率。在頻域中,F(xiàn)FT結(jié)果的索引與信號(hào)的頻率具有對(duì)應(yīng)關(guān)系。用頻率分辨率表示在頻域中每個(gè)頻率點(diǎn)之間的間隔,頻率分辨率可以通過(guò)信號(hào)的采樣頻率和FFT長(zhǎng)度來(lái)計(jì)算。由此,頻率分辨率可以表示為:
(4)
頻率對(duì)應(yīng)于頻率索引,則頻率可以表示為:
(5)
將FFT輸出數(shù)據(jù)按照輸出順序排成數(shù)組,數(shù)組索引與頻率的關(guān)系如下:
(6)
式中,為對(duì)應(yīng)索引的信號(hào)頻率;為索引;為FFT的采樣點(diǎn)數(shù);為信號(hào)的采樣頻率。本系統(tǒng)中所用FFT算法的采樣點(diǎn)數(shù)為1 024點(diǎn),頻率分辨率設(shè)計(jì)為1 kHz,經(jīng)過(guò)計(jì)算采樣頻率應(yīng)設(shè)定為1.024 MHz。由FPGA編程分頻不便于產(chǎn)生1.024 MHz的時(shí)鐘頻率用于進(jìn)行信號(hào)采樣,本系統(tǒng)采用1 MHz時(shí)鐘進(jìn)行信號(hào)采樣,以此近似替代1.024 MHz的時(shí)鐘信號(hào)頻率。因此系統(tǒng)中依據(jù)三角波和正弦波的頻譜的特點(diǎn),對(duì)FFT輸出數(shù)據(jù)中的最大值和次大值利用上述公式進(jìn)行分析即可獲取兩個(gè)疊加信號(hào)的頻率。
在FFT處理模塊發(fā)出處理完畢的信號(hào)后,RAM模塊開(kāi)始接收FFT處理模塊中輸出的頻譜數(shù)據(jù),隨后遍歷頻譜數(shù)據(jù),提取出頻譜中的最大值與次大值以及對(duì)應(yīng)的索引;提取出索引后,依據(jù)信號(hào)的索引分別對(duì)2個(gè)索引附近3次諧波處和5次諧波處的幅值進(jìn)行分析,判別信號(hào)的類型。隨后將波形類別數(shù)據(jù)和頻率數(shù)據(jù)傳入DDS信號(hào)生成模塊。
3.4 DDS信號(hào)生成設(shè)計(jì)
直接數(shù)字頻率合成(DDS)是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)。DDS的原理框圖如圖2所示。
圖2中,為頻率控制字;P為相位控制字;W為波形控制字;N為相位累加器的字長(zhǎng);D為ROM數(shù)據(jù)位及D/A轉(zhuǎn)換器的字長(zhǎng)。DDS方程為:,式中,為輸出頻率;為時(shí)鐘頻率。當(dāng)=1時(shí),DDS輸出最低頻率(也即頻率分辨率)為,而DDS的最大輸出頻率由Nyquist采樣定理決定,即,也就是說(shuō)最大值為。因此,只要N足夠大,DDS可以得到很小的頻率間隔。要改變DDS的輸出頻率,只要改變頻率控制字即可[9]??梢砸罁?jù)上述公式,獲得DDS的相位控制字。
依據(jù)DDS原理,若取N為10,即DDS查找表中每一個(gè)數(shù)據(jù)均為10位,DDS的波形ROM存儲(chǔ)深度為1 024,取為1 MHz,由FFT數(shù)組索引與頻率關(guān)系公式,有。即當(dāng)DDS按照上面的數(shù)據(jù)位寬和時(shí)鐘頻率進(jìn)行配置時(shí),可以直接把FFT輸出數(shù)列中的數(shù)組索引用作DDS中的頻率關(guān)鍵字。故本系統(tǒng)中,DDS的時(shí)鐘頻率設(shè)置為1 MHz,查找表中數(shù)據(jù)位寬設(shè)置為10位,存儲(chǔ)2 048個(gè)數(shù)據(jù);其中三角波和正弦波數(shù)據(jù)分塊存儲(chǔ),前1 024個(gè)數(shù)據(jù)為正弦波數(shù)據(jù),后1 024個(gè)數(shù)據(jù)為三角波數(shù)據(jù);直接將FFT處理后獲得的數(shù)組索引作為頻率控制字。按照上述DDS框圖流程生成對(duì)應(yīng)的分離后的信號(hào)。由于DAC為8位輸入,最終輸出時(shí)僅截取高八位DDS波形數(shù)據(jù)進(jìn)行輸出。系統(tǒng)工作流程圖如圖3所示,實(shí)物圖如圖4所示,信號(hào)分離結(jié)果如表1、表2所示。
4" "結(jié)束語(yǔ)
該文設(shè)計(jì)了一種基于FPGA平臺(tái)實(shí)現(xiàn)的信號(hào)分離裝置,可實(shí)現(xiàn)較寬頻帶混合信號(hào)的分離。電路整體由ADC模數(shù)轉(zhuǎn)換電路、DAC數(shù)模轉(zhuǎn)換電路和FPGA處理電路組成,主要的信號(hào)處理和波形生成功能均由FPGA處理電路完成,節(jié)省了部分硬件,為多頻率混合信號(hào)提供了一種信號(hào)分離的技術(shù)方案。
參考文獻(xiàn)
[1] 李冉冉,劉子威,張更新.一種衛(wèi)星物聯(lián)網(wǎng)異步信號(hào)接收方法研究[J/OL].無(wú)線電工程,1-13[2024-05-30].
[2] 劉國(guó)光.衛(wèi)星觀測(cè)信號(hào)盲源分離算法[J].測(cè)繪技術(shù)裝備,2022,24(01):50-56.
[3] 王亮,魏合文,陸佩忠.一種衛(wèi)星隱蔽通信信號(hào)盲分離算法[J].電訊技術(shù),2024,64(03):390-395.
[4] 曾令華,高由兵,梁超,等.基于深度學(xué)習(xí)的同型雷達(dá)的脈沖中頻信號(hào)分離技術(shù)[J].電子信息對(duì)抗技術(shù),2023,38(06):53-60.
[5] 孫玉偉,羅林根,陳敬德,等.含噪背景下基于盲源分離與NSVDD的斷路器機(jī)械故障診斷方法[J].高電壓技術(shù),2022,48(03):1104-1113.
[6] 宇航.機(jī)械設(shè)備振動(dòng)噪聲故障特征聲信號(hào)分析[J].現(xiàn)代制造技術(shù)與裝備,2023,59(08):31-33.
[7] 陳皓陽(yáng).聲振信號(hào)分離提純的風(fēng)力發(fā)電機(jī)故障診斷方法研究[J].自動(dòng)化儀表,2023,44(12):42-47.
[8] 曹勝,陳嘉強(qiáng),李佳豪,等.雙通道周期信號(hào)分離裝置的設(shè)計(jì)與實(shí)現(xiàn)[J].工業(yè)儀表與自動(dòng)化裝置,2024(01):18-21.
[9] 鄒托武.基于DSP的微機(jī)繼電保護(hù)測(cè)試儀的研究與設(shè)計(jì)[D].武漢:華中科技大學(xué),2006.
作者簡(jiǎn)介:王" 睿(2003—),男,漢族,湖北鄂州人,本科,研究方向?yàn)槲㈦娮涌茖W(xué)與工程。