声码器特殊应用集成电路的制作方法

文档序号:2822126阅读:398来源:国知局
专利名称:声码器特殊应用集成电路的制作方法
本申请是申请日为1995年2月13日申请号为第95190086.2号发明名称为“声码器特殊应用集成电路”的中国专利申请的分案申请。
I.发明领域本发明涉及话音处理。本发明尤其涉及一种在特殊应用集成电路(application specific integrated circuits,简称为ASIC)中实现声码器的新的、改进的方法和装置。
II.相关技术的描述采用数字技术来传输声音已经相当普遍,特别是在长距离数字无线电话中应用更是普遍。若单单采用取样和数字化处理来传送话音,需要每秒64千比特(Kbps)的数据速率来获得普通模拟电话的语音质量。然而,如果采用话音分析,随后再进行恰当编码、传输,并在接收器处合成,就可以大大减小数据速率。在发射机处进行话音分析和编码,而在接收机处进行合成的装置称为声码器。
近年来数字蜂窝电话标准和系统的发展大大刺激了对这些声码器的需要。对更有效地采用已有传输带宽并在接收机处更精确地再现源话音的先进声码器算法的要求增加了执行这些更复杂声码器算法所需的、具有更大运算能力的处理器的需要。
声码器利用话音中的长时间和短时间冗余,需要进行大量数值运算。这些运算包括长序列卷积、矩阵求逆、长序列相关等。这些实时进行的、在话音传输中不引入不可承受的编译码延迟的运算需要强有力的计算资源。
出现数字信号处理器(DSP)在能够进行声码器算法的实时实现方面是一个重要因素。DSP在进行声码器算法的公用算术运算中具有很高的效率。DSP的进展使其运算能力增加到每秒四千万条指令以上的速率。
用作典型目的声码器算法是可变速率编码激励线性预测(variable rate codeexcited linear prediction,简称为CELP)算法。这种算法详见1993年1月14日申请的、申请号为08/004,484的共同待批的专利申请,其标题为“可变速率声码器(Variable Rate Vocoder)”该专利的申请权已转让给本发明的受让人。上述专利申请中的内容在此引述供参考。
下表I是一个对单个20毫秒话音帧采用典型DSP来实施典型声码器算法的编码部分的运行时间轮廓。因为典型声码器算法的编码部分比起译码部分需要多得多的处理,所以表I中只详细列出了编码处理的详细情况。表I中涉及的DSP的时钟频率是40MHz。视运算不同,在一个或多个时钟周期内进行算术运算和其他运算。第一纵列代表典型声码算法的主要运算。第二纵列代表用典型的DSP来完成声码器算法的每一特定运算所需的时钟周期数。第三纵列代表该特定运算点所需的总处理的百分比。典型的声码器算法要求所有运算在20毫秒内进行才能实时实施该算法。这就对所选择的实施该算法的DSP提出一个要求,即DSP能够以所要求的、在20毫秒帧内完成所要求处理的时钟速率(或更高)进行运算。对表I所描述的典型DSP来说,这就将时钟数限制为800,000。
表I
从表I可以看出,基音搜寻和码书搜寻在声码器算法的编码部分处理时间中占75%以上。因为大多数计算负荷集中在这两个搜寻算法内,所以设计进行声码处理的有效ASIC的主要目标在于减少进行这两种运算所需要的时钟周期数。
本发明的方法和装置大大减少了进行这些搜寻运算所必须的指令周期数。本发明还提供了对声码器算法具有特定意义的进行更为有效的运算的优化方法和装置。本发明的方法和装置并非仅限于典型的声码处理运算,或者仅用来进行话音编码或译码。可以预计本方法和装置可以用于任何采用数字信号处理算法的系统(如回声消除器和信道均衡器)。
发明概述本发明是一种用来实施声码器算法的新的改进的方法和装置。
本文中描述的本发明典型实施例是一种在前述共同待批的专利申请中详述过的可变速率CELP算法的ASIC实现。本发明的特征同样适用于任何一种线性预测编码(LPC)算法。本发明引入了一种减少了的时钟周期数和降低了的功耗来实施声码器算法的优化结构。其最终的优化目标在于使功耗降低到最小。使实现该算法所需的时钟数减少与减少时钟速率一样直接和间接地降低功耗,也是一个人们所关心的问题。其直接效果是由于互补式金属氧化物半导体(CMOS)器件的功耗和时钟速率之间的关系。其间接效果在于CMOS器件中功耗和电压之间的平方律关系,以及通过降低时钟速率可降低电压的能力。声码器ASIC的效率是每一时钟周期所完成的处理量的量度。提高效率将减少完成该算法所需的时钟周期总数。
提高声码器算法实施中的效率的第一种技术是一种专门DSP核心结构。该典型实施例的DSP核心通过提供三个随机存取存储器(RAM)元件来提高存储器吞吐量。三个RAM元件中的每一个有一个专门的存储地址发生单元。将存储器一分为三使得能够通过在一个周期中提供运算数、计算结果并存储结果来有效地执行诸如递归卷积之类的运算。取运算数、计算结果以及存储结果是通过流水线获取的,从而在3个周期中进行完整的一个结果的递归卷积,但每一周期产生一个新的结果。一分为三的存储器还减少了声码器算法中用于其他运算的时钟周期需求。递归卷积的有效执行在声码器算法中提供了最有效的节约。
提高声码器算法实施中的效率的第二种技术是向DSP核心提供一个分立的从属处理器,称为最小化处理器,最小化处理器进行相关运算,计算均方误差(SME),并在DSP核心提供给它的数据中寻找最小MSE。该最小化处理器与DSP核心一起分享运算量大的相关运算和最小化任务。最小化处理器配备有一个控制元件,该控制元件监督最小化处理器的运行,并在某些条件下能削减MSE最小化任务的运行。这些条件是那些由于数学约束继续搜寻无法提供一个低于当前最小MSE的MSE。削减MSE最小化任务的方法称为最小化处理器的节能模式。
提供典型实施例中声码器算法实施的效率的第三种方法是提供有效进行块归一化的专门硬件。在声码器算法的计算中,需要在计算中保持可能的最高水平的精度。通过提供专用硬件,可以在声码器算法中与其他运算同时进行块归一化,减少实施声码器算法所需的指令周期数。
图面说明在参照附图作了详细说明以后,本发明的特征、目的和优点将变得更为清楚。图中,相同的标号文字在所有图中的函意相同。


