










摘要:文章提出了一種有效分離并重構信號的數字化方案。信號A和信號B通過加法器疊加成信號C,對信號C進行快速傅里葉變換,再通過直接數字合成(Direct Digital Synthesizer, DDS)模塊分別輸出重構信號A′和重構信號B′。測試結果表明:當輸入信號為1時,VPP的正弦波或者三角波頻率在10~100 kHz。所提方案能夠有效分離出2路重構信號,重構信號無失真、無漂移,能夠調節2路信號相位差。
關鍵詞:信號分離;快速傅里葉變換;重構信號;直接數字合成;數字化
中圖分類號:TN710 "文獻標志碼:A
0 引言
在電子通信和信號處理領域,信號的混合和分離是一項關鍵技術。隨著電子設備的日益普及和多功能性的增強,處理不同頻率、波形和信號源的混合信號變得日益復雜。數字信號處理器(Digital Signal Processor,DSP)和集成電路技術的進步使得信號分離裝置的設計更為靈活和高效。同時,智能算法的應用(如自適應濾波和譜分析技術)進一步提高了信號分離的精度和性能。因此,本文提出了一種基于快速傅里葉變換(Fast Frontier Transform,FFT)的信號分離方案。
傳統的信號分離方案采用微控制單元(Micro-controller Unit,MCU)與程控濾波器[1]組成信號分離模塊,通過MCU的內置模數轉換器(Analog-to-Digital Converter,ADC)采集波形,經過FFT識別2路信號的頻率,通過程控改變低通濾波器和高通濾波器的截止頻率,以達到信號分離的效果。此方案的優點在于分離出的信號與原輸入信號同頻,不會在示波器上觀測到顯示漂移問題。但當輸入信號A與輸入信號B的頻率接近時,濾波器無法濾除干擾信號,將會出現波形失真的現象[2]。
本文采用MCU與DDS模塊組成信號分離模塊,通過MCU的內置ADC采集信號C波形,經過FFT后識別信號A與信號B,通過DDS模塊分別將2路信號輸出為重構信號,以分離出信號A′和信號B′。本文所提方案的優點在于適用范圍廣,即使輸入信號A與輸入信號B頻率相近也能分離出來,且不會出現波形失真的情況。但由于DDS模塊存在誤差,輸出信號的頻率與原信號相比具有微小誤差,這將導致在示波器觀察2路信號同屏顯示時會出現漂移現象。為此,本文通過乘法器與低通濾波器獲取原信號與重構信號的相差頻率,MCU根據相差頻率不斷微調DDS輸出頻率,以抑制漂移現象。實驗結果表明,該方案能夠將通過加法器疊加的信號進行分離,輸出的信號波形無失真。該方案的電路簡單,易于實現疊加信號的分離。
1 基于STM32的信號分離及重構方案
1.1 系統總體框架
本文所提信號分離及重構方案的系統總體框架如圖1所示。其工作機理如下:首先,裝置通過加法器將信號A與信號B疊加變成信號C,信號C被單片機ADC采集,單片機對信號C進行FFT處理,得到信號C的頻域信息;然后,通過DDS模塊輸出2路分離信號,同時,通過控制繼電器切換生成波形的類型和信號的放大倍數;接著,生成的信號A′通過反饋與信號C進行乘法運算,再通過低通濾波器獲取原信號與重構信號的相差頻率;最后,MCU根據相差頻率不斷地微調DDS輸出頻率即可抑制漂移現象,使得重構信號與原信號同頻,且信號顯示無失真、無漂移。
1.2 MCU主控制器
MCU主控制器采用ST公司STM32F407ZGT6,控制器內核為ARMCortex-M4。主頻最高可以達到168 MHz。內置FPU,可加速浮點運算,對DSP算法有硬件加速,可加快FFT算法的運算。
1.3 加法電路
本設計采用AD8065組成反向加法運算電路[3],電阻采用千分之一精密電阻,設置反饋電阻和輸入電阻為1000 Ω,通過公式Uc=-RfR1Ua-RfR2Ub,實現增益為1的反向加法器,實現兩路信號疊加,電路設計如圖2所示。
1.4 ADC采集信號調整電路
因為信號C′是交流信號,而STM32單片機的ADC只能采集正極電壓信號,所以必須通過工作點抬升電路把被采集信號抬升1.5 V,使得信號電壓進入STM32的ADC電壓采集范圍(約為0~3 V)。本文設計的抬升電路拓撲如圖3所示。
1.5 DDS信號源
STM32采集的數據信號經FFT算法后[4],軟件可以識別和分離出原來的2個信號源。對AD9959進行初始化,將AD9959[5]寫入頻率控制字、相位控制字、幅度控制字和通道選擇控制字,以差分方式輸出所需頻率信號并還原出與信號A、信號B同頻的信號。
1.6 正弦波轉三角波
DDS模塊輸出正弦波,經過TLV3501過零比較,將正弦波轉變為方波,再經過基于OP27的積分電路,將正弦波轉變為三角波[6],電路拓撲如圖4所示。
1.7 頻差檢測電路
由于DDS模塊與信號發生器時鐘線不一致,而DDS模塊受到自身晶振以及環境溫度、濕度的影響,其產生的信號與信號發生器產生的信號會有些許頻差f′,這會導致在示波器觀測到信號A與信號A′的圖像發生漂移。為了解決這個問題,本文采用AD835乘法器[7]將信號C與DDS輸出的重構信號A′進行混頻[8],電路設計如圖5所示。
假設信號C=sin(2πfAt+φ1)+sin(2πfBt+φ2),重構信號A′=sin[2π(fA+f′)t+φ3],將二者經過乘法器后相乘后,乘法器輸出頻率D=12{cos[2π(2fA+f′)t+φ1-φ3]-cos[2πf′t+φ1+φ3]}+12{cos[2π(fB+fA+f′)t+φ2-φ3]-cos[2π(fB-fA-f′)t+φ2+φ3]}。由于fB-fA必然大于5 kHz以上,僅須采用截止頻率為1 kHz低通濾波器即可得到 "cos(2πf′t+φ1+φ3),即原先信號與重構信號的相差頻率。本方案采用UAF42作為低通濾波器[9],電路設計如圖6所示。
2 系統軟件流程
系統軟件流程如圖7所示。當開機時,單片機復位,然后單片機進行初始化,調用4096點FFT進行頻譜識別[10],通過DDS輸出原信號,通過串口屏進行輸出信號相位設置。
本文設計的算法原理如下:首先找頻譜中最大幅值的頻率分量,然后找到次大值,對2個頻率分量的幅值進行比較,可以看出正弦波的幅值總是大于400 mV,而三角波的幅值總是小于400 mV;根據最大幅值的頻率分量信號頻率通常最小,可以判斷最大值為信號A,次大值為信號B。
3 實驗與結果分析
3.1 測試方法和步驟
3.1.1 加法器增益測試
本文設計的加法器增益測試方法和步驟如下:首先,多次檢查電路無誤、各模塊固定后,將輸出信號C接入示波器1上,信號發生器的雙通道分別接入信號A與信號B通道;然后,將信號A與信號B的峰峰值VPP均設置為1,頻率分別設置為20、40、60、80、100 kHz;最后,通過示波器觀測信號C的峰峰值,讀取這5次數據。加法器增益測試的測試結果如表1所示。
3.1.2 50 kHz信號與100 kHz信號的分離測試
本文設計的50 kHz信號與100 kHz信號的分離測試方法和步驟如下:首先,信號發生器的雙通道分別接入信號A與信號B通道,將信號A與分離出來的信號A′接入示波器1的2條通道,信號B與信號B′接入示波器2的2條通道;然后,在信號發生器設置信號A和信號B均為正弦波,fA=50 kHz,fB=100 kHz。觀察示波器1和示波器2,記錄信號A′和信號B′的峰峰值、頻率以及是否失真、是否有漂移。測試結果如表2所示。
3.1.3 不同頻率、不同波形下信號分離測試
本文設計的不同頻率、不同波形下信號分離測試方法和步驟:首先,信號發生器的雙通道分別接入信號A與信號B通道;然后,將信號A與分離出來的信號A′接入示波器1的2條通道,信號B與信號B′介入示波器2的2條通道;最后,在信號發生器中設置12組實驗,觀察示波器1和示波器2分離信號情況,記錄信號A′與信號B′的峰峰值、頻率、是否失真、是否有漂移。測試結果如表3所示。
3.1.4 相位控制測量
本文設計的相位控制測量方法和步驟如下:首先,將分離出來的信號A′與信號B′接入示波器1的2條通道;然后,分別設置相位差為10°、15°、45°、90°;最后,觀察示波器1顯示的信號A′與信號B′的頻率、相位、是否失真、是否有漂移。初相位差如圖8所示,測試結果如表4所示。
3.2 測試結果分析
本文將實驗信號A和信號B輸入裝置后,在信號頻率為20、40、60、80、100 kHz下進行測試,通過示波器可以觀察到信號C的峰峰值,反推出加法電路的增益,符合公式Uc=-RfR1Ua-RfR2Ub的結果。
本文將實驗信號A和信號B輸入裝置后,在信號頻率為50、100 kHz下進行測試,通過示波器可以觀察到信號A′與信號A以及信號B′與信號B分別在同一示波器下無失真、無漂移。
本文將實驗信號A和信號B輸入裝置后,在不同頻率、不同波形下進行測試,通過示波器可以觀察到信號A′與信號A以及信號B′與信號B分別在同一示波器下顯示無失真、無漂移。
根據表4所示相位控制測試結果,按照圖8規定的初相位差測量方法,通過示波器觀察信號A′和信號B′之間的相位差,本文將通過串口屏設置的預設相位差和示波器觀察得到的相位差進行比較。通過分析對比結果可知,采用模擬方式和數字化方式得到的相位差誤差非常小,相較于通過模擬方式進行移相,數字化方式移相的精度更高,速度更快。
根據上述測試數據,可以得出以下結論:當輸入峰峰值為1、波形為正弦波或者三角波的信號時,在10~100 kHz的頻率范圍內,本裝置能夠通過加法器將疊加的信號進行分離,得到信號A′和信號B′,信號A′和信號A以及信號B′和信號B分別在同一示波器上穩定且顯示不漂移,這說明裝置可以較好地設置信號A′和信號B′之間的初相位差。
4 結語
本文設計了一個以FFT算法、頻差檢測電路為核心的信號分離裝置。該裝置通過FFT算法的分析使用,可以識別疊加信號中存在的三角波以及正弦波,通過DDS信號發生器將信號進行重構;根據頻差檢測電路反饋的頻率差,不斷微調頻率實現原信號和重構信號同頻顯示不漂移,可以通過寫入DDS的相位控制字調整重構信號之間的相位差。結果表明:本文所提數字化方法在處理信號分離方面相較于傳統模擬化方式具有優越性,設計裝置具有良好的性能和較高的精度。目前本文設計實驗裝置的信號測量頻率范圍有限,未來還需進一步優化。
參考文獻
[1]黃怡恬.基于STM32的FFT算法實現[J].中國科技信息,2021(12):76-78.
[2]孫超林,徐偉業,繆嘯宇,等.基于單片機的程控可調濾波器設計[J].電子測試,2019(17):21-22,47.
[3]梁志國,耿書雅.基于傅里葉變換的正弦信號源波形失真評價方法[J].計量學報,2004(4):357-361.
[4]鄧寬林,李珂妮.集成運算放大應用電路教學方法探索[J].中國科教創新導刊,2008(16):154-155.
[5]王睿庭.基于AD9959與STM32的DDS掃頻信號源設計[J].電子測試,2020(10):30-31,59.
[6]黃婧.正弦波-方波-三角波產生電路的設計與仿真[J].電子世界,2017(21):191,193.
[7]趙海濱,田亞男.基于Multisim的模擬乘法器應用電路仿真實驗[J].電腦與信息技術,2023(4):38-40,57.
[8]劉婉茹,葉建芳,孫一萍.基于Multisim乘法器混頻電路的仿真研究[J].微型電腦應用,2016(10):48-50.
[9]孫玉軒.一種基于THS3095運放的低通濾波器設計[J].計算機產品與流通,2019(12):275.
[10]趙雪,陳國通,馬忠強.基于stm32的頻譜分析儀的設計[J].電子世界,2016(23):76-77.
(編輯 王雪芬編輯)
Design and implementation of signal separation circuit based on STM32
YANG" Min1, CHEN" Jiayu1, CHEN" Yang2
(1.School of Electronics and Information Engineering, Wuyi University, Jiangmen 529020,China;
2.School of Mechanical and Automation Engineering, Wuyi University, Jiangmen 529020,China)
Abstract: The article proposes an effective digital scheme for separating and reconstructing signals. Signal A and signal B are superimposed into signal C through an adder. By fast Fourier transform for signal C, the reconstructed signal A′ and reconstructed signal B′ are output separately through a direct digital synthesizer(DDS) module. The test results indicate that when the input signal is 1,the frequency of VPP sine or triangular wave is within 10~100 kHz. The proposed scheme can effectively separate two reconstructed signals,without distortion or drift,and adjust the phase difference between the two signals.
Key words: signal separation; fast Fourier transform; reconstructed signal; direct digital synthesizer; digitalization