《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 一款音頻CODEC芯片的設(shè)計與實現(xiàn)

一款音頻CODEC芯片的設(shè)計與實現(xiàn)

2009-06-10
作者:倪新永,莊圣賢,舒鑫東

??? 摘? 要: 設(shè)計了一種可用于語音信號處理的CODEC芯片,討論了濾波器組的多級實現(xiàn)。設(shè)計中充分利用順序執(zhí)行、左右聲道共享電路、時分復(fù)用等思想優(yōu)化了電路面積。該芯片設(shè)計采用Silterra18標準CMOS工藝流片成功,通過測試完全達到了設(shè)計要求。?

????關(guān)鍵詞: 音頻CODEC;抽取濾波器;多級實現(xiàn)

?

??? 近年來,音頻CODEC被廣泛應(yīng)用于數(shù)字電話、MP3、PDA等便攜式設(shè)備中,其核心在于模數(shù)轉(zhuǎn)換器的設(shè)計。本文設(shè)計了一種可廣泛應(yīng)用于數(shù)字音頻領(lǐng)域的CODEC芯片,它主要包括抽取濾波器和插值濾波器組的設(shè)計,并采用過采樣技術(shù)和多級濾波結(jié)構(gòu)以簡化濾波器的設(shè)計。?

1 系統(tǒng)結(jié)構(gòu)?

??? 由于插值濾波器和抽取濾波器的實現(xiàn)結(jié)構(gòu)非常類似,只是信號流的方向相反,通過簡單的置換關(guān)系就能得到插值濾波器的實現(xiàn),所以本文只詳細介紹抽取濾波器組的實現(xiàn)。?

??? 抽取濾波器組的系統(tǒng)結(jié)構(gòu)如圖1所示。該設(shè)計輸出采樣率為44.1 kHz,輸出精度16 bit。從SDM輸出的數(shù)字信號進入CIC濾波器做34倍的抽取,然后進入高通濾波去除直流分量,再進入240階FIR濾波器做4倍的抽取,最后從I2S數(shù)字音頻接口輸出。

?

?

2 系統(tǒng)實現(xiàn)?

2.1 CIC抽取濾波器?

??? 級聯(lián)積分梳狀濾波器是一種簡單的整系數(shù)濾波器,優(yōu)點是可以用簡單的積分器和減法器實現(xiàn)較高的過采樣倍數(shù)。其系統(tǒng)函數(shù)為:?

?????

式中M為過采樣倍數(shù),N為級聯(lián)CIC濾波器的個數(shù)。?

??? 通過Matlab仿真4階CIC,在實現(xiàn)所需要的抽取倍數(shù)的同時還能濾除帶外諧波,其實現(xiàn)結(jié)構(gòu)如圖2所示。?

?

?

??? 由CIC濾波器的結(jié)構(gòu)可知,每級必須保持一定的精度,否則會發(fā)生運算溢出。由字長公式計算得出當過采樣率為34時,字長需大于20.4,本設(shè)計中CIC濾波器字長選擇22 bit。SDM調(diào)制后的信號在CIC濾波器的阻帶截止頻率176 kHz處有60 dB的衰減,因此只需設(shè)計CIC濾波器在阻帶截止頻率176 kHz處為38 dB即可。為了保證設(shè)計冗余,選取其在176 kHz處的衰減為90 dB。圖3是CIC濾波器輸出信號的頻譜,可看出它能滿足設(shè)計要求。?

?

?

2.2 高通濾波器?

??? 因為在SDM輸出的數(shù)字信號中用0代表-1,引入的直流分量需要濾除。本設(shè)計采用求平均值去直流的方法:去直流又分為加速和不加速模式,加速模式是通過N次累加所得的和再除以N,可得到一個加速模式下的平均值,它只用約10~20 ms就能計算出一個平均值。不加速模式是實際中用到的,它先求出兩個相鄰周期的平均值,然后通過加+1或-1使相鄰周期的平均值相同,從而避免相鄰周期減去的平均值不同產(chǎn)生的高頻噪聲。它要大約每過500 ms~1 s為一個累加周期才能計算出一個CIC濾波器輸出數(shù)據(jù)的平均值。然后用輸入的數(shù)據(jù)減去平均值就可去掉直流。圖4為高通濾波器的實現(xiàn)框圖。?

?

?

2.3 FIR抽取濾波器?