图1是本发明装置的方框图;图2是本发明运行的功能描述;图3是本发明典型编码运行的流程图;图4a-d是一组不同速率下声码器位分配以及每一速率使用的基音和码书子帧数的图;图5a-d是本发明DSP核心典型实施例的方框图;图6a-b是本发明最小化处理器典型实施例的方框图;图7描述的是本发明的典型实施例中实施的基音搜寻运行;图8是本发明典型实施例的基音搜寻操作流程图;图9是本发明典型实施例中实施的码书搜寻操作;图10是本发明典型实施例的码书搜寻操作流程图;图11是本发明的典型实施例的声码处理运行中,使通信链路一端处的编码器和另一端处的译码器的滤波器存储器保持相同的编码器的译码器方框图;图12是本发明典型实施例的译码器方框图。
最佳实施例的详细描述下面参照附图,图1和图5a-d中描述的DSP核心4是围绕三重分区的随机存取存储器RAM(RAM A 104、RAM B 122和RAM C 182)、只读存储器ROM(ROM E 114)以及一有效算术逻辑装置ALU(ALU 143)而设计的。三重分区的RAM提供了更有效的ALU利用,并在单个RAM所能取得的基础上增大了RAM的带宽。专用ROM(ROM E114)提供16位的常数。RAM分区(partition)RAM A 104、RAM B 122和RAM C 182以及ROM(ROM E114)把数据提供给ALU 143。RAM C 182从ALU 143接受并向ALU 143提供32位数据,而RAM A 104和RAM B 122接受并提供16位数据,高效率地进行16位运算数的计算以及32位结果的存储。
每一分区有一专用地址产生单元。RAM A 104有地址单元A 102,RAM B 122有地址单元B 120,RAM C 182有地址单元186,而ROM E 114有地址单元E 112。每一地址单元由寄存器、多路复用器和加法器/减法器元件(未图示)组成。在一个时钟周期中,DSP核心4可以进行三次存储器操作、三次地址更新、一次算术运算(例如相乘一累加一归一),以及一次至最小化处理器6的数据移送。
指令ROM、ROM I 194存储控制DSP核心4执行序列的指令。存储在ROM I 194中的指令序列描述将由DSP核心4实施的处理功能。ROM I 194有一个专用地址产生单元,IP计数器和栈(stack)196。
RAM地址产生单元或寄存器文件、地址单元A 102、地址单元B 120和地址单元C 186提供相应RAM操作的地址和数据。数据可以从一些寄存器文件元件移送到同一地址单元中的另一些寄存器文件元件,或移送至各RAM。典型的实施例中,地址单元A 102通过多路复用器106将数据提供至RAM A 104,地址单元B 120通过多路复用器124将数据提供至RAM B 122,地址单元C 186通过多路复用器将数据提供至RAM C 182。
寄存器文件元件从同一地址单元中的其他寄存器文件元件接收直接数据、IMM(如图5a-d中描述的那样),或从RAM接受数据。所以,在所有情况下,术语“直接数据”指的是指令译码器192提供的数据。本典型实施例中,RAM A 104通过多路复用器将数据提供至地址单元A 102,RAM B 122通过多路复用器118将数据提供至地址单元B 120,RAM C 182通过多路复用器184将数据提供至地址单元C 186。每一地址单元通过内部配置的加法器/减法器(未图示)提供自动算后增量和算后减量。本典型实施例中,地址单元B 120提供自动模寻址和两个专用寄存器文件元件(未图示),用作直接存储器存取(DMA)的指针。
地址单元E 112优化用于系数检索。它包含通过多路复用器110接受直接数据的基址寄存器以及通过多路复用器110接受直接数据或者通过多路复用器168和110从一累加器(C0REG 164或C1REG 166)接受数据的偏移寄存器(offsetregister)。该偏移寄存器通过一内部加法器/减法器(未图示),提供自动算后增量和算后减量。
IP计数器和存储栈196包含实施寻址ROM I 194功能的地址指针。地址序列是由指令译码器192来控制的。地址数据或者是在IP计数器和存储栈196内移送,或者接受为直接数据。
数据可以从RAM A 104、RAM B 122或RAM C 182移送到ALU143的寄存器中。数据也可以从累加器(C0REG 164或C1REG 166)移送到RAM A 104、RAM B 122或RAM C 182。数据可以从0REG 162移送到RAM C 182。
RAM A 104通过多路复用器106从地址单元A 102接受数据。RAM A 104还通过多路复用器168和106从累加器(C0REG 164或C1REG 166)接受数据。RAM B 122通过多路复用器124从地址单元B 120接受数据。RAM B 122还通过多路复用器168和124从累加器(C0REG 164或C1REG 166)接受数据。RAM B 122还通过多路复用器124从DMAINPUT(如图5a-d中所示的那样)或从INREG 128接受数据。RAMC 182通过多路复用器180从地址单元C 186接受数据。RAM C还通过多路复用器168和180从累加器(C0REG 164或C1REG 166)接受数据。RAM A 104通过多路复用器100将数据提供至地址单元A102,并通过多路复用器108将数据提供至AREG 130。RAM B 122通过多路复用器118将数据提供给地址单元B 120,将数据提供给RAMBDOUT(如图5a-d所示),通过多路复用器126将数据提供给SREG 136,通过多路复用器116将数据提供至BREG 134,通过多路复用器158将数据提供至DREG156。
AREG 130通过多路复用器108从ROM E 114接受数据,或从RAM A 104接受数据。BREG 134通过多路复用器116接受直接数据,从ROME 114接通数据,或从RAM B 122接受数据。BREG 134还通过多路复用器168和116从累加器(C0REG 164或C1REG 166)接受数据。
C0REG 164和C1REG 166通过多路复用器148,从RAM C 182,从加法器146,从逻辑“与”元件144,或从逻辑“或”元件142接受数据。
移位变址寄存器(shift index register)SREG 136通过多路复用器126接受直接数据或从RAM B 122接受数据。
ALU 143进行乘、加、减、相乘—累加、乘—加、乘—减、舍入、增量、清零、求反、以及逻辑“与”、“或”和“倒相”运算。AREG 130和BREG 134到乘法器132的输入进行选通(选通未图示),通过确保仅当进行相乘时才使输入改变来减少乘法器132的功耗。ALU 143出于效率考虑提供两个36-位累加器(C0REG 164和C1REG 166),并提供两个桶形移位器(barrel shifter)即桶形移位器140和桶形移位器150用于规范化。向左或向右直至16作移位是由桶形移位器140和桶形移位器150给出的。移位指数或者是通过直接数据,或者是通过多路复用器149而由专用移位变址寄存器SREG 136来指定的。移位变址寄存器SREG 136与桶形移位器140和150、按位逻辑“或”元件160和0REG 162用来将进行块规范化中的开销降到最小。ALU143根据C0REG 164和/或C1REG 166的算术和逻辑状态,将状态提供至指令译码器192,从而允许进行条件转移。例如,本实施例中,比较C0REG 164和C1RE中值的符号以提供符号改变时的条件转移。转移发生在直接数据提供至IP计数器和存储栈196时。自动检测累加器上溢和下溢并自动进行饱和操作,按照二的补码算术,在上溢时给出十六进制值0×7FFFFFFF,下溢时给出十六进制值0×80000001。
指令执行顺序是取指令、译码、执行。地址值是由IP计数器和存储栈196提供至指令ROM I 194的,其对此作出响应将一指令提供至指令译码器192。指令译码器192响应于该输入指令,对该指令进行译码,并将控制信号提供至DSP核心4内的恰当元件以执行该指令。
专用循环计数器和存储栈190与IP计数器和存储栈196提供低开销嵌套子程序调用(low overhead nested subroutine calls)和嵌套循环。在单个指令循环期间是不允许取指令的,这可降低功耗。循环计数器和存储栈190通过多路复用器188接受直接数据,执行固定长度的循环。循环计数器和存储栈190还通过多路复用器168和188从累加器(C0REG 164 C1REG 166)接受数据,执行可变长度的循环。ROM I 194内的256字静态指令超高速缓冲存储器(未图示)提供用于最常执行的循环和子程序的低功率取指令。一“等待”指令禁止取指令以及指令译码而等待某一事件,以降低功耗。所说的事件可以包括DMA转移、来自PCM接口2的定时选通或一外部事件。
外部数据和控制通过PORTINPUT(端口输入,如图5a-d中所示)和DMAINPUT(DMA输入)从PCM接口2和条件转移指令中使用的静态测试位提供至DSP核心。数据是由DSP核心4通过CREG(如图5a-d,6a-b所示)以及RAMBDOUT从外部提供的。通过熟知的周期窃用(cycle stealing)来进行DSP核心4和PCM接口2之间的DMA。来自C0REG 164或C1REG 166的数据是通过多路复用器168与来自指令译码器192的OUTREGEN(如图5a-d,6a-b所示)信号一起提供的。一起作用的OUTREGEN信号表示存在提供至最小化处理器6的有效CREG数据。
如图6a-b中所示的最小化处理器6用来帮助基音和码书搜寻中的计算量大的部分。为了实施最小化,最小化处理器6从DSP核心4接收一感性加权的(perceptually weighted)输入话音取样序列、一组增益值和一组合成的话音取样序列。最小化处理器6计算合成话音的自相关性以及合成话音和感性加权的输入话音之间的互相关性。根据这些相关性,确定合成话音和输入话音之间的均方差(MSE)的相对量度,作为合成话音增益和指数的函数。最小化处理器6报告产生的最小MSE的指数和增益。当不可能再进一步最小化时,节能特性使MSE计算中断。最小化处理器6通过CREG、I/O端口以及专用DSP核心指令与DSP通信。
最小化处理器6的运行是由控制器220来确定的。控制器220包含一跟踪当前指数值的计算器、保持最佳基音或码书搜寻结果的寄存器、存取RAM×212的地址发生电路以及输入/输出电路。另外,控制元件220还负责控制多路复用器224、234、230和246上的选择信号,以及使锁存器210、214、226、228、236、238、244和250工作。控制220还监测最小化处理器6中元件内的各值,控制在某些预定搜寻终断条件下削减搜寻的节能方式,并控制循环缓冲器259中增益值的循环。
另外,控制元件220还负责输入/输出操作。控制元件220负责通过输入端口12将最小化结果提供至DSP核心(即在其各次搜寻中确定的最佳基音延迟和基音增益或者最佳码书指数和码书增益)。OUTREGEN信号被提供至控制元件220,以指示输入到锁存器210的数据是有效的,并存在于累加器输出信号CREG处。控制元件220响应于此,产生一允许信号,并将该允许信号提供至锁存器210,来接收数据。
OUTPORTEN(如图5a-d,6a-b所示)以及PORTADD(如图5a-d,6a-b所示)信号从DSP核心4提供至控制元件220。PORTADD信号将一地址提供至最小化处理器6。当PORTADD值指定用作最小化处理器6的数据,并且OUTPORTEN表示一有效PORTADD值时,最小化处理器6将从CREG接受数据。如上所述,向最小化处理器6提供控制和数据。
图1是本发明结构的典型方框图。PCM接口2将脉冲编码调制(PCM)话音取样数据提供至一编译码器(未图示)以及从该编译码器接收PCM话音取样数据,所述的PCM话音取样数据在本实施例中是以μ-律或A-律压缩扩展的取样数据或线性取样数据。PCM接口2从时钟发生器10接收定时信息,并从微处理器接口8接收数据和控制信息。
PCM接口2将它从编译码器(未图示)接收的PCM话音取样数据提供至DSP核心4,进行编码。PCM接口2从DSP核心4接收随后提供至编译码器(未图示)的PCM话音取样数据。PCM数据是通过DMA在DSP核心4和PCM接口2之间传送的。PCM接口根据从编译码器(未图示)接收到的取样值的定时,将定时信息提供至时钟发生器10。
DSP核心4将数据和控制信息提供至其协处理器(co-processor)即最小化处理器6。DSP核心4还将数据提供至输出端口14,并从输入端口12接收数据。DSP核心4从时钟发生器10接收计时信息。DSP核心4还能够提供外部地址信息,并接收外部指令和数据。
最小化处理器6从时钟发生器10接收定时信息,并从DSP核心4接收数据和控制。最小化处理器6通过输入端口12将最小化过程的结果提供至DSP核心4。
时钟发生器10将定时信息提供至所有其他块。时钟发生器10接收外部时钟信号,并从微处理器接口8和PCM接口2接收定时信息。
联合测试动作组(JTAG)接口16提供测试ASIC功能的能力。JTAG接口16接收外部数据和控制信息,并提供外部数据。
输出端口14从DSP核心4接收数据,并将该数据提供至微处理机接口8,还可以将数据提供至外部装置(未图示)。
输入端口12从微处理器接口8和最小化微处理器6接收数据,并将该数据提供至DSP核心4。输入端口12还可以从外部装置(未图示)接收数据,并将该数据提供至微处理器接口8。
微处理器接口8从微处理器(未图示)接收数据和控制信息,并将数据和控制信息提供至微处理机(未图示)。该信息也提供至其他块。
本发明的典型实施例中,声码器ASIC执行可变速率CELP算法,该算法在申请日为1993年1月14日、申请号为08/004,484、标题为“可变速率声码器”的、转让给本发明受让人的共同待批的美国专利申请文献中有详述。
图2描述了ASIC中的主要功能。参见图2,待编码的抽样值通过PCM接 30从一编译码器(未图示)提供至声码器ASIC。这些取样值随后被提供至将μ-律或A-律取样值转换成线性取样值的脱压缩扩展元件(decompanding element)32。以线性格式提供的取样值无变化地通过脱压缩扩展元件32。线性取样值提供给发送音频处理元件34,发送音频处理元件34功能上含有话音控制开关(voice operatedswitch,简称为VOX)36、音频均衡元件(andio equalization element)38,QCELP编码元件40以及双音多频(DTMF)检测元件41。发送音频处理单元34随后通过微处理机接42将编码话音包(ercoded speech packet)提供至ASIC外部的微处理器(未图示)。
编码话音包由微处理器(未图示)通过微处理机接42提供至接收音频处理元件44,在此它们被译码成话音取样值。接收音频处理元件44功能上包含QCELP译码元件46、音频均衡器48和DTMF发生元件47。译码取样值被提供至压缩扩展元件50,它将线性取样值转换成μ-律或A-律格式或不变地将线性取样值传送到PCM接口30。ASIC通过PCM接口30将译码取样值提供到ASIC外部的编译码器(未图示)。
图2中脱压缩扩展元件32进行的脱压缩扩展运算以及图2中压缩扩展元件50进行的压缩扩展运算是由图5a-d中描述的DSP核心4来实施的。图2中发送音频处理元件34描述的发送音频处理运算是由图6a-b中描述的DSP核心4以及最小化处理器6来实施的。图2中描述为接收音频处理元件44的接收音频处理运算是由图5a-d中描述的DSP核心4来实施的。
本实施例中,以8位μ-律或8位A-律格式从编译码器(未图示)提供的取样值被转换成14位线性格式。μ律和线性之间的关系如方程1所示2Y=-1S(33+2M)2N-33(1)式中,Y为线性值(-4015.5至4015.5),N为指数(0至7),M为一数值(0至15),S为一符号(0表示正,1表示负)。A律和线性之间的关系如方程2和3所示2Y=-1S(1+2M)22Y对于N=0 (2)2Y=-1S(33+2M)2N对于N=1,…,7(3)
式中,Y为线性值(-4032至4032),N、M和S如上所述。
参见图5a-d,借助于查阅存储在ROME 114内的表,通过图2中的PCM接口30提供的取样值被转换成线性格式。在一种较佳实施例中,采用一半大小的128×14 μ-律至线性和A-律至线性查表来进行转换。这种较佳实施例利用了具有如下式(4)所示性能的全大小的转换表。
ROM(n+128)=-ROM(n)0≤n≤127) (4)在计算自相关系数和LPC系数之前需要从输入话音信号中去除所有DC成分。DC组块运行(DC blocking operation)是通过从当前窗口(current window)中的每一输入取样中减去一低通滤波的话音取样平均值(DC偏置)在DSP核心4中完成的。即,当前帧的DC偏置是当前帧和前一帧的取样平均的加权平均。DC偏置的计算如等式(5)所示DC_偏置=a(平均(前一帧))+(1-a)平均(当前帧) (5)式中,对于本实施例a=0.75。低通滤波是为了防止在帧边界处出现大的不连续。这一操作是在DSP核心4中,采用ROME 114提供的插值因子a在一个RAM元件(即RAM A104、RAM B122或RAM C182)中存储当前帧和前一帧的取样平均来进行的。相加是由加法器146完成的,相乘是由乘法器132来完成的。可以在微处理器控制下来允许和禁止组块功能。
不带DC的输入话音信号S(n)随后被加窗,来减小将话音序列斩波成固定长度帧的影响。本实施例中采用Hamming窗口函数。对于帧长度LA=160,根据等式(6)计算加窗的话音Sw(n)SW(n)=S(n+60)WH(n),0≤n≤LA-1 (6)式中,Hamming窗口由等式(7)和(8)定义。
WH(n)=0.54-0.46cos[2πn/(LA-1)],0≤n≤LA-1(7)=0, 其它(8)在一种较佳实施例中,因为WH(n)是一个偶对称函数,所以80个系数的查寻表(Hamming窗口系数数量的一半)被存储在ROM E114中。加窗可以通过多路复用器108,按照地址单元E 112提供的地址值,从ROM E 114提供窗口系数至AREG 130。AREG 130将该数据提供至乘法器132的第一输入。话音取样S(n+60)由RAM B 122提供至BREG 134。BREG 134将该值提供至乘法器132的第二输入。乘法器132的输出是加窗的话音取样,通过多路复用器168被提供至C0REG 164,并随后被提供至RAM C182。
块归一化过程由两个功能部分组成归一化因子的判定和所要数据的归一化。本实施例中,数据以二的补码表示被存储起来。按照上式(7)计算加窗的取样值。根据从ROM I 194得到的归一化指令DETNORM,C0REG 164中产生的加窗取样值要经历下述过程。如果C0REG 164中的值为负,则反相元件152将该数的二进制数字反相并将该位反相值传送到加法器146的第一输入。通过多路复用器137和138使加法器146的第二输入为零。随后,加法器146通过它的进位输入(未图示)加一至位反相值。如果C0REG 164中的值为正,则该值通过多路复用器168和154被传送,反相元件152和加法器146不受影响。这一过程的目的在于计算C0REG164的绝对值。该绝对值随后被提供至按位逻辑或元件160的第一输入。按位逻辑或元件160的第二输入由0REG 162提供。上述绝对值计算由下面的等式8a-c所示。
0REG新=(ABS(C0REG))OR(0REG老) (8a)其中,ABS(C0REG)=C0REG,C0REG≥0 (8b)=-C0REG,C0REG<0 (8c)如果归一化所要的数据在C1REG 166内,则用一DETNORM指令同样在C1REG 166上进行等式8a-c中描述的运算。0REG 162在归一化运行开始时清零。该过程对所有加窗取样值(所要的数据)重复,从而在运算结束时,0REG 162中存储的值代表所有加窗取样值绝对值的按位逻辑或。由于0REG 162中的值大于或等于加窗取样值块中的最大数值,所以根据0REG 162中设定的最有效位,可确定一比例因子。0REG 162中的值通过多路复用器168传送到RAM C182。该值随后被装载到C0REG 164内。归一化因子是通过计数所需的C0REG 164中值的左移位或右移位数来确定的,从而由该值形成的加窗数据的移位会为后续的运算而提供具有要求峰值数值的值。该比例因子也称为归一化因子。因为归一化是通过移位来进行的,所以归一化因子是数值2的幂。
为了尽可能以最高精度保持加窗取样值,所要的值被一归一化因子相乘,从而最大值占据后续运算中给出的最大位值。因为归一化因子是数值2的幂,所以所要的数据的归一化可以通过简单地由归一化因子指定的移位数来获得。归一化因子由RAM B122通过多路复用器126提供给SREG 136。加窗取样值随后通过多路复用器158从RAM C182提供至DREG 156。DREG 156随后通过多路复用器154和禁止工作的反相器152将这些值提供至桶形移位器150,数据值在这里在通过多路复用器149,按照由SREG 136提供至桶形移位器的归一化因子移位。桶形移位器150的输出通过禁止的加法器元件146和多路复用器148传送至C0REG 164。归一化并加窗的取样值随后通过多路复用器168传送,并通过多路复用器124和180分别提供至RAM B122和RAM C182。这就在RAM中形成两套归一并加窗的取样值,使自相关系数的后续计算更为有效。
P+1个自相关系数R(k)的计算是按等式9进行的R(k)=Σm=0LA-1-kSW(m)SW(m+k),----0≤K≤P(9)]]>其中,P为编码器中共振峰预测滤波器(formant prediction filter)的阶数。本实施例中,P=10。归一并加窗的取样值SW(m)通过多路复用器116和BREG 134由RAM B 122提供给乘法器132的第一输入。延迟了的归一并加窗的取样值SW(m+k)通过多路复用器148和C1REG 166、RAM A 104和AREG 130由RAM C182提供至乘法器132的第二输入。每个R(k)是LA-K个值的累加。对于每个R(k)的第一次迭代,乘法器132的输出通过多路复用器138和桶形移位器140提供至累回器C0REG164以及加法器146的第一输入。多路复用器154通过禁止的桶形移位器150将零提供至加法器146的第二输入。对于后续迭代,乘法器132的输出通过多路复用器138和桶形移位器140提供至加法器146的第一输入0加法器146的第二输入是通过多路复用器168和154、禁止的倒相元件152和桶形移位器150,以C0REG164的输出提供的。对于每一R(k),重复这一过程。
自相关系数中没有一个大于R(0)。本实施例中,在计算了R(0)以后,也就确定了归一化因子。该归一化因子随后被运用于已经计算的R(0)以及其余自相关系数。这一阶段上的自相关系数的归一化使LPC的后续计算的精度最大。
现在来说明图3的方框62,计算LPC系数来去除话音取样值中的短时相关冗余。
具有阶数P的共振峰预测滤波器具有如下式(10)所述的传递函数A(Z)。
A(Z)=1-Σi=1PaiZ-1,---P=10---(10)]]>每一LPC系数ai是根据归一化并加窗的输入话音的自相关值来计算的。本实施例中采用称为Durbin递归(见L.R.Rabiner和R.W.Schafer的“话音信号的数字处理(Digital Processing of Speech Signals)”,Prentice-Hall,1978)的有效迭代方法来计算LPC系数。该迭代方法由下列等式(11)至(17)所述。
E(0)=R(0),i=1 (11)Ki=[R(i)-Σj=1i-1aj(i-1)R(i-j)]/E(i-1)----(12)]]>ai(i)=Ki(13)aj(i)=aj(i-1)-Kiai-j(i-1),i≤j≤i-1(14)E(i)=(1-Ki2)E(i-1)(15)如果i<P,则递增i并继续至12(16)最后的LPC系数值为aj′=aj(P),1≤j≤p (17)Durbin迭代算法仅适用于输入信号具有零平均值的时候,这要求在进行前述的自相关计算前去掉所有的DC偏置。
本实施例中,采用15HZ的带宽扩展来确保共振峰预测滤波器的稳定性。这可以通过径向向内的共振峰合成滤波器的极点的标度来完成。带宽扩展是通过按照等式(18)对LPC系数的标度来完成的。
ai=βiai′,1≤i≤P (18)本实施例中,β=0.9883。对于1≤i≤p的十个带宽扩展系数βi被存储在ROME114中提供的查寻表中。方框62的功能是在DSP核心4内实现的。
现在来说明图3中的方框64,它确定话音数据当前帧的编码速率。速率的判定是根据每一帧中的话音活动量测定来进行的。话音活动量回过来又是按照前述的帧能量R(0)来测定的。为了确定i帧的编码速率,将帧能量与等式(19)至(21)所定义的三个阈值进行比较T1(Bi)=-(5.54463·10-6)Bi2+(4.047152)Bi+362(19)T2(Bi)=-(1.529733·10-6)Bi2+(8.750045)Bi+1136 (20)T3=(Bi)=-3(3.957050·10-6)Bi2+(18.899622)Bi+3347 (21)式中i帧的背景噪声电平Bi按等式(22)对每一帧进行更新。
Bi=min[Ri-1(0),160000,max[1.00547Bi-1,Bi-1+1]] (22)如果帧能量低于所有三个阈值,则速率为八分之一;如果帧能量在T1(Bi)和T2(Bi)之间,则速率为四分之一;如果帧能量在T2(Bi)和T3(Bi)之间,则速率为二分之一;如果帧能量高于T3(Bi),则为全速率。除非当速率由微处理机(未图示)通过微处理机接口8被强制到某一特定速率,否则数据速率可以被提高至任一速率,但降低则不能超过每帧一个台阶(例如二分之一速率至四分之一速率)。在DSP核心4中,与这些阈值相关的系数在ROM E114中的查询表中给出。
在实施例中还给出分数速率算法,从而使最大平均速率可以由微处理机(未图示)通过微处理机接口8来限制。给定一速率限定因子S,可以通过限定连续全速率帧数来将声码器的最大平均速率限定在(2S+1)/[2(S+1)]。方框64的功能是在DSP核心4中实施的。
下面描述图3中的方框66,带宽展宽的LPC系数被转换成线谱对(LSP)频率(见Soong和Juang的“线谱对(LSP)和话音数据压缩(Line Spectrum Pair(LSP)andSpeech Data Compression)”,ICASSP,1984)。LSP频率已经表明具有更好的传输存储特性,并且比起LPC系数可以更有效地进行编码。表示十个LPC系数的LSP频率是等式23和24中所述多项式的十个根P′(ω)=cos5(2πω)+P1′cos4(2πω)+…P4′cos(2πω)+0.5P5′(23)Q′(ω)=cos5(2πω)+q1′cos4(2πω)+…+q1′cos(πω)0.5P5′(24)式中,按照等式(25)至(27)在DSP核心4中计算1≤i≤5的Pi′和qi′P0′=q0′=1 (25)Pi′=-ai-a11-i-Pi-11≤i≤5(26)qi′=-ai+a11-i+q′i-11≤i≤5 (27)P′(ω)的根是通过假定在每一π/32弧度内最多有一个根来求得的。在从0到π弧度的每一π/32弧度处估算P′(ω)。在任一π/32区间内存在一个根使得函数P′(ω)在该区间上改变符号。
如果求得了一个根,则进行对半检索,来隔离π/256范围内的根。对半检索包含在当前区间的中心处估算P′(ω),从而确定哪半个区间包含该根。当前区间随后变窄,以仅包含求得的包含该根的那半个区间。继续这一过程,直至该根被隔离到π/256大小的区间内。随后进行线性插入,来估算π/256弧度区间内根的位置。
LSP频率的有序性确保Q′(ω)的一个根位于P′(ω)的每一对根之间。Q′(ω)的第五个根位于P′(ω)的第五个根和π弧度之间。上述对半检索在P′(ω)的每一对根之间以及P′(ω)的第五个根和π弧度之间进行,以确定Q′(ω)的根。
因为对半检索一直进行到将根的位置隔离在π/256大小的区间内,所以需要将256个余弦值等间距地排列在0和π之间。这些余弦值被存储在ROM E114的查询表中。为了求得P′(ω)和Q′(ω)的根,分别需要最大值为48和30次函数估算。这些函数估算是在将LPC系数转换成LSP频率中计算量最大的部分。方框66的功能是在DSP核心4中实施的。
下面描述图3中的方框68,对LSP频率进行量化。每一LSP频率位于相应偏置值的中心附近。在量化之前,从每一相关LSP频率中减去这一偏置,来减小量化所需的位数。该偏置是以下述等式(28)来计算的。
Biasi=0.5i/(P+1)=(0.45)i (28)在该偏置从LSP频率中减去以后,用一微分(differential)脉冲编码调制(DPCM)量化器来量化LSP频率。采用DPCM量化器是因为LSP频率随时间缓慢变化,对LSP频率中变化的量化减小了直接对LSP频率进行量化所需的位数。在DSP核心4中,LSP频率偏置值存储在ROM E114中的查询表中。所用的量化位数以及量化间隔大小是正被量化的10个LSP频率的函数,也是编码速率的函数。量化位数,以及间隔大小按每一编码速率、每一LSP频率存储在ROM E114中的查询表中。上述的查询表见表II中所示的那样。例如,用4位以及0.025的间隔大小对全速率下的LSP频率ω1进行量化。
表II
在量化和插值以后,进行测试,以确保在考虑了量化的影响以后使共振峰滤波器保持稳定。LSP频率必须以至少80HZ的间隔分开,从而确保合成共振峰滤波器的稳定。如果任何一个LSP频率与相邻LSP频率的分开小于80HZ,则再进行带宽扩展。方框68的功能是在DSP核心4内实现的。
现在描述图3中方框70,LSP频率经下述等式(29)所述的低通滤波来减小量化影响
其中,在本实施例中,对于全速率SM=0,对于二分之一速率SM=0.125。对于四分之一和八分之速率,如果四分之一或八分之一速率的连续帧数小于10,则SM=0.125和SM=0.9。
对于每一基音子帧,LSP频率。除了八分之一速率以外,基音子帧的插值LSP频率用作相应的码书子帧对。按照下述等式30插值LSP频率
式中,按每一速率、每一基音子帧和码书子帧,将权重αω存储在ROM E 114的查询表中。上述查询表见表III所示。例如对基音子帧1和码书子帧1和2来说,在全速率下αω为0.75。
表III
插值的LSP频率再转换回到用于基音及码书搜寻的LPC系数。如下述等式31-33所示根据PA(Z)和QA(Z)来计算LPC系数。
A(Z)=[PA(Z)+QA(Z)]/2 (31)其中,PA(Z)=(1+Z-1)Πj=15[1-2Z-1cos(2πω2i-1)+Z-2]---(32)]]>QA(Z)=(1-Z-1)Πj=15[1-2Z-1cos(2πω2j)+Z-2]---(33)]]>本实施例中,在DSP核心4内估算台劳(Taylor)级数展开,来计算PA(Z)和QA(Z)中的余弦值。台劳级数展开提供了比起前述寻根搜索中所采用的更为精确的余弦值。PA(Z)和QA(Z)的值是通过对上述等式32-33中的二次多项式进行卷积来计算的。方框70的功能是在DSP核心4中实现的。
现在描述图3的方框图72,通过合成基音搜寻运算来进行综合分析。这一穷尽搜寻过程可由方框72-74组成的循环来说明。本实施例中,除了八分之一速率以外,全部在基音子帧上进行基音预测。图7中描述的基音编码器采用合成-分析方法来确定基音预测参数(即基音滞后L以及基音增益b)。选择的参数是那些使采用基音预测参数产生的感性加权输入话音和合成话音之间的MSE最小的参数。
本发明较佳实施例中,在图7描述的基音预测参数的抽取中采用隐含的感性加权。图7中,具有下述等式(34)所示响应的感性加权滤波器是以滤波器320和滤波器324的串联来实施的。
ω(Z)=A(Z)A(Z/ξ)---(34)]]>隐含的感性加权通过再次使用作为开路(34)共振峰残留(open loop formantresidual)的滤波器320的输出来减小感性加权滤波的计算复杂性。将等式(34)的滤波分成两个部分的运算消除了基音搜寻中的一个滤波运算。
输入话音取样值S(n)通过共振峰预测滤波器320,其系数是从前面描述的图3中方框70的LSP插值和LSP至LPC转换产生的LPC系数。共振峰预测滤波器320的输出是开路共振峰残留P0(n)。开路共振峰残留P0(n)通过具有用等式35所述的传递函数加权共振峰合成滤波器324。
H(Z)=1A(Z/ξ)=11-Σi=110ai(Z/ξ)-1,]]>其中ξ=0.8(35)加权共振峰合成滤波器324的输出是感性加权话音X(n)。从加权共振峰合成滤波器324的输出中减去加权共振峰合成滤波器324的输出零输入响应(ZIR),来去除初始滤波器或加权共振峰合成滤波器324的滤波器存储的影响。加权共振峰合成滤波器324的ZIR计算是在ZIR元件328中计算的。ZIR即aZIR(n)是在加法器326中从感性加权话音X(n)中减去的。在每一基音子帧的开头处,ZIR元件328和加权共振峰合成滤波器324的滤波器存储是相同的。
在基音搜寻中,假定码书向量对于开路共振峰残留中当前子帧的贡献为零。基音搜寻是采用前述开路共振峰残留P0(n)以及闭路共振峰残留PC(n)来进行的。闭路共振峰残留是先前基音子帧中基音合成滤波器322中重新构筑的取样值。基音合成滤波器322的传递函数见下述等式(3b)1P(Z)=1(1-bZ-L)---(36)]]>式中的基音滞后L以及基音增益b是在先前基音子帧的基音搜寻过程中计算的。基音合成滤波器322的输入为激励矢量Cb(n),它是通过将指数为I的码书项(codebock entry)Cb(I)以及先前码书子帧的码书搜寻过程期间计算的码书增益G相乘而产生的。这样产生的共振峰残留称为闭路共振峰残留。
本实施例中,PC(n)由143个闭路重建样本组成。搜寻从大开环搜寻移到大闭环搜寻,搜寻一基音子帧长度的窗口。对于长度为LP的基音子帧,n在-Lmax=-143和LP-17之间变化。本实施例中,对于全速率,LP=40;对于二分之一速率,LP=80;对于四分之一速率,LP=160。本实施例中,取样值PC(n)和Po(n)如多路复用器332所示的那样相邻存储在一起,使得PC(n)和Po(n)值可以作为长度为LP+143的单一一块取样值顺序存取。取样值存储在RAM B122中。
共振峰残留P(n)是由PC(n)和Po(n)构成的,并通过具有下述等式(37)所示传递函数的加权共振峰合成滤波器330。
H(Z)=1A(Z/ξ),]]>式中ξ=0.8(37)加权共振峰合成滤波器330对于基音滞后L的每一值,用来产生LP个加权的合成话音取样值的序列YL(n)。加权合成话音序列YL(n)以及加权话音序列XP(n)被提供至最小化处理器334。因为已经减去了加权共振峰合成滤波器324的初始状态的影响,所以仅必须计算加权共振峰合成滤波器330的脉冲响应。YL(n)的计算必须用加权共振峰合成滤波器330的脉冲响应h(n)和P(n)内的恰当子序列作卷积,来获取基音滞后L的加权合成话音取样值YL(n)。
卷积是如图5a-d所示在DSP内核4内以递归方式来进行的。从L=17到L=143,对于每一基音滞后值计算一组YL(n)值。加权共振峰合成滤波器330的脉冲响应h(n)被截取至本实施例中的前二十个取样值,并存储在RAM A104内。共振峰残留P(n)被存储在RAM B122内。第一个基音滞后L=17的卷积是以下述等式(38)所示的非递归方式来进行的Y17(n)=h(n)*P17(n)=Σi=019h(i)P17(n-i),0≤n≤LP---(38)]]>式中LP为基音子帧长度。
计算第一序列Yn(n)并存储在RAM C142中。以下述等式39-41,递归地计算基音滞后L=18至L=143的后续序列YL(n)YL(n)=h(0)P(-L) n=0 (39)YL(n)=YL-1(n-1)+h(n)P(-L)1≤n<20,17<L≤143 (40)YL(n)=YL-1(n-1) 20≤n<LP(41)注意下述等式(42)中所示的关系。
PL(n)=P(n-L)=PL-1(n-1)17<L≤143,0≤n<LP(42)将RAM分成三个分区,每一分区具有一个专用寻址单元以控制装入和存储操作来使递归卷积的效率最佳化。这称为三重分区RAM。用等式40计算卷积值,随后就可以每一时钟周期产生一个结果。例如,在一个脉冲周期内,计算Y18(10),存储Y18(9),取Y17(10)和h(10)。这样,上述等式(40)就可以每一周期产生一个结果。上述等式(41)也可以每一周期产生一个结果。例如,在一个周期中,计算Y18(24),取Y17(24),并存储Y18(23)。
能够运算等式(40)和(41)而无需在基音滞后更新之间将先前计算的加权合成话音取样值YL-1(n-1)移送到同一源RAM需要一称为乒乓过程(其中源RAM和目的RAM在每一滞后更新之间交换)的存储策略和硬件能力。当计算偶数基音滞后值的YL(n)时,YL-1(n-1)值是从三个RAM中的第一个中取出的,结果被存储在三个RAM中的第二个内。当计算奇数基音滞后值的YL(n)时,YL-1(n-1)值是从三个RAM中的第二个取出的,结果存储在三个RAM中的第一个内。这一乒乓过程无需在每一基音滞后更新之间,将新计算的YL(n)值移送到同一RAM,以及从同一RAM移送出先前计算的YL-1(n-1)。
图8是本实施例中基音搜寻的卷积部分(初始非递归和递归卷积)的执行流程图。方框350中,基音滞后L初始化至其最低值,本实施例中,该最低值为17。样本号n和滤波器指数m被设置为零,Y17(n)的值被设置为零。方框352至360构成以非递归方式进行计算的初始卷积循环。L=17的初始卷积计算是按照下述等式(43)来进行的。
Y17(n)=Σi=019h(i)P17(n-i),0≤n<LP---(43)]]>初始卷积的计算采用固定长度的循环来减小计算的复杂性。以这种方式可以避免在内循环(方框356-360)中建立可变长度循环结构所需的开销。每一Y17(n)值在计算后被传送至最小化处理器334。
方框352测试样品指数n。如果n等于基音子帧长度LP,则完成了初始卷积,流程进行到方框362。如果在方框352中,n小于基音子帧长度,则流程进行到方框356。方框356测试指数m。如果m等于滤波器脉冲响应长度(在本实施例中为20),则完成了当前迭代,流程进行到方框354,此处m被设置为0,n递增1。流程随后回到方框352。如果在方框356处m小于脉冲响应长度,则流程进行到360,此处累计部分和。流程继续进行到358处,指数m递增1,并且流程再进行到方框356。
由方框352至360形成的初始卷积循环中进行的运算是在DSP内核4中进行的,该处配置了恰当的流水线,使得可以如方框360所示每一时钟周期完成乘积的累加。下面的运算描述在一个时钟周期中在DSP内核4中发生的运算流水线。滤波器响应值h(m+1)是从RAM A104取出的,并被提供至AREG130。共振峰残留值p(n-17)是从RAM B122取出的,并被提供至BREG134。C0REG 164中的部分和Y17(n+m-1)通过多路复用器168和180被提供至RAM C182。部分和Y17(n+m+1)是由RAM C182通过多路复用器158提供至DRE G156。ARE G130和BREG134中的值h(m)和p(n-17)分别被提供至乘法器132。乘法器132的输出通过多路复用器138被提供至桶形移位器140,按照通过多路复用器149由SREG136提供的比例值使该值归一化。SRE G136中的值是使p(n-17)序列归一化所需的值。因为在桶形移位器140中进行归一化之前保持了乘积的精确性,所以将归一化因子作用于p(n-17)和h(m)的乘积获取了使p(n-17)归一化的相同效果。归一化值被提供至加法器146的第一输出。部分和Y17(n+m)是通过多路复用器154、禁止的反相器152和桶形移位器150由DREG 156提供至加法器146的第二输入的。加法器146的输出是通过多路复用器148提供至C0REG164的。当指数n达到方框352中所允许的最大值时,就完成了初始卷积,RAM C182中出现的部分和现在就是卷积的最后结果。
当初始卷积完成时,流程进行到方框362,对余下的基音滞后值的计算进行递归卷积。
在方框362中,样品指数n被设定为零,基音滞后指数L递增1。流程进行到方框364。方框364测试L。如果L大于最大基音滞后值(在本实施例中为143),则流程进行到方框366,基音搜寻运算终止。如果L小于或等于143,则流程进行到方框368。方框368控制前述的乒乓过程。在方框368中,测试L,以判断它是偶数还是奇数。如果L是偶数,则流程进行到方框378(该运算称为第一种情况)。如果L为奇数,则流程进行到方框370(该运算称为第二种情况)。
第一种情况(基音滞后L为偶数)在方框378中,YL(0)按照等式(39)进行计算。地址单元A102将一地址值提供至RAM A104,其响应于此通过多路复用器108将h(0)提供至ARE G130。在同一时钟周期中,地址单元B120提供一地址值至RAM B122,其响应于此通过多路复用器116将P(-L)提供至BRE G134。在下一时钟周期中,AREG 130提供h(0)、BRE G134提供P(-L)至乘法器132,在此两值相乘,其积通过多路复用器138提供至桶形移位器140。桶形移位器140按照SRE G136提供的值,通过多路复用器149,使该乘积归一化,并将归一化的乘积提供至加法器146的第一输入。加法器146的第二输入通过多路复用器154、禁止反相元件152和桶形移位器152被置零。加法器146的输出通过多路复用器148而被提供至C0RE G164。在同一时钟周期中,YL-1(0)和h(1)是分别从RAM B122和RAM A104取出的,并通过多路复用器158和108提供至DREG156和AREG130。
在方框380中,合成话音取样指数n递增1。在控制方框382中,如果合成话音取样指数n小于20,则流程进行到方框384。
在方框384中,按照等式(40),每一时钟周期计算一个新的YL(n)值。使YL-1(n-1)和h(n)的值初始化而在方框384的第一次迭代之前所需的恰当设置是在上述方框378中获得的。为了存储最终值YL(19),在方框384的最后迭代以后还需要有恰当的清除。
在方框384的第一次迭代中,方框378内计算的YL(0)是位于C0REG164内的。C0REG164以从地址单元C186提供至RAM C182的地址值通过多路复用器168和180向RAM C182提供YL(0)。在被提供至RAC 182的同时,YL(0)被提供至最小化处理器334。
在方框384中,在一个时钟周期中进行下述运算。按照由地址单元B120提供的一个地址,通过多路复用器116和158,由RAM B122将YL-1)(n)值提供至DREG156。按照地址单元A102提供的地址,通过多路复用器108,由RAM A104将脉冲响应值h(n+1)提供至AREG130。DREG 156通过多路复用器154、禁止的反相器元件152和桶形移位器150,将YL-1(n-1)提供至加法器146的第一输入。AREG130提供h(n)、BREG134提供P(-L)至乘法器132,在此两值相乘,其乘积通过多路复用器138由乘法器132提供至桶形移位器140。桶形移位器140按照SREG136提供的值,对该乘积归一化,并将该归一化的乘积值提供至加法器146的第二输入。加法器146的输出通过多路复用器148提供至C0REG164。前面迭代中计算的C0REG164值通过多路复用器168和180被提供至用来存储的RAM C182以及最小化处理器334。
在方框380中,合成话音样品指数n递增1。在控制方框382中,如果合成的话音取样指数n等于20,则最终迭代中计算的YL(19)在流程进行到方框390之前通过多路复用器168和124被提供至RAM B122,用来存储在一循环缓冲器内,YL(19)还被提供至最小化处理器334。
第一种情况结束第二种情况(基音滞后L为奇数值)在方框370中,按照等式(39)计算YL(0)。地址单元A102将一地址值提供至RAM A104,其响应于此通过多路复用器108将h(0)提供至ARE G130。在同一时钟周期中,地址单元B 120将一地址值提供至RAM B122,其响应于此通过多路复用器116将P(-L)提供至BRE G134。在下一时钟周期中,AREG130提供h(0)、BREG134提供P(-L)至乘法器132,在此两值相乘,其乘积通过多路复用器138提供至桶形移位器140。桶形移位器140按照SREG136提供的值,通过多路复用器149使该乘积归一化,并将该归一化的乘积提供至加法器146的第一输入。加法器146的第二输入通过多路复用器154、禁止的反相元件152以及桶形移位器152而被置零。加法器146的输出通过多路复用器148被提供至C0REG164。在同一时钟周期中,YL-1(0)和h(1)分别是从RAM C和RAM A104取出的,并通过多路复用器158和108被提供至DREG156和AREG130。
在方框372中,合成的话音取样指数n递增1。在控制方框374中,如果合成的话音取样指数n小于20,则流程进行到方框376。
在方框376中,按照等式(40)按每一时钟周期计算一个新的YL(n)值。为了使YL-1(n-1)和h(n)的值初始化,如上所述在方框370中获取在方框376的第一次迭代之前所需的恰当设置。为了存储YL(19)的最终值,在方框376的最后迭代后还需要有恰当的清除。
在方框376的第一次迭代中,方框370中计算的YL(0)是出现在C0REG164中的。C0REG164以从地址单元B120提供至RAM B122的地址值通过多路复用器168,提供YL(0)至用作存储的RAM B122。在提供至RAM B122的同时,YL(0)还被提供至最小化处理器334。
在方框376中,在一个循环中进行下述运算。按照地址单元C186提供的地址,通过多路复用器158,由RAM C182将YL-1(n)值提供至DRE G156。按照地址单元A 102提供的地址,通过多路复用器108,由RAM A104将脉冲响应值h(n+1)提供至AREG130。DRE G156通过多路复用器154、禁止的反相器元件152以及桶形移位器150,将YL-1(n-1)提供至加法器146的第一输入。ARE G130提供h(n)、BREG134提供P(-L)至乘法器132,在此两值相乘,其乘积通过多路复用器138由乘法器132提供至桶形移位器140。桶形移位器140按照SRE G136提供的值,使该乘积值归一化,并将该归一化的乘积值提供至加法器146的第二输入。加法器146的输出通过多路复用器148的第二输入。加法器146的输出通过多路复用器148被提供至C0REG164。先前迭代中计算的C0REG164中的值通过多路复用器168和124被提供至用来存储的RAM B122以及最小化处理器334。
在方框372中,合成的话音取样指数n递增1。在控制方框374中,如果合成的话音取样指数n等于20,则最终迭代中计算的YL(19)在流程进行到方框390之前通过多路复用器168和124被提供至RAM B122中,用来存储在RAM B122中的循环缓冲器内,YL(19)还被提供至最小化处理器334。
第二种情况结束在方框390的第一次迭代之前,YL-1(19)是从RAM B122内的循环缓冲器内取出的,并被装入BREG134内,YL-1(19)随后从BRE G134移送至C0RE G164。随后,YL-1(20)被从RAM B122内的循环缓冲器中取出并被装入BREG134内。
在方框390中,按照等式(41),按每一时钟循环计算一个新的YL(n)。在一个时钟周期中进行下述运算。YL-1(n-2)由BREG134提供至C0REG164。YL-1(n-3)被从RAM B122中的循环缓冲器内取出,并被装入BRE G134。C0REG164中的YL-1(n-1)被提供至最小化处理器334。在方框390的最后迭代以后,在RAM B122中循环缓冲器中消除YL-1(LP-2)。通过按每一基音滞后在循环缓冲器内加入一元素,而按每一基音滞后从循环缓冲器去除一元素,循环缓冲器的大小被保持在LP-19。循环缓冲器的实施是通过地址单元B120中的特殊地址寄存器来完成的,它支配环绕点(地址取模操作),从而可以以循环方式自动对顺序存储器进行寻址。
在方框386中,合成的话音取样指数n递增1。在控制方框388中,如果合成的话音取样指数n小于LP,则流程再次进行到方框390。如果合成的话音取样指数n等于LP,则对于当前基音滞后值已经计算了所有的YL(n)值,并且流程回到方框362。
本合成的话音取样值YL(n)的计算之前,长度为LP的感性加权话音取样值序列被提供至最小化处理器334。正如前面描述过的那样,在初始递归卷积计算期间,滞后值为L=17至L=143的LP长度的合成话音取样值序列YL(n)被提供至最小化处理器334。合成的话音取样值被顺序地提供至最小化处理器334。最小化处理器334计算每一合成的话音取样序列YL(n)的自相关,每一合成的话音取样序列YL(n)之间的互相关,以及感性加权话音取样序列XP(n)。根据这些相关值,最小化处理器334计算每一合成话音取样序列YL(n)和感性加权话音取样序列XP(n)之间的MSE相对值。对于每一基音滞后L,计算合成话音取样序列的所有可能基音增益值b的MSE。最小化处理器334对所有基音滞后值L以及所有可能的基音增益值b求得最小MSE,并通过保持当前基音滞后L和当基音增益b来保持最小MSE值。相应于最小MSE的基音滞后估算 和基音调增益估算指数_也由最小化处理器334来保持。每一新的MSE值与保持在最小化处理器334内的最小MSE比较。如果该新的MSE小于最小MSE,则该最小MSE被该新的MSE值取代,基音滞后估算 和基音增益估算指数_被更新,以反映该新的最小MSE。保持在最小化处理器334内的最小MSE和相应的基音滞后估算 以及基音增益估算指数_用基音子帧期间计算的第一负MSE值,在每一基音子帧被初始化。在所有的基音滞后值L以及所有的基音增益值b用完以后,基音滞后估算 以及基音增益估算指数_将分别对于当前基音子帧的最佳基音滞后指数和最佳基音增益指数。最小化处理器334将最佳基音滞后 以及最佳基音增益指数_提供至DSP内核4。最佳基音滞后 以及最佳基音增益指数_是由感性加权的话音取样值XP(n)和加权的合成话音取样值YL(n)之间的最小MSE产生的。该MSE是如下式(44)至(46)所述,为基音滞后L和基音增益b的函数MSE(L1b)=Σn=0LP-1(Xp(n)-bYL(n))2----(44)]]>=Σn=0LP-1(XP(n))2-2bΣn=0LP-1(XP(n)YL(n))+b2Σn=0LP-1(YL(n))2-----(45)]]>=EXPXP-2bEXPYL+b2EYLYL---(46)]]>EXPXP是感性加权的话音取样值XP(n)的自相关。EXPYY是感性加权的话音取样值XP(n)和加权的合成话音取样值YL(n)的互相关。EYLYL是加权的合成话音取样YL(n)的自相关。
感性加权的话音高取样值XP(n)的自相关EXPXP不是音调增益b的函数。EXPXP在每一基音子帧期间保持常数,所以不会影响最佳基音滞后和最佳基音增益的选择。等式(44)至(46)对基音滞后L和基音增益b的最小化等效于下述等式(47)的最小化MSE(L,b)=-2bEXPYL+b2EYLYL(47)
最小化处理器334计算加权的合成话音取样序列YL(n)的自相关EYLYL,以及感性的加权话音取样值序列XP(n)和加权的合成话音取样值序列YL(n)之间的互相关EXPYL。对于每一相关对(EXPYL,EYLYL),最小化处理器334对于一组基音增益b的值,按照上述等式(47),计算相对MSE。相关EXPYL和EYLYL的计算是同时在最小化处理器334内进行的计算相对MSE值;并在对于基音滞后L,作出有关MSE最小化的判定的同时对于基音滞后L+1,计算其相关值。
图6a和6b描述的是最小化处理器334的典型实施例。感性加权的话音取样值XP(n)是按照控制器220提供的地址由DSP内核4提供至存锁器210而存储在RAM×212内的。以间隔0.25而从b=0.25变化列b=2.0的标称基音增益值-2b通过多路复用器260由DSP内核4提供,用来分别存储在锁存器264、268、272、276、280、284、288以及292内。相应的标称基音增益b2是通过多路复用器由DSP内核4来提供的,用来分别存储在锁存器262、266、270、274、278、282、286和290。多路复用器260将这些值直接提供给锁存器262。锁存器262将这些值直接提供给锁存器264。锁存器276通过多路复用器294将值提供给锁存器278。锁存器290将这些值直接提供至锁存器292,等等。通过锁存器262至292以及多路复用器294的移位值使得这些值可以通过多路复用器260提供至循环缓冲器259内的所有锁存器。在存储了感性加权的话音取样值XP(n)以及-2b值和b2值以后,加权的合成话音取样值序列YL(n)被提供至锁存器210。加权的合成话音取样值YL(n)由锁存器210被提供至乘法器216的两个输入端,产生加权合成话音取样值的平方(YL(n))2。锁存器210还将加权合成话音取样值YL(n)提供至乘法器218的第一输入。RAM X212通过锁存器214将感性加权话音取样值XP(n)提供至乘法器212的第二输入。乘法器218计算乘积值XP(n)YL(n)。分别由乘法器216和218按每一周期计算新的平方(YL(n))2和新的乘积XP(n)YL(n)。对于每一基音滞后L,取样值指数n从0变化到Lp-1。
加权的合成话音取样值的平方(YL(n))2被提供至累加器221。乘积值X(n)被提供至累加器231。累加器221计算每一基音滞后L的LP个平方和。累加器231计算每一基音滞后L的LP个乘积值的和。
在每一新的基音滞后之前,通过多路复用器224将锁存器226置零。累加器221随后计算当前基音滞后L的自相关EYL。在累加器221中,平方值(YL(n))2被提供至加法器222的第一输入。其总和由锁存器226提供至加法器222的第二输入。新计算的总和由加法器222通过多路复用器224提供至锁存器226,用于存储。在对于基音滞后L的所有LP值累加以后,自相关EYLYL被提供至锁存器228,用作存储。
在每一新的基音滞后之前,通过多路复用器234,使锁存器236置零。随后对于当前基音滞后L,累加器231计算互相关EXPYL。在累加器231中,乘积值XP(n)YL(n)被提供至加法器232的第一输入。其总和由锁存器236提供至加法器232的第二输入。新计算的总和通过多路复用器234,由加法器232提供至锁存器236,用作存储。在对基音滞后L计算了所有LP个值以后,互相关EXPYL被提供至锁存器238,供存储。
随后按照下述两个周期的过程计算由等式(47)描述的MSE。
在两个周期的第一个中,锁存器238通过多路复用器230将感性加权的话音取样值和加权的合成话音取样值之间的互相关EXPYL提供至乘法器240的第一输入。循环缓冲器259通过多路复用器296将标称的基音增益值-2b提供至乘法器240的第二输入。乘积-2bEXPYL由乘法器240提供至加法器242的第一输入。加法器242的第二输入通过多路复用器246置零。加法器242的输出被提供至锁存器244,用作存储。循环缓冲器259的锁存器262至292中的值通过多路复用器294由提供锁存器276的输出至锁存器278,并通过多路复用器260将锁存器292的输出提供至锁存器262来循环移位。循环以后,锁存器262、264、266、268、270、272、276、278、280、282、284、286、288、290和292分别含有先前包含在锁存器292、262、264、266、268、270、272、274、276、278、280、282、284、286、288、290中的值。在基音搜寻中,循环缓冲器是由锁存器262至292以及循环缓冲器259的多路复用器260和294组成的。通过循环移位循环缓冲器259中的值,锁存器292分别在第一和第二周期中提供-2b和b2。
在两个周期的第二个中,锁存器228通过多路复用器230将加权的合成话音取样值的自相关EYLYL提供给乘法器240的第一输入。循环缓冲器259通过多路复用器296将标度的基音增益值b2提供至乘法器240的第二输入。其乘积b2EYLYL由乘法器240提供至加法器242的第一输入。通过多路复用器246将锁存器244的输出-2bEXPYL提供给加法器242的第二输入。加法器242将-2bEXPYL+b2EYLYL提供给锁存器244,用作存储。循环存储器259的锁存器262至292中的值随后如上所述循环。
上述这两个循环过程对标称的基音增益值的所有八对(-2b,b2)重复。在当前MSE值、-2bEXPYL+b2EYLYL的计算以后的两个周期中,用一对新的-2b和b2值计算一个新的MSE值。在锁存器224用新的MSE值更新以前,对当前基音子帧将当前MSE值与锁存器250内存储的当前最小MSE比较。当前MSE值-2bEXPYL+b2EYLYL由锁存器244提供至减法器248的正输入端。锁存器250将当前最小MSE值提供至减法器248的负输入端。控制器220监测减法器248输出的差值结果。如果差值为负数,对于当前基音子帧来说,该当前MSE值是一新的最小MSE,并被存储在锁存器250内,在控制器220中更新相应的基音滞后估算 和基音增益估算指数_。如果差值是非负值,则当前MSE值被忽略。
在每一基音子帧之前,DSP内核4发出一指令至最小化处理器334,通知控制器220将有一个新的基音子帧。在接收到该指令以后,在控制器220中将当前基音滞后和当前基音增益指数设置为0。在每一新的加权合成话音取样值序列被提供至最小化处理器334之前,DSP内核4发出一多指令至最小化处理器334,通知控制器220将有一个新的加权合成话音取样值序列。在接收到该指令以后,控制器220使当前基音滞后和当前基音增益的指数递增1,对应于基音滞后增量为1而基音增益增量为0.25。当加权的合成话音取样值的第一序列被提供至最小化处理器334时,当前基音调滞后和当前基音增益指数将等于1,对应于基音滞后L=17和归一化的基音增益b=0.25。同样,在每一基音子帧之前,当前基音滞后估算 和当前基音增益估算指数_被置于零,表示一无效基音滞后和基音增益。在每一基音子帧期间,控制器220将检测锁存器244中的第一负MSE。这一值被存储在锁存器250内,并且相应的基音滞后估算 和基音增益估算指数_在控制器220内更新。这样做是为了按每一基音子帧使锁存器250内的最小MAS被始化。如果在该基音子帧内没有产生负MSE值,则在该子帧结尾处,基音滞后估算 和基音增益估算指数_为零。这些估算值将由控制器220提供至DSP内核4。如果DSP内核4接收到一个无效基音滞后估算值,最佳基音增益被设定为零_=0,对应于零MSE。当基音滤波器的基音增益为零时,基音滞后没有结果。如果DSP内核4接收到一个有效基音滞后估算值 则该值被用作最佳基音滞后。对于基音增益估算指数1至8,使用的最佳基音增益将分别是0.25,0.5,0.75,1.0,1.25,1.5,1.75和2.0。
在基音搜寻中,等式(47)的MSE函数MSE(L,b)的性质允许实现计算节约。当判定在当前基音滞后中计算的其余MSE值不会产生小于存储在锁存器250内当前最小MSE的一个MSE值时,就终断当前基音滞后的其余MSE计算。本实施例中,在最小化处理器334内应用了三种基音搜寻中节约计算的技术。MSE函数MSE(L,b)是b的二次函数。对于每一基音滞后值L构成一个二次方程。所有这些二次方程通过原点b=0和MSE(L,b)=0。基音增益值b=0包括在该组可能的增益值内,尽管该值不是在这基音搜寻运算中明显搜寻的。
第一种节约计算的方法包括当EXPYL为负值时在当前基音滞后的基音搜寻中去掉MSE值的计算。所有的基音增益值为正值,确保了零为每一子帧最小MSE的上限。EXPYL的负值将导致正的MSE值,并因此为次最佳(Sub-optimal)的。
第二种节约计算的方法包括根据MSE函数的二次特性,在当前基音滞后的基音搜寻过程中省去其余MSE值的计算。MSE函数MSE(L,b)是对单调增加的基音增益值计算的。当为当前基音滞后计算出一正的MSE值时,省去为当前基音滞后所做的所有其余MSE计算,因为所有其余的MSE值为正值。
第三种节约计算的方法包含根据MSE函数的二次性质,在当前基音滞后的基音搜寻过程中省去其余MSE值的计算。MSE函数MSE(L,b)是对单调递增的基音增益值计算的。当在当前基音滞后内,某一MSE值计算出来并未被判定为新的最小MSE,并且在此之前某一MSE值已被判定为新的最小MSE的时候,就中断当前基音滞后内的所有其余MSE计算,因为剩余的MSE值不能小于新的最小MSE。上述三种节约计算的方法给出了最小化处理器334内的有效的节约能源的方法。在方框76内,基音值被量化。对于每一基音子帧,选择的参数_和 被转换成传输编码PGAIN和PLAG。最佳基音增益指数_是一个1和8(含1和8)之间的整数。最佳基音滞后 是一个1和127(含1和127)之间的整数值。
PLAG的值依赖于_和 如果_=0,则PLAG=0。否则PLAG=L^.]]>所以,PLAG用七位来表示。如果_=0,则PGAIN=0。否则PGAIN=_-1。所以PGAIN用三位来表示。注意_=0和_=1都使PGAIN=0。这两种情况是用PLAG的值来区分的,它在第一种情况下为零,在第二种情况中为非零。
由于原料中不需要使用价格昂贵的贵金属钴,镍和锰的含量也较现有技术降低不少,因此比现有Ni-Fe基触媒合金原料成本减少20%以上。经多次实验显示,本触媒合金可应用于粗颗粒,高强度优质金刚石的合成。利用该触媒合成的人造金刚石峰值集中,40-60的占比例在65%以上,峰值产量静压强度≥13kg所占比例在35%以上,金刚石颜色金黄,透明度高。
具体实施例方式本发明合金采用常规的粉状或片状加工方法,按表1所列组份(重量%)进行配料,真空熔炼。
根据本发明FeNi基触媒的化学成分范围,配制了4批触媒,表2提供了制备上述4批触媒混合料的具体化学成分,表3提供了前述4批触媒的性能指标。
表1 Fe-Ni基触媒炉料配比(重量%)

