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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ADPCM的數(shù)字語音存儲與回放系統(tǒng)設計方案

          基于ADPCM的數(shù)字語音存儲與回放系統(tǒng)設計方案

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

            

          4 程序設計

            系統(tǒng)軟件部分由單片機的C51語言和FPGA的Ver-ilogHDL語言組成。其中,單片機主要完成用戶輸入輸出處理和系統(tǒng)的控制,F(xiàn)PGA主要完成需要嚴格時序控制(如數(shù)據(jù)采集、頻譜顯示)以及大規(guī)模數(shù)據(jù)計算(如FFT、 編碼)等。整個系統(tǒng)的設計中模塊化思想貫穿始終,采用菜單鍵選擇所用功能,系統(tǒng)流程圖如圖10 所示。

            

            5方案測試與結果

            5.1 測試儀器

            測試儀器包括直流穩(wěn)壓穩(wěn)流電源,型號為SG1733SB3A;60M 數(shù)字存儲示波器,型號為TektronixTDS1002;秒表。

            5.2 方案測試與結果

            5.2.1 語音存儲與回放效果測試

           ?。?)一名組員面對麥克風以不同大小的聲音說話,錄下一段語音,記錄回放語音的效果,結果見表1.

            

           ?。?)由耳機輸入不同音量的立體聲音樂,錄下一段語音,記錄回放語音的效果,結果見表2.

            5.2.2 語音存儲時間測試

           ?。?)由耳機不間斷地輸入立體聲音樂,啟用錄音模式,待系統(tǒng)顯示存儲器存滿后,回放語音,用秒表記錄語音回放最長時間,結果見表3.

            

           ?。?)一名組員面對麥克風不間斷地說話,啟用錄音模式,待系統(tǒng)顯示存儲器存滿后,回放語音,用秒表記錄語音回放最長時間,結果見表4.

            

            5.2.3 語音頻譜分析及顯示測試

            由耳機或麥克風輸入一段語音信號,由揚聲器直接播放出來,同時在示波器上實時顯示頻譜。測試結果為當播放的聲音變化時,可觀察到頻譜有相應的明顯變化。

            由于不能明確知道語音信號的實時頻率和幅度信息,故只對頻譜進行了定性測試。

            6總結

            該系統(tǒng)設計方案實現(xiàn)了語音存儲及回放,最長存儲時間達2 min,回放語音效果清晰良好,并能在示波器上實時顯示語音頻譜。采用 編碼在保證回放音質的情況下,極大地提高了存儲器的利用率,并通過對語音信號采用分幀加窗的方法實現(xiàn)了短時頻譜分析。

            另外,系統(tǒng)采取了一系列抗干擾措施以減小噪聲,如數(shù)字地與模擬地分開走線,在一點匯合;電源處采用一個10 μF和0.1 μF的電容并聯(lián)去耦;時鐘走線盡量短等。但系統(tǒng)在語音回放時仍存在一定的噪聲,尤其當輸入語音音量較小時,噪聲更為明顯,這是本方案需要完善的地方


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(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); })();