基于AVR和FPGA高精度数字式移相发生器的设计

发布者:hylh2008最新更新时间:2008-01-04 来源: 现代电子技术关键字:AVR  FPGA  移相发生器  编码  解码  基频  共振峰参数 手机看文章 扫描二维码
随时随地手机看文章
1引 言

  语音编码算法利用语音信号的冗余信息及某些人耳不敏感的信息,可以在低比特率上获得较高质量的重建语音,压缩编码一直是通信中的关键技术。语音信号研究者们一直在寻求一种在保持语音质量不显著下降的情况下使语音信号的编码比特率最小的方法,特别地,低比特率语音编码体制(比特率在4.8 kb/s以下)因其广泛的需求而得到研究者的重视。

  语音编码器的性能常常用比特率、延时、复杂度和质量4个属性来进行衡量,因此,在分析语音编码器的性能时,主要应该考虑这些属性。值得注意的是,这些属性之间不是孤立的,而是相互紧密联系的,例如,低比特率的编码器一般比高比特率的编码器有更大的延时、更高的算法复杂度和较低的语音质量。因此在对各种编码算法进行取舍时,应根据实际应用环境,在这些属性之间进行权衡。

  共振峰参数编码算法在低码率的音频编码中应用越来越广泛。与基于时域波形的压缩算法相比,他在传输的过程中只需要传输构造信号所用的基频和共振峰参数,因此可以大大地降低传输的码率,实现低码率下的多媒体通信。而且,基于共振峰参数的算法无须严格限制信号的结构,他可以灵活地描述音频信号的特征。这一灵活性决定了基于共振峰参数的算法,可以满足对音频信号进行方便访问和控制的需要。

2 基频及共振峰提取

  基频与共振峰参数的准确提取对于共振峰编码算法质量起着至关重要的作用。在本课题中采用改进的双重傅里叶变换算法进行语音参数提取。本课题分析算法所需要的语音频谱是由机语公司的SA-0505语谱仪分析得到。机语公司的SA-0505频谱分析仪最高分辨精度为频率分辨精度为5 Hz,时间分辨精度为5 ms。分析结果是各频率分量的幅值函数,不包含相位信息。由于语音信号中相位信息不影响语音分辨,所以在此基础上的进一步工作有很大意义。

  在实际的语音参数提取过程中,首先应用机语语谱仪分析语音信号,得到语音的时频分析图谱。如图l所示。

    对各时刻的频谱序列进行傅里叶变换,图2所示时刻的频谱序列的傅里叶变换如图3所示。

  从图2中可以看出,由于实际的语音是准周期信号和实际上是短时间信号的频率分析,其频谱序列不是周期性冲激函数序列的采样,而是近似三角脉冲的采样,所以其傅里叶变换的幅度谱呈现高频衰减性质。从图3中可以观察到频谱序列的幅度谱是周期信号和高频衰减信号的乘积。实际语音分析过程中各时刻频谱序列的傅里叶变换后衰减幅度差异很大,低频部分有时会出现分支脉冲的幅值大于下一个周期主脉冲的幅值,这对信号周期地分辨产生一定的干扰,而无法准确估计基频值。所以本文在确定基频时利用高频部分衰减幅度差异较小的特点,分析其周期特性并用来计算语音基频。

  共振峰参数包括共振峰频率、频带宽度和幅值,共振峰信息包含在语音频谱的包络中。因此共振峰参数提取的关键是估计语音频谱包络,并认为谱包络中的最大值就是共振峰。利用语音频谱傅里叶变换相应的低频部分进行逆变换,就可以得到语音频谱的包络曲线。依据频谱包络线各峰值能量的大小确定出第1~第4共振峰,如图4所示。

  对于提取参数准确性的测试,可以在时域和频域上与人工分析的结果进行比较,这种方法可以定量计算出提取算法的准确度,但工作量大不易实现。由于基频和共振峰两个基本信息是语音信号辨别的主要特征点,所以判断两个参数重建语音信号的语音质量就可了解参数提取算法的性能。语音信号重建采用谐波合成方法,即首先根据共振峰信息建立语音频谱的包络,然后根据频谱包络确定基频及其各次谐波的幅值并合成语音信号。本文应用所得到的参数重新生成语音,主观分辨合成语音的质量,据此判断参数提取算法准确度。在短时间内语音信号可以被看作是平稳信号,所以每一帧的语音频谱也可以简化为一组离散信号,离散的量化值就是基频。根据离散频谱利用式(1),式(2)合成语音信号:

  V(t)为合成语音信号,fp为基频。为避免出现尖峰信号,设定了相位φn(ω)函数:

  比较3种方式确定的离散频谱所合成的语音信号:

  (1)直接对原语谱图离散;

  (2)对所得的语谱包络离散;

  (3)对根据共振峰值确定的频谱包络离散。

  此方式的具体方案是:由于人耳对共振峰的参数中的中心频率敏感,而对幅值和带宽不敏感,所以本文只用共振峰的中心频率和最大幅值两个参数信息来合成语音。

  根据成年人语音信号的共振峰带宽大约300 Hz,将各共振峰的带宽统一定为300 Hz。重新作语音频谱包络线时,以各共振峰中心频率值为中点、最大能量为幅度作宽度为300 Hz的门信号,然后根据新生成的包络线确定基频的各次谐波的幅值。用第一种语谱图合成语音听起来只是音质略有变化,可以清晰分辨每个音节,完整保留原语音的语调、语气和说话人音质特征等信息。这说明算法能够准确提取基频信息,而且这种合成方法可以合成出高质量的语音信号。用第二种语谱图合成的语音中说话人音质特征有些不清楚,其他方面与第一种相同。第三种语谱图和成的语音中说话人音质特征完全被过滤掉,个别音节有些含糊,但语气、语调信息完整保留。

