這是一道電子設(shè)計(jì)競賽的題目,覺著挺有意思就試著制作了出來,下面是題目要求:
制作后的效果有一視頻見 http://v.youku.com/v_show/id_XMTQyMDc4MzEyOA==.html
設(shè)計(jì)報(bào)告如下:
數(shù)字化語音存儲與回放系統(tǒng)(E題)
摘要
本設(shè)計(jì)基于增強(qiáng)型STM32F103ZET6單片機(jī),實(shí)現(xiàn)數(shù)字化語音存儲與回放。語音信號通過駐極體話筒采樣后進(jìn)行放大,經(jīng)過通頻帶為300Hz-3.4kHz的帶通濾波器進(jìn)行濾波,通過AGC電路實(shí)現(xiàn)自動音量控制,送入單片機(jī)內(nèi)部進(jìn)行ADC采樣并存入內(nèi)部FLASH存儲器中。錄制完成后語音數(shù)據(jù)再經(jīng)過單片機(jī)內(nèi)部DAC輸出為模擬信號,并再次通過帶通濾波器濾波后對其進(jìn)行功率放大,保證信號回放質(zhì)量。為提高存儲器利用率,本設(shè)計(jì)采用ADPCM算法,延長語音存儲時(shí)間,經(jīng)測試可達(dá)30秒。本系統(tǒng)的創(chuàng)新點(diǎn)在于使用單個(gè)按鍵簡化控制邏輯,并通過指示燈實(shí)時(shí)表示系統(tǒng)當(dāng)前的工作狀態(tài),簡單直觀,易于使用。
關(guān)鍵詞STM32 帶通濾波器 ADPCM算法 LM386
1 方案選擇與比較
1.1 主控制器的選擇與比較
方案一:采用MSP430G2553為主控制器,內(nèi)置具有基準(zhǔn)、采樣與保持以及自動掃描功能的10位200-ksps的A/D轉(zhuǎn)換器,且功耗低。但其運(yùn)算速度不夠快,存儲空間達(dá)不到要求。
方案二:采用STM32單片機(jī)為主控制器,速度快,具有72MHz的CPU工作頻率和很強(qiáng)的運(yùn)算能力,且自帶有3個(gè)12位模數(shù)轉(zhuǎn)換器,1μs轉(zhuǎn)換時(shí)間(多達(dá)21個(gè)輸入通道), 2通道12位D/A轉(zhuǎn)換器。具有從256K至512K字節(jié)的閃存程序存儲器,高達(dá)64K字節(jié)的SRAM。
經(jīng)比較,采用方案二為主控制器。
1.2 語音信號采集的選擇與比較方案一:采用動圈式話筒,結(jié)構(gòu)簡單、結(jié)實(shí)耐用、價(jià)格較低,對使用環(huán)境的要求不高。但靈敏度不夠高,高頻響應(yīng)不足,音色不夠細(xì)膩。
方案二:采用駐極體話筒,體積小,噪聲低、失真小、靈敏度很高,頻響也很寬。
經(jīng)比較,采用方案二作為語音信號采集的方案。
1.3 帶通濾波器的選擇與比較方案一:采用單個(gè)運(yùn)放構(gòu)成壓控電壓源二階帶通濾波器,輸入阻抗較高,輸出阻抗較低,相當(dāng)于一個(gè)電壓源,性能穩(wěn)定。但系統(tǒng)要求通頻帶為300Hz—3.4kHz,f0=(fH+fL)/2=1550Hz,而此時(shí)Auf=0,即Rf/R1=0才可實(shí)現(xiàn),故無法達(dá)到要求。
方案二:采用低通濾波器和高通濾波器串聯(lián),通過低通濾波器將輸入的信號進(jìn)行濾波,使得只有低于設(shè)計(jì)要求的頻帶中最高頻率的信號才能通過,再通過高通濾波器使得只有高于設(shè)計(jì)要求的頻帶較低頻率的信號才能通過。
經(jīng)比較,濾波器串聯(lián)可采用方案二作為帶通濾波器的方案。
1.4 A/D和D/A轉(zhuǎn)換電路的選擇與比較
方案一:采用ADC0832和DAC0832,ADC0832具有雙通道A/D轉(zhuǎn)換,8位分辨率,采樣頻率可達(dá)32.5kHz;DAC0832具有8位分辨率,可雙緩沖、單緩沖或直接數(shù)字輸入,電流穩(wěn)定時(shí)間為1μS。此方案需兩個(gè)轉(zhuǎn)換芯片,增加電路復(fù)雜程度,且外置轉(zhuǎn)換芯片串行傳輸速度較慢。
方案二:采用PCF8591,單片集成、單獨(dú)供電、低功耗、8-bit CMOS數(shù)據(jù)獲取器件。PCF8591具有4個(gè)模擬輸入、1個(gè)模擬輸出和1個(gè)串行I2C總線接口。此方案可相應(yīng)簡化電路,但外置轉(zhuǎn)換芯片GPIO在低速總線上,串行傳輸速度較慢。
方案三:采用STM32F103ZET6內(nèi)置A/D、D/A,3個(gè)12位模數(shù)轉(zhuǎn)換器,1μs轉(zhuǎn)換時(shí)間,2通道12位D/A轉(zhuǎn)換器,并行傳輸,搭載在高速總線上,速度快,且無需附加硬件電路。
1.5存儲器的選擇與比較 經(jīng)比較,采用方案三作為A/D和D/A轉(zhuǎn)換電路的選擇。
方案一:采用外部FLASH存儲器,容量較大,斷電后仍能保存,但需通過I2C或SPI,速度較慢,需外接電路,使用不方便。
方案二:采用單片機(jī)內(nèi)置存儲器,具有256K至512K字節(jié)的閃存程序存儲器,斷電后可保存,速度快,無需外接電路。
經(jīng)比較,采用方案二作為存儲器選擇方案。
2 總體設(shè)計(jì) 本系統(tǒng)對輸入的語音信息進(jìn)行前置放大后進(jìn)入由低通濾波器和高通濾波器串聯(lián)組成的帶通濾波器中,并進(jìn)行自動增益控制后送入單片機(jī)A/D采樣,采用ADPCM算法進(jìn)行壓縮存儲。再經(jīng)過D/A轉(zhuǎn)換后再次送入帶通濾波器,利用x/sin(x)高頻校正,改善高頻分量的損失,進(jìn)而在功率放大后送入揚(yáng)聲器輸出。本設(shè)計(jì)總體設(shè)計(jì)框架如下:
3 硬件設(shè)計(jì)
3.1 語音輸入
語音輸入采用駐極體話筒。駐極體話筒是一種體積小、頻帶寬、噪音小和靈敏度高的語音傳感器。駐極體話筒主要參數(shù)有:靈敏度典型值為-66—-56dB或5—15mV/Pa;頻率響應(yīng)典型值為50Hz—12kHz;輸出阻抗典型值不大于2kΩ;工作電壓DC為1.5—12V。
3.2 放大電路
前置放大電路和末極放大電路同時(shí)采用LM386芯片,LM386是一種音頻集成功放,具有自身功耗低、更新內(nèi)鏈增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn)的功率放大器,廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中,電壓增益20-200可調(diào),滿足此系統(tǒng)要求。在1腳和8腳之間接10k滑動變阻器,實(shí)現(xiàn)增益可調(diào)。
3.3 帶通濾波器
帶通濾波器是指能通過某一頻率范圍內(nèi)的頻率分量、但將其他范圍的頻率分量衰減到極低水平的濾波器,一個(gè)理想的帶通濾波器應(yīng)該有一個(gè)完全平坦的通帶,在通帶內(nèi)沒有放大或者衰減,并且在通帶之外所有頻率都被完全衰減掉。
本設(shè)計(jì)采用低通濾波器與高通濾波器串聯(lián)方式構(gòu)成帶通濾波器。
低通濾波器截止頻率fH=3.4kHz,AU=-1,設(shè)C1為10nF,R2為3.3kΩ。根據(jù)
AUP=-R2/R1,可得R1為3.3kΩ,R3=1.8kΩ,C2=39nF。
高通濾波器截止頻率300Hz,fL=300Hz, AU=-1,設(shè)C2為100nF,R1為6.8kΩ。根據(jù)
,AUP=-C1/C2,可得C1為100nF,R2=1.8kΩ,C3=220nF。
4 軟件設(shè)計(jì)
4.1 主程序設(shè)計(jì)
程序及框圖見附錄。
4.2 AGC功能實(shí)現(xiàn)
自動增益控制(AGC)電路的作用是能根據(jù)輸入信號的電壓的大小,自動調(diào)整放大器的增益,使得放大器的輸出電壓在一定范圍內(nèi)變化。此功能可通過硬件實(shí)現(xiàn),由電平檢測器(峰值檢波電路)、低通濾波器、直流放大器、電壓比較器、控制電壓產(chǎn)生器和可控增益放大器組成。此方案實(shí)現(xiàn)起來過于復(fù)雜,并且可以通過軟件調(diào)試進(jìn)行自動增益,故本設(shè)計(jì)采用軟件實(shí)現(xiàn)自動增益控制。
4.3 存儲空間分配
根據(jù)存儲空間=采樣率*字長*時(shí)間,此系統(tǒng)采樣率為16kHz,字長8bit,存儲時(shí)間30s,可計(jì)算得所需存儲空間為480KB。STM32F103ZET6主存儲器分為256頁,每頁為2字節(jié)。
5 系統(tǒng)測試與結(jié)果
5.1 測試儀器
儀器名稱 型號
模擬示波器 X2002
函數(shù)信號發(fā)生器 F10
直流穩(wěn)壓電源 SK1731
5.2 測試方法系統(tǒng)硬件方案完成后,進(jìn)行各模塊電路搭建,再對各模塊進(jìn)行功能驗(yàn)證,各硬件模塊測試通過后編寫各軟件模塊。最后進(jìn)行系統(tǒng)聯(lián)調(diào),按照題目要求測試整體功能并調(diào)整參數(shù),填寫測試表格并撰寫設(shè)計(jì)報(bào)告。
5.3 測試結(jié)果
5.3.1 基本要求的測試與結(jié)果
軟件調(diào)試無誤后對搭建好的系統(tǒng)供電,初始化復(fù)位進(jìn)入等待按鍵狀態(tài),按鍵后程序開始錄音并存儲,此時(shí)綠色指示燈點(diǎn)亮,紅色指示燈間斷閃爍;10s后開始播放,此時(shí)紅、綠指示燈同時(shí)點(diǎn)亮,音質(zhì)效果良好,雜音??;10s后進(jìn)入擦除狀態(tài),紅、綠指示燈同時(shí)閃爍;5s之后檢測是否有按鍵按下,循環(huán)執(zhí)行,否則綠色指示燈長亮,紅色指示燈熄滅。放大器增益可調(diào),前置放大46dB及末級放大40dB均可實(shí)現(xiàn);ADC及DAC采樣頻率達(dá)到16kHz,字長8位;
經(jīng)測試系統(tǒng)工作正常。
5.3.2 擴(kuò)展要求的測試與結(jié)果軟件調(diào)試無誤后對搭建好的系統(tǒng)供電,初始化復(fù)位后系統(tǒng)運(yùn)行與基本要求相似,存儲時(shí)間達(dá)到30s,并且可實(shí)現(xiàn)通過ADPCM算法對語音信息進(jìn)行壓縮存儲,提高了存儲器利用率。并且對系統(tǒng)增加了自動音量控制功能,同時(shí)進(jìn)行了高頻x/sinx高頻校正,保證了語音高質(zhì)量回放。經(jīng)測試,系統(tǒng)工作正常。
6 總結(jié)與體會
本論文是采用單片機(jī)來實(shí)現(xiàn)語音錄放系統(tǒng)的設(shè)計(jì),解決了以前用磁帶記錄的缺陷,單片機(jī)語音錄放系統(tǒng)是數(shù)字電路為基礎(chǔ),利用數(shù)字語音電路來實(shí)現(xiàn)語音信號的記錄、存儲、還原等。它具有體積小,使用方便,可靈活擴(kuò)展等優(yōu)點(diǎn)。
通過此語音錄放系統(tǒng)的設(shè)計(jì)可以看出,數(shù)字語音系統(tǒng)比模擬語音系統(tǒng)更方便,更靈活,它是以后語音系統(tǒng)發(fā)展的趨勢。
由于時(shí)間較為緊張和實(shí)驗(yàn)條件的限制,本設(shè)計(jì)還存在許多的不足之處,AGC自動增益控制和音頻壓縮編解碼未完成,我們會繼續(xù)努力提高自己的知識水平,繼續(xù)完善這次的設(shè)計(jì)。
7 參考文獻(xiàn)[1] 吳運(yùn)昌. 模擬電子線路基礎(chǔ)[M]. 廣州:華南理工大學(xué)出版社,2004.
[2] 李建忠. 單片機(jī)原理及應(yīng)用[M]. 西安:西安電子科技大學(xué),2002.
[3] 賈立新. 電子設(shè)計(jì)與實(shí)踐[M]. 北京:清華大學(xué)出版社,2007.
[4] 童詩白. 模擬電子技術(shù)基礎(chǔ)[M]. 北京:高等教育出版社,2003.
[5] 胡壽松. 自動控制原理[M]. 北京:科學(xué)出版社,2007.
最后附上源程序,pcb,multisim仿真等文件供大家學(xué)習(xí)交流: