陳佳星,王子玉,王玉林
(遼寧工程技術(shù)大學(xué) 電氣與控制工程學(xué)院,遼寧葫蘆島,125105)
根據(jù)2023 年全國大學(xué)生電子設(shè)計(jì)競賽的參賽情況,該競賽規(guī)模持續(xù)擴(kuò)大,共有1134 所高校和20939 支隊(duì)伍報(bào)名參加[1]。競賽題目類型涵蓋了控制、測量、信號處理等多個領(lǐng)域。其中,2023 年的競賽中涉及了信號處理的H 題信號分離裝置。
該系統(tǒng)以32 位單片機(jī)STM32F407VET6 為控制核心,通過快速傅里葉變換(FFT)分析獲得兩個主頻,并利用AD9833 模塊復(fù)現(xiàn)原信號。同時(shí),輔以頻率加權(quán)算法、壓控恒溫晶振(VC-TCXO)、鑒相模塊AD8302 等組件,成功實(shí)現(xiàn)了信號分離系統(tǒng)。此系統(tǒng)不僅在競賽中圓滿完成了所有任務(wù),還為理論教學(xué)提供了實(shí)踐案例和操作平臺,深化了對理論教學(xué)的理解,對教學(xué)產(chǎn)生了積極的影響。
信號分離系統(tǒng)主要對兩個三角波或正弦波疊加后的信號進(jìn)行分離。系統(tǒng)主要包括四部分:包括主控(STM32F407VET6單片機(jī))、波形復(fù)現(xiàn)、頻率反饋和人機(jī)交互。如圖1 所示。
圖1 系統(tǒng)總體框圖
該系統(tǒng)的主控部分負(fù)責(zé)進(jìn)行模擬信號的采集,并通過FFT 分析得到兩個最大基頻的三至五次諧波。同時(shí),它還執(zhí)行頻率加權(quán)算法,以提高AD9833 的頻率精度。系統(tǒng)采用了STM32F407VET6 單片機(jī)作為核心處理器,通過相位鎖定環(huán)(PLL)倍頻[2],將主頻提升至168MHz。另外,此單片機(jī)還配備了3 個12 位精度的快速模數(shù)轉(zhuǎn)換器,最高采樣頻率可以達(dá)到7.2MHz,根據(jù)香農(nóng)定理[3]7.2MHz 遠(yuǎn)大于系統(tǒng)要求的最大頻率100kHz,完全滿足系統(tǒng)的需求。
系統(tǒng)采用AD9833 實(shí)現(xiàn)信號的復(fù)現(xiàn)。傳統(tǒng)方法直接使用AD9833 復(fù)現(xiàn)高頻信號時(shí),由于頻率精度不足,會導(dǎo)致與原信號同時(shí)顯示時(shí)出現(xiàn)頻率漂移現(xiàn)象,不利于信號的觀察。因此,系統(tǒng)采用了10MHzVC-TCXO,并結(jié)合頻率加權(quán)算法來提高頻率精度,最大程度地減小溫度對結(jié)果的影響。
為了解決直接使用AD9833 進(jìn)行高頻信號復(fù)現(xiàn)時(shí)頻率精度不足、導(dǎo)致與原信號顯示時(shí)出現(xiàn)漂移現(xiàn)象的問題,系統(tǒng)引入了頻率反饋部分。該部分將原信號A 和B 作為輸入信號,與信號A'和B'進(jìn)行鑒相,得到二者之間的相位差。最后,通過頻率加權(quán)算法實(shí)現(xiàn)對系統(tǒng)的閉環(huán)控制,以提高頻率精度并減小溫度對結(jié)果的影響。
系統(tǒng)還加入了人機(jī)交互部分,用于進(jìn)行初始參數(shù)的預(yù)校準(zhǔn)并完成信號相位的改變。人機(jī)交互部分由液晶顯示屏觸摸屏和數(shù)字示波器組成。由于不同型號的數(shù)字示波器和函數(shù)信號發(fā)生器在對信號進(jìn)行處理時(shí)都存在一定的硬件誤差,因此根據(jù)液晶顯示屏觸摸屏的提示,對復(fù)現(xiàn)信號進(jìn)行頻率補(bǔ)償,以實(shí)現(xiàn)與原信號同屏顯示而不產(chǎn)生漂移現(xiàn)象的目的。
在解決信號分離問題的過程中,本系統(tǒng)采用了FFT、VC-TCXO、頻率加權(quán)算法和頻率反饋等基礎(chǔ)理論。首先,將采集到的信號進(jìn)行FFT 變換,以獲取其頻譜分布,并分析得到主頻。然后,利用AD9833 進(jìn)行波形復(fù)現(xiàn),結(jié)合外部10MHz VC-TCXO 晶振來最小化溫度對系統(tǒng)的影響,并通過頻率加權(quán)算法來提高頻率精度。同時(shí),設(shè)計(jì)了硬件校準(zhǔn)補(bǔ)償模塊,以確保信號在頻率顯示過程中無漂移。系統(tǒng)還利用鑒相模塊AD8302 與原始信號進(jìn)行比對,根據(jù)AD8302 輸出的直流量來不斷調(diào)整相位,從而實(shí)現(xiàn)對輸出信號A'和B'初相位差的調(diào)節(jié)。最后,根據(jù)信號C 的頻譜圖,觀察其三次至五次諧波的存在,以確定三角信號的存在,并進(jìn)一步實(shí)現(xiàn)混疊信號的分離與復(fù)現(xiàn)。具體的系統(tǒng)流程如圖2 所示。
圖2 整體流程圖
FFT 是一種高效的數(shù)字信號處理算法,用于將時(shí)域信號轉(zhuǎn)換為頻域信號,以便分析信號的頻譜特征[4]。FFT 算法通過將N 點(diǎn)離散傅里葉變換(DFT)問題分解為多個規(guī)模更小的DFT 問題來實(shí)現(xiàn)快速計(jì)算。它利用頻域的對稱性和周期性,減少了重復(fù)計(jì)算的次數(shù),從而大大提高了計(jì)算效率。與暴力求解DFT 的復(fù)雜度O(N^2)相比,F(xiàn)FT 算法的復(fù)雜度為O(NlogN)[5]。利用FFT 對不同信號進(jìn)行頻譜分析時(shí),得到的頻譜圖差異很大。對于幅值相同、初相位相同的三角信號和正弦信號進(jìn)行FFT,如圖3 所示。
圖3 三角信號(左)和正弦信號(右)的頻譜分析
由圖3 可以觀察到它們的頻譜圖有明顯差別。正弦信號只有一個主頻,并且幅值接近于原信號,而三角信號除了主頻之外,還存在多個諧波,并且諧波的幅值遞減。通過區(qū)分這兩種信號的頻譜特征,可以提取主頻并將其輸入到AD9833 中,以實(shí)現(xiàn)波形的復(fù)現(xiàn)。
2.2.1 VC-TCXO
外接一個壓控恒溫晶振(VC-TCXO)可以提高AD9833的精度[6]。VC-TCXO 能夠提供穩(wěn)定的振蕩頻率,使電子設(shè)備能夠準(zhǔn)確計(jì)時(shí)和進(jìn)行時(shí)間同步。它通過控制電壓來調(diào)整晶振的溫度補(bǔ)償,內(nèi)置的溫度補(bǔ)償電路能夠?qū)崟r(shí)監(jiān)測溫度變化,并通過調(diào)整電壓來修正晶振,以在不同溫度下提供穩(wěn)定的頻率輸出,從而實(shí)現(xiàn)頻率的穩(wěn)定性。
對于AD9833 而言,其頻率寄存器為28 位,當(dāng)主頻時(shí)鐘為25MHz 時(shí),精度為0.1Hz[7];當(dāng)外接一個10MHz 的VC-TCXO 作為AD9833 的同步時(shí)鐘源時(shí),其精度將提高到0.03725Hz。
其中,fjz為VC-TCXO 的頻率,a為寄存器位數(shù)。
2.2.2 頻率加權(quán)算法
為了提高精度,可以結(jié)合頻率加權(quán)算法來進(jìn)一步提升AD9833 的精度。頻率加權(quán)合成算法將目標(biāo)頻率的總時(shí)間分為64 等分,每個等分對應(yīng)一個時(shí)間權(quán)重。在選擇待加權(quán)頻率時(shí),選取距離目標(biāo)頻率最近的兩個頻率,并按照時(shí)間權(quán)重的比例將時(shí)間分配給它們,在一定時(shí)間內(nèi)輪流輸出這兩個頻率。通過這種方式,DDS 的頻率精度可以提高到0.03725/64=0.00058203125Hz。如圖4 所示。
圖4 頻率加權(quán)算法示意圖
圖5 頻率反饋控制系統(tǒng)
通過將10MHz VC-TCXO作為DDS的兩路同步時(shí)鐘源,并結(jié)合頻率加權(quán)合成法,可以進(jìn)一步提高波形復(fù)現(xiàn)的精度。即使達(dá)到了精度要求,由于數(shù)字示波器本身存在誤差,難以避免波形漂移現(xiàn)象的發(fā)生,尤其是在需要將兩個信號進(jìn)行同頻顯示時(shí)。因此,需要設(shè)計(jì)硬件校準(zhǔn)方法,以實(shí)現(xiàn)穩(wěn)定且不發(fā)生漂移的同頻波形顯示。
2.2.3 硬件校準(zhǔn)——頻率補(bǔ)償
AD9833 的精度對信號復(fù)現(xiàn)具有重要影響,同時(shí)數(shù)字示波器對其也有一定影響。數(shù)字示波器的標(biāo)準(zhǔn)信號(頻率)相對較為穩(wěn)定,如Tek2465 數(shù)字示波器,其校準(zhǔn)頻率誤差優(yōu)于0.1%。通過在屏幕上進(jìn)行校準(zhǔn)和比較,可以將誤差減小到1%~2%的范圍[8]。為了解決這個問題,在人機(jī)交互部分設(shè)計(jì)了硬件校準(zhǔn)方法,使人工干預(yù)輸出頻率成為可能,從而降低了數(shù)字示波器誤差的影響。不同型號的數(shù)字示波器對不同頻率信號的處理程度存在差異,因此換用其他型號數(shù)字示波器對不同信號分離時(shí),都需要進(jìn)行硬件校準(zhǔn),以將數(shù)字示波器本身的影響降至最低,以適應(yīng)更多的應(yīng)用場景。
由于AD9833 內(nèi)置移相功能,因此,為了實(shí)現(xiàn)系統(tǒng)的閉環(huán)控制,并提高移相的準(zhǔn)確度,本設(shè)計(jì)引入了鑒相模塊——AD8302。該模塊的輸入為原始信號作為參考信號,以及復(fù)現(xiàn)信號作為測試信號,通過比較兩者的相位差來實(shí)現(xiàn)準(zhǔn)確的移相控制[9]。同時(shí),設(shè)計(jì)了兩路反饋機(jī)制,當(dāng)相位差大于零時(shí),系統(tǒng)進(jìn)入負(fù)反饋回路增加高頻率字時(shí)間權(quán)重占比,當(dāng)相位差小于零時(shí),系統(tǒng)進(jìn)入正反饋回路減少低頻率字時(shí)間權(quán)重占比。通過不斷修正相位差,直至滿足所需的精度要求。最后,通過頻率加權(quán)算法完成對系統(tǒng)的閉環(huán)控制,確保系統(tǒng)的穩(wěn)定性和準(zhǔn)確性。
在進(jìn)行混疊信號的精確分離時(shí),準(zhǔn)確識別混疊信號的主頻并成功復(fù)現(xiàn)僅僅是信號分離工作的一部分。此外,系統(tǒng)還需要能夠準(zhǔn)確辨別信號的類型。例如,常見的信號類型包括正弦信號、三角信號等。這意味著系統(tǒng)需要能夠?qū)斎胄盘栠M(jìn)行特征提取和分類,以正確地識別信號的類型。這樣才能有效地實(shí)現(xiàn)對混疊信號的完整分離,確保分離后的信號能夠準(zhǔn)確地還原原始信號的特征和性質(zhì)。
由2.1 可得,對正弦信號與三角信號做FFT 后,所得到的頻譜會有明顯的區(qū)別。為簡化識別的難度,觀察主頻的三次、五次諧波存在與否便可區(qū)分三角信號與正弦信號。盡管如此,當(dāng)兩信號的頻率相同的時(shí)候,只觀察其三次、五次諧波也并不能夠?qū)煞N信號區(qū)分開。因此,需要分成兩種情況來進(jìn)行判別:兩信號的頻率相同和兩信號的頻率不同。
2.5.1 兩信號頻率相同
當(dāng)兩個信號的頻率相同時(shí),通過進(jìn)行FFT 得到的頻譜圖中只會出現(xiàn)一個主頻。當(dāng)這兩個信號都是正弦信號時(shí),由于沒有諧波成分的存在,可以確定它們是正弦信號。當(dāng)這兩個信號都是三角信號時(shí),會出現(xiàn)三次和五次諧波。當(dāng)這兩個信號一個是三角信號,一個是正弦信號時(shí),同樣會出現(xiàn)三次和五次諧波。為了區(qū)分這兩種情況,比較主頻的幅值大小是必要的。經(jīng)過多次測量和實(shí)驗(yàn),發(fā)現(xiàn)具有相同頻率的三角信號和正弦信號的頻譜中主頻的幅值是不同的,因此當(dāng)兩個主頻的幅值相同時(shí),可以確定為兩個三角信號;而當(dāng)兩個主頻的幅值不同時(shí),則可以確定為一個三角信號和一個正弦信號。
2.5.2 兩信號頻率不同
當(dāng)兩個信號的頻率不同,經(jīng)過FFT 頻譜分析后會得到兩個主頻。根據(jù)2.1 的結(jié)論可知,正弦信號的頻譜只有一個主頻而沒有諧波,而三角信號的頻譜除了主頻外,還會有其他多次諧波。因此,只需觀察頻譜中是否存在三次和五次諧波,就可以區(qū)分正弦信號和三角信號。圖6 為通過Matlab進(jìn)行混疊信號仿真的結(jié)果。
圖6 兩個三角信號(左)、正弦和三角信號(右)
圖7 初相位差圖示
為了驗(yàn)證系統(tǒng)的可行性,本研究對0~100kHz 范圍內(nèi)的任意正弦波和三角波進(jìn)行疊加,然后對疊加后的信號進(jìn)行分離和相位改變,并觀察分離后的信號與原信號在同一雙蹤數(shù)字示波器上顯示時(shí)的漂移情況。為了方便測試,本研究采用雙通道函數(shù)信號發(fā)生器作為信號源,輸出原始信號A 和B,并使用雙蹤數(shù)字示波器將復(fù)現(xiàn)后的信號和原始信號同時(shí)顯示,以觀察信號復(fù)現(xiàn)和相位改變后的效果。
通過使用雙通道函數(shù)信號發(fā)生器,產(chǎn)生兩個正弦信號A和B,并將它們通過加法器疊加得到了信號C。在單位頻率為5kHz 和1kHz 的情況下改變信號A、B 的頻率。通過人機(jī)交互部分觀察本系統(tǒng)對信號C 的分離結(jié)果。其中,以單位時(shí)間內(nèi)的周期漂移數(shù)量(T/s)作為衡量漂移程度的指標(biāo)X。此外,頻率相近的兩個信號疊加對系統(tǒng)分離結(jié)果擾動最大[10],由此,實(shí)驗(yàn)記錄在這類頻率下的一些具有代表性的數(shù)據(jù)。
表1 信號為A,B為三角和正弦的分離情況
表2 信號A,B為三角的分離情況
根據(jù)測試結(jié)果,系統(tǒng)在頻率確定方面表現(xiàn)出色,即使在頻率相差很小的情況下也幾乎沒有誤差。此外,在提高頻率精度方面,系統(tǒng)在分離兩個三角信號時(shí),波形漂移情況相對穩(wěn)定,保持在0.1~0.15 周期/秒范圍內(nèi)。然而,在分離正弦信號和三角信號混疊信號時(shí),波形漂移情況相較前者增加了約0.02 周期/秒,但仍然滿足了實(shí)際需求。
通過以5°為分辨率,在0~180°范圍內(nèi)改變復(fù)現(xiàn)信號的相位,利用雙蹤數(shù)字示波器顯示復(fù)現(xiàn)信號與原信號的實(shí)際相位差,與改變的相位進(jìn)行對比,以評估本系統(tǒng)實(shí)現(xiàn)移相功能的誤差ε。
其中ε為誤差,φ為改變相位,0φ為初相位差。
重復(fù)實(shí)驗(yàn)多次,記錄不同相位變化下的誤差情況。
根據(jù)實(shí)驗(yàn)結(jié)果顯示,通過以5°為分辨率對信號進(jìn)行移相,移相誤差在大多數(shù)情況下能夠控制在5%以內(nèi),并且只有極少數(shù)情況超過了5%??傮w而言,這種移相方法符合實(shí)際需求。
表3 移相功能測試
本研究基于STM32F407VET6 單片機(jī)實(shí)現(xiàn)了一個信號分離系統(tǒng),其中采用AD9833 作為信號復(fù)現(xiàn)模塊,成功地實(shí)現(xiàn)了信號的分離。為了滿足系統(tǒng)對頻率的要求,本系統(tǒng)采用了VC-TCXO 和頻率加權(quán)算法,將DDS 的頻率精度提高到0.0005Hz,以確保分離得到的信號與原信號能夠在同一雙蹤數(shù)字示波器上同步顯示而不產(chǎn)生漂移。通過全面的檢驗(yàn)和分析,結(jié)果表明該系統(tǒng)能夠有效地分離任意兩個疊加的正弦或三角信號。然而,若要增加信號數(shù)量和種類,則需要進(jìn)一步改進(jìn)系統(tǒng)。