3 共振峰语音编码

  共振峰编码算法需要基频和共振峰两种参数。通过实验表明应用基频、共振峰信息不但可以重建语音中的元音和浊辅音部分,还可以重建清辅音部分。首先是因为参数提取算法在清辅音部分时所确定的基频参数不稳定,根据不稳定参数重建的语音信号会出现跳变,这种跳变信号与清辅音的频谱相似。更重要的原因人耳对于辅音的听辨要点是过渡音征,所以只要准确提供共振峰值就能重建清辅音部分。根据语音信号合成的研究表明,表示浊音信号最主要的是前三个共振峰。一个语音信号的共振峰模型,只用前三个时变共振峰频率就可以得到可懂度很好的合成浊音。考虑到特殊情况下可能会出现伪共振峰,本算法在确定编码参数时根据共振峰幅值大小保留4个共振峰参数。

  3.1 参数量化

  语音编码算法最主要的两个主要指标是比特率和语音质量。低速率语音编码算法要求在语音可懂的基础上最大限度地降低比特率。为确定各参数的最大量化度,我们对各参数进行不同程度量化后重新合成语音,并评价各量化程度的语音质量。

  正常语音的基频变化范围为50~500 Hz,基频量化实验时发现当基频量化精度为20 Hz时,重建的语音信号仍然清晰。所以编码时基频最低可以用5 b表示,但为了提高抗误码能力用8 b对基频进行编码。共振峰的量化分为频率值量化和幅值量化。根据参数提取算法可知,共振峰曲线是基频及其各次谐波的包络线。我们可以认为语音频谱是基频及其谐波对共振峰曲线采样信号,所以可以以基频值作为描述共振峰曲线的精度。共振峰的中心频率值就可以用基频的第几次谐波确定,所以变化范围是1~32,编码时用5 b表示。人耳对共振峰幅值不敏感,通过语音实验表明当时域上以16位采样精度录制语音,信号振幅变化范围210~215时用3 b对幅值编码时就能清楚表现语音。所以对于每个共振峰可以用8 b量化,其中5 b表示中心频率,3 b表示幅值。

  3.2 编码规则

  编码中语音帧周期可以分为动态和固定两种形式。动态形式是每帧的周期根据基频来确定,即每帧是一个基频周期。这种方式在解码时语音清晰度自然度最好,但由于帧周期的长度小导致编码率高。固定形式是帧的周期是一定的,根据实际情况可以设定为10~40 ms。周期长度与音质成反比,与压缩率成正比。本算法中帧周期采用固定形式设定为25 ms。根据频谱能量值判断是否有语音,当没有语音时以一个0字节编码。我们采用一个字节表示静音帧,是为了提高算法的抗误码能力。

  3.3 结果

  用本算法对一段正常语速朗读的语音材料进行编码及解码,解码后语音可懂性好,平均码率1 400 b/s。

4 结 语

  理论上只要有准确的基频和共振峰参数,就可以恢复出原语音信号除嗓音音质特征外其他所有特征。本算法所用的参数只有基频和4个共振峰,对于语音信号这些参数是分辨语音信息的特征参数。当编码信息中只含有这些参数,则可以认为就每帧信号来讲没有冗余信息,也就是对于每帧信号编码达到了最大压缩。如果在本算法基础上要进一步提高压缩率,只能针对帧与帧间的关联来设计,如矢量量化算法等。

  本编码算法的延时短、复杂度低,可以用于实时的语音信号传输。在比特率、延时、复杂度3个评价指标上其性能良好,解码后语音有轻微的机器音和个别音节含糊。导致语音音质差的因素有两个:一是参数量化时出现误差,根据实验分析误差主要是共振峰量化误差,所以量化编码时根据实际要求在音质和编码率间进行选择;二是语音重建算法,本文重建时只是简单地用门函数表示共振峰幅频特性,如果能在深入研究共振峰幅频特性的基础上改进重建算法,解码后语音音质一定会得到改善。

关键字:AVR  FPGA  移相发生器  编码  解码  基频  共振峰参数 引用地址:基于AVR和FPGA高精度数字式移相发生器的设计

上一篇:如何用C语言开发DSP嵌入式系统
下一篇:基于GSM模块的LED显示屏设计

推荐阅读最新更新时间:2024-05-02 20:39

