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

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

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

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

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

?

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

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

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

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

?

?

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

2.1 CIC抽取濾波器?

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

?????

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

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

?

?

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

?

?

2.2 高通濾波器?

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

?

?

2.3 FIR抽取濾波器?

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

?

?

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

?

?

??? rom數(shù)據(jù)的讀取:由于濾波器的系數(shù)是對(duì)稱(chēng)的,只需將120個(gè)濾波器系數(shù)存入rom中,這樣可以節(jié)省一半的存儲(chǔ)空間。讀取系數(shù)時(shí),地址先依次遞增,等到最后一個(gè)系數(shù)讀出后再依次遞減,便可讀出所有的240個(gè)濾波器系數(shù)。?

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

3 芯片實(shí)現(xiàn)與測(cè)試?

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

?

?

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

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

?

?

??? 通過(guò)數(shù)次在不同負(fù)載條件下的測(cè)試分析,該設(shè)計(jì)的音頻CODEC芯片滿(mǎn)足設(shè)計(jì)指標(biāo)要求。?

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

參考文獻(xiàn)?

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

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

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

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

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