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