殷理杰,張文初,魏麗君
(湖南鐵道職業(yè)技術(shù)學(xué)院,湖南 株洲 412001)
在信號處理中,對周期信號的參數(shù)進(jìn)行測量具有非常重要的意義。在測量數(shù)值參數(shù)時,如果能準(zhǔn)確的對波形的類型進(jìn)行識別,便能夠針對該類波形的特點,采取更為合適的采樣、數(shù)值計算策略,從而能夠改善參數(shù)的測量精度。
該文以STM32為主控完成了一個能夠?qū)χ芷谛盘柌ㄐ芜M(jìn)行識別并測量參數(shù)的裝置。為拓寬被測信號范圍,使用2級4檔放大電路做信號調(diào)理,使得裝置的測量范圍提升到50 mVpp~10 Vpp,頻率1 Hz~50 kHz。最大值、最小值、峰峰值、有效值、頻率等主要測量參數(shù)誤差不大于1%。
裝置整體框圖如圖1所示。2級放大器、鉗位及比較器直接使用一個4運放LF347實現(xiàn)。放大倍數(shù)的調(diào)整通過模擬開關(guān)CD4052切換不同的反饋電阻實現(xiàn)。參數(shù)顯示使用320×240分辨率的TFT屏。主控芯片為STM32F103VE,豐富的外設(shè)資源能夠滿足本裝置的設(shè)計需求。鉗位電路將連接STM32F103VE的片上ADC接口,比較器輸出將連接片上定時器輸入IO,以便使用片上資源完成相應(yīng)功能。
圖1 整體框圖
為滿足1 Hz~50 kHz、50 mVpp~10 Vpp的采樣需求,需要設(shè)計程控增益放大器,使得輸出信號最大值不大于3.3 V,最小值不小于0 V,以滿足STM32F103片上ADC的采樣需求。該文中設(shè)計一個2級4檔位放大倍數(shù)放大器,如圖2所示。
圖2 放大器電路圖
由于LF347的增益帶寬為4 MHz,當(dāng)需要放大10倍時,其通頻帶僅為400 kHz,對50 kHz信號進(jìn)行放大時,必然丟失高頻分量,導(dǎo)致波形失真。因此,設(shè)計采用2級放大形式,第一級(U1A)最大放大倍數(shù)為3.3倍時,通頻帶約為1.21 MHz,第二級(U1B)固定放大3.03倍時,通頻帶約為1.32 MHz。采用2級放大電路設(shè)計后,能夠顯著降低高頻信號放大的失真。
在第一級放大電路中,反饋電阻通過模擬開關(guān)CD4052選擇,最大放大倍數(shù)3.3,最小放大倍數(shù)0.068。與第二級放大電路組合后,最小放大倍數(shù)為0.22,最大放大倍數(shù)為10。
當(dāng)輸入信號在峰峰值范圍為3~10 V時,使用0.22倍檔位,輸出信號范圍0.66~2.2 Vpp;輸入信號在500 mVpp~3 Vpp時,選用1倍放大;輸入信號在100~500 mVpp時,選用3.63倍放大,輸出信號范圍為363 mVpp~1.815 Vpp;輸入信號在50~100 mVpp時,選用10倍放大,輸出信號的范圍為500 mVpp~1 Vpp。
輸入信號為雙極性信號時,需要通過添加直流偏置,時被采樣信號不小于0 V。該部分功能使用U1D電路實現(xiàn)。為便于測頻,通過U1C組成的比較器,將任意波形轉(zhuǎn)變成矩形波,并確保最小值不小于0 V。
輸入信號為50 mVpp和50 kHz正弦波時,經(jīng)過電路得到的波形如圖3所示。
圖3 實測波形
被測信號轉(zhuǎn)換成矩形波后,可直接使用STM32F103的PWM輸入模式,能夠準(zhǔn)確的測量頻率和占空比。由于被測信號頻率范圍寬,需要進(jìn)行分檔測量。對于200 Hz以上的信號,使用12 MHz的計數(shù)頻率;小于200 Hz的信號,使用10 kHz的計數(shù)頻率。
當(dāng)計數(shù)頻率與被測頻率較為接近時,定時器的CCR1和CCR2的值比較接近,此時測頻誤差較大,應(yīng)切換為高采樣頻率。當(dāng)被測頻率太低時,由于不能監(jiān)測到合適的邊沿停止計數(shù),因此會觸發(fā)定時器的溢出中斷,此時需要降低計數(shù)頻率。測頻部分程序流程圖如圖4所示。
圖4 測頻程序流程圖
為保證ADC的輸入信號不大于3.3 V,STM32F103初始化后默認(rèn)將放大倍數(shù)設(shè)置為0.22。完成一次采樣后,計算被測信號的幅度,并選擇合適的放大倍數(shù),使輸入信號的電壓范圍盡量在500 mV~2 V范圍內(nèi)。
采樣使用ADC的DMA模式完成,ADC的外部觸發(fā)轉(zhuǎn)換信號為TIM3的更新事件。設(shè)置TIM3的分頻系數(shù)和計數(shù)個數(shù),則能夠?qū)Σ蓸宇l率進(jìn)行設(shè)置。由于采樣頻率范圍廣,因此需要根據(jù)測得的被測信號頻率,選擇合適的采樣頻率。為了能夠更好的恢復(fù)被采樣信號,采樣頻率不低于被測信號頻率的20倍,即每個周期不少于20個采樣點,并設(shè)定一次采樣長度為1000個采樣點。采樣頻率與被測信號頻率如表1所示。
表1 被測信號頻率與采樣頻率對照表
STM32F103片上ADC的最快轉(zhuǎn)換速度為1 μs,即1 MHz,因此使用傳統(tǒng)方式按20倍于被測信號的采樣頻率,50 kHz被測信號已是能夠采樣的最高頻率。如果需要對超過50 kHz的周期信號進(jìn)行采樣,則可以使用多周期采樣。簡而言之,就是在每個周期內(nèi),僅完成一個采樣點的采樣,20個周期后,則可以恢復(fù)出周期信號。如圖5所示,被測信號周期為,假設(shè)為第一個采樣時刻,則第二個采樣時刻為,即為所在位置。使用多周期采樣,能夠使用轉(zhuǎn)換速率較低的ADC完成對高頻周期信號的有效采樣。
圖5 多周期采樣示意圖
為確認(rèn)采樣的正確性,將STM32F103采樣的數(shù)據(jù)通過串口發(fā)送到PC,并通過Excel繪制出波形。如圖6所示為使用多周期采樣策略對50 kHz正弦波進(jìn)行采樣,等效采樣頻率1.25 MHz。
圖6 多周期采樣50 kHz信號波形
采樣完成后,可計算出被測信號有效值,通過計算有效值與幅度之比,可辨別正弦波、三角波、正弦波。但是,這種傳統(tǒng)的識別方法對采樣的精度要求非常高,同時也對信號調(diào)理電路的精度提出了很高的要求,有效值和幅度存在少量變差時,就會影響波形識別的準(zhǔn)確性。此外,該種方式不能很好的識別三種基礎(chǔ)波形以外的波形。
波形識別本質(zhì)上屬于分類問題,是機(jī)器學(xué)習(xí)中最簡單的問題。為提高波形識別的抗干擾能力,引入機(jī)器學(xué)習(xí)中的k最鄰近(kNN)算法用于波形識別。kNN算法的思路非常簡單:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別[]。波形識別時,每個采樣點都可以認(rèn)為是一個特征點,因此kNN算法能夠應(yīng)用于波形識別。
將被識別信號經(jīng)過幅度和頻率的歸一化后,可以求其與模板波形的距離,根據(jù)kNN的思想,被識別信號與距離最小的模板具有相同的波形,由此完成波形識別。
為驗證算法的可行性,使用Matlab生成了5種波形模板,如圖7(a)所示。增加期望為0.1的正態(tài)分布隨機(jī)數(shù)作為噪聲到波形模板,如圖7(b)所示,用于模擬待識別波形。
圖7 測試波形圖
經(jīng)過kNN計算后,可得到如圖8所示結(jié)果。橫坐標(biāo)為模板編號,1為正弦波,2為三角波,3為矩形波,4為鋸齒波,5為階梯波。加擾正弦波與正弦波模板距離最近,即最為匹配,與三角波也比較接近,但還是顯著大于與正弦波的距離,與矩形波的距離已超過坐標(biāo)范圍。加擾三角波、加擾矩形波、加擾鋸齒波、加擾階梯波都能被準(zhǔn)確識別出,故確認(rèn)了kNN算法用于波形識別的可行性,且該方法可推廣用于各類波形識別,只需準(zhǔn)備相應(yīng)模板即可。
圖8 kNN識別結(jié)果
此外,算法在實施過程中,可省略距離計算中的開平方運算,以此減小運算量,提高識別速度。
為驗證裝置的實際測試效果,對頻率及波形識別測試結(jié)果如表2所示。峰峰值測試結(jié)果如表3所示。對50 kHz和2 Vpp正弦波進(jìn)行測量的實物圖如圖9所示。
表2 頻率及波形識別測試
表3 峰峰值測試
圖9 實物圖
經(jīng)過設(shè)計,完成了模擬信號采集電路、4檔位2級放大電路,通過多周期信號采樣策略以及kNN算法,實現(xiàn)了對周期信號進(jìn)行波形識別及參數(shù)測量。經(jīng)過反復(fù)實驗,該裝置能夠?qū)?0 mVpp~10 Vpp,1 Hz~50 kHz信號的參數(shù)進(jìn)行有效測量,且誤差不超過1%,很好地達(dá)到了預(yù)期效果。