唐偉杰(中國(guó)船舶重工集團(tuán)公司第七一五研究所,浙江 杭州 310012)
基于 FPGA 的水聲信號(hào)數(shù)字下變頻的實(shí)現(xiàn)
唐偉杰
(中國(guó)船舶重工集團(tuán)公司第七一五研究所,浙江杭州 310012)
隨著聲吶信號(hào)處理技術(shù)的發(fā)展,其對(duì)系統(tǒng)的軟、硬件資源要求越來(lái)越高。利用數(shù)字下變頻技術(shù),可極大地降低其信號(hào)處理資源要求。結(jié)合 Matlab,仿真研究整個(gè)下變頻過(guò)程,驗(yàn)證分析水聲信號(hào)數(shù)字下變頻的正確性。在此基礎(chǔ)上,應(yīng)用 Verilog 語(yǔ)言移植算法到 FPGA 內(nèi)部,在 Signaltap II 下觀察過(guò)程變量及結(jié)果,并導(dǎo)入 Matlab 進(jìn)行數(shù)據(jù)分析。該技術(shù)對(duì)于聲吶信號(hào)處理具有實(shí)用價(jià)值,并已成功應(yīng)用于某聲吶設(shè)備。
聲吶;水聲信號(hào);濾波;降采樣;FPGA
在數(shù)字采集系統(tǒng)中,一方面希望信號(hào)采樣時(shí)用盡可能高的采樣率;另一方面在信號(hào)處理時(shí)又希望盡可能降低信號(hào)速率,以降低對(duì)信號(hào)處理器件的性能要求[1]。這兩者看似矛盾的需求,在數(shù)字下變頻技術(shù)的支持下,成為一個(gè)有機(jī)整體。在水聲聲吶系統(tǒng)的接收機(jī)中,也正不斷借鑒其技術(shù),對(duì)水聲信號(hào)的數(shù)字下變頻技術(shù)實(shí)現(xiàn)有實(shí)際應(yīng)用價(jià)值。
數(shù)字變頻的概念是指把信號(hào)搬移到更高或者更低的載頻上,可通過(guò)信號(hào) x(t)與 1 個(gè)旋轉(zhuǎn)向量相乘得到,即,其中 fc為載波頻率。把基帶信號(hào)搬移到該頻點(diǎn)上就是上變頻,將該信號(hào)從該頻點(diǎn)搬移到基帶則稱(chēng)為下變頻。
1.1數(shù)字下變頻
數(shù)字下變頻器(DDC)主要由數(shù)控振蕩器(NCO)、混頻器、低通濾波器及抽取器等組成[2 - 3]。DDC 的核心部分是將 A/D 采樣得到的信號(hào)與 DDC 中的數(shù)控振蕩器(NCO)產(chǎn)生的本振信號(hào)混頻,進(jìn)行頻譜搬移,得到零中頻的基帶復(fù)信號(hào),分別為同相分量和正交分量。經(jīng)過(guò)數(shù)字混頻之后,此時(shí)信號(hào)的采樣率仍然是ADC 采樣頻率,數(shù)據(jù)率可能較高,信號(hào)的帶寬遠(yuǎn)小于采樣頻率,所以需要經(jīng)過(guò)低通抽取濾波器降低信號(hào)采樣率,完成了下變頻的過(guò)程。DDC 的原理如圖 1所示。
1.2數(shù)控振蕩
數(shù)字控制振蕩器(NCO)是產(chǎn)生一個(gè)給定頻率信號(hào)的信號(hào)發(fā)生器,更確切的說(shuō)是產(chǎn)生一個(gè)頻率可變的正弦或余弦樣本。
圖 1 DDC 的原理框圖Fig. 1 Schematic diagram of DDC
產(chǎn)生正弦或余弦信號(hào)樣本最直接、最簡(jiǎn)便的方法是查表法[4],即事先根據(jù)正弦或余弦波的各個(gè)相位計(jì)算好相應(yīng)的值,并按相位角度作為地址存儲(chǔ)各相位的正、余弦樣本值。
1.3混頻器
數(shù)字混頻器是將原始采樣信號(hào)與本振信號(hào)正、余弦量分別相乘,最終得到正交的信號(hào)[5]。自然界中物理可實(shí)現(xiàn)的信號(hào)都是實(shí)信號(hào),其頻譜具有共軛對(duì)稱(chēng)性。因此,對(duì)于一個(gè)實(shí)信號(hào),只需正頻或者負(fù)頻部分就能完全加于描述。對(duì)于一個(gè)實(shí)的窄帶信號(hào):
其解析信號(hào)可表示為:
基帶信號(hào)為解析信號(hào)的復(fù)包絡(luò),是復(fù)信號(hào),既有正頻分量又有復(fù)頻分量。在數(shù)字信號(hào)處理中,常常采用數(shù)字混頻正交變換來(lái)進(jìn)行數(shù)字信號(hào)的正交分解,即將原始信號(hào)分別與正交本振信號(hào)和相乘,再通過(guò)低通濾波器實(shí)現(xiàn)。
1.4FIR 低通濾波
在數(shù)字下變頻器中,關(guān)鍵的問(wèn)題是數(shù)據(jù)抽取后的數(shù)字濾波。對(duì)于基帶數(shù)據(jù)抽取,數(shù)字濾波器為低通濾波。數(shù)字濾波器的輸入為,輸出為,沖擊響應(yīng)為,有:
數(shù)字濾波器可以用,有限沖激響應(yīng)(FIR)和無(wú)限沖擊響應(yīng)(IIR)濾波器 2 種形式[6]。FIR 濾波器是指沖激響應(yīng)為有限個(gè)值的的數(shù)字濾波器,其頻率響應(yīng)為:
相比于 IIR 濾波器,F(xiàn)IR 濾波器具有線(xiàn)性相位、穩(wěn)定性等特點(diǎn),適于聲吶中信號(hào)處理的要求,并且其設(shè)計(jì)相對(duì)成熟。常用的設(shè)計(jì)方法有窗函數(shù)設(shè)計(jì)法、頻率采樣設(shè)計(jì)法和等同紋波設(shè)計(jì)法等,其中窗函數(shù)設(shè)計(jì)法是最簡(jiǎn)單,也是最常用的設(shè)計(jì)方法。該方法是用一個(gè)FIR 濾波器的頻率響應(yīng)來(lái)逼近所要求的理想濾波器的頻率響應(yīng):
常見(jiàn)的窗函數(shù)有矩形窗、三角窗、漢寧窗、布拉克曼和凱塞窗函數(shù)等。
1.5多速率信號(hào)抽取
在完成信號(hào)的基帶搬移后,還需要降低數(shù)據(jù)率,以滿(mǎn)足基帶信號(hào)處理的要求,此為多速率信號(hào)處理過(guò)程要解決的問(wèn)題。其最基本 2 個(gè)過(guò)程為抽取和內(nèi)插,抽取就是降低數(shù)據(jù)率而內(nèi)插為提高數(shù)據(jù)率[7]。
上述各功能模塊級(jí)聯(lián)起來(lái),形成一個(gè)下變頻系統(tǒng)。在水聲聲吶系統(tǒng)中,信號(hào)頻率較軟件無(wú)線(xiàn)電中低很多,其高頻聲吶也只有千赫茲級(jí),信號(hào)形式多為線(xiàn)性調(diào)頻、單頻等信號(hào)。
下變頻中主要包括部分:混頻和濾波。將輸入信號(hào)與 NCO 產(chǎn)生的本振信號(hào)做乘法運(yùn)算,輸出運(yùn)算結(jié)果,構(gòu)成混頻部分。而濾波部分是為濾除雜散的頻率成分,得到預(yù)期信號(hào)。
2.1NCO 產(chǎn)生和混頻器
圖 2 頻率為 30 kHz 的正弦信號(hào)時(shí)頻圖Fig. 2 30 kHz Sine signal in time and frequency domain
NCO 本振信號(hào)頻率為 24 kHz,采樣率為 192 kHz,產(chǎn)生正交的正、余弦分量,與輸入信號(hào)混頻,進(jìn)行頻譜搬移。圖 3 為正余弦分量信號(hào)時(shí)域波形,截取一定時(shí)間。圖 4 為混頻后的輸出信號(hào)。
2.2FIR 濾波器
以漢寧窗函數(shù)作為 FIR 濾波器的滑動(dòng)窗口,n = 50階,混頻后的數(shù)據(jù)通過(guò) FIR 濾波器,得到的波形如 5圖所示,可以看出其 I 和 Q 路信號(hào)的時(shí)域波形,并且分析得到頻譜,符合理論計(jì)算。
2.3數(shù)據(jù)抽取
經(jīng)數(shù)字 FIR 濾波濾除雜散頻率,進(jìn)一步以 6:1 抽取數(shù)據(jù),以降低數(shù)據(jù)率,原采樣率為 192 kHz,抽取后為32 kHz。在 Matlab 中,以該比例抽取數(shù)據(jù),重組數(shù)據(jù)得到新的數(shù)據(jù)序列,如圖 6 所示,可以看出其 I 和 Q路信號(hào)的時(shí)域波形,采樣率明顯降低,但其頻譜成分不會(huì)改變。
圖 3 本振信號(hào) 24 kHzFig. 3 24 kHz Sine and cosine signal
圖 4 混頻后的 I、Q 時(shí)域信號(hào)Fig. 4 I and Q singal after frequency mixing
圖 5 FIR 濾波后的時(shí)頻圖Fig. 5 I and Q signal in time and frequency domain after FIR filter
FPGA 芯片選擇為 Altera 公司的 CycloneIII 的 EP3C120型號(hào),芯片內(nèi)部具有 119 k 的 LE 單元,288 個(gè) 18bit×18bit的乘法器,片內(nèi) RAM 有 3.88 kbits,系統(tǒng)的主時(shí)鐘為50 MHz,應(yīng)用 Verilog 語(yǔ)言編程 + IP 核的設(shè)計(jì)的設(shè)計(jì)方法。
圖 6 數(shù)據(jù)抽取的時(shí)頻信號(hào)圖Fig. 6 I and Q signal in time and frequency domain after data decimation
3.1NCO 模塊的實(shí)現(xiàn)
NCO 主要產(chǎn)生正交的正余弦分量,其實(shí)質(zhì)是實(shí)現(xiàn)頻率的合成,而直接數(shù)字頻率合成(DDS)技術(shù)是一種全新的頻率合成技術(shù),具有頻率分辨率高、轉(zhuǎn)換速度快和相位連續(xù)等特點(diǎn)。在 EP3C120 的 IP 核庫(kù)中,具有 DDS 模塊,可以配置參數(shù)生成特定的輸出信號(hào)。其模塊如圖 7 所示。
圖 7 DDS 的配置參數(shù)示意圖Fig. 7 DDS configuration diagram
其中 clk 為輸入時(shí)鐘 192 kHz,phi_inc_i 為參數(shù)值,決定輸出信號(hào)的頻率,字長(zhǎng)為 16 bit。圖 8 中dsine 和 dcosine 是在 signaltap II 中 DDS 的輸出信號(hào)本振信號(hào)。
3.2混頻器的實(shí)現(xiàn)
混頻的實(shí)質(zhì)是將中頻信號(hào)的采樣值與本振信號(hào)進(jìn)行乘法運(yùn)算,因此混頻器可用乘法器代替。在EP3C120 中,內(nèi)部有一定的乘法器資源,在 Quartus 編程設(shè)計(jì)時(shí)例化乘法器宏模塊。
設(shè) data_in1 為輸入信號(hào) 30 kHz,作為乘法器的輸入變量,dsine 為 24 kHz 的本振正弦信號(hào),作為乘法器的另一變量。在 FPGA 內(nèi)部嵌入式邏輯分析儀 signaltap中,各變量如圖 9 所示,其中的 data_out4 即為乘法器的輸出結(jié)果,把相應(yīng)的變量值保存為 tbl 數(shù)據(jù)格式,導(dǎo)入 Matlab 中,分析其混頻后變量 data_out4 的頻譜,如圖 10 所示。
圖 8 Signaltap 中 DDS 輸出信號(hào)Fig. 8 DDS outputs in signaltap II
圖 9 混頻后的 signaltap 中的信號(hào)量Fig. 9 Signals in signaltap after multiplication
圖 10 混頻后的頻譜圖Fig. 10 The frequency spectrum after multiplication
3.3FIR 低通濾波的實(shí)現(xiàn)
在混頻器完成頻帶的搬移之后,從頻譜圖 13 可看出存在著其他頻率成分。Cyclone 系列 FPGA 支持 FIRII 型濾波器 IP 核,設(shè)置低通濾波為 50 階,選擇Hanning 窗函數(shù),截止頻率為 7 kHz。圖 11 是經(jīng)過(guò) FIP濾波和數(shù)據(jù)抽取后相關(guān)信號(hào)量的示意圖,其中 dataI 和dataQ 是濾波器的輸出。圖 12 是經(jīng)濾波后的信號(hào)頻譜示意圖,比較圖 10 和圖 12,能很好地濾除帶外的分量。
圖 11 濾波及數(shù)據(jù)抽取后的信號(hào)量Fig. 11 Signals in signaltap after filter and decimation
圖 12 濾波后的信號(hào)頻譜圖Fig. 12 The frequency spectrum after filter
圖 13 數(shù)據(jù)抽取后的頻譜圖Fig. 13 The frequency spectrum after data decimation
3.4數(shù)據(jù)的抽取
設(shè)計(jì)數(shù)據(jù)抽取器,以 6:1 的系數(shù)抽取,原始數(shù)據(jù)采樣率為 192 kHz,抽取后數(shù)據(jù)率為 32 kHz,基帶信號(hào)為 6 kHz,仍滿(mǎn)足采樣定理。在 FPGA 中,將數(shù)據(jù)信號(hào)進(jìn)行同步時(shí)鐘的 6 分頻,然后利用該時(shí)鐘去采樣得到的新序列數(shù)據(jù)即為抽取后的信號(hào)。如圖 11 所示,其中data_out_I1 和 data_out_Q1 為抽取前數(shù)據(jù),dataI 和dataQ 為抽取后正交、同相分量。可以看出其波形的正確性。在 Matlab 中頻譜分析如圖 13 所示,分析其頻譜為 6 kHz,與理論上的數(shù)字下變頻仿真一致。
水聲信號(hào)數(shù)字下變頻的實(shí)現(xiàn),實(shí)現(xiàn)了信號(hào)的基帶頻譜搬移、系統(tǒng)處理數(shù)據(jù)率的降低,因此大大降低了對(duì)信號(hào)處理機(jī)處理能力的要求。本文所設(shè)計(jì)的模塊已經(jīng)應(yīng)用到某水聲聲納設(shè)備的前置預(yù)處理分機(jī)中,假設(shè)原始信號(hào)頻率為 30 kHz,采樣率為 192 kHz,數(shù)據(jù) 16位,50 個(gè)通道,則數(shù)據(jù)率為 16 bit×50×192 kHz = 150 Mb/s,下變頻后的基帶信號(hào)頻率為 6 kHz,采樣率為 32 kHz,則數(shù)據(jù)率為 16 bit×50×32 kHz = 25 Mb/s,經(jīng)整機(jī)聯(lián)調(diào)測(cè)試,以及湖試等驗(yàn)證功能的正確性。
[1]曹李秋. 軟件無(wú)線(xiàn)電數(shù)字下變頻 FPGA 實(shí)現(xiàn)的研究[D]. 武漢:武漢理工大學(xué),2006.
[2]高亞軍. 基于 FPGA 的數(shù)字信號(hào)處理[M]. 北京:電子工業(yè)出版社,2012:121-130.
[3]陳東坡. 數(shù)字下變頻電路的 FPGA 實(shí)現(xiàn)[D]. 西安:西安電子科技大學(xué),2009.
[4]周俊峰,陳濤. 基于 FPGA 的直接數(shù)字頻率合成器的設(shè)計(jì)和實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用,2002,28(8):34-36.
[5]胡躍,張正鴻. 基于 FPGA 的數(shù)字正交混頻變換算法的實(shí)現(xiàn)[J]. 國(guó)外電子測(cè)量技術(shù),2007,26(5):9-11,14.
[6]奧本海默 A V,謝費(fèi) R W,巴克 J R. 離散時(shí)間信號(hào)處理[M].劉樹(shù)棠,黃建國(guó),譯. 西安:西安交通大學(xué)出版社,2007:352-412.
[7]西瑞克斯(北京)通信設(shè)備有限公司. 無(wú)線(xiàn)通信的 MATLAB 和FPGA 實(shí)現(xiàn)[M]. 北京:人民郵電出版社,2009:90-97.
[8]胡廣書(shū). 數(shù)字信號(hào)處理理論、算法與實(shí)現(xiàn)第3版[M]. 北京:清華大學(xué),2012:355-363.
The implementation of digtal down conversion of underwater acoustic signal with FPGA
TANG Wei-jie
(The 715 Research Institute of CSIC,Hangzhou 310012,China)
With the development of sonar signal process,more and more software or hardware resources are required. It can greatly reduced just use Digtal Down Conversion(DDC). In the paper,simulation was done to study the DDC of Underwater Acoustic Signal in Matlab,and results were given and analyzed. Then the digtal signal processing was programmed by Verilog in FPGA. Variables and results were checked in Signaltap II and analyzed in Matlab. This technology have practical value to signal processing of Sonarand have been sucessed applied in the Sonar system.
sonar;underwater acoustic signal;filter;down sample;FPGA
U666.7
A
1672 - 7619(2016)08 - 0090 - 05
10.3404/j.issn.1672 - 7619.2016.08.019
2015 - 12 - 12;
2016 - 01 - 06
國(guó)家“863”計(jì)劃 資助項(xiàng)目(2011AA09A107)
唐偉杰(1982 - ),男,碩士研究生,工程師,主要從事水聲信號(hào)預(yù)處理。