陳佳星,王子玉,王玉林
(遼寧工程技術大學 電氣與控制工程學院,遼寧葫蘆島,125105)
根據2023 年全國大學生電子設計競賽的參賽情況,該競賽規模持續擴大,共有1134 所高校和20939 支隊伍報名參加[1]。競賽題目類型涵蓋了控制、測量、信號處理等多個領域。其中,2023 年的競賽中涉及了信號處理的H 題信號分離裝置。
該系統以32 位單片機STM32F407VET6 為控制核心,通過快速傅里葉變換(FFT)分析獲得兩個主頻,并利用AD9833 模塊復現原信號。同時,輔以頻率加權算法、壓控恒溫晶振(VC-TCXO)、鑒相模塊AD8302 等組件,成功實現了信號分離系統。此系統不僅在競賽中圓滿完成了所有任務,還為理論教學提供了實踐案例和操作平臺,深化了對理論教學的理解,對教學產生了積極的影響。
信號分離系統主要對兩個三角波或正弦波疊加后的信號進行分離。系統主要包括四部分:包括主控(STM32F407VET6單片機)、波形復現、頻率反饋和人機交互。如圖1 所示。

圖1 系統總體框圖
該系統的主控部分負責進行模擬信號的采集,并通過FFT 分析得到兩個最大基頻的三至五次諧波。同時,它還執行頻率加權算法,以提高AD9833 的頻率精度。系統采用了STM32F407VET6 單片機作為核心處理器,通過相位鎖定環(PLL)倍頻[2],將主頻提升至168MHz。另外,此單片機還配備了3 個12 位精度的快速模數轉換器,最高采樣頻率可以達到7.2MHz,根據香農定理[3]7.2MHz 遠大于系統要求的最大頻率100kHz,完全滿足系統的需求。
系統采用AD9833 實現信號的復現。傳統方法直接使用AD9833 復現高頻信號時,由于頻率精度不足,會導致與原信號同時顯示時出現頻率漂移現象,不利于信號的觀察。因此,系統采用了10MHzVC-TCXO,并結合頻率加權算法來提高頻率精度,最大程度地減小溫度對結果的影響。
為了解決直接使用AD9833 進行高頻信號復現時頻率精度不足、導致與原信號顯示時出現漂移現象的問題,系統引入了頻率反饋部分。該部分將原信號A 和B 作為輸入信號,與信號A'和B'進行鑒相,得到二者之間的相位差。最后,通過頻率加權算法實現對系統的閉環控制,以提高頻率精度并減小溫度對結果的影響。
系統還加入了人機交互部分,用于進行初始參數的預校準并完成信號相位的改變。人機交互部分由液晶顯示屏觸摸屏和數字示波器組成。由于不同型號的數字示波器和函數信號發生器在對信號進行處理時都存在一定的硬件誤差,因此根據液晶顯示屏觸摸屏的提示,對復現信號進行頻率補償,以實現與原信號同屏顯示而不產生漂移現象的目的。
在解決信號分離問題的過程中,本系統采用了FFT、VC-TCXO、頻率加權算法和頻率反饋等基礎理論。首先,將采集到的信號進行FFT 變換,以獲取其頻譜分布,并分析得到主頻。然后,利用AD9833 進行波形復現,結合外部10MHz VC-TCXO 晶振來最小化溫度對系統的影響,并通過頻率加權算法來提高頻率精度。同時,設計了硬件校準補償模塊,以確保信號在頻率顯示過程中無漂移。系統還利用鑒相模塊AD8302 與原始信號進行比對,根據AD8302 輸出的直流量來不斷調整相位,從而實現對輸出信號A'和B'初相位差的調節。最后,根據信號C 的頻譜圖,觀察其三次至五次諧波的存在,以確定三角信號的存在,并進一步實現混疊信號的分離與復現。具體的系統流程如圖2 所示。

圖2 整體流程圖
FFT 是一種高效的數字信號處理算法,用于將時域信號轉換為頻域信號,以便分析信號的頻譜特征[4]。FFT 算法通過將N 點離散傅里葉變換(DFT)問題分解為多個規模更小的DFT 問題來實現快速計算。它利用頻域的對稱性和周期性,減少了重復計算的次數,從而大大提高了計算效率。與暴力求解DFT 的復雜度O(N^2)相比,FFT 算法的復雜度為O(NlogN)[5]。利用FFT 對不同信號進行頻譜分析時,得到的頻譜圖差異很大。對于幅值相同、初相位相同的三角信號和正弦信號進行FFT,如圖3 所示。

