《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 一款音频CODEC芯片的设计与实现

一款音频CODEC芯片的设计与实现

2009-06-10
作者:倪新永,庄圣贤,舒鑫东

    摘  要: 设计了一种可用于语音信号处理的CODEC芯片,讨论了滤波器组的多级实现。设计中充分利用顺序执行、左右声道共享电路、时分复用等思想优化了电路面积。该芯片设计采用Silterra18标准CMOS工艺流片成功,通过测试完全达到了设计要求。 

    关键词: 音频CODEC;抽取滤波器;多级实现

 

    近年来,音频CODEC被广泛应用于数字电话、MP3、PDA等便携式设备中,其核心在于模数转换器的设计。本文设计了一种可广泛应用于数字音频领域的CODEC芯片,它主要包括抽取滤波器和插值滤波器组的设计,并采用过采样技术和多级滤波结构以简化滤波器的设计。 

1 系统结构 

    由于插值滤波器和抽取滤波器的实现结构非常类似,只是信号流的方向相反,通过简单的置换关系就能得到插值滤波器的实现,所以本文只详细介绍抽取滤波器组的实现。 

    抽取滤波器组的系统结构如图1所示。该设计输出采样率为44.1 kHz,输出精度16 bit。从SDM输出的数字信号进入CIC滤波器做34倍的抽取,然后进入高通滤波去除直流分量,再进入240阶FIR滤波器做4倍的抽取,最后从I2S数字音频接口输出。

 

 

2 系统实现 

2.1 CIC抽取滤波器 

    级联积分梳状滤波器是一种简单的整系数滤波器,优点是可以用简单的积分器和减法器实现较高的过采样倍数。其系统函数为: 

     

式中M为过采样倍数,N为级联CIC滤波器的个数。 

    通过Matlab仿真4阶CIC,在实现所需要的抽取倍数的同时还能滤除带外谐波,其实现结构如图2所示。 

 

 

    由CIC滤波器的结构可知,每级必须保持一定的精度,否则会发生运算溢出。由字长公式计算得出当过采样率为34时,字长需大于20.4,本设计中CIC滤波器字长选择22 bit。SDM调制后的信号在CIC滤波器的阻带截止频率176 kHz处有60 dB的衰减,因此只需设计CIC滤波器在阻带截止频率176 kHz处为38 dB即可。为了保证设计冗余,选取其在176 kHz处的衰减为90 dB。图3是CIC滤波器输出信号的频谱,可看出它能满足设计要求。 

 

 

2.2 高通滤波器 

    因为在SDM输出的数字信号中用0代表-1,引入的直流分量需要滤除。本设计采用求平均值去直流的方法:去直流又分为加速和不加速模式,加速模式是通过N次累加所得的和再除以N,可得到一个加速模式下的平均值,它只用约10~20 ms就能计算出一个平均值。不加速模式是实际中用到的,它先求出两个相邻周期的平均值,然后通过加+1或-1使相邻周期的平均值相同,从而避免相邻周期减去的平均值不同产生的高频噪声。它要大约每过500 ms~1 s为一个累加周期才能计算出一个CIC滤波器输出数据的平均值。然后用输入的数据减去平均值就可去掉直流。图4为高通滤波器的实现框图。 

 

 

2.3 FIR抽取滤波器 

    FIR滤波器除了要完成4倍的抽取还要对CIC滤波器的衰减进行补偿。当级联级数为4,过采样倍数为34时,CIC衰减的幅度为1.4 dB。本设计采用基于切比雪夫逼近的等波纹FIR设计方法,该方法能使滤波器在信号频带与理想特性的逼近误差的峰值最小。采用matlab中提供的Remez函数,调整其中的参数a0和f0,经过多次调试可以得出一组滤波器系数,使其在0~20 kHz范围内的幅频特性曲线有一定的抬高。图5为FIR滤波器补偿后的整体幅频响应。 

 

 

    当FIR滤波器的实现采用传统的多相结构时,将会需要大量的乘法器和加法器。本设计采用顺序执行的方式实现,利用ROM存储滤波器系数,RAM存储滤波器输入数据,在MCLK的一个时钟节拍运算一次乘累加,就可把长度为240的滤波器分为240次来运算。图6为该滤波器实现结构图。 

 

 

    rom数据的读取:由于滤波器的系数是对称的,只需将120个滤波器系数存入rom中,这样可以节省一半的存储空间。读取系数时,地址先依次递增,等到最后一个系数读出后再依次递减,便可读出所有的240个滤波器系数。 

    ram数据的读写:在一次滤波过程中(即在一个LRCK周期中),首先往ram中写入一个数据,接着连续60次读出ram数据;反复4次,即往ram中写入了4个数据,读出了240个数据;再与读出的rom数据相乘可得一次滤波结果。ram读数据和rom读数据是同步的。由此也可看出,在一个LRCK周期中写入4个数据,经过运算送出一个数据完成了4倍的抽取。 

3 芯片实现与测试 

    本设计采用Silterra18标准CMOS工艺一次流片成功,其数字电路版图如图7所示。 

 

 

    数字电路面积2.04 mm2,Standard cell共12 228个,其中register为3 027个。 

    最后对芯片进行了THD+N、幅频特性测试和FFT分析,其结果在设计允许的范围之内。图8为ADC+DAC的FFT测试波形,其信噪比也达到了设计要求。 

 

 

    通过数次在不同负载条件下的测试分析,该设计的音频CODEC芯片满足设计指标要求。 

    本文根据数字音频设备的需要设计了一款CODEC芯片,它包括两个滤波器组的设计:抽取滤波器和插值滤波器。设计中CIC滤波器的实现比较简单,可以实现较大的抽取及插值倍数,高通滤波器采用了较为巧妙的方法去除直流分量,FIR滤波器不但补偿了CIC滤波器的带内衰减,还通过顺序结构的思想设计了基于rom和ram实现FIR,共享了乘、加法单元,优化了电路面积。 

参考文献 

[1] 飞思科技产品研发中心.MATLAB7基础与提高.北京:电子工业出版社,2005. 

[2] 皇甫堪,陈建文,楼生强.现代数字信号处理.北京:电子工业出版社,2003. 

[3] 帕里,陈弘毅.VLSI数字信号处理系统:设计与实现.北京:机械工业出版社,2004. 

[4] (美)克劳切拉宾纳著.多抽样率数字信号处理.邓广增译.北京:人民邮电出版社,1988.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。