表2

码书向量CI(n)是由码书400响应于码书指数I按照等式53来提供的。在本实施例中,采用当前基音子帧的基音搜寻过程中已经确定的加权合成滤波器404的脉冲响应h(n)。然而在八分之一速率的情况下,h(n)是在加权合成滤波器404中的码书搜寻中计算的。本实施例中,脉冲响应h(n)被截取至前20个取样值。
由于码书的递归特性,在码书搜寻中采用与基音搜寻中类似的递归卷积过程。卷积是用下述等式(52)来计算的。
YI(n)=Σi=019h(i)CI(n-i),0≤I<128,0≤n<LC------(52)]]>指数I的码书向量CI(n)是用下式(53)来定义的。
全卷积是按照等式54,对指数I=0来进行的。输出Y0(n)被存储在RAM C182中。对于其余的指数I=1至I=127,卷积是如下式55-57以递归方式进行的。
Y0(n)=h(n)*C0(n)=Σi=019h(i)C0(n-i),0≤n<LC----(54)]]> 如同基音搜寻中那样,递归卷积的码书搜寻的性能是由三重分区的RAM和DSP内核4中的ROM E114来最佳化的。
因此可以计算等式(56)中的卷积值,并按每一时钟周期产生一个结果。例如,在一个周期中,计算Y18(10),存储Y18(9),取得Y17(10),并取得h(10)。所以,上述等式(56)可以按每一时钟周期产生一个结果。对于上述等式(57)也可以按每一时钟周期产生一个结果。例如,在一个时钟周期中,计算Y18(24),取得Y17(24),并存储Y18(23)。
能够进行等式(56)和(57)的运算,而无需在每一码书指数更新之间将前面计算的加权合成话音取样值YI-1(n-1)移送至同一源RAM,需要称为乒乓过程的存储策略和硬件能力。其中,在每一指数更新之间交换的源和目的RAM。当计算偶数码书数值的YI(n)时,从三个RAM中的第一个取得YI-1(n-1)值,其结果被存储在三个RAM中的第二个内。当计算奇数码书指数值的YI(n)时,从三个RAM的第二个内取得YI-1(n-1)值,其结果存储在三个RAM中的第一个内。这一乒乓过程无需在每一码书指数更新期间将先前计算的YI-1(n-1)值移送到同一RAM。
图10是本实施例中码书搜寻的递归卷积部分(初始非递归和递归卷积)执行的流程图。方框414中,码书指数I被初始化至其最低值,本实施例中,该最低值为0。样本号n和指数m被设定为零,Y0(n)的值被设定为零。方框416至424构成以非递归方式计算的初始卷积循环。初始卷积的计算(此处I=0)是按等式(58)来进行的。
Y0(n)=Σi-019h(i)C0(n-i)---0≤n<LC-----(58)]]>初始卷积的计算采用固定长度的循环,来减小计算的复杂性。采用这种方式,就避免了在等式(58)内循环(方框320-324)中建立可变长度循环结构所需的开销。每一Y0(n)在其计算以后被传送至最小化处理器412。
方框416测试样本指数n。如果n等于码书子帧长度LC,则第一卷积结束,流程进行到方框426。如果在方框416中,n小于码书子帧长度,则流程继续进行到方框420。方框420测试指数m。如果m等于滤波器脉冲响应长度(本实施例中为20),则当前迭代结束,流程进行到方框418,这时m被设定为0,n递增1。流程随后回到方框416。如果在方框420中,m小于滤器脉冲响应长度20,则程序进行到方框424,累计部分和。流程进行到方框422,此处m递增1,流程进行到方框420。
在DSP内核4中,进行由方框414至424形成的初始卷积循环中包含的运算,其中给出恰当的流水线,使得可以如方框424中所示进行乘积的累加。下面的运算描述了一个时钟周期中出现在DSP内核4中的计算流水线。滤波器响应值h(m+1)从RAM A104中取出,并被提供至AREG 130。码书向量值CI(n)从ROME114中取出,并被提供至BREG 134。C0REG 164内的部分和Y0(n+m-1)通过多路复用器168和180被提供至RAM C182。部分积Y0(n+m+1)由RAM C182提供至DREG156。AREG130和BRE G134内的值h(m)和CI(n)分别被提供至乘法器132。乘法器132的输出通过多路复用器138和禁止的桶形移位器140提供至加法器146的第一输入。部分和Y0(n+m)由DREG156通过多路复用器154、禁止的反相器152和禁止的桶形移位器150提供至加法器146的第二输入。本实施例中,中心剪除的高斯码书CI(n)大多数为零值。利用这一情况作为节能特性,DSP内核4首先检验在方框424中,码书向量是否为零。如果为零,则跳过上述通常在方框424内进行的相乘和相加步骤。这一过程清除了略占80%时间的相乘和相加运算,从而节省了能源。加法器146的输出通过多路复用器148被提供至C0REG 164。C0REG中的该值随后通过多路复用器168和180被提供至RAM C182。当指数n达到方框416中的最大允许值时,初始卷积结束,RAM C182中的部分和现在就是卷积的结果。
当初始卷积结束时,流程进行到方框426,对剩余码书指数值进行递归卷积的计算。
在方框426中,样本指数n被设定为零,码书指数I递增1。流程进行到方框428。方框428测试I。如果I大于或等于128(在本实施例中128为最大码书指数值),则流程进行到方框430,在此码书搜寻运算终止。如果I小于或等于127,则流程进行到方框432。方框432控制前面描述的乒乓运算过程。在方框432,测试I,来确定它是偶数还是奇数。如果I是偶数,则流程进行到方框442(第一种情况所描述的运算)。如果I为奇数,则流程进行到方框434(第二种情况描述的运算)。
第一种情况(码书指数I为偶数值)在方框442中,按照等式55计算YI(0)。地址单元A 102将一地址值提供至RAM A104,它响应于此通过多路复用器108将h(0)提供至AREG130。在同一时钟周期中,地址单元E112将一地址值提供至ROM E114,它响应于此通过多路复用器116将CI(0)提供至BREG134。在下一个周期中,AREG130提供h(0)、BREG134提供CI(0)至乘法器132,在此,两值相乘,其积通过多路复用器138以及禁止的桶形移位器140提供至加法器146的第一输入。加法器146的第二输入通过多路复用器154、禁止的反相器元件152以及桶形移位器152被置零。加法器146的输出通过多路复用器148提供至C0REG164。同一时钟周期内,YI-1和h(1)被分别从RAM B122和RAM A104读取,并通过多路复用器158和100被提供至DREG156和AREG130。
在方框444内,合成的话音样品指数n递增1。在控制方框446内,如果合成的话音样品指数n小于20,则流程进行到方框448。
在方框448中,按照等式(56)每一时钟周期计算一个新的YI(n)。为了使YI-1(n-1)和h(n)的值初始化而在方框448的第一次叠代之前所需的恰当设置是如上所述在方框442内实现的。为了存储YI(19)的最终值,在方框448的最后迭代后还需要恰当的清除。
在方框448的第一次迭代中,方框442中计算的YI(0)出现在C0REG164内。C0REG164通过多路复用器168和180,以从地址单元C186提供至RAM C182的地址值向用作存储的RAM C182提供YI(0),YI(0)在被提供至RAM C182的同时还被提供至最小化处理器412。
在方框448内,在一个时钟周期中进行下述运算。按照地址单元B120提供的地址,通过多路复用器116和158,由RAM B122将YI-1(n)提供至DRE G156。按照地址单元A 102提供的地址,通过多路复用器108,由RAM A104将脉冲响应值提供至AREG 130。DREG156通过多路复用器154、禁止的反相器元件152以及桶形移位器150将YI-1(n-1)提供至加法器146的第一输入。AREG 130提供h(n)、BREG 134提供CI(n)提供至乘法器132,在此两值相乘,其乘积由乘法器132通过多路复用器138、通过禁止的桶形移位器140提供至加法器146的第二输入。加法器146的输出通过多路复用器148提供至C0REG164。C0REG164中在前一迭代中计算的值通过多路复用器168和180被提供至用作存储的RAM C182以及最小化处理器412。
在控制方框446中,如果合成的话音样品指数n等于20,则流程在进行到方框454之前,最终迭代中计算的YI(19)通过多路复用器168和124被提供至RAMB122,用来存储在循环缓冲器以及最小化处理器412内。
第一种情况结束第二种情况(码书指数I为奇数值)在方框434中,按照等式55计算II(0)。地址单元A 102提供一地址值至RAMA104,其对此响应,通过多路复用器108将h(0)提供至AREG 130。在同一时钟周期中,地址单元E 112将一地址值提供至ROME 114,其响应于此,通过多路复用器116将CI(0)提供至BREG 134。在下一周期中,AREG 130提供h(0)、BREG 134提供CI(0)至乘法器132,在此两值相乘,其积通过多路复用器138、通过禁止的桶形移位器140被提供至加法器146的第一输入。加法器146的第二输入通过多路复用器154、禁止的反相器元件152以及桶形移位器152被置零。加法器146的输出通过多路复用器148被提供至C0REG164。在同一时钟周期中,YI-1(0)和h(1)被分别从RAM C182和RAMA102中读取,并通过多路复用器158和100被提供至DREG156和AREG130。
在方框436中,合成的话音样品指数n递增1。在控制方框438中,如果合成的话音样品指数n小于20,则流程进行到方框440。
在方框440中,按照等式(56)每一时钟周期计算一个新的YI(n)值。为了使YI-1(n)和h(n)的值初始化,方框440的第一次迭代之前所需的恰当设置是如上所述在方框434中实现的。为了存储YI(19)的最终值,方框440的最终迭代后还需要恰当的清除。
在方框440的第一次迭代中,方框434中计算的YI(0)出现在C0REG164中。C0REG164通过多路复用器168和180,以从地址单元B120提供至RAM B122的地址值向用作存储的RAM B122提供YI(0),YI(0)在被提供至RAM B122的同时还被提供至最小化处理器412。
在方框440中,在一个时钟周期中进行下述运算。按照地址单元C 186提供的地址,通过多路复用器158,由RAM C182将YI-1(n)值提供至DREG 156。按照地址单元A 102提供的地址,通过多路复用器108,由RAM A104将脉冲响应值h(n+1)提供至AREG 130。DREG156通过多路复用器154、禁止的反相器元件152以及桶形移位器150,将YI-1(n-1)提供至加法器146的第一输入。AREG 130提供h(n)、BREG 134提供CI(n)至乘法器132,在此两值相乘,并且其积由乘法器132通过多路复用器138、桶形移位器140提供至加法器146的第二输入。加法器146的输出通过乘法器148提供至C0REG164。C0REG164中由前一迭代计算的值通过多路复用器168和124被提供至用作存储的RAM B122以及最小化处理器412。
在方框436中,合成的话音样品指数n递增1。在控制方框438中,如果合成的话音样品指数n等于20,则在流程进行到方框454之前,在最后迭代中计算的YI(19)通过多路复用器168和124被提供至RAM B122,用来存储在RAM B122中的循环缓冲器内,YI(19)还被提供至最小化处理器412。
第二种情况结束在方框454的第一次迭代之前,YI-1(19)是从RAM B122中的循环缓冲器内取得并被装入BREGB 4内的。YI-1(19)随后从BREG 134移送到C0REG 164,随后YI-1(20)被从RAM B122中的循环缓冲器内取得,并被装入BREG 134内。
在方框454内,按照等式(57),每一时钟周期计算一个新的YI(n)。在一个时钟周期中进行下述运算。YI-1(n-2)由BREG 134提供至C0REG 164。YI-1(n-3)是从RAM B122内的循环缓冲器读取并被装入BREG 134内的。C0REG 164中的YI-1(n-1)提交给最小化处理器412。在方框454的最后迭代以后,从RAM B122中的循环缓冲器中删除YI-1(LC-2)。对每一码书指数,在RAM B122内的循环缓冲器中加进并去掉一个元素,使循环缓冲器的大小保持在LC-19。
RAM B122中循环缓冲器的实施是由地址单元B120中的特殊地址寄存器来实现的,其支配环绕点(地址取模操作),从而以循环方式自动对顺序存储器寻址。
在方框450中,合成的话音取样指数n递增1。在控制方框452中,如果合成的话音取样指数n小于LC,则流程进行到方框454。如果合成的话音样品指数n等于LC,则对于当前码书指数值I已计算了所有的YI(n)值,流程回到方框426。
在合成话音取样值YI(n)的计算之前,长为LC的感性加权的话音取样值序列XC(n)被提供至最小化处理器412。如前所述,对于码书向量指数值I=0至I=127,长度为LC的合成话音取样值序列YI(n)在初始和递归卷积计算期间被提供至最小化处理器412。合成的话音取样值被顺序地提供至最小化处理器412。最小化处理器412计算每一合成话音样品序列的自相关以及每一合成话音取样序列YI(n)和感性加权的话音取样值序列XC(n)之间的互相关。根据这些相关值,最小化处理器412随后计算每一合成话音取样序列YI(n)和感性加权的话音取样值序列XC(n)之间MSE的相对值。对于每一码书向量指数I,对合成话音取样序列的所有可能的码书增益值G计算MSE。通过当前码书向量指数I和当前码书增益G的最小MSE值来保持最小MSE值,最小化处理器412在所有码书向量指数值I和所有码书增益值G中求得最小MSE。对应于最小MSE的码书向量指数估算 以及码书增益指数估算值 也由最小化处理器412保持。每一新的MSE值与最小化处理器412中保持的MSE比较。如果新的MSE小于最小MSE,则该最小MSE由新的MSE值取代,码书向量指数估算值 和码书增益估算值指数 被更新,以反映该的最小MSE。最小化处理器412中保持的最小MSE以及相应的码书向量指数估算值 和码书增益估算指数 在每一用码书子帧中计算的第一MSE值。在所有的码书向量指数I和所有码书增益值G用尽以后,码书向量指数估算值 和码书增益估算指数 就将分别是当前码书子帧的最佳码书向量指数和最佳码书增益指数。最小化处理器412通过输入口12提供最佳码书向量指数 以及最佳码书增益指数 至DSP内核4。最佳码书向量指数 和最佳码书增益估算指数 是产生感性加权的话音取样值XC(n)以及加权的合成话音取样值YI(n)之间最小MSE的那些指数值。如下述等式(59)至(61)所述,MSE是码书指数I和码书增益G的函数。
MSE(I,G)=Σn=0LC-1(XC(n)-GY1(n))2----(59)]]>=Σn=0LL-1(XC(n))2-2GΣn=0LC-1(XC(n)YI(n))+]]>G2Σn=0LC-1(YI(n))2-----(60)]]>=EXCXC-2GEXCYL+G2EYLYI---(61)]]>EXCXC是感性加权话音取样值XC(n)的自相关。EXCYI是感性加权话音取样值XC(n)和加权合成的话音取样值YI(n)之间的互相关。EYIYI是感性加权的合成话音取样值YI(n)的自相关。
感性加权的话音取样值XC(n)的自相关EXCXC不是码书增益G的函数。EXCXC在每一码书子帧内保持不变,所以不反映最佳码书向量指数和最佳码书增益的选择。等式(59)至(61)对码书向量指数I和码书增益G的最小化与下述等式(62)的最小化等价。
MSE(I,G)=-2GEXCYI+G2EYIYI(62)
最小化处理器计算加权合成话音取样值序列YI(n)的自相关EYIYI以及加权的话音取样值序列XC(n)和加权的合成话音取样值序列YI(n)之间的互相关EXCYI。对于每一相关对(EXCYL,EYIYI),最小化处理器412按照上述等式(62),计算一组码书增益G的相对MSE。相关值EXCYI和EYIYI的计算是同时在最小化处理器412内进行的。对于码书向量指数I计算相对MSE值,并作出有关MSE最小值的判定,同时对码书向量指数I+1,计算相关值。
图6a和6b描述了一个最小化处理器412的典型实施例。感性加权的话音取样值XC(n)由DSP内核4提供至锁存器210,用来按照控制器220提供的地址存储在RAM X212中。两组码书增益值是由DSP内核4提供至最小化处理器412的。一组用于正码书增益值G,第二组用于负码书增益值-G。在全速率和半速率中,标称码书增益-2G,从G=-4.0dB至G=+8.0dB,以间隔+4.0dB通过多路复用器260由DSP内核4提供,分别存储在锁存器292、288、284以及280内。在四分之一速率以及八分之一速率下,标称码书增益值-2G,从G=-4.0dB到G=-2.0dB,以间隔2.0dB,通过多路复用器260,由DSP内核4提供,分别存储在锁存器292、288、284以及280内。相应的标称编码簿增益值G2通过多路复用器260提供,分别存储在锁存器290、286、282以及278内。在全速率以及二分之一速率下,标称码书增益值2G从G=-4.0dB到G=+8.0dB以间隔+4.0dB通过多路复用器260提供,分别存储在锁存器276、272、268以及264内。在四分之一速率和八分之一速率下标称码书增益值2G从G=-4.0dB到G=2.0dB,以间隔+2.0dB,通过多路复用器260提供,分别存储在锁存器276、272、268和264内。相应的标称码书增益值G2通过多路复用器260提供,分别存储在锁存器274、270、266和262内。多路复用器260将值直接提供给锁存器262。锁存器262将值直接提供给锁存器264。锁存器276通过多路复用器294将值提供给锁存器278。锁存器290将值直接提供给锁存器292,等等。通过锁存器262至292以及多路复用器294的移位值使得这些值可以通过多路复用器260提供到循环缓冲器259内的所有锁存器。在码书搜寻中,循环缓冲器259内提供两个循环缓冲器。在感性加权的话音取样值XC(n)存储和码书增益值的存储以后,加权合成的话音取样值序列列YI(n)被提供至锁存器210。加权合成的话音取样值II(n)由锁存器210提供至产生加权合成话音取样值的平方(YI(n))2的乘法器216的两个输入端。锁存器210还提供加权合成话音取样值YI(n)至乘法器218的第一输入端。RAMX212通过锁存器214将感性加权的话音取样值XC(n)提供至乘法器218的第二输入端。乘法器218计算乘积值XC(n)YI(n)。每一周期新的平方(YI(n)2和新的乘积XC(n)YI(n)分别由乘法器216和218计算。取样指数n按每一码书向量指数值I从0变化到LC-1。
加权合成的话音取样值的平方(YI(n))2被提供至累加器221。乘积值XC(n)YI(n)被提供至累加器231。累加器221对每一码书向量指数I计算LC平方和。累加器231对每一码书向量指数I计算LC个乘积值的和。
在每一新的码书向量指数之前,锁存器226通过多路复用器224提供零。累加器221准备计算当前码书向量指数I的自相关EYIYI。在累加器221中,平方(YI(n))2被提供至加法器222的第一输入端。总和由锁存器226提供至加法器222的第二输入端。新计算的总和由加法器222通过多路复用器224提供至锁存器226,用作存储。在对码书向量指数I的所有LC个值累加以后,自相关值EYIYI被提供至锁存器228,供存储。
在每一新的码书向量指数之前,锁存器236通过多路复用器234提供零。累加器231准备计算当前码书向量指数I的互相关值EXCYI。在累加器231中,乘积值XC(n)YI(n)被提供至加法器232的第一输入端。总和由锁存器236提供至加法器232的第二输入。新计算的总和由加法器232通过多路复用器234提供至锁存器236,供存储。在对码书向量指数I的所有LC个值累加以后,互相关值EXCYI被提供至锁存器238,供存储。
等式(62)描述的MSE随后在下述两个周期的过程中计算。
在两个周期的第一个中,锁存器238通过多路复用器230将感性加权的话音取样值和加权的合成话音取样值之间的互相关值EXCYI提供至乘法器240的第一输入端。控制器220监测锁存器238提供的EXCYI。如果EXCYI是非负值,则锁存器292通过多路复用器296将标称码书增益值-2G提供至乘法器240的第二输入端。乘积-2GEXCYI由乘法器240提供至加法器242的第一输入。如果EXCYI是负值,则锁存器276通过多路复用器296将标称码书增益值2G提供至乘法器240的第二输入。乘积2GEXCYI由乘法器240提供至加法器242的第一输入。加法器242的第二输入通过多路复用器246置零。加法器242的输出被提供至锁存器244,供存储。EXCYI的符号存储在控制器220内。EXCYI的符号为1和0分别对应于EXCYI的负值和非负值。锁存器262至276的值通过多路复用器260,由提供锁存器276的输出至锁存器262来循环移位。循环移位以后,锁存器262、264、266、268、270、272、274以及276中分别包含以前存储在锁存器276、262、264、266、268、270、272以及274中的值。锁存器278至292中的值通过多路复用器294,由提供锁存器292中的值通过多路复用器294,由提供锁存器292的输出至锁存器278来循环移位。循环移位以后,锁存器278、280、282、284、286、288、290以及292、分别包含以前存储在锁存器292、278、280、282、284、286、288以及290中的值。一个循环缓冲器是由锁存器262至276和多路复用器260组成的。第二个循环缓冲器是由锁存器278至292以及多路复用器294组成的。通过循环移位循环缓冲器259中两个循环缓冲器的第二个中的值,锁存器292分别提供第一和第二周期中的-2G和G2。通过循环移位循环缓冲器259中两个循环缓冲器的第二个中的值,锁存器276分别提供第一和第二周期中的2G和G2。对于每一对相关和互相关值,只有一组码书增益对是由循环缓冲259提供的。一组码书增益对是由循环缓冲器262至276和多路复用器260组成的循环缓冲器为负值的EXCYI提供的。另一组码书增益对是由锁存器278至292和多路复用器294组成的循环缓冲器为非负值的EXCYI提供的。
在两个周期的第二个中,锁存器228通过多路复用器230将EYIYI提供至乘法器240的第一个输入端。通过多路复用器296,锁存器276和292分别对负值和非负值的EXCYI,将码书增益值G2提供至乘法器240的第二输入端。乘积G2EYIYI由乘法器240提供至加法器242的第一输入端。加法器242的第二输入端通过多路复用器246提供锁存器244的输出±2GEXCYI。加法器242提供±2GEXCYI+G2EYIYI至锁存器244,供存储。循环缓冲器259的锁存器262至292中的值以上述方式循环移位。
上述两周期的过程对于每一码书指数I和所有四对码书增益值(±2G,G2)重复。在当前MSE值(±2GEXCYI+G2EYIYI)计算以后的两个周期中,用下一对±2G和G2值计算一个新的MSE值。在锁存器244用新的MSE值更新之前,当前MSE值与存储在锁存器250中当前码书子帧的最小MES比较,当前MSE值(±2GEXCYI+G2EYIYI)由锁存器244提供至减法器248的正输入端。锁存器250将当前最小MSE值提供至减法器248的负输入端。控制器220监测减法器248输出的差值。如果差值为负,则当前MSE值为当前码书小帧的新的最小MSE,并被存储在锁存器250内,相应的码书向量指数估算 和码书增益估算指数 在控制器220内更新。如果差值为非负值,则当前MSE值被忽略。
在每一码书子帧之前,DSP内核4向最小化处理器412发出一条指令,通知控制器220以下有一个新的码书子帧。在收到这条指令以后,当前码书向量指数和当前码书增益指数在控制器220中被设置为0。在每一新的加权合成话音取值值序列被提供至最小化处理器412之前,DSP内核4发出一条指令给最小化处理器412,通知控制器220以下有一个加权合成话音取样值的新序列。在收到这条指令以后,控制器使当前码书向量指数和当前码书增益指数递增1,这对应于码书向量指数增量1和根据速率码书增益增量2dB或4dB。当加权合成的话音取样值的第一序列被提供至最小化处理器412时,当前码书向量指数和当前码书增益指数等于1,这对应于码书指数向量为0以及根据速率不同码书增益G=-8dB或G=-4dB。在每一码书子帧内,第一个MSE值存储在锁存器250内,相应的码书向量指数估算值 和码书增益优算指数 在控制器220内更新。这样做是为了对每一码书子帧使锁存器250内的最小MSE初始化。相应于最小MSE估算值的码书向量指数和码书增益指数将与相应于最小MSE的互相关EXCYI的符号一起由控制器220提供至DSP内核4。如果DSP内核4接收到表示EXCYI符号的零值则它将把最佳码书增益设定为G。如果DSP内核4收到表示EXCYI符号的1值,则它将把最佳码书增益设定为-G。DSP内核4用控制器220提供的码书向量指数估算值和码书增益估算指数来确定最佳码书向量和最佳码书增益。对于全速率和半速率,分别对应于码书增益指数G^=1]]>至G^=4]]>最佳码书增益G为-4dB、0dB、+4dB和+8dB。对于四分之一和八分之一速率,对应于码书增益指数G^=1]]>至G^=4,]]>最佳码书增益G为-4dB、-2dB、0dB和+2dB。
在码书搜寻中,等式(62)表示的MSE函数MSE(I,G)的性质使得可以节约计算。当判定出对当前码书向量计算剩下的MSE值无法产生小于锁存器250中存储的当前最小MSE时,就可以停止对当前码书向量的其余MSE计算。本实施例中,在最小化处理器412中采用了三种码书搜寻节约计算的技术。MSE函数MSE(I,G)是G的二次函数。对每一码书向量指数I构成一个二次方程。所有这些二次方程均通过原点G=0和MSE(I,G)=0。
第一种节约计算的方法包含根据EXCYI的符号,搜寻正码书增益值或负码书增益值。EXCYI的负值和负增益值将产生等式62中-2GEXCYI项的负值。EXCYI的正值和正增益值也将产生等式62中-2GEXCYI项的负值。因为等式(62)中G2EYIYI项总是正数,-2GEXCYI项的负值将趋于使MSE最小。两组码书增益对被提供至循环缓冲器259,一个带有正码书增益值,第二个带有负码书增益值。以这种方式,对于每一码书向量指数I,可以使用四对增益值来取代八对增益值。
第二种节约计算的方法包括根据MSE函数的二次特性,在当前码书向量的码书搜寻过程中省略其余MSE值的计算。MSE函数MSE(IG)是按单调增加的码书增益值计算的。当为当前码书向量计算出一个正MSE值时,因为相应的MSE值将大于当前MSE值,所以为当前码书向量所有剩余MSE计算可以被省略。
第三种节省计算的方法包含根据MSE函数的二次特性,在当前码书指数向量的码书搜寻过程中省去其余MSE值的计算。因为对单调增加的码书增益值计算MSE(I,G),当在当前码书向量内计算出一个被判定为不是新的最小MSE的MSE值并且在当前码书向量前一个已经计算的MSE被判定的是新的最小MSE的MSE值时,当前码书向量内的其余MSE计算可以被省去。这是因为这些其余的MSE值不会小于新的最小MSE。上述三种节约计算的方法使最小化处理器412中的功耗大大减少。
在方框84内,码书值被量化。方框86检验是否处理了所有的码书子帧。如果还未处理完所有的码书子帧,则流程回到方框80,如果所有的码书子帧均已被处理,则流程进行到方框88。方框88检验是否所有的基音子帧均已被处理。如果还未处理完所有的基音子帧,则流程程回到方框70,如果所有的基音子帧均已被处理,则流程进行到方框90。
在方框90中,编码结果被压缩成一种特定格式。在全速率下,由微处理机(未图示)读取22字节的数据。半速率读取10字节,四分之一速率读取5字节,八分之一速率读取2个字节。在全速率下产生11个奇偶检验位,提供全速率数据18个最重要位的纠错和检验。
发射机处的编码器必须保持接收机处译码器的状态,目的是为更新在基音和码书搜寻过程中依次用作编码器的滤波器存储值。本实施例中,编码器包含在每一码书子帧后使用的译码器的版本(version)。
在DSP内核4内进行下述译码操作用作编码器的一部分。参见图11,为当前码书子帧确定的最佳码书向量指数 和最佳码书增益 被用来产生一个标称码书向量Gd(n)。除了八分之一速率以外,码书502配备有为当前码书子帧确定的最佳码书指数 并响应于此,提供相应的激励向量至乘法器504的第一输入端。在八分之一速率的情况下,伪随机向量发生器500产生一个伪随机序列作为Cd(n),并被提供至乘法器504的第一输入端。为当前码书子帧确定的最佳码书增益 被提供至乘法器504的第二输入端。该序列是由接收机处译码器所使用的同样伪随机发生运算产生的。
标称码书向量Cd(n)被提供至产生共振峰残留Pd(n)的基音合成滤波器506。基音合成滤波之存储值由生成话音的最后取样产生的最终状态初始化。基音合成滤波器506采用为当前基音子帧判定的最佳基音滞后 和最佳基音增益_。对于八分之一速率,最佳基音增益被设定为0。保留基音合成滤波存储值的最后状态,用来产生如上所述的下一基音调子帧的话音,以及用于后续基音搜寻和编码器内的译码操作。
加权共振峰合成滤波器508根据共振峰残留Pd(n)产生输出Yd(n)。这个滤波器由产生话音的最后取样的最终状态初始化。根据当前子帧插值LSP值计算的LPC系数用作该滤波器的系数。该滤波器的最终状态用来产生下一码书子帧的话音,以及用于随后的基音及码书搜寻。
图2中方框44和50所示的译码操作是在DSP内核4内进行的。ASIC通过微处理机接口42从微处理机(未图示)接收特定格式的数据包。DSP内核4对该数据包中的数据译码,并用它来合成通过PCM接口2提供至一编译码器(未图示)的话音取样值。在DSP内格4中,接收的数据包被拆开,来取得合成话音取样值所需的数据。数据包括编码速率LSP频率、以及该速率下相应子帧的基音和码书参数。根据接收的数据包数据对话音取样值的合成是在DSP内核4内进行的,并示于图12中。
参见图12,相应于当前码书子帧的最佳码书向量指数 和最佳码书增益 被译码器用来产生标称编码薄向量Cd(n)。除了八分之一速率之外,对应于当前码书子帧的最佳码书指数 码书522被提供。响应于此,将相应的激励向量提供至乘法器524的第一输入端。在八分之一速率的情况下,用于Cd(n)的伪随机序列由伪随机向量发生器520产生,并提供至乘法器524的第一输入端。该序列由接收机处译码器使用的同一伪随机发生操作来产生。相应于当前码书子帧的最佳码书增益值 被提供至乘法器524的第二输入端。
标称码书向量Cd(n)被提供至产生共振峰残留Pd(n)的基音合成滤波器526基音合成滤波器存储器由生成话音的最后取样所产生的最后状态初始化。基音合成滤波器526使用相应于当前基音子帧的最佳基音滞后 和最佳基音增益_。对于八分之一速率,最佳基音增益被设定为0。基音合成滤波器的最终状态被存储起来,用来产生如上所述下一基音子帧的话音。
加权共振峰合成滤波器528根据共振峰残留Pd(n)产生输出Yd(n)。该滤波器由生成话音的最后取样值产生的最终状态初始化。根据当前子帧的插值LSP值计算的LPC系数用作该滤波器的系数。滤波器的最终状态被存储起来,用来产生下一码书子帧的话音。
被译码的话音Yd(n)被提供至在本实施例中称为长期后置滤波器(long termpost-filter)的后置滤波器530它是基于被译码的当前子帧的LPC系数。后置滤波器530对重新构筑的话音取样Yd(n)进行滤波,并将经滤波的话音提供至增益控制器532。增益控制器532控制输出话音Sd(n)的电平,并能够进行自动增益控制(AGC)。
前述本发明的描述使得本领域的任何技术人员能制作或使用本发明。本领域的技术人员还可以对这些实施例作各种改进,其基本原理还可以用于其他实施例,而无需借助一本发明的专业人员。所以,本发明并非仅限于上述实施例,而应当在本文所揭示的原理和新特征的最大范围内来理解本发明。
权利要求
1.一种用于进行滤波操作的数字信号处理器,所述处理器在时钟周期产生多个滤波结果,该处理器包括第一乘/加元件,用于接收输入信号样值以及滤波器系数,并产生第一滤波结果;多个附加乘/加元件;以及控制元件,用于将所述多个附加乘/加元件置于滤波器模式,其中在所述滤波器模式中,所述附加乘/加元件接收所述输入信号样值的延迟形式,还接收所述滤波器系数,并产生多个附加滤波结果。
2.如权利要求1所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于最小化处理器中。
3.如权利要求1所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于耦合于所述数字处理核心的辅助处理器中。
4.如权利要求1所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于协同处理器中。
5.如权利要求1所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于加速器中。
6.如权利要求1所述的滤波器,其特征在于所述控制元件控制多个多路复用器以在所述滤波器模式时配置一组预定数据路径。
7.如权利要求1所述的滤波器,其特征在于进一步包括多路复用器,用于接收所述附加滤波结果并选择所述滤波结果的其中一个作为输出。
8.在一种包括数字信号处理核心和最小化处理器的声码器中,其中所述最小化处理器包括多个累加器和多个乘法器,一子系统包括控制装置,用于将所述最小化处理器置于滤波器模式;以及算术装置,用于响应与所述控制装置而进行信号分析操作。
9.如权利要求8所述的声码器,其特征在于所述信号分析操作是滤波操作。
10.如权利要求8所述的声码器,其特征在于所述信号分析操作是自相关操作。
11.如权利要求8所述的声码器,其特征在于所述信号分析操作是互相关联操作。
12.一种用于进行信号分析操作的数字信号处理器,所述处理器在时钟周期产生多个分析结果,该处理器包括第一乘/加元件,用于接收输入信号样值,并产生第一分析结果;多个附加乘/加元件;以及控制元件,用于将所述多个附加乘/加元件置于补充模式,其中在所述补充模式中,所述附加乘/加元件接收所述输入信号样值以及输入信号样值的延迟形式,并产生多个补充分析结果。
13.如权利要求12所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于最小化处理器中。
14.如权利要求12所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于耦合于所述数字处理核心的辅助处理器中。
15.如权利要求12所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于协同处理器中。
16.如权利要求12所述的滤波器,其特征在于所述第一乘/加元件置于数字信号处理核心中,而所述多个附加乘/加元件置于加速器中。
17.如权利要求12所述的滤波器,其特征在于所述控制元件控制多个多路复用器以在所述补充模式时配置一组预定数据路径。
18.如权利要求12所述的滤波器,其特征在于进一步包括多路复用器,用于接收所述附加分析结果并选择所述分析结果的其中一个作为输出。
19.一种进行递归卷积的设备,用于将数字化话音模型化,它包括数字信号处理器(DSP)核心,用于递归地对多个值进行卷积;多个随机存取存储器(RAM),可由DSP核心进行存取,每个RAM用于存储各个值,以使这些值可从RAM中相互并行地读取以由DSP核心进行处理。
20.如权利要求19所述的设备,其特征在于多个RAM包括第一RAM,用于存储表示加权合成话音样值的第一组值;第二RAM,用于存储表示共振峰滤波器脉冲相应的第二组值;以及第三RAM,用于存储表示共振峰残留的第三组值。
21.如权利要求20所述的设备,其特征在于进一步包括最小化处理器,用于从DSP核心接收递归卷积的结果,并产生将数字化话音模式化的输出。
22.如权利要求21所述的设备,其特征在于进一步包括块归一化电路,该电路包括移位寄存器,用于对数字化话音进行没有除法操作的归一化。
23.如权利要求19所述的设备,其特征在于该设备与移动电话组合。
24.如权利要求23所述的设备,其特征在于该设备进一步与移动电话系统组合。
全文摘要
本发明揭示了一种在特殊应用集成电路(ASIC)中实现声码器的方法和装置。该装置包含一按照一减化了的指令组(RISC)结构进行计算的DSP内核(4)。该电路还包含一特别设计的DSP的从属处理器,称为最小化处理器(b)。该装置还包含一特别设计的块归一化电路。
文档编号G10L19/00GK1512486SQ0315404
公开日2004年7月14日 申请日期1995年2月13日 优先权日1994年2月16日
发明者张乾春, 兰迪普·辛格, 查尔斯·E·坂牧, 蔡明昌, 普拉山特·坎泰克, J·G·麦克唐纳, E 坂牧, 辛格, 特 坎泰克, 麦克唐纳 申请人:夸尔柯姆股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1