圖3 三角信號(左)和正弦信號(右)的頻譜分析
由圖3 可以觀察到它們的頻譜圖有明顯差別。正弦信號只有一個主頻,并且幅值接近于原信號,而三角信號除了主頻之外,還存在多個諧波,并且諧波的幅值遞減。通過區分這兩種信號的頻譜特征,可以提取主頻并將其輸入到AD9833 中,以實現波形的復現。
2.2.1 VC-TCXO
外接一個壓控恒溫晶振(VC-TCXO)可以提高AD9833的精度[6]。VC-TCXO 能夠提供穩定的振蕩頻率,使電子設備能夠準確計時和進行時間同步。它通過控制電壓來調整晶振的溫度補償,內置的溫度補償電路能夠實時監測溫度變化,并通過調整電壓來修正晶振,以在不同溫度下提供穩定的頻率輸出,從而實現頻率的穩定性。
對于AD9833 而言,其頻率寄存器為28 位,當主頻時鐘為25MHz 時,精度為0.1Hz[7];當外接一個10MHz 的VC-TCXO 作為AD9833 的同步時鐘源時,其精度將提高到0.03725Hz。
其中,fjz為VC-TCXO 的頻率,a為寄存器位數。
2.2.2 頻率加權算法
為了提高精度,可以結合頻率加權算法來進一步提升AD9833 的精度。頻率加權合成算法將目標頻率的總時間分為64 等分,每個等分對應一個時間權重。在選擇待加權頻率時,選取距離目標頻率最近的兩個頻率,并按照時間權重的比例將時間分配給它們,在一定時間內輪流輸出這兩個頻率。通過這種方式,DDS 的頻率精度可以提高到0.03725/64=0.00058203125Hz。如圖4 所示。

圖4 頻率加權算法示意圖

圖5 頻率反饋控制系統
通過將10MHz VC-TCXO作為DDS的兩路同步時鐘源,并結合頻率加權合成法,可以進一步提高波形復現的精度。即使達到了精度要求,由于數字示波器本身存在誤差,難以避免波形漂移現象的發生,尤其是在需要將兩個信號進行同頻顯示時。因此,需要設計硬件校準方法,以實現穩定且不發生漂移的同頻波形顯示。
2.2.3 硬件校準——頻率補償
AD9833 的精度對信號復現具有重要影響,同時數字示波器對其也有一定影響。數字示波器的標準信號(頻率)相對較為穩定,如Tek2465 數字示波器,其校準頻率誤差優于0.1%。通過在屏幕上進行校準和比較,可以將誤差減小到1%~2%的范圍[8]。為了解決這個問題,在人機交互部分設計了硬件校準方法,使人工干預輸出頻率成為可能,從而降低了數字示波器誤差的影響。不同型號的數字示波器對不同頻率信號的處理程度存在差異,因此換用其他型號數字示波器對不同信號分離時,都需要進行硬件校準,以將數字示波器本身的影響降至最低,以適應更多的應用場景。
由于AD9833 內置移相功能,因此,為了實現系統的閉環控制,并提高移相的準確度,本設計引入了鑒相模塊——AD8302。該模塊的輸入為原始信號作為參考信號,以及復現信號作為測試信號,通過比較兩者的相位差來實現準確的移相控制[9]。同時,設計了兩路反饋機制,當相位差大于零時,系統進入負反饋回路增加高頻率字時間權重占比,當相位差小于零時,系統進入正反饋回路減少低頻率字時間權重占比。通過不斷修正相位差,直至滿足所需的精度要求。最后,通過頻率加權算法完成對系統的閉環控制,確保系統的穩定性和準確性。
在進行混疊信號的精確分離時,準確識別混疊信號的主頻并成功復現僅僅是信號分離工作的一部分。此外,系統還需要能夠準確辨別信號的類型。例如,常見的信號類型包括正弦信號、三角信號等。這意味著系統需要能夠對輸入信號進行特征提取和分類,以正確地識別信號的類型。這樣才能有效地實現對混疊信號的完整分離,確保分離后的信號能夠準確地還原原始信號的特征和性質。
由2.1 可得,對正弦信號與三角信號做FFT 后,所得到的頻譜會有明顯的區別。為簡化識別的難度,觀察主頻的三次、五次諧波存在與否便可區分三角信號與正弦信號。盡管如此,當兩信號的頻率相同的時候,只觀察其三次、五次諧波也并不能夠將兩種信號區分開。因此,需要分成兩種情況來進行判別:兩信號的頻率相同和兩信號的頻率不同。
2.5.1 兩信號頻率相同
當兩個信號的頻率相同時,通過進行FFT 得到的頻譜圖中只會出現一個主頻。當這兩個信號都是正弦信號時,由于沒有諧波成分的存在,可以確定它們是正弦信號。當這兩個信號都是三角信號時,會出現三次和五次諧波。當這兩個信號一個是三角信號,一個是正弦信號時,同樣會出現三次和五次諧波。為了區分這兩種情況,比較主頻的幅值大小是必要的。經過多次測量和實驗,發現具有相同頻率的三角信號和正弦信號的頻譜中主頻的幅值是不同的,因此當兩個主頻的幅值相同時,可以確定為兩個三角信號;而當兩個主頻的幅值不同時,則可以確定為一個三角信號和一個正弦信號。
2.5.2 兩信號頻率不同
當兩個信號的頻率不同,經過FFT 頻譜分析后會得到兩個主頻。根據2.1 的結論可知,正弦信號的頻譜只有一個主頻而沒有諧波,而三角信號的頻譜除了主頻外,還會有其他多次諧波。因此,只需觀察頻譜中是否存在三次和五次諧波,就可以區分正弦信號和三角信號。圖6 為通過Matlab進行混疊信號仿真的結果。

