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

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 基于FPGA的音頻處理芯片的設(shè)計

          基于FPGA的音頻處理芯片的設(shè)計

          作者: 時間:2010-08-27 來源:網(wǎng)絡(luò) 收藏

          y(n)=2-1(...2-1(2-1(2-1u1+u2)+u3)+...)+u16)

          uj=xj(1)+ xj(2)+……+ xj(rj)

          其中1≤j≤16, xj(i)∈{x(n-k)}, 1≤i≤rj

          由前面的系數(shù),可以得到:

          U1 = x(n-6)-x(n-7); U2 = -x(n)+x(n-5);

          U3 = -x(n-3)-x(n-7); U4 = x(n)+x(n-4);

          U5 = -x(n-1)-x(n-6); U6 = -x(n-2);

          U7 = x(n)+x(n-5); U8 = x(n-3)-x(n-4)+x(n-7);

          U5 = -x(n-1)-x(n-6); U10 = 0;

          U11 = x(n-5); U12 = x(n-2)-x(n-4);

          U13 = x(n-1)+x(n-3); U14 = -x(n)-x(n-2);

          U15 = x(n-1); U16 = x(n);

          按照這個算法,先求U1的值,然后將結(jié)果右移一位,再將結(jié)果與U2的值相加,依此類推,即可得到y(tǒng)(n)。我們使用若干次加法和16次移位操作即可完成FIR濾波,算法的復(fù)雜度和功耗都大大地降低。

          3
          3.1 結(jié)構(gòu)概述
          在整個的結(jié)構(gòu)中,我們沒有采用任何乘法器,取而代之的是一個加法器和移位器。加法器的結(jié)果輸出到移位器,移位器的輸出再反饋到加法器的輸入端,循環(huán)運算實現(xiàn)濾波器的功能。

          考慮7階的FIR濾波器,需要對x進行8次采樣,所以輸入的數(shù)據(jù)都應(yīng)該保存在一個8*16的DataRAM之中(16bit的采樣精度)。系數(shù)RAM(ProgramRAM)的大小取決于操作的個數(shù),在上面提到的算法中,一共有28個操作,所以ProgramRAM的大小不能小于28,在這里我們使用了一個32*6的ProgramRAM,以滿足算法需要。

          考慮到的可擴展性,我們在音頻處理芯片外設(shè)置一個EEPROM用來存放系數(shù),當芯片啟動的時候,從EEPROM中將數(shù)據(jù)轉(zhuǎn)存到ProgramRAM中,以適應(yīng)不同F(xiàn)IR濾波器的系數(shù),極大地增強了音頻處理芯片的可編程性。

          音頻處理芯片的模塊主要包括EEPROM, ProgramRAM, DataRAM,串并轉(zhuǎn)換模塊,并串轉(zhuǎn)換模塊,地址生成模塊,主控制器模塊。

          3.2 尋址方式描述
          在系統(tǒng)啟動時,附加的EEPROM儲存的系統(tǒng)參數(shù)值,包括輸入信號在DataRAM中的地址值和相應(yīng)的標志位(32*6bit) ,依次讀入ProgramRAM中去。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();