基于Microchip16位單片機(jī)的音頻信號(hào)分析儀的設(shè)計(jì)
1 硬件設(shè)計(jì)
“智能家居”(SmartHome)也稱智能住宅。家居網(wǎng)絡(luò)智能控制系統(tǒng)就是利用先進(jìn)的計(jì)算機(jī)技術(shù)、通訊技術(shù)和嵌入式技術(shù),將家中的各種設(shè)備通過(guò)家庭網(wǎng)絡(luò)連接成系統(tǒng)。整個(gè)智能家居系統(tǒng)的構(gòu)成如圖1所示。在該系統(tǒng)中,對(duì)于某些家用電器設(shè)備的監(jiān)測(cè)與控制需要進(jìn)行音頻信號(hào)的分析。
本設(shè)計(jì)選用Microchip公司的DSPIC30F6014A單片機(jī)為核心處理器,該芯片是MCU技術(shù)與DSP技術(shù)的結(jié)合,既包含了16位MCU的控制功能,又融合了DSP的高速運(yùn)算技術(shù),實(shí)際上就是數(shù)字微處理器、可方便地實(shí)現(xiàn)音頻信號(hào)分析的各種功能。音頻系統(tǒng)框圖如圖2所示,包括電源模塊、預(yù)制電路、A/D轉(zhuǎn)換模塊、DSP模塊、LCD顯示模塊等幾個(gè)部分。各模塊以及接口的具體設(shè)計(jì)和實(shí)現(xiàn)功能如下:
(1)電源模塊:采用直流三端穩(wěn)壓電源設(shè)計(jì),220 V交流電經(jīng)降壓、整流、濾波和穩(wěn)壓后,轉(zhuǎn)換成系統(tǒng)需要的±5 V、±12 V電源電壓。
(2)預(yù)制電路:為保證輸入頻寬在音頻范圍,前端直流偏置電路采用OP07放大器,第一級(jí)的加法器將輸入信號(hào)與2.5 V電壓值相加,第二級(jí)的反相器將信號(hào)轉(zhuǎn)移到A/D轉(zhuǎn)換能處理的0~5 V范圍。因輸入端50 Ω電阻的接地,故系統(tǒng)輸入阻抗近似為50 Ω。
(3)A/D轉(zhuǎn)換模塊:因?yàn)橐纛l信號(hào)的輸入只有一路,所以在12位可配置的A/D模塊的16個(gè)模擬輸入引腳中只用到AN6,初始化時(shí),將該引腳配置為模擬輸入引腳,同時(shí),因?yàn)樘幚砗蟮囊纛l信號(hào)電壓為0~5 V,將A/D模塊的參考電壓設(shè)置為0 V,5 V。轉(zhuǎn)換輸出速率高達(dá)200 KSPS。
(4)DSP模塊:該數(shù)字微處理器是改良的哈佛結(jié)構(gòu)設(shè)計(jì),可實(shí)時(shí)分析,具有很高的分辨率。通過(guò)Microchip公司的MPLAB C30 C編譯器調(diào)用DSP模塊,該編譯器中提供49個(gè)DSP處理函數(shù),可以完成全部的數(shù)字信號(hào)處理。
(5)LCD顯示模塊:用于直觀顯示頻譜波形。
(6)ICD2調(diào)試接口:選用Microchip公司的ICD2在線調(diào)試器,為此預(yù)留了ICD2調(diào)試接口。
(7)RC振蕩器:此單片機(jī)可工作在外部時(shí)鐘輸入、外部RC輸入、內(nèi)部快速RC振蕩器、內(nèi)部低功耗(RC)振蕩器四種模式,以及在低功耗時(shí)使用的后分頻器。本設(shè)計(jì)采用內(nèi)部快速RC振蕩器,它能提供7.37 MHz的時(shí)鐘,由于要實(shí)現(xiàn)對(duì)音頻信號(hào)實(shí)時(shí)處理,所以沒(méi)有用到后分頻器。
2 軟件設(shè)計(jì)
音頻系統(tǒng)主循環(huán)如圖3所示。
(1)經(jīng)過(guò)采樣、A/D轉(zhuǎn)換完成后,清除A/D使能標(biāo)志,得到離散化的數(shù)字信號(hào)。
(2)調(diào)用周期判定函數(shù),實(shí)現(xiàn)對(duì)信號(hào)周期性的分析。
(3)調(diào)用FFT變換函數(shù),對(duì)離散信號(hào)的快速傅里葉變換,實(shí)現(xiàn)時(shí)域到頻域的變換。
(4)顯示輸入信號(hào)的頻譜。
(5)計(jì)算信號(hào)的功率譜及計(jì)算最大功率。
(6)顯示信號(hào)的功率譜及最大功率。
2.1 A/D采樣
理論分析:因12位的A/D模塊,故量化單位為1/212,因頻率分辨率△f=100 Hz、FFT的子樣本點(diǎn)數(shù)N=512,故采樣頻率fs=51 200 Hz(fs≤N△f)、采樣周期Ts=1/51 200 s(采樣周期一采樣時(shí)間+轉(zhuǎn)換時(shí)間)。因振蕩頻率為7.37 MHz,故指令周期TCY=(1/7.37)×4=O.5μs。
實(shí)際控制:轉(zhuǎn)換時(shí)間為14個(gè)TAD(為正確A/D轉(zhuǎn)換,TAD=333.33 ns)。所以,配置A/D自動(dòng)采樣時(shí)間為6個(gè)TAD,A/D轉(zhuǎn)換時(shí)鐘為16TCY,則A/D轉(zhuǎn)換總時(shí)間為0.092 ms,采樣頻率為10.87 kHz。
A/D模塊工作在系統(tǒng)時(shí)鐘源、自動(dòng)轉(zhuǎn)換模式,每完成一次轉(zhuǎn)換進(jìn)入一次中斷。在程序中應(yīng)該定義一個(gè)采樣點(diǎn)數(shù)的結(jié)構(gòu)體,用于存放A/D采集到的數(shù)據(jù),每個(gè)結(jié)構(gòu)體內(nèi)包括一個(gè)實(shí)部和一個(gè)虛部。在中斷服務(wù)子程序中,由A/D模塊采集到的數(shù)字量存儲(chǔ)到結(jié)構(gòu)體的實(shí)部,共進(jìn)行采樣點(diǎn)數(shù)次轉(zhuǎn)換,中斷服務(wù)子程序的流程如圖4所示。
2.2 周期判定
音頻信號(hào)的頻率分量不但多,而且不具周期性。測(cè)量周期可以在時(shí)域也可以在頻域,但是由于頻域測(cè)量周期性時(shí)要求某些頻率點(diǎn)具有由規(guī)律的零點(diǎn)或接近零點(diǎn)出現(xiàn),所以對(duì)于較為復(fù)雜的、頻率分量較多且功率分布較均勻且低的信號(hào)就無(wú)法正確地分析其周期性。因此,對(duì)于信號(hào)的周期性判定,應(yīng)該在對(duì)信號(hào)進(jìn)行FFT變換之前,直接調(diào)用周期判斷函數(shù)。周期性判定子程序流程圖如圖5所示。
2.3 FFT變換
由于直接傅里葉變換的計(jì)算量與子樣本點(diǎn)數(shù)N的平方成正比,在N較大時(shí),計(jì)算量太大,不適合在資源有限的嵌入式系統(tǒng)中實(shí)現(xiàn)。所以最常用基2 FFT算法,其主要思想是將N點(diǎn)直接傅里葉變換分解成多個(gè)較短的直接傅里葉變換,再利用旋轉(zhuǎn)因子的周期性、對(duì)稱性,在很大程度上節(jié)省了系統(tǒng)資源。
MPLAB C30 C編譯器內(nèi)部提供了幾乎全部的數(shù)字信號(hào)處理軟件工具,通過(guò)DSPIC30F系列微處理器,只需調(diào)用Microchip公司提供的庫(kù)函數(shù),即可方便的實(shí)現(xiàn)數(shù)字信號(hào)處理。對(duì)于基2 FFT變換來(lái)說(shuō),其軟件流程圖如圖6所示。
2.4 特征值提取
對(duì)頻域分析起決定作用的量包括采樣頻率、采樣點(diǎn)數(shù)。通過(guò)FFT變換,得到離散化的幅度譜X(k),先將離散化的幅度值平方,再除于子樣本點(diǎn)數(shù)N,就可得到該頻率點(diǎn)對(duì)應(yīng)的功率值(功率=X(k)*X(k)/N)。
3 結(jié) 語(yǔ)
系統(tǒng)的主要性能指標(biāo)為:輸入阻抗50 Ω;輸入信號(hào)電壓范圍(峰-峰值)100 mV~5 V;輸入信號(hào)包含的頻率成分范圍為200 Hz~10 kHz;頻率分辨力為100Hz(可正確測(cè)量被測(cè)信號(hào)中,頻差不小于100 Hz的頻率分量的功率值);輸入信號(hào)的總功率和各頻率分量的功率,檢測(cè)出的各頻率分量的功率之和不小于總功率值的95%;各頻率分量功率測(cè)量的相對(duì)誤差的絕對(duì)值小于10%,總功率測(cè)量的相對(duì)誤差的絕對(duì)值小于5%;以5 s周期刷新分析數(shù)據(jù),信號(hào)各頻率分量應(yīng)按功率大小依次存儲(chǔ)并可回放顯示,同時(shí)實(shí)時(shí)顯示信號(hào)總功率和至少前兩個(gè)頻率分量的頻率值和功率值,并設(shè)暫停鍵保持顯示的數(shù)據(jù)。基于DSP單片機(jī)技術(shù)的音頻信號(hào)分析具有性能穩(wěn)定、電路簡(jiǎn)單、速度快、成本低、體積小的特點(diǎn),適用于需要音頻信號(hào)分析的嵌入式系統(tǒng)中,可以在更多領(lǐng)域進(jìn)一步推廣和應(yīng)用,如環(huán)境監(jiān)測(cè)、語(yǔ)音識(shí)別、智能系統(tǒng)的控制等。
評(píng)論