圖6 兩個三角信號(左)、正弦和三角信號(右)

圖7 初相位差圖示
為了驗證系統的可行性,本研究對0~100kHz 范圍內的任意正弦波和三角波進行疊加,然后對疊加后的信號進行分離和相位改變,并觀察分離后的信號與原信號在同一雙蹤數字示波器上顯示時的漂移情況。為了方便測試,本研究采用雙通道函數信號發生器作為信號源,輸出原始信號A 和B,并使用雙蹤數字示波器將復現后的信號和原始信號同時顯示,以觀察信號復現和相位改變后的效果。
通過使用雙通道函數信號發生器,產生兩個正弦信號A和B,并將它們通過加法器疊加得到了信號C。在單位頻率為5kHz 和1kHz 的情況下改變信號A、B 的頻率。通過人機交互部分觀察本系統對信號C 的分離結果。其中,以單位時間內的周期漂移數量(T/s)作為衡量漂移程度的指標X。此外,頻率相近的兩個信號疊加對系統分離結果擾動最大[10],由此,實驗記錄在這類頻率下的一些具有代表性的數據。

表1 信號為A,B為三角和正弦的分離情況

表2 信號A,B為三角的分離情況
根據測試結果,系統在頻率確定方面表現出色,即使在頻率相差很小的情況下也幾乎沒有誤差。此外,在提高頻率精度方面,系統在分離兩個三角信號時,波形漂移情況相對穩定,保持在0.1~0.15 周期/秒范圍內。然而,在分離正弦信號和三角信號混疊信號時,波形漂移情況相較前者增加了約0.02 周期/秒,但仍然滿足了實際需求。
通過以5°為分辨率,在0~180°范圍內改變復現信號的相位,利用雙蹤數字示波器顯示復現信號與原信號的實際相位差,與改變的相位進行對比,以評估本系統實現移相功能的誤差ε。
其中ε為誤差,φ為改變相位,0φ為初相位差。
重復實驗多次,記錄不同相位變化下的誤差情況。
根據實驗結果顯示,通過以5°為分辨率對信號進行移相,移相誤差在大多數情況下能夠控制在5%以內,并且只有極少數情況超過了5%。總體而言,這種移相方法符合實際需求。

表3 移相功能測試
本研究基于STM32F407VET6 單片機實現了一個信號分離系統,其中采用AD9833 作為信號復現模塊,成功地實現了信號的分離。為了滿足系統對頻率的要求,本系統采用了VC-TCXO 和頻率加權算法,將DDS 的頻率精度提高到0.0005Hz,以確保分離得到的信號與原信號能夠在同一雙蹤數字示波器上同步顯示而不產生漂移。通過全面的檢驗和分析,結果表明該系統能夠有效地分離任意兩個疊加的正弦或三角信號。然而,若要增加信號數量和種類,則需要進一步改進系統。