<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          作者: 時間:2016-10-15 來源:網(wǎng)絡 收藏

          摘要:本文提出一種利用實現(xiàn)16位高音質語音文件播放的設計,并提給3種解決方案和對比論證,闡述了其實現(xiàn)過程并通過實驗驗證。該方法不僅成本低,其音質接近16位精度,而且由于編碼方式簡單,在單片機上解碼容易實現(xiàn)。實驗結果表明,該方法音質效果較好,可應用范圍廣。

          本文引用地址:http://www.ex-cimer.com/article/201610/307462.htm

          引言

          波由諧波和直流量組成,諧波是需要被濾除的信號,即通過模擬低通濾波器可以將調制后的信號轉換成模擬信號,濾波器可以消除大部分高頻成分,最后只留下直流量,圖1為PWM信號還原為模擬信號的示意圖。普通單片機受限于其處理能力,一般只能調制8位左右的PWM信號,因此只能還原8位的聲音文件。而用D/A轉換器實現(xiàn)模擬量的輸出成本較高,音質效果也不佳。對各頻帶及幅值的信號的阻礙比較統(tǒng)一,保證了聲音信號保真率。本文將16位高音質WAV信號進行拆分處理,一部分由PWM進行調制,另一部分控制8個I/O口中的某幾路輸出PWM,信號經(jīng)低通濾波和功率放大后送至喇叭等放聲設備,以此將數(shù)字語音信號轉換成模擬信號,達到語音播放的目的。

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          1 原理及誤差分析

          1.1 基本原理

          16位數(shù)字信號可表示自然界65 535種聲音信號,據(jù)此將16位數(shù)字量量化為對應的模擬信號,便完成聲音的還原:

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          這里將16位數(shù)據(jù)Data拆分為X1和X2,且有Data=X1×X2。將X1通過單片機的定時器調制為PWM信號,通過控制占空比來控制輸出電壓大小,即:

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          將X2用來控制單片機的8路I/O是輸出調制好的PWM信號,還是輸出信號“0”,該8路信號送到,即:

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          則最后輸出的電壓大小為:

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          ,以此便可以實現(xiàn)16位D/A轉換。

          1.2 數(shù)據(jù)拆分形式分析

          針對基本原理中提出的將16位數(shù)據(jù)拆分為高低位兩部分在單片機中的實現(xiàn),提出3種方案并對其進行對比分析。

          1.2.1 方案1

          將16位數(shù)據(jù)從中間截斷,并判斷高低8位的值是否為0,是則補1,避免拆分的兩個數(shù)據(jù)有一個為0時導致輸出也為0。拆分后的低8位送給定時器進行PWM合成,高8位送給電阻網(wǎng)絡控制輸出。該方式占用單片機資源很少,對單片機處理能力沒有要求,可以在所有單片機上實現(xiàn)。但PWM與電阻網(wǎng)絡模擬電壓輸出均有非線性失真,當拆分的兩個數(shù)據(jù)中有一個較小(接近0)或較大(接近255)時,對最后的輸出電壓有較大影響。

          1.2.2 方案2

          利用查表法,將Data=X1×X2的所有65 536種數(shù)據(jù)的拆分結果計算出來,建表后存到單片機中,只需根據(jù)數(shù)據(jù)大小對號查出X1、X2進行PWM調制并控制電阻網(wǎng)絡輸出即可(X1、X2均不大于256)。該數(shù)組需占用128 K的存儲空間,但不是所有數(shù)據(jù)都能寫成Data=X1×X2形式,只能盡可能地去逼近,最終的輸出值與Data會有少許出入。該方案也不需要單片機具有較強的處理能力,且避免了方案1的缺陷,但因其逼近的拆分方式導致其輸出精度有損,達不到16位高精度。

          1.2.3 方案3

          判斷16位數(shù)據(jù)的高位為0的位數(shù),將不為0的低位數(shù)據(jù)從中間一分為二,然后將拆分后的數(shù)據(jù)均左移相同的位數(shù),保證數(shù)據(jù)拆分前后“一致”,將拆分后的數(shù)據(jù)分別進行PWM調制和控制電阻網(wǎng)絡輸出。一般單片機可輕松完成,占用資源較少,避免了方案2的缺陷,但在左移時會

          有數(shù)據(jù)丟失,導致輸出誤差較大,特別是當數(shù)據(jù)小于255時,其誤差是不可接受的。

          根據(jù)現(xiàn)有的理論分析和實際的測試效果來看,方案2較為理想。本文針對方案2展開設計。

          2 系統(tǒng)設計

          系統(tǒng)框圖如圖2所示,該方案采用TI公司的MSP430F5529作為主控MCU,它將TF卡中的WAV文件讀取出來,并在TF卡中的數(shù)據(jù)表中查出對應的數(shù)據(jù)拆分值,然后存放在單片機中分出來的1 KB的緩沖區(qū)中。定時器A定時讀取緩沖區(qū)中的數(shù)據(jù),定時器B完成PWM調制并同時控制電阻網(wǎng)絡輸出。由電阻網(wǎng)絡輸出的信號經(jīng)二階低通濾波器和功率放大器后送到喇叭完成語音播放。帶觸摸功能的TFT液晶屏用來顯示和控制語音播放。單片機的供電由兩節(jié)干電池完成,功率放大電路供電由12 V直流電源提供。

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          2.1 硬件設計

          電阻網(wǎng)絡的電路圖如圖3所示,利用電壓疊加定理和電阻分壓計算分析可知,其輸出為Vout=(1/2×Viol+1/4×Vio2+1/8×Vio3+…+1/256×Vio8)×Vcc。它僅由兩種阻值的電阻組成,阻值選取容易,其成本也低。

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          低通濾波和功率放大電路如圖4所示,設計中采用了二階無源低通濾波器,功率放大器選擇TI公司的LM386,它適合放大低電壓的音頻信號。圖4中R1、R2、C5、C6組成二階低通濾波器,其在下降率為6 dB時的截止頻率為16kHz,用以播放采樣頻率為22.05 kHz的WAV語音。C7、

          R3組成了一階高通濾波器。此處電壓增益為20 dB,C3為隔直電容。LS1接0.5 W/8 Ω的喇叭。

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          2.2 軟件設計

          本系統(tǒng)在硬件平臺的支持下,采用狀態(tài)機的形式完成對SD卡的讀取、觸摸控制信號的獲取、WAV文件的播放以及WAV的文件名和進度等信息的顯示。SD卡讀取及LCD顯示驅動現(xiàn)已比較成熟,此處不再展開。其中的關鍵點在于保證WAV音頻高音質流暢播放的“同時”,完成控制及顯示等功能。為實現(xiàn)這一目標,本設計用另一個定時器來計算下次指令執(zhí)行所剩時間,低于某一閾值則暫停觸控信號的獲取及信息的更新顯示,優(yōu)先保證音頻能流暢播放。實驗表明,該方法在觸控及LCD顯示上并無明顯延遲。其軟件流程圖如圖5所示。

          PWM結合電阻網(wǎng)絡實現(xiàn)16位WAV語音播放

          結語

          語音的頻率范圍為300~3 000 Hz,而音樂的頻率范圍為20 Hz~20 kHz,在PWM語音播放器中需要注意的是PWM的頻率一般是低通濾波器截止頻率的4倍以上,所以在播放音樂時可根據(jù)實際需要提高聲音的PWM頻率,還可以修改低通濾波器的電容參數(shù)(C5、C6),將電容減小,并增大濾波器的截止頻率,從而達到音樂的頻帶要求。

          該方案采用PWM并結合電阻網(wǎng)絡的形式,其結構簡單,性價比高?,F(xiàn)單片機的主頻很容易突破12 MHz,加上MSP430F5529為16位單片機,其調制PWM的精度可達10位以上,基本彌補了數(shù)據(jù)的逼近處理帶來的誤差,提高了整個系統(tǒng)的語音播放音質。該方案可廣泛用于火車站的播報提醒、銀行等場合的叫號系統(tǒng)、電話應答機以及各種需要高音質語音播報的場合。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();