??? FIR濾波器除了要完成4倍的抽取還要對CIC濾波器的衰減進行補償。當級聯(lián)級數(shù)為4,過采樣倍數(shù)為34時,CIC衰減的幅度為1.4 dB。本設(shè)計采用基于切比雪夫逼近的等波紋FIR設(shè)計方法,該方法能使濾波器在信號頻帶與理想特性的逼近誤差的峰值最小。采用matlab中提供的Remez函數(shù),調(diào)整其中的參數(shù)a0和f0,經(jīng)過多次調(diào)試可以得出一組濾波器系數(shù),使其在0~20 kHz范圍內(nèi)的幅頻特性曲線有一定的抬高。圖5為FIR濾波器補償后的整體幅頻響應(yīng)。?

?

?

??? 當FIR濾波器的實現(xiàn)采用傳統(tǒng)的多相結(jié)構(gòu)時,將會需要大量的乘法器和加法器。本設(shè)計采用順序執(zhí)行的方式實現(xiàn),利用ROM存儲濾波器系數(shù),RAM存儲濾波器輸入數(shù)據(jù),在MCLK的一個時鐘節(jié)拍運算一次乘累加,就可把長度為240的濾波器分為240次來運算。圖6為該濾波器實現(xiàn)結(jié)構(gòu)圖。?

?

?

??? rom數(shù)據(jù)的讀?。河捎跒V波器的系數(shù)是對稱的,只需將120個濾波器系數(shù)存入rom中,這樣可以節(jié)省一半的存儲空間。讀取系數(shù)時,地址先依次遞增,等到最后一個系數(shù)讀出后再依次遞減,便可讀出所有的240個濾波器系數(shù)。?

??? ram數(shù)據(jù)的讀寫:在一次濾波過程中(即在一個LRCK周期中),首先往ram中寫入一個數(shù)據(jù),接著連續(xù)60次讀出ram數(shù)據(jù);反復(fù)4次,即往ram中寫入了4個數(shù)據(jù),讀出了240個數(shù)據(jù);再與讀出的rom數(shù)據(jù)相乘可得一次濾波結(jié)果。ram讀數(shù)據(jù)和rom讀數(shù)據(jù)是同步的。由此也可看出,在一個LRCK周期中寫入4個數(shù)據(jù),經(jīng)過運算送出一個數(shù)據(jù)完成了4倍的抽取。?

3 芯片實現(xiàn)與測試?

??? 本設(shè)計采用Silterra18標準CMOS工藝一次流片成功,其數(shù)字電路版圖如圖7所示。?

?

?

??? 數(shù)字電路面積2.04 mm2,Standard cell共12 228個,其中register為3 027個。?

??? 最后對芯片進行了THD+N、幅頻特性測試和FFT分析,其結(jié)果在設(shè)計允許的范圍之內(nèi)。圖8為ADC+DAC的FFT測試波形,其信噪比也達到了設(shè)計要求。?

?

?

??? 通過數(shù)次在不同負載條件下的測試分析,該設(shè)計的音頻CODEC芯片滿足設(shè)計指標要求。?

??? 本文根據(jù)數(shù)字音頻設(shè)備的需要設(shè)計了一款CODEC芯片,它包括兩個濾波器組的設(shè)計:抽取濾波器和插值濾波器。設(shè)計中CIC濾波器的實現(xiàn)比較簡單,可以實現(xiàn)較大的抽取及插值倍數(shù),高通濾波器采用了較為巧妙的方法去除直流分量,F(xiàn)IR濾波器不但補償了CIC濾波器的帶內(nèi)衰減,還通過順序結(jié)構(gòu)的思想設(shè)計了基于rom和ram實現(xiàn)FIR,共享了乘、加法單元,優(yōu)化了電路面積。?

參考文獻?

[1] 飛思科技產(chǎn)品研發(fā)中心.MATLAB7基礎(chǔ)與提高.北京:電子工業(yè)出版社,2005.?

[2] 皇甫堪,陳建文,樓生強.現(xiàn)代數(shù)字信號處理.北京:電子工業(yè)出版社,2003.?

[3] 帕里,陳弘毅.VLSI數(shù)字信號處理系統(tǒng):設(shè)計與實現(xiàn).北京:機械工業(yè)出版社,2004.?

[4] (美)克勞切拉賓納著.多抽樣率數(shù)字信號處理.鄧廣增譯.北京:人民郵電出版社,1988.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。