基于AVR看门狗的Reset程序范例解读
AVR看门狗一个硬件单元,当程序由于某种原因跑“飞”了,它就Reset程序。就像小狗看门一样。 //Watchdog ini TI alize // prescale: 2048K void watchdog_init(void) { WDR(); //this prevents a TI mout on enabling WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs } 上面是用ICC的App Builder生成的看门狗初始化程序,这些语句达不到初始化看门狗的目的,需要在中间加一句WDTCR = 0x1F; 。最后一行代码提醒狗主人,别忘了及时清
[单片机]
基于<font color='red'>AVR</font>看门狗的Reset程序范例解读
AVR定时器程序
#include mega128.h //头文件 interrupt void timer0(void) //定时器中断服务函数 { TCNT0=0xff; // 重新设置TCNT0的初值 PORTD.4 = ~PORTD.4; // PD4反输出 } void main(void) { DDRD=0XF0; //PD口方向寄存器,高为输出,低为输入 PORTD=0XFF; //PD口数据寄存器全写1 TIMSK=0X01 ; //开定时器、计数器0 TCCR0=0X07; //定时器时钟控制寄存器 TCNT0=0XFF; //
[单片机]
多制式语音编码及其DSP实现
摘要:介绍了一种多制式语音编解码器,在单片TMS320VC5409上完成4路语音的全双工通信,并实现G.729a、CVSD、ADPCM算法之间的编码转换,给出了算法的软硬件实现、算法的运算量及所占用的硬件资源。 关键词:多制式语音编解码 TMS320VC5409 G.729a CVSD ADPCM 在各种通信设备中,实时的语音压缩通常在DSP上实现。单一编码算法,由于码率和算法固定,系统的灵活性较差。越来越多的通信服务要求能实现多种、多路编码算法,提供一定范围内的编码速率和编码算法的多种选择,例如软件无线电、IP电话、多媒体终端等。 G.729a是ITU制定的一种高质量的中速率语音编码标准,编码速率为8kbps,目前已在许
[嵌入式]
Synopsys全新基于FPGA的原型验证解决方案将系统性能提升高达3倍
亮点: • 借助增强型HapsTrak 3 I/O连接器技术以及高速时域多路复用技术,使系统性能提升高达3倍 • 模块化系统架构可覆盖从1200万到1.44亿个专用集成电路门,以适用于从单个IP单元到处理器子系统再到完整SoC的各种规模的设计 • Synopsys Certify®软件中的新功能与HAPS灵活的互连架构相结合,将多FPGA分区的产能加速高达10倍 • 增强的UMR总线(Universal Multi-Resource Bus)带宽高达400MB/s,有助于提升纠错的能力,并与Synopsys的Virtualizer工具一起,提升混合原型验证的性能。 • 经过预先验证的Synopsys DesignWare® IP与
[嵌入式]
AVR单片机的RTOS-AVRX应用
摘 要:详细介绍AVR系列单片机的专用实时嵌入式操作系统AVRX的特点,并以ATmega16单片机为平台,结合AVR单片机应用实例分析AVRX的内核代码及移植方法,并对系统的相关性能进行测试。采用AVRX可以大大简化程序设计,满足实时要求,降低编程难度,提高系统可靠性。本文为在AVR单片机上进行嵌入式系统开发提供了参考。 关键词: RTOS AVRX AVR单片机移植 系统测试 引 言 随着技术的发展,嵌入式系统的设计及应用对人们的生活产生了很大的影响,并将逐渐改变人们未来的生活方式。在特定的操作系统上开发应用程序,可以使开发人员忽略掉很多底层硬件细节,使得应用程序调试更方便、易于维护、开发周期缩短并且降低开发成本,因而嵌入
[单片机]
STM32编码器模式详解(一)---理论
一、编码器接口模式 选择编码器接口模式的方法是:如果计数器只在TI2的边沿计数,则置TIMx_SMCR寄存器中的SMS=001;如果只在TI1边沿计数,则置SMS=010;如果计数器同时在TI1和TI2边沿计数,则置SMS=011。 通过设置TIMx_CCER寄存器中的CC1P和CC2P位,可以选择TI1和TI2极性;如果需要,还可以对输入滤波器编程。 两个输入TI1和TI2被用来作为增量编码器的接口。参看表77,假定计数器已经启动(TIMx_CR1寄存器中的CEN=’1’),计数器由每次在TI1FP1或TI2FP2上的有效跳变驱动。TI1FP1和TI2FP2是TI1和TI2在通过输入滤波器和极性控制后的信号;如果没有滤波
[单片机]
STM32<font color='red'>编码</font>器模式详解(一)---理论
解析工程师所熟知的CAN、UART、IIC、USB等协议解码
随着硬件架构的不断更新,示波器早已不是只能“示波”的仪器了,协议解码就是典型代表!IIC、SPI、UART、CAN、LIN…我们为ZDS系列示波器最多免费配备了37种协议解码分析插件,这么多协议分别用在哪些地方,具体又如何使用呢? 示波器从模拟示波器发展到数字示波器,带来了许多大的改变,例如信号采集、带宽、采样率、屏显等。同样,这样的改变也体现在“协议解码”上,新的解码方式将人们从“0”,“1”的世界中解放出来,大大提高了工作效率。 最初的示波器只是一个简单的波形显示兼数据测量,而我们需要获取协议波形深层次的含义,从而去了解通信的数据正常传输。例如:观察IIC协议,我们需要按照时钟与数据信号一位一位对应,去进行0/1的组合
[测试测量]
解析工程师所熟知的CAN、UART、IIC、USB等协议<font color='red'>解码</font>
走近小马智行,解码这家自动驾驶独角兽的技术链条
小马智行的 Robotaxi 已经进一步融入了公众的生活之中。 如果你在北京亦庄的路上溜达一圈,你会发现,小马智行的 Robotaxi 已经进一步融入了生活之中。 继广州之后,这家自动驾驶独角兽近日全面向北京公众扩大开放 Robotaxi 服务,站点约有 150 个,范围覆盖北京经开区 150 平方公里的核心区域。 体验的方式也很简单——下载 PonyPilot+ APP、就近选择站点、耐心等待。 只要在运营时间内(早 8:30 - 晚 22:30),不管是早晚高峰,还是雾霾暴雨,属于你的那一辆 Robotaxi 都会安全地接上你,再将你送达目的地。 加上此前政策先行区的开设,从亦庄到大兴机场之间的 Rob
[汽车电子]
走近小马智行,<font color='red'>解码</font>这家自动驾驶独角兽的技术链条
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved