CN1244240C - 用于集成式远程通信处理的音调检测 - Google Patents

用于集成式远程通信处理的音调检测 Download PDF

Info

Publication number
CN1244240C
CN1244240C CNB018185797A CN01818579A CN1244240C CN 1244240 C CN1244240 C CN 1244240C CN B018185797 A CNB018185797 A CN B018185797A CN 01818579 A CN01818579 A CN 01818579A CN 1244240 C CN1244240 C CN 1244240C
Authority
CN
China
Prior art keywords
tone
signal
data
signal processing
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB018185797A
Other languages
English (en)
Other versions
CN1473442A (zh
Inventor
A·B·斯特劳斯
A·比斯特
S·希
Z·朱
R·S·普拉布胡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1473442A publication Critical patent/CN1473442A/zh
Application granted granted Critical
Publication of CN1244240C publication Critical patent/CN1244240C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q1/00Details of selecting apparatus or arrangements
    • H04Q1/18Electrical details
    • H04Q1/30Signalling arrangements; Manipulation of signalling currents
    • H04Q1/44Signalling arrangements; Manipulation of signalling currents using alternate current
    • H04Q1/444Signalling arrangements; Manipulation of signalling currents using alternate current with voice-band signalling frequencies
    • H04Q1/46Signalling arrangements; Manipulation of signalling currents using alternate current with voice-band signalling frequencies comprising means for distinguishing between a signalling current of predetermined frequency and a complex current containing that frequency, e.g. speech current

Abstract

公开了一种集成式音调检测处理器,用于区分音调和话音信号并决定音调。该音调检测处理器执行自动增益控制(AGC)以规格化音调或话音信号的功率。另外,使用Goertzel滤波器处理决定在特定频率下的音调或话音信号的能量。该音调检测处理器决定音调是否存在,如果音调存在,决定是音调的类型。根据对Goertzel滤波后的音调的两个最大能级的决定,可以区分该音调是单音调、双音调、静音、或另外类型(例如语音)的音调。然后可以通过用户定义的音调字典识别该音调。根据各种ON和OFF节奏检查并结合使用TONE ON和TONF OFF计数器,可以断定音调。

Description

用于集成式远程通信处理的音调检测
                     相关申请
本发明要求美国预先专利申请的权利,该申请在2000年9月8日提交,申请号为No.60/231,090。
                     技术领域
本发明一般涉及信号处理器。更特别说,本发明涉及电话信号处理器和用于集成式远程通信处理的音调检测。
                     背景技术
单芯片数字信号处理设备(DSP)已为人们较好地了解。DSP一般与通用微处理器的不同之处在于,DSP通常通过包括一个用于执行数字乘法的专用的乘法器和累加器(MAC)支持加速运算操作。用于典型的DSP设备的指令集通常包括用于执行新操作数的乘法和与在累加寄存器中存储的先前累加的值的加法的MAC指令。MAC指令是在现有技术数字信号处理器中提供的唯一的一条这样的指令,其中先乘后加这两种DSP运算由一条指令执行。然而,当执行对数据的信号处理功能时,常常希望以各种组合执行其它DSP运算。
可以使用DSP的一个领域是远程通信系统。DSP在远程通信系统中的一个应用是数字滤波。在这一场合,通常用指令编程DSP来实现在数字或时域中的某些滤波功能。为一个典型的有穷脉冲响应(FIR)滤波器的数学算法可以看作是方程Yn=h0X0+h1X1+h1X2+...+hNXN式中hn是固定的滤波器系数,从1到N编号,而Xn是数据采样。方程Yn可以使用软件程序求值。然而,在一些应用中,该必须尽快。为进行这一点的一种方式是使用硬件单元例如已编程的DSP设备来计算方程Yn。为进一步加速该处理,希望将该矢量化和分配在多个DSP中间计算,以便更快得到最后的结果。多个DSP并行操作以加速计算处理。在这一场合,项的乘法在DSP的乘法器上均匀分布以同时计算项。项的相加类似地均匀分布在DSP的加法器上以同时计算。在矢量化的处理中,处理项的顺序不是重要的,因为组合是结合的。如果改变项的处理顺序,则它对在函数的矢量化处理中所期望的最后结果没有影响。
应用有限脉冲响应滤波器的一个领域是用于电话处理的回声抵消。使用回声消除来取消在全双工电话通信信道上的回声。回声消除过程分离和过滤由来自在双路传输中主传输的信号中的回声引起的不希望的信号。可以使用单个或者多个DSP芯片来实现具有有穷脉冲响应滤波器的回声消除器以提供回声消除。然而,回声消除只是远程通信处理的一个部分。通常,电话处理功能在一个电话通信系统中的多个设备、部件或电力电路板上分布。
现在参考图8,图中表示了一个典型的现有技术的电话通信系统。电话、传真或数据调制解调器连接到一侧的一个本地用户回路802和在相对端的另一个本地用户回路802’。每一个本地用户回路802和802’都连接到2线/4线混合电路804和804’。混合电路804包括电阻网络、电容器、和铁氧体磁芯变压器。混合电路804将在PSTN 812的电话交换机之间运行的4线电话中继线链路806(每一方向上的一对)变换为每个2线本地用户回路802和802’。混合电路804打算把位于4线中继线806远端的讲话者的所有能量引导到位于2线本地用户回路802的近端的接听者处。
当来自远端的讲话者的语音信号离开一对4线806’上的一个远端混合电路804’并在穿过PSTN 812后到达近端时经常形成回声810’,并有可能被近端一侧的接听者听见。在常规电话网络中,在PSTN的每一端放置一个回声消除器以便减小和试图消除这一回声。
现在参考图9,图中表示一个典型的现有技术数字回声消除器900。现有技术数字回声消除器900连接在混合电路804和在电话中继线上的公共交换通信网(PSTN)902之间。数字回声消除器的决定性性能说明是国际电信联盟电信标准化部门建议G.168,数字网络回声消除器。这里使用来自ITU-T文献G.168的下面的术语并在图9中表示。朝向本地听筒的连接端或连接侧称为近端、近侧或发送侧910。朝向远处的听筒的连接端或连接侧称为远端、远侧或接收侧920。从近端910到远端920的电路部分是发送路径930。从远端到近端的电路部分是接收路径935。在本地回路802中的电路部分(亦即铜线,混合线),在系统用户或电话系统108和混合电路804的中央局终端之间,是端路径。从近端910进入回声消除器900的语音信号是发送输入Sin。从远端920进入回声消除器900的语音信号是接收输入Rin。从回声消除器输出到远端920的语音信号是发送输出Sout。离开回声消除器到近端910的语音信号是接收输出Rout
典型的现有技术数字回声消除器900包括回声估值器902、数字减法器904、和非线性处理器906这样的基本部件。通常,典型的现有技术数字回声消除器900中的回声消除过程通过消除阻抗的失配开始。为做到这一点,典型的数字回声消除器900分接接收侧输入信号(Rin)。处理Rin在回声器(902)上产生Sin的估计。Sin用作为回声消除处理的参考信号。Rin也不经改变送到近端910和Rout信号一样。回声估计器902是在DSP中实现的线性脉冲响应(FIR)卷积滤波器。估计器902接收Rin上的话音的连续采样(通常每125微秒一个16位的样本)。这些话音样本乘以一组近似端路径中的电路的脉冲响应的滤波器系数以产生回声估值。经过一段时间,改变(亦即适应)该组滤波器系数,直到它们准确表示希望的脉冲响应以形成准确的脉冲估计。把该回声估计耦合进入减法器904。如果该回声估计是准确的,则它基本等价于Sin上的实际回声,和从减法器904到非线性处理器的输出使线性回声基本消除。使用非线性处理器906消除非线性回声源。
随着通过封包网络诸如因特网或者异步传输方式(ATM)提供电话通信信道的日益增加的兴趣,电话处理变得更加复杂。
                 附图说明
图1A是使用本发明的系统的方框图。
图1B是在图1A的系统中的网关内使用本发明的印刷电路板的方框图。
图2是本发明的应用特定信号处理器(ASSP)的方框图。
图3是在本发明的ASSP中的内核处理器的一个实例的方框图。
图4是图3的内核处理器内的RISC处理单元的方框图。
图5A是图3的内核处理器内的信号处理单元的一个实例的方框图。
图5B是图5A更详细的方框图,表示信号处理单元的总线结构。
图6A是一个示例指令序列,表示用于使用本发明的指令集架构的DSP算法的一个程序模型。
图6B是表示双值DSP指令的排列的图表。
图6C是用于控制扩展双值DSP指令的示例位图。
图6D是用于非控制扩展双值DSP指令的示例位图。
图6E和6F列出用于本发明的ISA的一组20位的指令。
图6G列出用于本发明的ISA的一组扩展的控制指令。
图6H列出用于本发明的ISA的一组40位DSP的指令。
图6I列出用于本发明的ISA的一组寻址指令。
图7是一个方框图,表示信号处理单元的功能块的指令解码和配置。
图8是一个现有技术方框图,表示一个PSTN电话网络和在其内的回声。
图9是一个现有技术方框图,表示一个用于PSTN电话网络的典型的现有技术回声消除器。
图10是一个结合本发明的集成式远程通信处理器的封包网络系统的方框图。
图11A是为一个多重全双工信道的集成式远程通信处理器的固件远程通信处理模块的方框图。
图11B表示可以由根据本发明的一个实施例的音调检测处理器/模块实现的用于音调检测的一个过程。
图11C表示与根据本发明的一个实施例的图11B的过程结合使用的用于远程通信工业中的公共频率和用于Goertzel滤波器的相关的示例系数的表。
图11D表示与根据本发明的一个实施例的图11B的过程结合使用的示例呼叫进程音调的部分字典。
图11E表示可以由根据本发明的另一个实施例的音调检测处理器/模块实现的用于音调检测的另一个过程。
图11F表示用于实现与根据本发明的一个实施例的图11E的过程结合使用的椭圆IIR滤波器的一个高效DFII结构。
图11G表示与根据本发明的一个实施例的图11E的过程结合使用的反相检测的子过程。
图11H表示与根据本发明的一个实施例的图11E的过程结合使用的FAX V.21检测的子过程。
图12是从近端到封包网络的远程通信处理的流程图。
图13是来自网络的包进入集成式远程通信处理器被远程通信处理为在近端的TDM信号的流程图。
图14是在用于电话处理的集成式远程通信处理器150的示例功能块之间的数据流和交互反应的方框图。
图15是示例存储器到集成式远程通信处理器150的存储器映射的方框图。
图16是为示例存储器到集成式远程通信处理器150的全局缓冲存储器映射的方框图。
图17是为数据帧的接收和处理时间的示例时间线示意图。
图18是集成式远程通信处理器150的内核处理器如何为多远程通信信道处理数据帧的示例时间线示意图。
附图中相似的参考号码和指定符号指示提供相似功能的相似元件。在参考指示符号码后面的字母或撇号“’”表示具有该参考指示符号码的元件的一个实例。
                     具体实施方式
在本发明下面的详细说明中,叙述了大量具体的细节以便提供对本发明的彻底的理解。然而,对于熟悉本技术领域的人来说显然,本发明可以不要这些具体的细节实现。在其它的实例中,没有详细说明公知的方法、过程、部件、和电路,以避免不必要地模糊本发明的方面。此外,本发明以特别的实施例说明,但是可以以硬件、软件、固件或其组合实现。
在通信系统的网关中配备具有本发明的指令集(包括双值DSP指令)的多个应用特定的信号处理器(ASSP)以便提供在封包网络上的改善的话音和数据通信。每一ASSP包括一个串行接口、一个主接口、一个缓冲器存储器和4个内核处理器以便同时处理多信道的话音或数据。每一内核处理器优选包括一个精简指令集计算机(RISC)处理器和4个信号处理器单元(SP)。每一SP包括多个运算模块以便同时处理多个话音和数据通信信号,为在IP、ATM、帧中继、或其它网络上通信。4个信号处理单元可以并行执行数字信号处理算法。每一ASSP是灵活的,可以编程执行许多网络功能或数据/话音处理功能,包括在远程通信系统(诸如,CODES)中,特别是远程通信网络中的话音和数据压缩/解压缩,只通过简单改变软件程序来控制由这些ASSP执行的命令。
为数字信号处理应用定制ASSP的指令集,所述应用包括音频和语音处理,诸如压缩/解压缩和回声消除。使由ASP实现的指令集结构适应DSP算法结构。本发明的ISA对DSP算法结构的适应平衡了DSP算法的容易实现、处理高效、和可编程性。指令集结构可以视为两个部件部分,一个(RISC ISA)相应于RISC控制单元,另一个(DSP ISA)相应于信号处理单元300的DSP数据通路。RISCISA是一个基于寄存器的结构,它在寄存器文件413中包含16个寄存器,而DSP ISA是一个基于存储器的具有高效数字信号处理指令的结构。为ASSP的指令字通常是20位,但是可以扩展到40位以控制两条指令串行或并行执行,诸如两条RISC控制指令和扩展DSP指令。ASSP的指令集结构具有4种不同类型指令来优化DSP操作混合。这些是(1)使用控制寄存器中的模式位(亦即模式寄存器)的一个20位的DSP指令,(2)具有控制扩展的一个40位的DSP指令,它可以改写方式寄存器,(3)一个20位的双值DSP指令,和(4)一条40位双值DSP指令。这些指令用于加速在该类内核处理器内的计算,这里D=[(A运算1B)运算2C],“运算1”和“运算2”的每一个可以是对三个操作数A、B或C做乘法、加法或取极值(最小/最大)类的运算。加速这些计算的ASSP的ISA允许高效链接运算的不同组合。
ASSP的指令集结构的所有DSP指令是双值DSP指令以便在一条指令中用一个周期的吞吐量执行两种运算。一条双值DSP指令是两条DSP指令或在一条指令中的运算的组合,包括一个主DSP运算(MAIN OP)和一个子DSP运算(SUB OP)。一般,本发明的指令集结构可以推广到组合任何对基本DSP运算以提供非常强有力的双值指令组合。在本优选实施例中的DSP运算操作包括一条乘法指令(MULT),一条加法指令(ADD),也称为取极值指令的取最小/最大指令(MIN/MAX),和空操作指令(NOP),每一条指令有一个相关的操作码(“opcode”)。
本发明借助应用特定的信号处理器的指令集结构和硬件结构高效执行这些双值DSP指令。
此外,本发明的实施例涉及用于区分音调和话音信号和决定这些音调的集成式音调检测处理器。集成式音调检测处理器包括一个半导体集成电路,该电路具有至少一个信号处理单元以执行音调检测。另外,一个处理器可读存储设备/机器可读介质(例如诸如存储器的存储设备)存储信号处理指令,以便由至少一个信号处理单元执行,从而实现音调检测处理器的功能。音调检测处理器执行自动增益控制(AGC)以标准化音调或话音信号的功率。另外,音调或话音信号的能量在特定频率下使用Goertzel滤波器处理决定,该过程实现多个Goertzel滤波器。音调检测处理器决定一个音调是否存在,如果存在,决定音调的类型。
在一个实施例中,音调检测处理器决定音调是拨号音、忙音、快忙音、振铃音、还是传真音。然而,音调检测处理器还可以决定许多其它类型的音调。另外,Goertzel滤波器可以计算在用户定义的特定频率下的音调或话音信号的能级,例如在16个用户定义的频率下。根据决定Goertzel滤波的音调的两个最大的能级,可以区分该音调是单音调、双音调、静音、或其它(例如语音)。然后可以由一个用户定义的音调字典识别该音调。根据各种ON(开)和OFF(关)的节奏检查,结合TONG ON(音调开)和TONG OFF(音调关)计数器的使用,可以确定音调。另外,根据本发明的一个实施例的结构,通过同时使用4个信号处理器,提供非常稳固的和高效的音调检测。
另外,在本发明的其它实施例中,提供用于音调检测的其它方法和结构,包括坚固的和高效检测FAX V.21音调和调制解调器音调。
现在参考图1A,图中表示一个话音和数据通信系统100。系统100包括一个网络101,它是一个分包的或封包交换的网络,诸如IP、ATM或帧中继。网络101允许使用包在系统100内的端点之间通信话音/语音和数据。数据可以为任何类型,包括音频、视频、电子邮件和数据的其它的类形式。在系统100的每一端,当话音或数据跨过网络101收发时需要打包。系统100包括网关104A和104B以便分包接收到的信息用于跨过网络101传输。网关是用于连接多个使用不同协议的网络和设备的设备。话音和数据信息可以从一些不同的源以各种数字格式提供给网关104。在系统100中,模拟话音信号由电话机108收发。在系统100中,数字话音信号在公共分组交换机(PBX)112A和112B上收发,PBX连接到多个电话机、传真机或数据调制解调器上。数字话音信号通过网络101分别在PBX112A和PBX 112B之间经过网关104A和104B收发。数字数据信号也可以直接在数字调制解调器114和网关104A之间收发。数字调制解调器114可以是数字用户线(DSL)调制解调器或者电缆调制解调器。数据信号也可以通过无线通信系统借助移动单元118连接到系统100,移动单元118向基站116无线收发数字信号或模拟信号。基站116变换模拟信号为数字信号或直接传送数字信号给网关104B。数据可以借助调制解调器信号使用调制解调器110在普通老式电话系统(POTS)107B上收发。在POTS 107B上通信的调制解调器信号通常在本质上是模拟信号,它连接到公共交换电话网络(PSTN)的交换机106B上。在交换机106B上,对来自POTS 107B的模拟信号进行数字化,并通过时分多路转换(TDM)传输到网关104B,每一时隙表示一个信道和对网关104B的一个DS0输入。在每一网关104A和104B,到来的信号为跨过网络101传输打包。对由网关104A和104B从网络101接收的信号拆包并为向适当目的地分发而译码。
现在参考图1B,图中表示网关104的一个网络接口板(NIC)130。NIC 130包括一个或者多个应用特定的信号处理器(ASSP)150A-150N。在一个网关内的ASSP的数目可扩展以处理附加的信道。NIC130的线接口设备131提供对连接到网关的各种设备包括网络101的接口,在接口到网络101时,线接口设备为对传输到网络101以外的数据进行打包和对要由ASSP接收的数据进行拆包。线接口设备131处理由网关在接收总线134上接收的信息并将其提供给ASSP设备。来自ASSP设备150的信息在传输总线132上为传输到网关外通信。一个常规的线接口设备是一个多信道串行接口或UTOPIA设备。NIC130连接到网关104内的网关背板/网络接口总线136。桥式逻辑138在总线136和NIC 130之间收发信息。桥式逻辑138传输在NIC 130和背板/网络接口总线136之间的信号到主机总线139,用于与ASSP设备150A-150N、主处理器140、或主存储器142中的任何一个或多个通信。可选连接到一个或者多个ASSP设备150A到150N(通常称为ASSP 150)中之一的分别是可选的本地存储器145A到145N(通常称为可选本地存储器145)。在接收总线134和传输总线132上的数字数据优选以位宽方式通信。虽然在每一ASSP内的内部存储器可以足够大以用作暂存器,但是如果需要附加存储器空间的话,每一ASSP150可以使用可选本地存储器145。
每一ASSP 150提供为网关的信号处理能力。提供的信号处理的类型是灵活的,因为每一ASSP可以执行不同的信号处理程序。一个ASSP的典型的信号处理和相关的话音打包功能包括(a)回声消除;(b)视频、音频、和话音/语音压缩/解压缩(话音/语音编码和解码);(c)延迟处理(包,帧);(d)损失处理;(e)连通性(LAN和WAN);(f)安全性(加密/解密);(g)电话连通性;(h)协议处理(预留和传输协议,RSVP,TCP/IP,RTP,为IP的UDP,和为ATM的AAL2,AAL1,AAL5);(i)滤波;(j)静音抑制;(k)长度处理(帧,包);和与话音和数据在通信系统上通信关联的其它数字信号处理功能。每一ASSP 150可以执行其它功能以便在一个包数据流通过封包网络内在给系统100的各端点传输话音和数据。
现在参考图2,图中表示ASSP 150的方框图。在ASSP 150的中心处是4个内核处理器200A-200D。每一内核处理器200A-200D分别连接到数据存储器202A-202D和程序存储器204A-204D。每一内核处理器200A-200D通过多信道串行接口206、多信道存储器传送引擎208、缓冲存储器210、和数据存储器202A-202D与外部信道通信。ASSP150另外包括一个外部存储器接口212以便连接外部可选本地存储器145。ASSP 150包括一个外部主接口214,用于接口图1B的外部主处理器140。在ASSP 150内另外包括的是定时器216,时钟发生器和锁相环路218,各种控制逻辑220,和用于边界扫描测试的联合测试行动组(JTAG)测试访问端口222。可以为某些应用例如ATM使用UTOPIA并行接口置换多信道串行接口206。ASSP 150另外包括一个微控制器223以执行为内核处理器200A-200D的处理调度和协调在ASSP内的数据传送,以及包括一个中断控制器224以帮助中断处理和对ASSP 150的控制。
现在参考图3,图中显示出内核处理器200的方框图,内核处理器200连接到它各自的数据存储器202和程序存储器204上。内核处理器200是为每一内核处理器200A-200D的方框图。数据存储器202和程序存储器204分别参考数据存储器202A-202D和程序存储器204A-204D的各个实例。内核处理器200包括4个信号处理单元SP0300A、SP1 300B、SP2 300C和SP3 300D。内核处理器200另外包括一个精简指令集计算机(RISC)控制单元302和一个流水线控制单元304。信号处理单元300A-300D执行对数据的信号处理任务,而RISC控制单元302和控制单元304执行与由SP 300A-300D执行的信号处理功能相关的控制任务。由RISC控制单元302提供的控制与SP300A-300D在流水线级连接以产生一个紧密集成的内核处理器200,它保持在非常高的水平上使用信号处理单元300。
信号处理任务在信号处理单元300A-300D内的数据通路上执行。DSP算法的本质是这样的,它们对具有最小时间局部性(数据再利用)的数据流固有地执行矢量运算。因此,不使用具有按需分布调度的数据超高速缓冲存储器,因为它不会很好地起作用并降低运算性能。因此,允许信号处理单元300A-300D直接从存储器202中访问矢量元素(操作数),而不需要发布某些加载和存储指令到存储器的开销,从而导致非常高效率的数据处理。于是,本发明具有可以扩展为40位字的20位指令字的指令集,通过使ISA适应DSP算法结构实现了比使用256位或更高指令宽度的VLIW结构更好的效率。适应的ISA导致非常紧凑的低功耗硬件,其可以升级到更高计算需求。ASSP可以容纳的操作数根据数据类型和数据大小而变化。数据类型可以是实数、复数、整数值或分数值,具有有不同长度的多个分量的矢量。在本优选实施例中的数据长度是64位,但是使用适当的指令编码可以容纳更大的数据大小。
现在参考图4,图中表示RISC控制单元302的一个详细的方框图。RISC控制单元302包括一个数据校准器和格式器402、一个存储器地址发生器404、3个加法器406A-406C、一个算术逻辑单元(ALU)408、一个乘法器410、一个柱式移位器412、和一个寄存器文件413。寄存器文件413指向一个起始存储器位置,从这里存储器地址发生器404可以产生地址到数据存储器202。RISC控制单元302负责提供地址给数据存储器,使得把适当的数据流供给信号处理单元300A-300D。RISC控制单元302是一个寄存器,寄存以加载和存储指令移动数据进出数据存储器202的组织。数据存储器的寻址由RISC控制单元使用一个32位寄存器作为指针、来指定地址、后修正位移、类型和改变字段序列。类型字段允许各种自然DSP数据作为在该结构中的“一等公民”受到支持。例如,复数类型允许对存储在存储器中的复数数据直接运算,去掉一些簿记指令。这一点在以很高效率支持数据调制解调器中的QAM解调中十分有用。
现在参考图5A,图中表示信号处理单元300的一个方框图,它代表SP 300A-300D的一个实例。每一信号处理单元300包括一个数据器和校准器502、第一乘法器M1 504A、一个压缩器506、第一加法器A1 510A、第二加法器A2 510B、一个累加器寄存器512、第三加法器A3 510C、和第二乘法器M2 504B。加法器510A-510C在结构上相似,统称为加法器510。乘法器504A和504B在结构上相似,统称为乘法器504。每一乘法器504A和504B在其输入级分别有一个多路选择器514A和514B,以便多路选择来自不同总线的不同输入到该乘法器。每一加法器510A、510B、510C在其输入级也分别有一个多路转换器520A、520B、和520C,以便多路转换来自不同总线的不同输入到该加法器。这些多路转换器和其它控制逻辑允许在信号处理单元300A-300C内的加法器、乘法器和其它单元通过适当选择多路转换器灵活地互连。在本优选实施例中,乘法器M1 504A、压缩器506、加法器A1 510A、加法器A2 510B和累加器512可以通过数据类型器和校准器502从外部数据总线直接接收输入。在本优选实施例中,加法器510C和乘法器M2 504B接收来自累加器512的输入或来自执行单元乘法器M1 504A、压缩器506、加法器A1 510A、和加法器A2 510B的输出。
程序存储器204连接到包括一个指令缓冲器的流水线控制器304,指令缓冲器作为本地回路超高速缓冲存储器。在本优选实施例中的指令缓冲器具有保存4条指令的能力。控制304的指令缓冲器在程序循环执行期间减少了访问主存储器取指令时消耗的功耗。
现在参考图5B,图中表示信号处理单元的功能块和总线结构的更详细的方框图。因为在每一信号处理单元中提供的结构和功能,双值DSP指令是可能的。输出信号通过数据类型器和校准器502连接到信号处理器300向外的Z输出总线532上。输入信号通过数据类型器和校准器502连接到信号处理器300向内的X输入总线531和Y输入总线533上。在内部,数据类型器和校准器502有分别不同的数据总线以连接乘法器M1 504A、压缩器506、加法器A1 510A、加法器A2 510B和累加器寄存器AR 512中的每一个。虽然数据类型器和校准器502可以具有连接加法器A3 510C和乘法器M2 504B的数据总线,但是在本优选实施例中没有,以便避免额外的数据线和节省集成电路的面积开销。输出数据从累加器寄存器AR 512连接进入数据类型器和校准器502。乘法器M1 504A具有总线以连接它的输出到压缩器506、加法器A1 510A、加法器A2 510B、和累加器寄存器AR 512的输入。压缩器506具有总线以连接它的输出到加法器A1 510A和加法器A2 510B的输入。加法器A1 510A具有总线以连接它的输出到累加器寄存器512。加法器A2 510B具有总线以连接它的输出到累加器寄存器512。累加器寄存器512具有总线以连接它的输出到乘法器M2504B、加法器A3 510C、和数据类型器和校准器502。加法器A3 510C具有总线以连接它的输出到乘法器M2 504B和累加器寄存器512。乘法器M2 504B具有总线以连接它的输出到加法器A3 510C和累加器寄存器AR 512的输入。
指令集架构
对包括音频和语音处理的数字信号处理应用例如压缩/解压缩和回声消除来定制ASSP 150的指令集结构。基本上,使由ASSP 150实现的指令集结构适应DSP算法结构。本发明的ISA对DSP算法结构的适应是在DSP算法的容易实现、处理高效、和可编程性之间的平衡。本发明的ISA提供数据移动操作、DSP/算术/逻辑运算、程序控制操作(诸如函数调用/返回,无条件/条件跳转和分支)、和系统操作(诸如特权,中断/陷阱/灾难处理和存储器管理控制)。
参考图6A,图中为使用本发明的指令集结构的一个DSP算法程序模型表示一个示例指令序列600。指令序列600具有外部循环601和一个内部循环602。因为DSP算法趋向于执行重复计算,因此在内部循环602中的指令605要比其它指令执行的更频繁。指令603通常是参数建立代码,它设定存储器指针,提供外回路601的建立和其它2X20控制指令。指令607通常是环境保存和函数返回指令或其它2X20控制指令。指令603和607经常被认为是开销指令,通常不经常执行。指令604通常提供内回路602的建立、其它通过2X20控制指令的控制或为指针备份的位移扩展。指令606通常提供内回路602的拆卸、其它通过2X20控制指令的控制、和在该信号处理单元内的数据路径结果的组合。在内回路602内的指令605通常提供DSP运算的内回路执行、在单指令多数据执行模式中的4个信号处理单元300的控制、访问存储器读取操作数、双值DSP操作、和通过本发明的ISA的20/40位DSP指令的其它DSP功能。因为指令605经常重复,因此通过提供DSP指令,包括一般双值指令和在本发明的ISA内的双值DSP指令,可以显著改善运算效率。
ASSP 150的指令集结构可以视为是两个单元部分,一个(RISCISA)相应于RISC控制单元,另一个(DSP ISA)相应于信号处理单元300的DSP数据通路。RISC ISA是一个基于寄存器的结构,它在寄存器文件413中包含16个寄存器,而DSP ISA是一个基于存储器的具有高效数字信号处理指令的结构。ASSP的指令字通常是20位,但是可以扩展到40位以控制两条RISC或DSP指令串行或并行执行,诸如与一条DSP指令并行执行一条RISC控制指令,或一条40位的扩展RISC或DSP指令。
ASSP 150的指令集结构具有4种不同类型的指令来优化DSP操作混合。这些是(1)使用控制寄存器中的模式位(亦即模式寄存器)的一个20位的DSP指令,(2)具有控制扩展的一个40位的DSP指令,它可以改写方式寄存器,(3)一个20位的双值DSP指令,和(4)一条40位双值DSP指令。这些指令用于加速在该类内核处理器200内的计算,这里D=[(A运算1B)运算2C],“运算1”和“运算2”的每一个可以是对三个操作数A、B或C做乘法、加法或取极值(最小/最大)类的运算。加速这些计算的ASSP 150的ISA允许高效链接运算的不同组合。因为这些类型的运算需要3个操作数,因此它们必须对处理器可用。然而,因为设备大小对总线结构施加限制,因此带宽限制到在每一周期对数据存储器202写入一次矢量和读出两次矢量。这样,一个操作数,例如B或C,需要来自内核处理器200的另一来源。该第三操作数可以放入累加器512或RISC寄存器文件413的一个寄存器中。为在内核处理器200中实现这一点,有20位DSP指令的两个子类,它们是(1)用一个4位的说明符说明A和B,和用一个1位的指定符指定C和D,和(2)用一个4位的指定符指定A和C,和用一个1位的指定符指定B和D。
为ASSP的指令每次总是从程序存储器中取40位,第39位和第19位指示指令类型。在取指令后,把指令分成每一个20位的两部分以便执行运算。在具有并行执行的20位控制指令(位39=0,位19=0)的情况下,这两个20位的部分是同时执行的控制指令。在为串行执行的20位控制指令(位39=0,位19=1)的场合,这两个20位的部分是串行执行的控制指令。在为串行执行的20位的DSP指令(位39=1,位19=1)的场合,这两个20位的部分是串行执行的DSP指令。在40位的DSP指令(位39=1,位19=0)的场合,这两个同时执行的20位的部分构成了一个扩展的DSP指令。
ASSP 150的ISA是完全可预测的,提供执行的预测。在20位RISC控制指令字和40位扩展DSP指令字中,每一指令有两个位指定RISC控制单元302中4个判定寄存器之一。根据预测寄存器的条件,指令的执行可以根据它的内容改变。
为访问数据存储器202内的,或累加器512或寄存器文件413中的寄存器内的操作数,在DSP扩展指令中使用一个6位的指定符来访问存储器或寄存器中的操作数。在扩展DSP指令中使用的6位指定符中,MSB(第5位)指示访问的是存储器还是寄存器。在本优选实施例中,如果位5设定为逻辑1,则它指示是为一个操作数的存储器访问。如果位5设定为逻辑0,则它指示是为一个操作数的寄存器访问。如果位5设定为1,则使用指定的寄存器(rX这里X:0-7)的内容获得有效的存储器地址和使用在一个指定的rX寄存器中指定的两个可能的位移之一后修改指针字段。如果位5设定为0,则位4决定什么样的寄存器设定具有希望的操作数的内容。如果位4设定为0,则剩余的指定的位3:0控制对在寄存器文件413内的寄存器或对在信号处理单元300内的寄存器的访问。
DSP指令
对于ASSP 150,有4种主要类型的DSP指令,它们是:
1)乘(MULT):控制从存储器连接到数据总线的主乘法器的执行。
控制:四舍五入,通过在地址寄存器中的类型字段指定的矢量数据上的乘运算的符号
第二运算:在矢量或标量方式中的Add,Sub,Min,Max。
2)Add(ADD):控制主加法器的执行
控制:输入的绝对值控制,结果取极限
第二运算:Add,add-sub,mult,mac,min,max
3)取极值(MIN/MAX):控制主加法器的执行
控制:输入的绝对值控制,使用T寄存器、TR寄存器记录控制的全局的或运行的max/min,
第二运算:add,sub,mult,mac,min,max
4)Misc:类型匹配和序列改变操作
ASSP 150可以以矢量或标量方式执行这些DSP算术运算。在标量执行中,对矢量结果执行精简的或组合的运算以产生标量结果。在DSP应用中执行由ASSP 150高效执行的标量运算是普遍的。
20位的DSP指令字有4位的操作数指定符,它可以使用在RISC控制单元302的寄存器文件413内的8个地址寄存器(r0-r7)直接访问数据存储器。由20位的DSP指令字寻址的方法经常与指定指向到存储器的指针的地址寄存器、后修改访问的数据的值、类型、和为高效执行算法需要的数据的序列改变间接相关。所有的DSP指令都控制乘法器504A-504B、加法器510A-510C、压缩器506和累加器512,它们是每一信号处理单元300A-300D的功能单元。)
在40位的指令字中,来自20位的指令字的扩展类型归入5类:
1)改写方式寄存器中的控制位的控制和指定扩展
2)不理会地址寄存器中的类型指定符的类型扩展
3)不理会地址寄存器中为矢量的序列改变指定符的序列改变扩展
4)可以置换或扩展在地址寄存器中指定的位移的位移扩展
5)控制信号处理单元300内的功能单元的较低的行以加速模块处理的DSP扩展
通过20位扩展的40位控制指令另外允许在指令中指定一个大的立即值(16到20位)和强大的位操作指令。
使用2×20位的DSP指令提供有效的DSP执行,该DSP指令的前20位控制顶部功能单元(加法器501A和501B,乘法器504A,压缩器506),它们从存储器接口到数据总线,后20位控制底部功能单元(加法器501C,和乘法器504B),它们使用内部或本地数据作为操作数。顶部功能单元也称为主单元,它通过并行处理连续的分支或部分来减少内回路中的内部循环周期。底部功能单元通过在连续的采样上并行处理模块DSP算法,而把外回路601中的外回路周期减到一半。
本发明的硬件结构也改善了高效的DSP执行。在这一场合,以下面的方式提高了效率,数据向或从数据存储器202提供来供应4个信号处理单元300和在其中的DSP功能单元。数据高速通道包括两个总线,X总线531和Y总线533,提供X和Y源操作数,以及Z总线532提供写入结果。所有总线,包括X总线531、Y总线533和Z总线532,优选64位宽。这些总线是单向的,以简化物理设计和减少数据的传输时间。在本优选实施例中,当在20位的DSP模式下,如果X和Y总线两个都带有从存储器中读出的操作数为在一个信号处理单元300中并行执行的话,则并行加载字段只可以访问RISC控制单元302的寄存器文件413内的寄存器。另外,并联的4个信号处理单元300A-300D提供4个可以同时计算的并联的MAC单元(乘法器504A,加法器510A,和累加器512)。这将执行4个MAC通常需要的周期数从4个周期减少到只需一个周期。
双值DSP指令
ASSP 150的指令集结构的所有DSP指令都是20位或40位指令字内的双值DSP指令。双值DSP指令在一个指令和一个周期内通知ASSP执行两个操作。现在参考图6B,图中表示双值DSP指令的排列。双值DSP指令610包括一个主DSP操作611(MAIN OP)和一个子DSP操作612(SUB OP),在一个双值指令中的两个DSP指令或操作的组合。一般,本发明的指令集结构可以推广为组合任何一对基本DSP操作以提供非常强有力的双值指令组合。组合的DSP操作指令可以为多种DSP算法提供一致的加速,而不只是乘-累加密集的滤波器。在本优选实施例中的DSP指令或操作包括乘法指令(MULT)、加法指令(ADD)、也称为取极值指令的取最小/最大值指令(MIN/MAX)、和空操作指令(NOP),每一个具有一个相关的操作码(“opcode”)。任何两个DSP指令可以组合到一起以形成一个双值DSP指令。当希望单一DSP操作由双值DSP指令执行时,可使用NOP指令作为MAIN OP或SUB OP。一般DSP指令有多种变化,诸如乘法或加法的矢量和标量运算,正或负乘法,正或负加法(亦即减法)。
现在参考图6C和图6D,图中表示为一个示例双值DSP指令的位图语法。图6C表示为一个控制扩展的双值DSP指令的位图语法,而图6D表示为一个非扩展的双值DSP指令的位图语法。在非扩展的位图语法中,指令字是一个40位字,其中有20个有效位,而在扩展的位图语法中有一个40位的指令字。编号为37到39的3个最高有效位(MSB)中每一位指示MAIN OP指令类型,而SUB OP位于靠近编号为20到22的位处的指令位的中间或末尾。在本优选实施例中,MAIN OP指令代码为NOP是000,为ADD是101,为MIN/MAX是110,为MULT是100。为给定DSP指令的SUB OP代码根据所选的MAIN OP代码变化。在MULI作为MAIN OP的情况下,SUB OP为NOP是000,为ADD是001或010,为负的ADD即减法是100或011,为MIN是101或110,为MAX是111。在本优选实施例中,MAINOP和SUB OP不是同样的DSP指令,虽然对硬件功能块的改变可以适应它。控制扩展的双值DSP指令的低20位,扩展的位,控制信号处理单元执行四舍五入、求极限、对SUB OP的输入取绝对值、或使用寄存器值的全局MIN/MAX操作。
可以把双值DSP指令的位图语法变换成为程序编码的文字语言。使用乘法或MULT非扩展指令作为一个例子,它为乘法或MULT的文字语法是
(vmu|vmuln).(vadd|vsub|vmax|sadd|ssub|smax)da,sx,sa,sy[,(ps0|ps1)]字段“vmu|vmuln”指的是选择正矢量乘法或负矢量乘法之一作为MAIN OP。下一字段“vadd|vsub|vmax|sadd|ssub|smax”指选择矢量加、矢量减、矢量最大值、标量加、标量减或标量最大值之一作为SUBOP。下一字段“da”指选择累加器内的一个寄存器用来存储结果。字段“sx”指选择RISC寄存器文件413内的一个指向存储器中一个存储器位置的寄存器作为一个操作数源。字段“sa”指选择累加器内的一个寄存器的内容作为一个操作数源。字段“sy”指选择RISC寄存器文件413内的一个指向存储器中一个存储器位置的寄存器作为另一个操作数源。字段[,(ps0|ps1)]指选择一对关键字PS0或PS1,它们指定哪一个是并行存储控制寄存器的源-目标对。现在参考图6E和6F,图中表示用于本发明的ISA的20位DSP和控制指令集的列表。图6G列出为本发明的ISA的扩展控制指令集。图6H列出为本发明的ISA的40位DSP指令集。图6I为本发明的ISA的寻址指令集。
现在参考图7,图中表示用于配置信号处理单元300的功能块的指令解码。信号处理器300包括最终解码器704A到704N、和多路转换器720A到720N。多路转换器720A到720N代表了图5B中的多路转换器514、516、520、和522的代表。预解码器702由RISC控制单元302和控制304提供。给预解码器702提供一条指令诸如双值DSP指令600。预解码器702给合适的最终解码器704A到704N提供如何为给定指令选择多路转换器720A到720N的预备信号。反回来参考图5B,在一个双值DSP指令中,MAIN OP一般如果不是NOP的话,由乘法器M1 504A、压缩器506、加法器A1 510A、和加法器A2 510B的模块执行。其结果存储在累加器寄存器AR 512内的一个寄存器中。在该双值DSP指令中,SUB OP一般如果不是NOP的话由加法器A3510C和乘法器M2 504B的模块执行。例如,如果要执行的该双值DSP指令是ADD和MULT的话,则由加法器A1 510A执行MAIN OP的ADD运算,而由乘法器M1 504A执行SUB OP。预解码器702和最终解码器704A到704N适当选择各目的多路转换器720A到720B以选择MAIN OP由加法器A1 510A执行和SUB OP由乘法器M2 504B执行。在例示场合,多路转换器520A从数据类型器和校准器502中选择输入,以便为加法器A1 510A执行ADD运算,多路转换器522选择来自加法器510A的输出为在累加器512中累加,多路转换器514B选择来自累加器512的输出作为它的输入来执行MULT SUB OP。MAIN OP和SUB OP既可以顺序(亦即串行执行并行字)执行,也可以并行执行(亦即并行执行并行字)。如果顺序执行,则MAIN OP的结果可以是SUB OP的操作数。最终解码器704A到704N有它们自己的控制逻辑来适当确定为信号处理器300的每一单元选择多路转换器的时间顺序以匹配如何执行MAIN OP和SUB OP执行,包括顺序或并行执行。RISC控制单元302和管线控制304结合最终解码器704A到704N通过流水线操作指令自身和通过提供流水线控制信号来以流水线方式进行指令执行。这允许由软件指令每一周期重新配置数据路径。
远程通信处理
现在参考图10,图中表示封包远程通信网络100的详细的系统方框图。在分包远程通信网络100’中,终端系统108A位于近端,而终端系统108B是远端。终端系统108A和/或终端系统108B可以是电话机、传真机、调制解调器、无线寻呼机、无线蜂窝电话或其它电子设备,它们在电话通信系统上运行。终端系统108A连接到交换机106A,后者连接到网关104A。终端系统108B连接到交换机106B,后者连接到网关104B。网关104A和网关104B连接到包网络101以便使用包在彼此之间通信话音和其它远程通信数据。每一网关104A和104B包括网络接口板(NIC)130A-130N、系统控制器板1010、成帧器板1012、和以太网接口板1014。网关中的网络接口板(NIC)130A-130N为在包网络101上多通信信道提供远程通信处理。在一侧,NIC 130连接包数据进入和离开系统控制器板1010。包数据由系统控制器板1010分包和拆包。系统控制器板1010连接包数据的包进出以太网接口板1014。网关的以太网接口板1014通过包网络101传输和接收远程通信数据包。在相对侧,NIC 130连接时分多路复用(TDM)数据进入和离开成帧器板1012。成帧器板1012把来自多个交换机106的数据形成帧作为时分多路数据以便连接到网络接口板130。成帧器板1012从网络接口板130中的形成帧的TDM数据中抽出数据以便连接到交换机106上。
每一网络接口板130包括一个微控制器(cPCI控制器)140和一个或者多个集成式远程通信处理器150A-150N。每一集成式远程通信处理器150N包括一个或者多个RISC/DSP内核处理器200、一个或者多个数据存储器(DRAM)202、一个或者多个程序存储器(PRAM)204、一个或者多个串行TDM接口端口206以支持多TDM信道、一个总线控制器或存储器移动引擎208、一个全局或缓冲器存储器210、一个主机或主总线接口214、和一个微控制器(MIPS)223。固件灵活地控制集成式远程通信处理器150中的模块的功能,它们可能为每一单独通信信道而变化。
现在参考图11A,图中表示用于一个多重全双工信道的应用特定信号处理器150的固件远程通信处理模块的方框图,该模块形成“集成式远程通信处理器”150。一个全双工信道包括在TDM或近侧上的两个时分多路复用(TDM)的时隙和在包网络或远侧上的两个包数据信道,为每一个通信方向一个。由该固件提供的远程通信处理可以为每一个给定的信道提供电话处理,包括一个或多个网络回声消除器1103、拨号音检测器1104、传真处理器1119、话音活动检测器1105、双音多频(DTMF)信号检测器1106、双音多频(DTMF)信号发生器1107、拨号音发生器1108、G.7xxx话音编码(亦即压缩)器1109、G.7xxx话音解码(亦即解压缩)器1110、和舒适噪声发生器(CNG)1111。每一信道的固件是灵活的,还可以提供GSM解码/编码、CDMA解码/编码、数字用户线(DSL)、调制解调器服务包括调制/解调、传真服务包括调制/解调和/或与远程通信服务相关的为一个或者多个通信信道的其它功能。尽管-Law/A-Law解码器1101和-Law/A-Law编码器1102可以使用固件实现,但是在一个实施例中它用硬件电路实现,以便加速多通信信道的编码和解码。集成式远程通信处理器150连接到主处理器140和包处理器1120。主处理器140加载固件到集成式远程通信处理器以执行在基于包交换的语音(voice over packet:VoP)网络系统或封包网络系统中的处理。
-Law/A-Law解码器1101将编码的语音解码为线性语音数据。-Law/A-Law编码器1102将线性语音数据编码为-Law/A-Law编码的语音。集成式远程通信处理器150包括硬件G.711-Law/A-Law解码器和-Law/A-Law编码器。A-Law/-Law的硬件转换将信号编码为线性PCM样本,反向变换是任选的,取决于接收到的信号种类。优选为使用硬件这一变换进行以便加速变换处理和处理另外的通信信道。位于近端的TDM信号编码为语音信号。集成式远程通信处理器150从近端接收TDM信号并将它们解码为脉冲编码调制(PCM)的线性数据样本Sin。把这些PCM线性数据样本Sin耦合到网络回声消除模块1103中。网络回声消除模块1103从PCM线性数据样本Sin中去除回声估计的信号以产生PCM线性数据样本Sout。把该PCM线性数据样本Sout提供给DTMF检测模块1106和话音活动检测和舒适噪声发生器模块1105。网络回声消除器的输出(Sout)耦合进入音调检测模块1104、DTMF检测模块1106、和话音活动检测模块1105。来自音调检测模块1104的控制信号反馈回到网络回声消除模块1103。来自远端的解码的语音样本是PCM线性数据样本Rin,连接到网络回声消除模块1103。网络回声消除模块1103为消除回声复制Rin,并将其作为PCM线性数据样本Rout输出。PCM线性数据样本Rout耦合到mu-law和A-law编码模块1102。PCM线性数据样本Rout被编码为mu-law和A-law编码语音并与TDM信道的TDM输出信号交错,输出到近端。为使数据形成帧的交织在由成帧器(在图11A中未示出)进行线性到A-law/mu-law变换后执行,成帧器把单个信道数据放入不同的时隙内。例如,对T1信令,为每一T1帧有24个这样的时间片。
网络回声消除模块1103有两个输入和两个输出,因为它有通过VX总线与TDM信道和包网络两者的全双工接口。网络回声消除模块1103从通信信道中的线性以及非线性源中消除了回声。网络回声消除模块1103专门定制以消除与在分包网络中产生的包延迟/等待时间相关的非线性回声。
音调检测模块1104从网络回声消除模块1103中接收音调和话音信号。音调检测模块1104从话音信号中辨别音调以便决定该音调发出什么信号。音调检测模块决定来自近端的音调是否为表示挂机的呼叫进行音调(拨号音,忙音,快忙音等)、振铃音、摘机或忙音、或传真/调制解调器呼叫。如果远端正在拨叫近端,则挂机的呼叫进行音、振铃、或摘机或忙音信号由音调检测模块转换为包信号,以便通过包网络传输到远端。如果音调检测模块决定传真/调制解调器音调存在,指示近端正在启动一个传真/调制解调器呼叫,则进一步的话音处理被绕过,禁止由网络回声消除模块1103执行回声消除。
为检测音调,音调检测模块1104使用无限脉冲响应(IIR)滤波器和伴随的逻辑。当检测到传真或调制解调器音调信令音时,该信令音帮助控制各信令事件。音调检测模块1104检测在特定频率下的几个频带内音调的存在,检查它们的节奏,把它们的存在用信号通知回声消除模块1103,和提示其它模块采取适当的动作。音调检测模块1104和DTMF检测模块与网络回声消除器1103并行操作。
音调检测模块可以检测在噪声谐振量中存在的具有信号振幅级从0dB到-40dB的真正的音调。音调检测模块可以检测在中心频率的谐振邻近内延迟在规定限制内的音调。音调检测模块匹配音调节奏,按照ITU/TIA标准定义的音调节奏规则要求。为实现上述特性,必须进行一些权衡,即音调检测模块必须调整几个能量阈值、滤波器频率响应跌落速率、和滤波器抑止频带衰减。另外,音调检测模块很容易只通过升级固件而升级以便允许检测另外的音调。音调检测模块1104可以检测的当前与电话有关的音调列在下面的表中:
                       音调检测模块检测的音调
  音调名   音调说明   ‘开’时间  ‘关’时间
  FAX CED   2100Hz   2.6到4秒   -
  回声消除禁止/调制解调器音调   2100Hz,每450ms相位反转   2.6到4秒   -
  FAX CNG   1100Hz   0.5秒   3秒
  FAX V.21   在1750-Hz载波的7E标志频移发报   至少3个7E标志用信号表示一个FAX信号的启动被发送
  2400Hz   频带内信令音和连续检查音   G.168测试8说明在这些音调存在时回声消除的性能
  2600Hz
当具有相位反转的2100-Hz的音调被检测到,指示一个V系列调制解调器运行时,回声消除器临时关闭。当音调检测模块检测到传真音调时,回声消除器临时关闭。音调检测模块还可以检测窄带信号的存在,其可以是控制信号以控制回声消除模块1103的动作。音调检测模块既在呼叫建立期间运行,也在呼叫通过为该呼叫的通信信道结束进行时作用。在实际呼叫或通信信道建立前任何被发送、产生、或检测的音调称为频带外音调。一个呼叫建立后在该呼叫期间被检测到的音调称为频带内音调。音调检测器以其最一般的形式能够检测许多信令音调。被检测的音调包括呼叫进行音调,诸如振铃音、忙音、快忙音、呼叫者ID音、拨号音、和其它信令音调,其随不同的国家发生变化。呼叫进行音调控制为建立一个呼叫所需要的信号交换,一旦一个呼叫建立,所有被产生和被检测的音调被称为频带内音调。为频带内和频带外音调的检测和产生使用同样的音调检测和发生块。
图11B表示为音调检测的过程1121,其可以由根据本发明的一个实施例的音调检测处理器/模块实现。如前所述,音调检测模块1104从网络消除回声模块接收音调和话音信号,并从话音信号中区分音调以便决定该音调表示什么。音调检测模块决定该音调是否是表示挂机的呼叫进行音调(拨号音,忙音,快忙音等)、振铃、摘机或忙、传真呼叫信号、或调制解调器呼叫信号。
在开始(流程1122)时,过程1121接收到来的音调和话音数据帧。一帧由到来的音调/话音信号的N个采样组成。在一个实施例中,例如一帧由120个采样组成。随着帧长度增加,频率分辨率增加。选择120个样本来优化时间和频率分辨率。过程1121在帧的基础上对一帧操作。过程1121首先执行自动增益控制(AGC)(框1124)。AGC的操作的原理是基于规格化到来的音调/话音信号的功率以保证增益不会太高以致溢出Goertzel滤波器。在这样做时,AGC计算总能量(例如∑x(n)^2)。
接着,过程1121使用实现多个Goertzel滤波器的Goertzel滤波器过程来决定在特定频率的音调/话音信号的能量。Goertzel滤波器是一类离散富立叶变换,为给定信号波形获得功率谱作为频率的函数。Goertzel滤波器是一类无限脉冲响应(IIR)滤波器,其在技术中公知。这些特定频率可以由“集成式远程通信处理器”150的用户选择。图11C表示在远程通信工业中使用常用频率和Goertzel滤波器的相关示例系数的表。另外,应该理解,用户可以定义两个频率以定义双音多频(DTMF)音调以及其它频率组合来定义各种音调。
在一个实施例中,Goertzel滤波器计算在16个特定频率下的音调/话音的能级。这利用集成式远程通信处理器150的结构。在一个实施例中,集成式远程通信处理器150包括一个RISC/DSP内核处理器200,后者包括4个信号处理器300a-d,它们可以并行操作以同时实现4个Goertzel滤波器。这样,在内核处理器200的4个周期中,可以计算16个Goertzel滤波器以决定在16个特定频率下的音调/话音信号的能级,从而实现4-1的效率。然而,应该理解,集成式远程通信处理器150的结构可扩展到包括任何数目的内核处理器,每一内核处理器具有较大数目的信号处理器,它们可以同时使用以执行诸如Goertzel滤波器的数学运算。
接着,过程1121决定音调检测的状态(流程1128)。过程1121包括3个不同的状态:TONE ON(音调开),TONE OFF(音调关),和TONE ON/OFF(音调开/关)。状态还包括一个TONE ON计数器,它跟踪一个特定音调被音调检测过程1121识别的次数,和一个TONEOFF计数器,它跟踪一个音调被识别后的次数。为容易表示,首先假定音调尚未被过程1121识别,将状态被设定为TONE OFF来说明过程1121。
然后过程1121寻找到来的音调/话音信号的最大能级或多级和与它们关联的频率(框1130)。特别是,过程1121从Goertzel滤波器中决定音调/话音信号的两个最大能级和它们关联的频率。在一个实施例中,过程1121从由Goertzel滤波器计算的16个特定频率(例如用户定义的)决定音调/话音信号的两个最大能级和它们关联的频率。
在流程1132中,过程1121根据两个最大能级的计算区分音调是否是单音调、双音调、静音、或其它(例如语音)。在区分音调时,用户也可以定义特定的最小能级,在该能级下决定对一个给定频率是否存在一个音调。如果在流程1132未发现音调,则过程1121前进到下一帧(框1140),并再次开始过程1121(框1122)。另一方面,如果检测到单或双音调,则过程1121在用户定义的音调字典中寻找检测到的单/双音调(框1134)。
如前所述,用户可以定义一些不同的频率,在这些频率下决定某些音调。在一个实施例中,用户可以定义16个频率,在这些频率下决定某些音调是否存在。图11D表示示例呼叫过程音调的部分字典。应该理解,用户定义的字典也可以包括许多其它种类的音调,例如:FAX CED、FAX CNG、和DTMF。
如果在字典中找到该音调(框1134),则过程1121把状态TONEOFF更新为TONE ON(框1138)。然后过程1121前进到下一帧(框1140),并再次开始过程1121(框1122),此时状态设定为TONE ON。
在开始时(框1122),过程1121接收和处理下一到来的音调/话音数据帧。然后过程1121执行自动增益控制(AGC)(框1124),如前所述。相似地,过程1121再次使用Goertzel滤波器来决定下一音调/话音信号在特定频率处的能量(框1126),也如前所述。然后过程1121决定音调检测的状态(框1128)。继续本例,在这一点,判定状态设定为TONE ON,过程1121前进到框1142。
在框1142,过程1121用与前面同样的方式寻找下一音调/话音信号的最大能级或多级和它们相关的频率。另外,如前所述,过程1121根据两个最大能级的计算区分该音调是否是单音调、双音调、静音或其它(例如语音)(框1144)。如果未检测到音调,则过程1121继续到框1150。然而,如果检测到单音调或者双音调,则过程1121决定它是否和在字典中标识的音调相同(框1146)。如果是,则通过TONEON计数器进行加1操作更新状态信息(框1148),过程1121前进到下一帧(框1140),并再次开始过程1121(框1122),状态仍设定为TONE ON。另一方面,如果未检测到同样的音调(框1146)或者未检测到音调(框1144),则过程1121前进到框1150。
在框1150,过程1121决定是否为在字典中标识的一个音调定义一个OFF节奏。OFF节奏是一段时间,其由用户设定或由远程通信标准定义,在该时间中在音调结束后应该是静音。ON节奏是一段时间,其由用户设定或由远程通信标准定义,在该时间中音调应该开。虽然为一个音调几乎总是定义一个ON节奏值,但是可以或可以不为一个音调定义OFF节奏值。再次返回到框1150,过程1121决定是否定义OFF节奏。如果未定义OFF节奏,则过程1121决定在字典中标识的音调是否为由ON节奏值设定的一段时期内开(框1152)。如果不是,则过程1121复位(框1154),然后过程1121前进到下一帧(框1140),再次开始过程1121(框1122)。复位一般涉及初始化状态和计数器。另一方面,如果在字典中标识的音调在由ON节奏值设定的一段时期内开,则公布一个音调(框1156)。接着,过程1121复位(1154),然后过程1121前进到下一帧(框1140),再次开始过程1121(框1122)。
返回到框1150,如果定义了OFF节奏值,则更新状态为TONEON/OFF(框1158)。然后过程1121前进到下一帧(框1140),再次开始过程1121(框1122),此时状态设定为TONE ON/OFF。
在开始时(框1122),过程1121接收和处理下一到来的音调/话音数据帧。然后过程1121执行自动增益控制(AGC)(框1124),和再次使用Goertzel滤波器来决定下一音调/话音信号在特定频率处的能量(框1126),也如前所述。接着,过程1121决定音调检测的状态(框1128)。继续本例,在这一点,判定状态设定为TONE ON/OFF,过程1121前进到框1160。过程1121根据两个最大能级的计算区分该音调是否是单音调、双音调、静音、或其它(例如语音)(框1160)。如果未检测到音调(亦即静音),则过程1121前进到框1162。在框1162,过程1121通过TONE OFF计数器加1操作更新状态信息,和过程1121前进到下一帧(框1140),再次开始过程1121(框1122),此时状态仍设定为TONE ON/OFF。
然而,如果检测到一个音调,则过程1121判断在字典中标识的该音调是否在由ON节奏值定义的一段时期内开(其由TONE ON计数器测量)(框1152),以及在字典中标识的该音调关后(其由TONE OFF计数器测量)是否满足OFF节奏值。如果不是,则过程1121复位(框1154),然后过程1121前进到下一帧(框1140),再次开始过程1121(框1122)。另一方面,如果在字典中标识的该音调在由ON节奏值设定的一段时期内开和由OFF节奏值设定的一段时期内关,则公布一个音调(框1168)。接着,过程1121复位(1154),然后过程1121前进到下一帧(框1140),再次开始过程1121(框1122)。
前面已经说明的过程1121利用集成式远程通信处理器150的结构。在一个实施例中,集成式远程通信处理器150包括一个RISC/DSP内核处理器200,它包括4个信号处理单元300a-d,它们可以同时并行操作来执行4个Goertzel滤波器。于是,在内核处理器200的4个周期内,可以计算16个Goertzel滤波器以决定音调/话音信号在16个特定频率下的能级,从而实现4-1的效率。
图11E表示用于音调检测的另一个过程1169,它可以由根据本发明的一个实施例的音调检测处理器/模块实现。如前所述,音调检测模块1104从网络消除模块接收音调和话音信号并从话音信号中区分音调以便决定该音调表示什么信号。另外,在实现过程1169中的音调检测模块1104结合FAX处理器1119(图11A)操作。音调检测模块决定该音调是否是表示挂机的呼叫进行音调(双音调,忙音,快忙音)、振铃、摘机或忙、传真信号、或调制解调器信号。另外,过程1169特别区分FAX V.21音调、调制解调器音调、和回声消除(EC)禁止音调。可以单独和/或结合图11B的过程1121使用图11E的过程1169。
另外,当图11E的过程1169检测到一个调制解调器音调和/或EC禁止音调时,它自动禁止回声消除。另外,当过程1169检测到FAX CED音调(ANS)、FAXCNG音调、或FAX V.21时,它禁止话音处理和为FAX处理提供一个数据旁路。
过程1169使用带通无限脉冲响应(IIR)滤波器以检测音调和话音信号。使用带通IIR滤波器滤波输入信号。过程1169决定是否存在音调、是什么音调、或是否存在话音信号,这通过根据比较滤波后的能量与输入信号的能量。过程1169是一个基于样本的过程,使得关于是否检测到音调的决定可以在任何样本上潜在进行。因为IIR滤波器需要维持一个接一个计算的状态变量,因此希望为IIR滤波器的递归算法进行一个周期优化的实现。根据本发明的一个实施例的过程1169的优点在于,它允许一个周期优化的实现。特别,集成式远程通信处理器150的结构包括一个具有4个信号处理器300a-d的内核RISC/DSP处理器200,这些信号处理器可以同时并行运行执行4个IIR滤波器。这允许在一个周期优化的实现中非常有效地计算IIR滤波器。
另外,下面会讨论,几乎所有音调检测过程在本质上都与基本过程1169相似,然而,过程1169特别区分FAX V.21音调和调制解调器/回声消除禁止音调。FAX V.21音调的检测基于解调技术。另外,为进一步检测调制解调器音调和/或回声消除禁止音调,唯一地测试反相以便更准确检测这些类型的音调。
再次参考图11E,输入信号x(n)在过程1169的框1170中首先经历自动增益控制(AGC)。AGC 1170的主要操作基于规格化到来的音调/话音信号的功率以保证增益不致太高而溢出IIR滤波器。另外,AGC规格化在N个样本的帧内的信号的功率。在这样做时,AGC计算总能量(例如∑x(n)^2)。这一类型的定标是需要的,以便适应需要被检测的音调的宽广的动态范围。
继续参考图11E,过程1169在下一框1172中执行滤波。在一个实施例中,使用椭圆IIR滤波器来设计带通滤波器。在本实施例中,所用的滤波器的阶是4。为实现椭圆IIR滤波器,使用一个高效DFII结构,其示于图11F。DFII一般代表IIR滤波器的直接型第二式(2)实现。下面的等式实现双二阶结构:
Y[n]=b10*x[n]+d11
d11=b11*x[n]-a11*y[n]+d12
d12=b12*x[n]-a12*y[n]
或者以更一般的形式:
y0=x0
yi=bi0yi-1[n]+di2[n-1]
di1[n]=bi1yi-1[n]-ai1yi[n]+di1[n-1]
di2[n]=bi2yi-1[n]-ai2yi[n]
i = 1,2 , . . . , [ N + 1 2 ]
y [ n ] = y [ ( n + 1 ) 2 ] [ n ]
式中,x[n],y[n]分别是在实例’n’时的输入样本和滤波器输出样本。其它参考构成滤波器系数和滤波器延迟(也参见图11F)。该算法基本上是逐采样式的而非逐帧式的。于是,采用双重双二阶结构来实现逐采样滤波器。该滤波器的输入参量将是所有的滤波器系数和状态变量以及当时的输入。使用DFII结构的椭圆IIR滤波器在现有技术中公知。
继续参考图11E,过程1169接下来在框1173执行滤波的信号y(n)的能量估值和在框1174执行输入信号x(n)的能量估计。这样,这一阶段给出在这些信号中目前有多少能量的指示。如下实现能量估计滤波器:
E[n]=a|x[n]+(1-a)E[n-1]      (为输入信号x(n)的能量)
E[n]=a|y[n]|+(1-a)E[n-1]     (为滤波的信号y(n)的能量)
为输入信号x(n)和输出信号y(n)的能量方程放入1x16的矩阵中,使得它们可以与所有其它滤波器的能量计算级结合。
下面,如图11E所示,在决策框1176决定是否存在特定音调。下面是在关于是否存在特定音调的决定做出前输入信号x(n)和滤波后的信号y(n)必须满足的条件:
1)输入信号能量(为x(n)的能量)必须大于一个最小指定的阈值,MINTHRESH;
2)滤波后的信号能量(为y(n)的能量)乘以一个阈值后的值必须大于输入信号能量;
3)输入信号必须维持一个能量级,其由过程适应性更新,否则,断言该音调不存在;
假定满足上述条件,则检测到一个音调并断言它存在(框1178)。本发明的一个优点是,它允许为一个周期优化的实现。特别,集成式远程通信处理器150的结构包括一个具有4个信号处理器300a-d的内核RISC/DSP处理器200,这些信号处理器可以并行运行同时执行4个IIR滤波器。这允许在一个周期优化的实现中非常有效地计算IIR滤波。另外,应该注意,当过程1169检测到一个FAXCED音调(ANS)或一个FAXCNG音调时,它禁止话音处理并为FAx处理提供数据旁路。
然而,即使检测到一个音调,还存在两个特殊的情况,这里还需要执行额外的检测以保证确实存在特别的音调。这些音调是调制解调器/回声消除禁止音调和FAX V.21音调。过程1169特别区分调制解调器/回声消除禁止音调和FAX V.21音调。
这样,假定存在一个具有调制解调器/回声消除禁止音调(例如在2100Hz下运行)特征的信号,过程1169前进到框1179为进一步的调制解调器信号处理。例如,调制解调器/回声消除禁止音调在2100Hz下运行,但是其它信号也如此,例如FAX CED音调。于是,现在没有方式真正区分调制解调器/回声消除禁止音调。然而,根据本发明的一个实施例的过程1169包括一个另外的调制解调器处理块1179,它包括反相检测的方法以保证信号具有调制解调器/回声消除禁止音调的所有特征。特别,调制解调器/回声消除禁止音调每450ms相位翻转,过程1169检查这些相位翻转。
图11G表示的用于反相检测的子过程1181,该过程由过程1169作为该另外的调制解调器处理块1179的一部分实现。用于反相检测的子过程1181基本寻找其后紧随一个正尖峰信号的负尖峰信号。图11G还表示信号(Es)的能量,滤波信号(Ef)的能量,和滤波后的能量与原来的能量(亦即IIR滤波器)的差分(diff)函数,以便进一步表示为反相检测的子过程1181。为检测尖峰,子过程1181检查diff函数的值是否小于负阈值(框1182),例如-0.15(参见差分函数的图表上的1183)。如果不是,则结束子过程1181。然而,如果是,则子过程1181通过检查diff函数是否有大于正阈值的值来检查正尖峰(框1184),例如0.1(参见差函数的图表上的1185)。如果不是,则子过程1181结束。另一方面,如果存在这种从负到正的尖峰的有效的转移,则可以判定发生反相(框1186)。通过使用diff函数是滤波后的能量的函数这一事实,可以使阈值为自适应的。自适应的阈值允许子过程1181具有为要检测的音调的宽广的动态范围。
有利的是,子过程1181专门从诸如FAX CED音调的其它音调中区分调制解调器/回声消除禁止音调,这些音调可以具有同样的频率(例如2100Hz),但是不具有同样的反相特征。独特的子过程1181强调在差函数中寻找尖信号,使得反相检测健壮。一种用于实现这一点的技术是基本上使滤波后的信号的能量通过一个高通滤波器,并如图11G所示尖信号真正突出和容易检测。另外,当图11E的过程1169检测到一个调制解调器音调和/或EC禁止音调时,它自动禁止回声消除。
再次参考图11E,即使检测到一个音调(例如在1750Hz的频率下运行的音调)和相信它是FAX V.21音调,过程1169将执行另外的检测以保证它确实是FAX V.21音调。FAX V.21音调具有包括基本以300bps发送的7E(十六进制)个标志的特征。二进制信号是围绕1750Hz的载波调制的频移键控(FSK)。对于二进制0的频移是+100Hz,对于二进制1是-100Hz。这样,假定存在具有V.21 FAX调制解调器音调特征的信号(例如在1750Hz下运行),则过程1169前进到框1180为进一步的传真处理以保证它真的是V.21 FAX调制解调器音调。
另外,随着因特网和基于包的技术的增长,强烈需要FSK解调的有效机制。更具体说,V.21 FAX标准需要特定的调制的数据和载波频率以便传送包含FAX数据而不是话音的呼叫。这一信号的解调器需要对适当数量的噪声和频率偏移相对不敏感,并且必须适当捕获输出代码字。相似地,设备必须识别该音调何时结束。
根据本发明的实施例为传真V.21检测的子过程1199示于图11H,它满足上面的需求和以最小量的时间解调信号并进一步健壮地检测即使是具有噪声和频移的7E个标志。用于传真V.21检测的子过程由作为进一步的传真处理块1179的一部分的过程1169(图11E)实现。在一个实施例中,传真处理器1119结合音调检测模块1104(图11A)执行为传真V.21检测的子过程1199。
如图11H所示,混合器1189接收数字化输入(例如y(n))。如前所述,该数字化输入使用具有频率为1750Hz的载波的FSK调制。在为传真V.21检测的子过程1199中的第一级是通过去除载波开始信号解调。这用混合器实现(框1189)。混合器1189混合数据与存储的载波频率的拷贝。一个输入在一个周期中混合到基带。更具体说,4个输入乘以4个余弦样本并在一个周期中存储到存储器。这一点可以在一个循环中进行两次,使用额外的指令用于控制代码。因此,在4个周期中有8次余弦乘法。对于同一频率的正弦波同样执行。于是8个样本在8个周期(两个单独的循环)内与正弦和余弦混合,或每周期一个输出。混合器级1188的输出称为信号的同相和正交分量。
在信号质量低时,可以需要为传真V.21检测的子过程1199中的第二级,亦即低通滤波器(框1190)。低通滤波器(框1190)去除大部分高频噪声成分。无论是同相还是正交分量都可以通过该低通滤波器来去除噪声。一个低通滤波器(LPF)输出在(N/8)+2个周期中完成。通过使用来自两个先前的指令的数据同时计算两个输出。这允许集成式远程通信处理器150的结构使用4个信号处理器(300a-d)在一个周期内同时运算8个乘法,以达到FIR滤波器的高效实现。
为传真V.21检测的子过程1199中的第三级是相位检测器(框1191),在这里实际恢复原来的被调制的信号。使用一个简单的数学微分方程以便寻找在每两个连续的基带样本之间的相位差。在该过程中可能引入某些噪声,因为不能保证两个信号具有同样的幅度,而且可能具有一些不能由第一滤波器去除的残余噪声。这一相位差包含原来的被调制的信号的一个形态。特别是,在5个周期中检测到的一个定相位。检测一个特定定相位的公式是:I(N)*Q(N+1)-I(N+1)*Q(N)。集成式远程通信处理器150的结构同时使用4个信号处理器(300a-d),允许在两个周期中为4个同时的输出完成这一操作,因为在一个给定的周期内4个乘法器是工作的。
为传真V.21检测的子过程1199中的第四级是防止混叠的低通滤波器(LPF)(框1192),它在某些方面类似第二级。防止混叠失真的LPF(框1192)不只消除高频噪声成分,而且在采样速率减小时防止称为混叠的失真。
为传真V.21检测的子过程1199中的第五级包括减小采样速率(框1193)。通过取第N个样本而舍弃其余样本来减小样本速率为每一调制的符号一个样本。
最后,在为传真V.21检测的子过程1199中的第六级中计数代码字(框1195)。特别是,收集输出的符号并且一个一个计数。如果以十六进制表示的模式‘7E’被连续看见3次,则设定V21标志为真。否则该标志返回到复位状态,直到下3个‘7E’码字出现。如果V21标志设定为真,则判定FAX V.21存在(框1196)。
为传真V.21检测的子过程1199包括许多优点。例如,子过程强壮地检测即使是有噪声和频率偏移的7E标志。另外,每一个输出在12个周期内发生全解调。还有,使用集成式远程通信处理器150的结构的为传真V.21检测的子过程1199执行高密度滤波、混合和相位检测。另外,可以使用该子过程以足够大采样速率解调类FSK调制的信号,使得可以做sin(相位)=相位的近似。另外,当验证FAX V.21音调时,话音处理被禁止,并为FAX处理提供数据旁路。
离开音调检测回到噪声处理的事项,在大多数交谈中,讲话者只在35%的时间内说话。在大多数讲话中剩余的65%的时间中,讲话者由于为强调、清楚、呼吸、思维过程等等的自然停顿而相对沉默。当多于两个讲话者时,像在电话会议的场合,甚至有更长的静音时期。从一个人向另一个人传输静音是对通信信道低效率的使用。因此,使用统计多路转换技术来分配该65%的‘静音’时间(也称为‘死时间’或‘静音’)到其它呼叫。即使把静音时间分配给其它呼叫,在终端用户使用通信信道的时间期间内信道质量仍然被保持。然而,不向对端传输的一端的静音需要被模拟并被插入到在对端的呼叫中。
有时,当我们通过电话说话时,我们听到我们自己的回声,通常我们忽略它们。重要的一点是我们确实听到了回声。然而,许多数字电话连接无噪声到这种程度,以致完全没有背景噪声或残余回声。其结果,远端用户听到绝对的静音时,许多人会认为连接中断而挂机。
返回到图11a,为使用户相信有连接,背景或舒适噪声发生器(CNG)模块1105在一端模拟沉默或静音时间,这通过增加背景噪声诸如‘咝’实现。CNG模块1105可以模拟不同级别的环境背景噪声。可以使用回声消除建立消息来控制CNG模块作为外部参数。舒适噪声发生模块缓和远端讲话者在停止讲话时可以听到的接入和切出的效果。使用近端噪声电平来决定被模拟的适当电平的背景噪声并被插入SOut(发送端口)端口。然而,在可以由CNG模块1105模拟静音前,必须首先检测静音。
使用话音活动检测(VAD)模块1105来检测在语音段内静音的存在与否。当VAD模块1105检测到静音时,估计背景噪声能量和在其中的编码器产生一个静音插入说明(SID)帧。该SID帧被传输到对端以指示静音将以估计的背景噪声能量级模拟。响应在对端(亦即远端)接收到SID帧,CNG模块1111产生一个相应的舒适噪声或模拟静音持续一段时间。使用从SID帧接收到的环境背景噪声的电平,CNG产生一个舒适噪声(也称为‘白噪声’或‘粉红噪声’或模拟静音)电平,它替换已经被去除的通常的背景噪声,从而使远端的人确信连接未被中断。VAD模块1105决定舒适噪声何时打开(亦即检测到静音时期),和舒适噪声何时关闭(亦即终端用户再次说话)。VAD1105(在发送路径内)和CNC模块1111(在接收路径内)在两个不同的端一起高效工作,使得在静音期间语音不被削减并适当产生舒适噪声。
VAD模块1105包括一个自适应电平控制器(ALC),它对变化的近端输入电平保证恒定的输出电平。自适应电平控制器包括一个可变增益放大器以维持恒定的输出电平。自适应电平控制器包括一个近端能量检测器以检测近端信号中的噪声。当近端能量检测器检测到近端信号中的噪声时,禁止ALC以便不放大不希望的噪声。
DTMF检测模块1106执行对检测作为电话信号的DTMF信号所需要的双音多频检测。DTMF检测模块从回声消除模块1103接收Sout上的信号。DTMF检测模块1106总是工作的,即使是在正常谈话期间如果DTMF信号在谈话期间被传送。当检测到DTMF音调时DTMF检测模块不禁止回声消除。DTMF检测模块包括窄带滤波器以检测特殊的音调和DTMF拨号音。此外,因为G.7xxx语音编码模块1109和解码模块1110用于压缩/解压缩语音信号且不用于控制信令或拨号音调,因此,DTMF检测模块可以适当用于控制排序、加载、和执行CODEC固件。
DTMF检测模块1106检测DTMF音调并包括解码器来解码该音调以决定哪一个电话键盘按键被按下。DTMF检测模块1106基于Goertzel算法和满足Bellcore DTMF解码器测试以及Mitel解码器测试的所有条件。
DTMF检测模块1106指示发送者在处理几帧数据后按下了哪一个拨号键。DTMF检测模块可以适应以接收用户定义的参数。用户定义的参数可以改变,为特定接收条件优化DTMF解码器,这种接收条件例如有为由DTMF键板的‘行’和‘列’形成的两种频率的阈值,为可接受的扭曲比(在较高和较低频率之间的功率比),静音电平,信号噪声比,和谐波比的阈值。
DTMF发生模块1107提供为产生用于电话信号的DTMF音调必需的双音多频(DTMF)发生。在DTMF发生模块1107中的编码处理产生不同DTMF对中的一对。DTMF发生模块1107为在远端的拨号键按键的按压产生数字化的双音多频样本。DTMF发生模块1107总是工作的,即使在正常交谈期间。DTMF发生模块1107包括窄带滤波器以产生特殊的音调和DTMF拨号音调。DTMF发生模块1107通过包网络接收来自远端的DTMF包。DTMF发生模块1107包括DTMF解码器以解码DTMF包和适当产生音调。DTMF包有效负载包括这种信息,诸如要按下以工作的键或数字(亦即拨号键坐标)、工作的持续时间(其间音调被允许的连续125个微秒样本的数目和其间音调被关闭的连续125个微秒样本的数目)、振幅级(以dB的较低频率波幅电平和以dB的较高频率振幅级)和其它信息。通过指定这些参数,DTMF发生模块1107可以产生具有需要的信号振幅级和为适当的数字/音调定时的DTMF信令音调。由DTMF发生模块1107产生的DTMF音调连接到Rin上的每一个回声消除器。
音调发生模块1108的操作类似DTMF发生模块1107,但是产生提供电话信号的特定音调。由音调发生模块产生的音调包括表示挂机/摘机信号的音调、振铃、忙音和指示FAX/调制解调器呼叫的特殊音调。音调包通过包网络从远端接收并被解码和决定该音调的参数。音调发生模块1108发生音调,类似于先前说明的使用窄带滤波器的DTMF发生模块1107。
G.7xx编码模块1109提供打包前的语音压缩。G.7xx编码模块1109从网络回声消除模块1103接收采取线性64-Kbps脉冲编码调制(PCM)格式的语音。该语音由G.7xx编码模块1109使用为低位速率话音(LBRV)CODEC指定的一种压缩标准压缩,所述标准包括ITU-T国际标准化G.7xx系列。可以选择许多语音CODEC。然而,选择的语音CODEC决定语音样本的块大小和算法延迟。在使用的几种工业标准语音CODEC中,每一个实现一种编码速率、帧长度(语音样本块的大小)和由使所有样本集合在一起处理需要多长时间引起的算法延迟(或检测延迟)的不同的组合。
G.7xx解码模块1110提供对通过包网络从远端接收的信号的语音解压缩。解压缩后的语音被连接到网络回声消除模块1103。G.7xx解码模块1110的解压缩算法需要匹配G.7xx编码模块1109的压缩算法。G.7xx解码模块1110和G.7xx编码模块1109称为CODEC(编码器-解码器)。当前有几种工业标准语音CODEC,从中可以选择。为选择一个CODEC的参数先前已经说明。ITU CODEC包括G.711,G.722,G.723.1,G.726,G.727,G.728,G.729,G.729A,和G.728E。它们中的每一个都可以通过选择固件而容易地选择。
数据通过TDM串行I/O端口和32位并行VX-总线1112进入和离开处理器150。使用16位的精度执行处理器150内的数据处理。在TDM信道输入上的压缩扩展的8位PCM数据被转换为16位的线性PCM以便在处理器150中处理并重新转换为8位的PCM以便在TDM信道输出上输出。
现在参考图12,图中表示对来自近端的线性数据(Sin)进行电话处理成为在远端的网络侧的包数据的流程图。给集成式远程通信处理器150提供一个近端数据Sin。在步骤1201,决定是否启动回声消除模块1103。如果不启动回声消除模块1103,则集成式远程通信处理器150跳转到音调检测模块1205,音调检测模块1205检测在信号Sin中是否存在频带内音调。如果在步骤1201启动回声消除模块1003,则在步骤1203把近端数据Sin连接到回声消除模块1103并使用来自远端的数据(FarIn)消除回声。在步骤1203执行回声消除后和/或如果允许回声消除模块1103,则集成式远程通信处理器150跳转到检测步骤1205,在这里数据被连接到音调检测模块1104。前面已经参考图11A-H讨论了音调检测(包括传真音调检测)方法。处理器150前进到步骤1207。
在步骤1207,决定是否存在传真音调。如果在步骤1207存在传真音调,则集成式远程通信处理器150跳转到步骤1209以提供传真处理。如果在步骤1207不存在传真音调,则在步骤1211由音调检测模块进一步解释该结果。
在步骤1211,决定是否有回声消除控制音调以指示回声消除器的启动和不启动。如果存在回声消除控制音调,则集成式远程通信处理器跳转到步骤1215。如果在步骤1211未检测到回声消除控制音调,则到来的数据信号Sin可能是话音或语音信号,而集成式远程通信处理器跳转到步骤1219的VAD模块。
在步骤1215比较该音调的能量与一个预先设定的阈值。决定信号Sin中的能级是否小于一个阈值级。如果在Sin上的音调的能量大于或等于这一预定的阈值,则处理器跳转到步骤1213。如果在Sin上的音调的能量小于这一预定的阈值,则集成式远程通信处理器150跳转到步骤1217。
在步骤1213,检测到回声消除禁止音调和该音调的能量大于给定的阈值,这使得回声消除模块被禁止而取消新到来的Sin信号。在检测到回声消除禁止音调后,通过一个控制信号给回声消除功能块一个指示以禁止回声消除。
在步骤1217,未检测到回声消除禁止音调和该音调的能量小于给定阈值。回声消除模块被允许或者如果已经在这一状态则保持被允许。通过一个控制信号给回声消除功能块一个指示以允许回声消除。这可以指示回声消除禁止音调的结束。
预定阈值电平是决定是否应当把回声消除禁止标志关断的截止电平。如果音调能量下降到一个预定阈值以下,则回声消除禁止标志关断。该标志连接到回声消除模块。响应回声消除禁止标志允许或禁止回声消除模块。如果音调能量大于预定阈值,则处理器跳到步骤1213,如上所述。无论哪种情况,在步骤1213或1217回声消除禁止标志被设定为真或假,处理中的下一步是在步骤1219的VAD模块。
在步骤1219,数据信号Sin连接到话音活动检测器模块1105,使用该模块检测在数据信号Sin中可能存在的话音/DTMF/音调信号的时期和静音的时期。处理器150跳到步骤1221。
在步骤1221,决定是否检测到静音。如果检测到静音,则集成式远程通信处理器150跳转到步骤1223,在这里准备SID包,用于作为在远端的包网络上的包进行发送。如果在步骤1221未检测到静音,则处理器连接信号Sin到环境电平控制(ALC)模块(图11中未示出)。在步骤1225,ALC放大或缩小信号Sin到恒定电平。然后集成式远程通信处理器150跳转到步骤1227,在这里由DTMF/通用音调检测模块1106执行DTMF/通用音调检测。处理器前进到步骤1229。
在步骤1229,决定是否检测到DTMF或音调信号。如果检测到DTMF或音调信号,则在步骤1231集成式远程通信处理器150产生DTMF或音调包为向远端的包网络传输。如果在步骤1229未检测到DTMF或音调信号,则信号N是话音/语音信号和G.7XX编码模块1109在步骤1233编码该语音为语音包。然后把语音包1235传输到在远端侧的包网络。
现在参考图13,图中表示由集成式远程通信处理器150对来自远端网络侧的包数据进行电话处理变成在近端的Rout信号的流程图。集成式远程通信处理器150通过包网络101从远端接收包数据。在步骤1301,决定接收到什么类型的包。集成式远程通信处理器150期望5种类型的包之一。期望的5种包类型是传真包1303、DTMF包1304、音调包1305、语音或SID包1306。
如果在步骤1301确定接收到一个传真包1303,则由集成式远程通信处理器连接来自该包的数据到步骤1308的传真解调模块。在步骤1308,传真解调模块使用传真解调将来自该包的数据解调为在近端的Rout信号。如果在步骤1301决定接收到一个DTMF包1304,则把来自该包的数据连接到步骤1310处的DTMF发生模块1107。在步骤1310,DTMF发生模块1107从在近端处的包Rout信号中的数据产生DTMF音调。如果在步骤1301决定接收到的包是音调包1305,则把来自该包的数据连接到步骤1312处的音调发生模块1108。在步骤1312,音调发生模块1108产生音调作为在近端处的Rout信号。如果在步骤1301决定接收到语音或SID包1306,则把来自该包的数据连接到步骤1314处的G.7xx解码模块1110。在步骤1314,G.7xx解码模块1110将来自该包的语音或SID数据解压缩为在近端的Rout信号。
如果在步骤1301决定包是DTMF包1304、音调包1305、语音包或SID包1306之一,则集成式远程通信处理器150跳转到步骤1318。如果在步骤1318允许回声消除器标志,则把来自各模块的Rout信号连接到回声消除模块。这些Rout信号是对回声消除器的远端输入,该回声消除器的回声,如果没有消除的话,在它被传输到其它端时乘载在近端信号中。在步骤1318,使用从一个模块来的各Rout信号连同来自近端的Sin信号和回声消除器允许标志执行回声消除。回声消除器允许标志是一个二进制标志,它打开或关闭在步骤1318处的回声消除操作。当这一标志打开时,处理近端输入信号以消除远端可能的回声。当这一标志关闭时,近端输入信号旁路回声消除不做处理。
现在参考图14,图中表示用于电话处理的集成式远程通信处理器150的例示功能块之间的数据流和相互作用的方框图。在由集成式远程通信处理器150提供的包载话音(VOP)系统中有两个数据流。这两个数据流是TDM到包和包到TDM,它们两个一前一后执行以形成一个全双工系统。
在TDM到包的数据流中的功能块包括回声消除器1403、音调检测器1404、话音活动检测器(VAD)1405、自动电平控制器(ALC)1401、DTMF检测器1405、和打包器1409。回声消除器1403基本消除来自网关近端的可能的回声信号。音调检测器1404控制回声消除器和集成式远程通信处理器150的其它模块。音调检测器用于检测EC禁止音调、FAXCED音调、FAXCNG音调和V21‘7E’标志。还可以编程音调检测器1404检测给定数目的信令音调。VAD 1405在来自近端的信号中没有语音时产生静音信息描述(SID)。ALC 1401优化语音的音量(振幅)。DTMF检测器1405寻找表示DTMF数字的音调。打包器1409打包适当的有效载荷以便发送包。
包到TDM流中的功能块包括:解包器1401、舒适噪声发生器(CNG)1420、DTMF发生器1407、PCM到线性变换器1421、和可选窄带信号检测器1422。解码器1410解包包类型和适当为其选择路由到CNG 1420、PCM到线性变换器1421或DTMF发生器1407。CNG1420根据SID包产生舒适噪声。
DTMF发生器1407产生给定振幅和持续时间的DTMF信号。可选窄带信号检测器1422检测什么时间不希望回声消除器消除在Rin侧的某些音调的回声。PCM到线性变换器1421变换A-law/mu-law编码的语音为16位线性PCM样本。然而,这一功能块可以容易地由一个通用语音解码器(例如G.7xx语音解码器)为一个给定的通信信道通过交换适当的固件代码而替换。TDM输入/输出功能块1424是一个A-law/mu-law到线性变换模块(亦即1102,1103),它发生在TDM接口。这可以由硬件执行或可以编程由固件执行。
集成式远程通信处理器是一个模块化系统。它易打开新的通信信道因此可以同时支持很多信道。集成式远程通信处理器150的功能模块或部件可以相互交互作用以完成全部的功能。
在功能块或模块之间的通信,也就是功能块间的通信,通过用一定的访问规则使用共享的存储器资源执行。存储器内的共享区域的位置称为功能块间数据(InterFB data)。集成式远程通信处理器150的所有功能块都允许读存储器中的这一共享区域,但是集成式远程通信处理器150中只有很少几个块允许写入存储器的这一共享区域。功能块际数据是在存储器中固定的(预留的),例如从诸如0x0050H的地址开始。集成式远程通信处理器150的所有功能块或模块如果需要使用这一共享存储器或功能块际数据的话可以相互通信。可以为TDM-包和包-TDM两种数据流使用同样的共享存储器区域,或者它们可以分成不同的共享存储器区域。
下面的表指示参数的样本设定,其可以在集成式远程通信处理器150中的功能块之间通信。“参数名”一列指示参数,而“功能”列指示参数帮助执行的功能。“写/读访问”列指示可以读或写该参数的功能块。
  参数名   写/读访问   功能
  td_initialize   Script(w),tone_detect(w/r)   为TD初始化状态
  Ecdisable_detect,faxced_detect,faxcng_detect,faxv21_detect,   Td(w),ec(r,w)   切换ALC、EC开/关
  Key,dtmf_detect   Dtmf(w),packetizer(r)   指示dtmf数字存在
  Vad_decision,noise_level   Vad(w),cng(r),script/alc(r)   话音决定,用于CNG的SID
  Tone_flag,frequency1,frequency2   Narrowband(w),ec/script(r)   指示在Rin上的窄带信号
现在说明在功能块或模块和各信号之间的相互作用。回声消除器1403接收Sin信号和Rin信号两者,以便产生Sout信号作为被消除回声的信号。回声消除器1403还产生Rout信号,它通常和Rin一样。也就是说,在大多数场合对Rin信号不做进一步的处理来产生Rout信号。回声消除器1403操作从TDM端以及从包侧来的数据的两个数据流。回声消除器1403仅当在这两个流上的数据全部可用时才适当动作。当一个TDM帧(Sin)准备好被处理时,从包缓冲器取一个包并解码(Rin)和将其放入存储器。TDM帧是Sin信号数据,回声应该从其中去除。解码的包是Rin数据信号。
音调检测器1404从回声消除器1403接收输出Sout。音调检测器1404寻找EC禁止音调、FAXCED音调、FAXCNG音调和表示V21‘7E’标志的音调。音调检测器在回声消除器1403完成它的数据处理后对Sout数据作用。音调检测器的主要目的是通过打开或关闭集成式远程通信处理器150的其它模块来控制它们。音调检测器1404对于像回声消除器1403和ALC 1401这样的模块基本上是一个开关机构。音调检测器可以写共享存储器中的EC禁止标志,而回声消除读它。音调检测器或回声消除器写共享存储器中的ALC禁止标志,而ALC 1401读它。由音调检测器检测到的大多数事件由回声消除器以某种方式使用。例如,当由音调检测器1404检测到一个EC禁止音调时,回声消除器1403将关闭。调制解调器通常发送/ANS信号(或EC禁止信号)以禁止网络中的回声消除器。当集成式远程通信处理器150的音调检测器1404检测到EC禁止音调时,它在表示EC禁止标志的存储器位置写一个“真”状态。在下一TDM数据包流上,回声消除器1403读该EC禁止标志,以决定是否执行回声消除。在它被禁止的场合,回声消除器1403产生Sout作为没有添加回声消除信号的Sin。当Sin的方均根能量(RMS)降到低于-36dbm,指示无音调信号时,由回声消除器1403更新EC禁止标志为“假”状态。
在某些情况下不希望为ALC 1401修改一个信号的振幅,诸如当发送FAX数据时。在这一场合,希望ALC 1401被打开和关闭。在大多数场合,需要ANS音调关闭ALC 1401。当音调检测器1404检测到ANS音调时,它把“真”状态写入为ALC禁止标志的存储器位置。ALC 1401读用于ALC禁止标志的共享存储器位置并根据其状态将其打开或关闭。可以打开ALC禁止标志的另一个条件可以是来自回声消除器的一个说明未检测到近端信号的信号。当Sout信号低于给定阈值电平时可以是这种情况。
当音调检测器检测到EC禁止音调时,它关闭回声消除器1403(G.168)。当音调检测器检测到FAXCED音调(ANS)时,它关闭ALC 1401(G.169)并为FAX处理提供一个数据旁路。当音调检测器检测到FAXCNG音调时,它为FAX处理提供一个数据旁路。当音调检测器在一行中同时检测到3个V21‘7E’标志时,它为FAX处理提供一个数据旁路。
使用VAD 1405以减少有效位速率和优化带宽使用。使用VAD1405检测语音中的静音。VAD通过使用静音信息描述而不是发送表示静音的PCM样本来编码静音时期。为这样做,VAD对Sout的数据样本的帧作用。帧的大小可以根据情形和不同实现的需要变化,典型的帧表示Sout的80个数据样本。如果VAD 1405检测到静音,则它在共享存储器中写一个voice_activity(话音活动)标志以指示静音。它还测量噪声功率电平和在一个共享存储器位置写入一个有效的noise_power(噪声功率)电平。
ALC 1401读voice_activity标志并在检测到话音时施加增益控制。否则,如果voice_activity标志指示静音,则ALC 1401不应用增益把Sout不改变振幅原样输出。
分包器/编码器1409读话音活动标志以决定当前的数据帧是否包含有效的话音信号。如果当前帧是话音,则从ALC来的输出需要被加入PCM有效负载。如果当前帧是静音和SID已经由VAD 1405产生,则分包器/编码器1409读存储在共享存储器中的SID信息以便为它打包。
ALC 1401响应VAD 1405作用。VAD 1405可以寻找最后一个或多个数据帧以决定ALC信息是否应该被加到一个帧上。如果检测到话音的话,则ALC 1401应用增益控制,否则不改变Sout原样传送。音调检测器1404如上述禁止和允许ALC 1401以便与G.169规范一致。另外,当由回声消除器1403进行回声消除后Sout信号电平降落到一定阈值(例如-40dBm)以下时,ALC 1401被禁止。如果当前帧包含有效的话音数据,则由分包器把来自ALC 1401的输出增益信息加到PCM有效负载上。否则,如果检测到静音,则分包器使用SID信息以产生要作为send_packets(发送包)所发送的包。
DTFM检测器1406响应ALC 1401的输出作用。DTMF检测器1406使用120个数据样本的一个内部帧长度,但是它适应数据样本的任意帧长度。对于当前帧的DTMF信令事件记录在共享存储器的InterFB区域。高级程序使用在InterFB区域内存储的DTMF信令事件。通常高级程序读需要的所有信息然后清除内容以备将来使用。
DTFM检测器1406可以读VAD activity标志以决定是否检测到话音信号。如果是,则DTMF检测器可以不执行,直到检测到其它信号类型,诸如音调。如果DTMF检测器检测到数据的当前帧包含有效的DTMF数字,则为分包器产生一个特殊的DTMF有效负载。该特殊的DTMF有效负载包含为在另一端忠实再生DTMF数字需要的相关信息。分包器/编码器为在send_packet输出上传输产生DTMF包。
分包器/编码器1409包括1个字节的包头标以指示在有效负载上携带有什么数据类型。有效负载的格式依赖于正被传输的数据。例如,如果有效负载包含PCM数据,则该包要比用于产生舒适噪声的SID包大许多。打包可以作为集成式远程通信处理器的一部分实现,或者它可以由外部网络处理器执行。
拆包器/解码器1410接收在rx_packet上的包流,并通过看包头标首先决定它是什么类型的包。在决定所接收的包的类型后,则可由集成式远程通信处理器执行合适的解码算法。包的类型以及它们可能的解码功能包括舒适噪声发生(CNG)、DTMF发生、和PCM/话音解码。拆包器/解码器1410产生用作Rin的数据帧。在许多场合,由数据的一个包产生数据的一个单独帧。
舒适噪声发生器(CNG)1420响应接收一个SID帧作为在rx_packet上的包中的有效负载,从拆包器/解码器141接收命令以产生‘舒适的’粉红噪声。舒适噪声发生器(CNG)1420在相应于在SID帧中指示的噪声功率的电平上产生‘舒适的’粉红噪声。一般,产生的舒适噪声可以具有任意谱特征而且并不限于粉红噪声。
DTMF发生器1407从拆包器接收命令并响应拆包器接收在rx_packet上一个包内的DTMF有效负载产生DTMF音调。由DTMF发生器1407产生的DTMF音调符合在DTMF有效负载中说明的相应DTMF数字的振幅级、关键字、和可能的持续时间。
现在参考图15,图中表示集成式远程通信处理器150的存储器的示例存储器映射和它们的相互关系。图15表示为全局缓冲器存储器210的示例存储器映射,每一个内核处理器200都对存储器210进行访问。为4个内核处理器200A-200D(内核0到内核3)的每一个的程序存储器204和数据存储器202也在图15中示出,它们彼此堆叠在一起。在图15中扩展了为内核处理器200C(内核2)的程序存储器204C和数据存储器202C以表示示例存储器映射。图15还表示出为其中一个内核处理器,即内核处理器200C(内核2)的文件寄存器413。
集成式远程通信处理器150的存储器提供每一通信信道如何处理的灵活性。当处理一个不同的任务时固件和数据可以向内核处理器200交换入和交换出。每一任务可以由信道、由帧、由数据块或通过对固件的改变的其它方法改变。在一个实施例中,为一个给定的帧和一个给定的信道说明每一任务。通过以固件提供功能和交换代码进出内核处理器200的程序存储器,可以容易地修改和升级集成式远徎通信处理器150的功能。
图15还表示在全局缓冲器存储器210、为内核处理器200的数据存储器202、和在每一内核处理器200的信号处理单元300中的寄存器文件413之间的相互关系。多信道存储器移动引擎208灵活地和有效地管理存储器映射,以便从为可数目的信道的每一个算法信号处理器300中抽取最大效率。也就是说,集成式远程通信处理器150可以支持可变数目的通信信道,它们可以通过增加另外的内核处理器来增加,因为信号处理算法和数据存储在存储器中而可以容易地交换进出许多内核处理器。此外,存储器运动引擎208可以顺序通过不同的信号处理算法,为每一信道提供不同的模块功能。
所有算法数据和代码段都完全可以在存储它们的任何存储器空间内重新分配。这允许对每一帧数据的处理完全独立于为同一信道的任何其它帧数据的处理。事实上,任何数据帧可以在任何可用的信号处理器300上处理。这允许在所有时间都能最大使用处理器资源。
帧处理可以划分为相应于算法特定的功能块的几条,所述功能块例如为在图11-14所示集成式远程通信处理器的那些。与每一这些功能块关联的“固定的”(不改变)代码和数据段可以独立地分配在存储器空间中,这些存储器空间不是固定的并且只需要保存这些段的一个副本,而不管要支持的信道的数目。这一数据可以在它们使用前的任何时间下载和/或升级。例如可以使用一个指针的表来指定这些块的每一个当前驻留在存储器空间中的什么地方。另外,由可以修改的算法所需要的动态数据空间可以在运行时间中分配和当不再需要时收回。
当为一个特定信道的帧准备好接受处理时,只需要参考为该帧的特定处理所需要的功能块的代码和数据。指定需要这些功能块的哪一个的“脚本”可以实时以一帧一帧的基础上构造。另外的方案是,例如可以调用和无需地址执行一个预先存在的脚本,它包含功能块参考,例如由标识符标识的。在这一场合,在任何存储器空间中的功能块的位置例如从一个指针表中“查阅”。
另外,如果为一个功能块的代码和/或数据段必须从一个存储器空间传输到另一个存储器空间的话,可以使用DMA,以便减少在这种传输中与处理器干预有关的开销。因为由任何功能块需要的代码和数据块彼此完全独立,因此可以定义并执行DMA传输的“链”以便从一个存储器空间向另一存储器空间传输多个块而无需处理器干预。这些“链”可以在需要时根据为一个特定信道的当前处理需求使用当前可用的功能块“目录”来建立和更新。通过每当需要使浪费的空间最小时分配段,建立DMA传输说明的DMA模块可以优化目标存储器空间的使用。
在图15中,功能块和信道特定的段在全局缓冲器存储器210的存储器空间中安排,并被调入内核处理器200的数据存储器202和程序存储器204中。在图15的示例表示中,全局缓冲器存储器210包括一个算法处理(AP)目录1500、动态数据块1515、帧数据缓冲器1520、功能块(FB) &脚本头标表1525、信道控制结构1530、DMA描述表1535、和信道执行队列1540。
图16是表示集成式远程通信处理器150的全局缓冲器存储器210的另一个示例存储器映射和在其中包含的块的相互关系的方框图。
参考图15和16,算法处理(AP)目录1500对于可能在集成式远程通信处理器系统中需要的任何算法包括信道独立的、算法特定的常数数据段、代码数据段、和参数数据段,所述算法。这些算法包括为回声消除(EC)的远程通信模块、音调检测和发生(TD)、DTMF检测和发生(DTMF)、G.7xx CODECs、和其它功能模块。代码数据段的例子包括分别为DTMF、TD和EC算法的DTMF代码1501、TD代码1502、和EC代码1503。算法特定的常数数据段的例子包括分别为DTMF、TD和EC算法的DTMF常数1504、TD常数1505、和EC常数1506。参数数据段的例子包括分别为DTMF、TD和EC算法的DTMF参数1507、TD参数1508、和EC参数1509。
算法处理(AP)目录1500还包括用于系统需要的每一类帧处理的一组脚本(每一个包括一个脚本数据,脚本代码,和脚本DMA模板)。同一脚本可以用于多个信道,如果这些信道都需要同样的处理的话。脚本不包含任何信道特定的信息。图15表示脚本1数据1511A、脚本1代码1512A、和脚本1DMA模板1513A到脚本N数据1511N、脚本N代码1512N、和脚本N DMA模板1513N。
AP目录1500中的脚本1块(脚本1数据1511A、脚本1代码1512A、脚本1DMA模板1513A)定义为实现任何信道的数据帧的特定处理所需要的功能块,这些数据帧需要由这一脚本定义的处理和寻址到程序存储器204和数据存储器202,功能块代码将传输到程序存储器204,数据段应该传输到数据存储器202。或者将运行时间由内核存储器管理功能决定数据段应该传输到的程序存储器204和数据存储器202的地址。脚本1块还指定功能块由一个内核处理器200执行的次序。例如脚本1代码1512A可以定义功能块和为实现回声消除和DTMF检测所需要的执行的次序。或者,它可以描述为执行G.7xx编码和解码需要的功能块和执行。还应该注意,脚本1块可以指定“条件”数据传输和执行,诸如依赖于其它功能块产生的结果的数据传输或执行。例如这些条件数据传输可以包括诸如是否检测到呼叫进行音调的围绕功能块的那些。与脚本1块关联的脚本1 DMA模板1513A指定数据应该传入和传出一个内核处理器200的数据存储器和程序存储器的顺序。另外,使用与每一脚本块关联的脚本DMA模板构建在全局存储器缓冲器210中的DMA描述表1535中的一个或者多个信道特定的DMA描述。
全局缓冲器存储器210还包括功能块和脚本头标的表,其称为FB和脚本头标表1525。FB和脚本头标表1525包括为在AP目录1500中包含的每一功能块段和脚本段的大小和全局缓冲器存储器开始地址。例如,参考图16,DTMF头标表包括为DTMF代码1501、DTMF常数1504和DTMF参数1507的大小和开始地址。脚本1头标表包括为脚本1数据1511A、脚本1代码1512A、和脚本1 DMA模板1513A的大小和开始地址。FB和脚本头标表1525本质上指向在AP目录1500中包括其它像EC代码1503、EC常数1506和EC参数1509的这些块。每当加载一个新的AP目录1500或在全局缓冲器存储器210中更新一个现有的AP目录1500时就更新FB和脚本头标表1525的内容。
全局缓冲器存储器还有信道特定的数据段,它包括动态数据块1515和帧数据缓冲器1520。在图15的示例映射中表示的动态数据块1515包括为信道n(CHn)到信道p(CHp)的动态数据块。为每一信道的动态数据块的类型相应于在每一信道中使用的功能模块。例如如图15所示,信道n具有EC动态数据块、TD动态数据块、DTMF动态数据块、和G.7xxx编码译码器动态数据块。在图16中,为信道10需要的动态数据块是ch10-DTMF,ch10-EC和ch10-TD,为信道102需要的是ch102-EC和ch102-G.7xx,和为信道86需要的是Ch86-EC。
帧数据缓冲器1520包括为远端输入数据、远端输出数据、近端输入数据和近端输出数据的每一信道的信道特定的数据段。近端输入数据和近端输出数据是为PSTN网络侧的数据,而远端输入数据和远端输出数据是为包网络侧的数据。注意,可以支持n个信道,使得可以有n组信道特定的动态数据段和n组信道特定的帧缓冲器数据段。在图16中,信道特定的帧数据段包括在帧数据缓冲器1520中的ch10-近端输入数据、ch10-近端输出数据、ch10-远端输入数据、ch10-远端输出数据、ch102-近端输入、ch102-远端输入、ch102-近端输出和ch102-远端输出。信道特定的数据段和信道特定的帧数据段允许集成式远程通信处理器150同时处理具有不同参数的各种的通信信道。
在全局缓冲器存储器210中的一组信道控制结构1530包括为处理为特定信道的数据所需要的所有信息。这一信息包括信道端点(例如TDM数据的源和目的地,包数据的源和目的地)、处理需要的说明(例如用于回声消除,VAD,DTMF,音调检测,编码,解码等)。它还包括定位为处理所需要的数据资源的指针(例如脚本,动态数据块,DMA说明符表,TDM(近端输入和近端输出)缓冲器,和包数据(远端输入和远端输出)缓冲器)。关于该信道的统计也在信道控制结构中维护。这包括诸如被处理的帧的#、信道状态(例如呼叫建立,传真/话音/数据方式,接收到的坏帧等)。在图16中,信道控制结构包括为信道10和信道102的信道控制结构,它们每一个指向各自的动态数据块1515和帧数据缓冲器1520。
在全局缓冲器存储器210中的DMA说明符表1535为处理特定信道的数据,为需要在全局缓冲器存储器210和程序存储器204和数据存储器202之间传输的每一个数据定义源地址、目标地址、和大小。图15表示DMA说明符表1535,它包括Chm DMA说明符表到ChnDMA说明符表。在图16中,DMA说明符表1535包括CH 10-DMA说明符和CH 102-DMA说明符。
全局缓冲器存储器210另外有一个信道执行队列1540。该信道执行队列1540为集成式远程通信处理器150的所有内核处理器200调度和监视处理任务。例如,当为一个特定信道的数据帧准备好被处理时,一个“管理功能”根据在FBH表1525的FB头标中找到的脚本和块地址和/或在脚本块中1530中找到的信道控制结构建立或更新为该信道的DMA说明符表。然后由信道执行队列1540为该处理调度这一任务。DMA说明符表1535包括从全局缓冲器存储器210向将处理该任务的内核处理器200的数据存储器202和程序存储器204传输脚本自身。应该注意,内核地址如此指定,使得它们可以应用于可以处理该任务的内核。可以使用同一DMA说明符表来传输数据到系统中的任何一个内核。以这种方式,处理数据帧所需要的所有信息可以事先构造,而任何然后可用的内核可以执行该处理。
例如考虑图16的对话执行队列1540中安排的任务1。安排日程的任务1指向在为信道10的帧40的DMA说明符表1535中的Ch10-DMA说明符。安排日程的任务n指向DMA说明符表1535中的Ch102-DMA说明符,以处理信道102的帧106。
程序存储器204C和数据存储器202C的上部表示包括脚本代码1550、为DTMF发生和检测的DTMF代码1551、和为回声消除模块的EC代码1552的程序存储器204C的例子。在程序存储器204中存储的代码根据给定通信信道的需要改变。在一个实施例中,在程序存储器204中存储的代码每次在由每一内核处理器200处理一个新的通信信道时交换。在另一个实施例中,只有需要被交换出去的代码每次在由每一内核处理器200处理一个新的通信信道时在程序存储器204中去除或加入。
程序存储器204C和数据存储器202C的下部表示数据存储器202C,它包括脚本数据1560、互作用块数据区域1561、DTMF常数1504、DTMF参数1507、CHn DTMF动态数据1562、EC常数1506、EC参数1509、CHn EC动态数据1563、CHn近端输入帧数据1564、CHn近端输出帧数据1566、CHn远端输入帧数据1568、和CHn远端输出帧数据1570、和为另外的功能或另外的功能远程通信模块的其它信息。在数据存储器202中存储的这些常数、变量、和参数(亦即数据)根据给定通信信道的需要变化。在一个实施例中,在数据存储器202中存储的数据每次在由每一内核处理器200处理一个新的通信信道时交换。在另一个实施例中,只有需要被交换出去的数据每次在由每一内核处理器200处理一个新的通信信道时在数据存储器202中去除或加入。
图15表示为内核处理器200A(内核0)的寄存器文件413。寄存器文件413包括为集成式远程通信处理器150的串行端口206的串行端口地址映射、为集成式远程通信处理器150的主端口214的主端口地址映射、包括DMA指针地址、DMA开始地址、DMA停止地址、DMA挂起地址、DMA恢复地址、DMA状态寄存器的内核处理器200A中断寄存器、和一个软件中断寄存器、和一个信号量地址寄存器。信道执行队列中1540中的任务加载内核处理器的寄存器文件412的DMA指针。
图17是处理数据帧的示例时间线示意图。集成式远程通信处理器处理多信道的多帧。为处理为任何特定信道的数据帧需要的时间在大多数情况下要比接收下一完全的数据帧的时间间隔短的多。图17的时间线示意图表示为一个给定信道的两帧数据,帧X和帧X+1,每一个需要大约12个时间单位接收。帧处理时间通常较短,在图17中作为例子表示为处理帧X和帧X+1每一个需要两个单元。对于同一信道,可以期望为每一帧的处理时间相似。注意,在完成处理帧X和开始处理帧X+1之间大约有10个单元的延迟时间。这对处理器资源来说是低效率使用,在接收到帧等待新数据帧接收以便开始处理之间的延迟时间期间空闲。
为避免这种低效率,集成式远程通信处理器150处理其它信道的任务和它们各自的数据帧而不是在一个给定信道的帧之间空闲。集成式远程通信处理器150处理信道和帧完全独立的任务而不是处理一个或者多个专用的信道和它们各自的帧。对于任何给定的信道的每一数据帧可以在任何可用的内核处理器200上处理。
现在参考图18,图中表示集成式远程通信处理器150的一个或者多个内核处理器200A-200N如何为多通信信道处理数据帧的任务的示例时间线示意图。图18中的箭头1801A-1801E表示为内核处理器1200A的任务和空闲时间。箭头1802A-1802D表示为内核处理器2 200B的任务和空闲时间。箭头1803A-1803E表示为内核处理器N 200N的任务和空闲时间。箭头1801D和1803C分别表示为内核处理器1和内核处理器N的空闲时间。为一个内核处理器的空闲时间仅当为在任何当前活动的信道上无数据可用于处理时发生。箭头上面的Ch###术语指由一个给定的内核处理器200在该时间期间处理的任务的信道标识符。箭头上面的Fr###术语指为由一个给定的内核处理器200在该时间期间处理的任务的各信道的帧标识符。
包括任务说明的任务存储在全局缓冲器存储器210的信道执行队列1540中。在本发明的一个实施例中,所有信道特定的信息存储在信道控制结构中,为处理这一任务需要的所有信息包含在(信道独立的)脚本代码和脚本数据、和在安排执行该任务前构造的(信道独立的)DMA说明符表中。因此,在信道执行队列中存储的任务说明只需要包含对DMA说明符表的一个指针。
内核处理器200A例如处理任务1801A、任务1801B、任务1801C,在空闲的1801D期间等待,和处理任务1801E。箭头或任务1801A是由内核处理器1 200A对信道5的帧10的数据执行的任务。箭头或任务1801B是由内核处理器1 200A对信道40的帧2的数据执行的任务。箭头或任务1801C是由内核处理器1 200A对信道0的帧102的数据执行的任务。箭头或任务1801E是由内核处理器1 200A对信道87的帧11的数据执行的任务。注意,内核处理器1 200A在为箭头或空闲1801D期间的一个短时间期间内空闲和另外使用处理多任务。
这样,图18表示在集成式远程通信处理器150的一个实施例中多远程通信信道的帧的任务处理如何在时间上分配在多个内核处理器200上。
因为以这种方式处理任务,因此由集成式远程通信处理器150可支持的信道数目可以扩展。在集成式远程通信处理器150中可用的内核处理器的数目越大,则能支持的信道数越多。每一内核处理器200的处理能力(速度)越大,则可以支持的信道数目越大。在每一内核处理器200内的处理能力例如可以通过更快的硬件(例如使用更窄沟道长度的更快的晶体管)或改进的软件算法增加。
具有本技术领域一般技能的人会看出本发明有许多优点。本发明的一个优点是电话处理集成到一个处理器中。本发明的另一个优点是在时分复用(TDM)电话网络和分包网络之间提供改进的电话通信信道。本发明的另一个优点是所有通信模块连接到一起作为一个单元,和因此可以利用在不同模块中间的相互关系。其结果,本发明允许通过提供所有电话功能、压缩、解压缩聚集大量的TDM信道和作为单独的包信道在包网络上收发。本发明的控制机构可以处理不同TDM信道的数据输入和输出和为在硬件中的基于信道的信号处理高效率地将它们排序。
这样说明了本发明的优选实施例。虽然本发明以特定的实施例说明,但是它可以以硬件、软件、固件或它们的组合实现,并可以使用在系统、子系统、部件或它们的子部件中。当以软件实现时,本发明的元件基本上是执行必需的任务的代码段。程序或代码段可以存储在处理器可读介质中或可在传输介质或通信链路上以在载波中体现的计算机数据信号传输。“处理器可读介质”可以包括任何可以存储或传输信息的介质。处理器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦写ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路等。计算机数据信号可以包括任何可以在传输介质上传播的信号,所述传输介质诸如电子网络信道、光纤、空气、电磁、RF链路等。代码段可以通过计算机网络诸如因特网、内部网等下载。在任何场合,本发明不应该视为由这种实施例限制,而应该根据权利要求解释。

Claims (24)

1.一种装置,包括:
一个音调检测处理器,它包括至少一个包含至少4个信号处理单元的内核处理器,用以执行音调检测;及
一个存储设备,用以存储信号处理指令,这些指令由所述至少4个信号处理单元执行,以提供:
用以执行自动增益控制(AGC)以便归一化音调或话音信号的功率的装置;
使用Goertzel滤波器处理来决定在特定频率下的音调或话音信号的能量的装置,所述Goertzel滤波器处理实现多个Goertzel滤波器;
用于决定音调是否存在的装置;及
用于决定如果存在一个音调以及是什么类型的音调的装置;
其中该至少4个信号处理单元并行工作以同时执行至少4个Goertzel滤波器,并且其中该至少4个Goertzel滤波器处理固定大小的音调或话音信号的数据帧。
2.根据权利要求1的装置,其中,决定什么类型的音调包括决定音调是否是拨号音、忙音、快忙音、振铃音或传真音之一。
3.根据权利要求1的装置,其中,Goertzel滤波器计算在16个特定频率下的音调或话音信号的能级。
4.根据权利要求1的装置,其中,进一步用于由至少4个信号处理单元执行的信号处理指令使用Goertzel滤波器进一步分别决定音调或话音信号的两个最大的能级和它们相关的频率。
5.根据权利要求4的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令根据音调信号的两个最大的能级和该音调信号相关的频率,进一步区分该音调是单音调、双音调、静音、或另外类型的音调。
6.根据权利要求5的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令在如果判定音调是单音调或双音调时,通过识别在一个用户定义的音调字典中的音调进一步决定该音调。
7.根据权利要求6的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令进一步更新状态为TONE ON。
8.根据权利要求6的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令进一步决定下一音调是否和在用户定义的字典中识别的音调相同,如果是,TONE ON计数器加一。
9.根据权利要求8的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令在下一音调不和在用户定义的字典中识别的音调相同时,进一步判断是否定义一个OFF节奏值;并且如果是,设定状态为TONE ON/OFF。
10.根据权利要求8的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令在下一音调不和在用户定义的字典中识别的音调相同时,进一步判断是否定义一个OFF节奏值;且
如果不是,判断在用户定义的字典中识别的音调是否满足ON节奏值;且
如果是,断言该音调。
11.根据权利要求9的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令在如果后继的音调或话音信号包括静音时,进一步使TONE OFF计数器加一。
12.根据权利要求9的装置,其中,进一步由至少4个信号处理单元执行的信号处理指令在如果后继的音调或话音信号不包括静音时,进一步决定在字典中识别的音调是否满足一个ON节奏值和一个OFF节奏值;并且
如果是,则断言一个音调。
13.一种方法,包括:
执行自动增益控制(AGC)以归一化音调或话音信号的功率;
使用Goertzel滤波器处理决定在特定频率下的音调或话音信号的能量,所述Goertzel滤波器处理实现多个Goertzel滤波器,其中包括至少4个信号处理单元的内核处理器同时执行Goertzel滤波器;
决定音调是否存在;且
如果音调存在,决定是什么类型的音调;
其中该至少4个信号处理单元并行工作以同时执行至少4个Goertzel滤波器,并且其中该至少4个Goertzel滤波器处理固定大小的音调或话音信号的数据帧。
14.根据权利要求13的方法,其中,决定什么类型音调包括决定音调是否是拨号音、忙音、快忙音、振铃音或传真音之一。
15.根据权利要求13的方法,其中,Goertzel滤波器计算在16个特定频率下的音调或话音信号的能级。
16.根据权利要求13的方法,进一步包括,使用Goertzel滤波器分别决定音调或话音信号的两个最大的能级和它们相关的频率。
17.根据权利要求16的方法,其中,根据音调信号的两个最大的能级和该音调信号相关的频率,进一步包括,区分该音调是单音调、双音调、静音、或另外类型的音调。
18.根据权利要求17的方法,其中,如果判定音调是单音调或双音调的话,进一步包括,通过识别在一个用户定义的音调字典中的音调决定该音调。
19.根据权利要求17的方法,进一步包括,更新状态为TONEON。
20.根据权利要求17的方法,进一步包括,决定下一音调是否和在用户定义的字典中识别的音调相同,如果是,则TONE ON计数器加一。
21.根据权利要求20的方法,进一步包括,当下一音调不和在用户定义的字典中识别的音调相同时,
判断是否定义一个OFF节奏值;并且
如果是,设定状态为TONE ON/OFF。
22.根据权利要求20的方法,进一步包括,当下一音调不和在用户定义的字典中识别的音调相同时,
判断是否定义一个OFF节奏值;以及
如果不是,判断在用户定义的字典中识别的音调是否满足ON节奏值;以及
如果是,断言该音调。
23.根据权利要求21的方法,进一步包括,如果后继的音调或话音信号包括静音的话则TONE OFF计数器加一。
24.根据权利要求21的方法,进一步包括,如果后继的音调或话音信号不包括静音的话则
决定在字典中识别的音调是否满足一个ON节奏值和一个OFF节奏值;以及
如果是,则断言一个音调。
CNB018185797A 2000-09-08 2001-09-05 用于集成式远程通信处理的音调检测 Expired - Fee Related CN1244240C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US23109000P 2000-09-08 2000-09-08
US60/231,090 2000-09-08
US09/938,699 US7003093B2 (en) 2000-09-08 2001-08-23 Tone detection for integrated telecommunications processing
US09/938,699 2001-08-23

Publications (2)

Publication Number Publication Date
CN1473442A CN1473442A (zh) 2004-02-04
CN1244240C true CN1244240C (zh) 2006-03-01

Family

ID=26924812

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018185797A Expired - Fee Related CN1244240C (zh) 2000-09-08 2001-09-05 用于集成式远程通信处理的音调检测

Country Status (9)

Country Link
US (1) US7003093B2 (zh)
EP (1) EP1317858B1 (zh)
CN (1) CN1244240C (zh)
AT (1) ATE362277T1 (zh)
AU (1) AU2001290621A1 (zh)
CA (1) CA2422203C (zh)
DE (1) DE60128373D1 (zh)
HK (1) HK1053935A1 (zh)
WO (1) WO2002021855A2 (zh)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765931B1 (en) * 1999-04-13 2004-07-20 Broadcom Corporation Gateway with voice
GB2350532B (en) * 1999-05-28 2001-08-08 Mitel Corp Method to generate telephone comfort noise during silence in a packetized voice communication system
AU2094201A (en) * 1999-12-13 2001-06-18 Broadcom Corporation Voice gateway with downstream voice synchronization
US7035293B2 (en) * 2001-04-18 2006-04-25 Broadcom Corporation Tone relay
US20040190499A1 (en) * 2001-05-01 2004-09-30 Mindspeed Technologies, Inc. Method and system for configuring gateways to facilitate a modem connection over a packet network
US6763486B2 (en) * 2001-05-09 2004-07-13 Agilent Technologies, Inc. Method and apparatus of boundary scan testing for AC-coupled differential data paths
FR2831010B1 (fr) * 2001-10-12 2005-04-01 Cit Alcatel Noeud de relayage de signaux de telecommunication
ATE445354T1 (de) * 2001-12-10 2009-10-15 Medic4All Ag Visuelles medizinisches überwachungssystem für eine entfernte person
US7035394B2 (en) * 2001-12-17 2006-04-25 Ricoh Company, Ltd. Tone detector judging a detection of a predetermined tone signal by comparing a characteristic quantity of the tone signal with characteristic quantities of other signals
US20030123574A1 (en) * 2001-12-31 2003-07-03 Simeon Richard Corpuz System and method for robust tone detection
US7043006B1 (en) * 2002-02-13 2006-05-09 Aastra Intecom Inc. Distributed call progress tone detection system and method of operation thereof
AU2002239053A1 (en) * 2002-03-25 2003-10-08 Allied-Telesis, K.K. Facsimile-communicable voip terminal and communication method thereof
US8023502B2 (en) 2002-08-14 2011-09-20 At&T Intellectual Property I, L.P. Load testing for IP PBX systems
US20040179555A1 (en) * 2003-03-11 2004-09-16 Cisco Technology, Inc. System and method for compressing data in a communications environment
US6950511B2 (en) * 2003-11-13 2005-09-27 Avaya Technology Corp. Detection of both voice and tones using Goertzel filters
US7733793B1 (en) * 2003-12-10 2010-06-08 Cisco Technology, Inc. System and method for suppressing silence data in a network environment
KR100546780B1 (ko) * 2003-12-26 2006-01-25 한국전자통신연구원 다수의 DSP를 사용하는 VoP(Voice OverPacket)시스템 및 그 시스템에서의 음성 처리 방법
US7743164B2 (en) * 2004-02-13 2010-06-22 Alcatel-Lucent Usa Inc. Method and apparatus for transmitting frequency shift key data in a packetized format
US7844048B2 (en) * 2004-03-08 2010-11-30 Freescale Semiconductor, Inc. Selective tone event detector and method therefor
WO2005124722A2 (en) * 2004-06-12 2005-12-29 Spl Development, Inc. Aural rehabilitation system and method
US20060093997A1 (en) * 2004-06-12 2006-05-04 Neurotone, Inc. Aural rehabilitation system and a method of using the same
US7917356B2 (en) 2004-09-16 2011-03-29 At&T Corporation Operating method for voice activity detection/silence suppression system
GB2430832B (en) * 2005-09-30 2007-06-06 Trinity Convergence Inc Systems and methods for dual-tone multiple frequency symbol detection
US7804954B2 (en) * 2005-11-17 2010-09-28 Microsoft Corporation Infrastructure for enabling high quality real-time audio
US20070115949A1 (en) * 2005-11-17 2007-05-24 Microsoft Corporation Infrastructure for enabling high quality real-time audio
US8483384B2 (en) * 2006-03-06 2013-07-09 Freescale Semiconductor, Inc. Enhanced tone detector including adaptive multi-bandpass filter for tone detection and enhancement
JP4847270B2 (ja) * 2006-10-12 2011-12-28 キヤノン株式会社 ファクシミリ装置及びその制御方法、プログラム、記憶媒体
US8050397B1 (en) * 2006-12-22 2011-11-01 Cisco Technology, Inc. Multi-tone signal discriminator
US8223901B2 (en) * 2007-05-25 2012-07-17 Nokia Corporation Interference in communication devices
CN101110217B (zh) * 2007-07-25 2010-10-13 北京中星微电子有限公司 一种音频信号的自动增益控制方法及装置
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
WO2009141683A1 (en) * 2008-05-19 2009-11-26 Freescale Semiconductor, Inc. Method and apparatus for detecting a set up signal used for data communication over a communication network
US8804700B2 (en) 2008-07-16 2014-08-12 Freescale Semiconductor, Inc. Method and apparatus for detecting one or more predetermined tones transmitted over a communication network
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US8761916B2 (en) * 2009-05-28 2014-06-24 Lsi Corporation High-performance tone detection using a digital signal processor (DSP) having multiple arithmetic logic units (ALUs)
US9773431B2 (en) * 2009-11-10 2017-09-26 Maxim Integrated Products, Inc. Block encryption security for integrated microcontroller and external memory system
WO2011069293A1 (zh) * 2009-12-10 2011-06-16 华为技术有限公司 语音编、解码方法、装置和系统
JP5424936B2 (ja) * 2010-02-24 2014-02-26 パナソニック株式会社 通信端末及び通信方法
US8797518B2 (en) 2010-10-07 2014-08-05 At&T Intellectual Property I, L.P. Identifiable visible light sources for fiber optic cables
JP5605158B2 (ja) * 2010-10-19 2014-10-15 アイコム株式会社 Ctcss用のトーン信号回路およびそれを用いる無線受信機
JP5778978B2 (ja) * 2011-05-11 2015-09-16 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
US8958571B2 (en) 2011-06-03 2015-02-17 Cirrus Logic, Inc. MIC covering detection in personal audio devices
US9824677B2 (en) 2011-06-03 2017-11-21 Cirrus Logic, Inc. Bandlimiting anti-noise in personal audio devices having adaptive noise cancellation (ANC)
US8750494B2 (en) * 2011-08-17 2014-06-10 Alcatel Lucent Clock skew compensation for acoustic echo cancellers using inaudible tones
US9123321B2 (en) * 2012-05-10 2015-09-01 Cirrus Logic, Inc. Sequenced adaptation of anti-noise generator response and secondary path response in an adaptive noise canceling system
US9532139B1 (en) 2012-09-14 2016-12-27 Cirrus Logic, Inc. Dual-microphone frequency amplitude response self-calibration
CN103050119B (zh) * 2012-12-30 2015-06-17 安徽科大讯飞信息科技股份有限公司 一种灯光或电机与声音同步的自适应检测方法
CN104019885A (zh) 2013-02-28 2014-09-03 杜比实验室特许公司 声场分析系统
US9414150B2 (en) 2013-03-14 2016-08-09 Cirrus Logic, Inc. Low-latency multi-driver adaptive noise canceling (ANC) system for a personal audio device
EP2974253B1 (en) 2013-03-15 2019-05-08 Dolby Laboratories Licensing Corporation Normalization of soundfield orientations based on auditory scene analysis
DE102014207417A1 (de) * 2014-04-17 2015-10-22 Robert Bosch Gmbh Schnittstelleneinheit
US9704507B2 (en) * 2014-10-31 2017-07-11 Ensequence, Inc. Methods and systems for decreasing latency of content recognition
US10523823B2 (en) * 2015-06-18 2019-12-31 Intel Corporation Dual-tone multi-frequency digit detection in a wireless communication system
JP6964581B2 (ja) 2015-08-20 2021-11-10 シーラス ロジック インターナショナル セミコンダクター リミテッド 固定応答フィルタによって部分的に提供されるフィードバック応答を有するフィードバック適応雑音消去(anc)コントローラおよび方法
US9503568B1 (en) * 2016-06-30 2016-11-22 Captioncall, Llc Detecting dial tone on a telephone line
US10692515B2 (en) * 2018-04-17 2020-06-23 Fortemedia, Inc. Devices for acoustic echo cancellation and methods thereof

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4570260A (en) * 1983-12-02 1986-02-11 Stromberg-Carlson Corporation Digital tone signal generator for telephony system
JPS60121856A (ja) 1983-12-06 1985-06-29 Nec Corp 単一周波数信号検出回路
US5142677A (en) 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods
US4969118A (en) 1989-01-13 1990-11-06 International Business Machines Corporation Floating point unit for calculating A=XY+Z having simultaneous multiply and add
JPH0748681B2 (ja) 1989-02-23 1995-05-24 日本電気株式会社 エコー消去器の係数制御方法
US5325425A (en) 1990-04-24 1994-06-28 The Telephone Connection Method for monitoring telephone call progress
US5448624A (en) * 1990-08-22 1995-09-05 Mci Communications Corporation Telephone network performance monitoring method and system
US5341374A (en) 1991-03-01 1994-08-23 Trilan Systems Corporation Communication network integrating voice data and video with distributed call processing
US5241492A (en) 1991-05-06 1993-08-31 Motorola, Inc. Apparatus for performing multiply and accumulate instructions with reduced power and a method therefor
SE9202065L (sv) 1992-07-03 1994-01-04 Ericsson Telefon Ab L M Sätt att förbättra mottagarens känslighet och talimmuniteten vid DTMF-mottagning
JPH06150023A (ja) 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータ及びマイクロコンピュータシステム
US5452289A (en) 1993-01-08 1995-09-19 Multi-Tech Systems, Inc. Computer-based multifunction personal communications system
US6154828A (en) 1993-06-03 2000-11-28 Compaq Computer Corporation Method and apparatus for employing a cycle bit parallel executing instructions
JP3532975B2 (ja) 1993-09-27 2004-05-31 株式会社ルネサステクノロジ マイクロコンピュータおよびそれを用いて命令を実行する方法
CA2116043C (en) * 1994-02-21 1997-09-23 Alexander F. Tulai Programmable digital call progress tone detector
US5574927A (en) 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US5499272A (en) 1994-05-31 1996-03-12 Ericsson Ge Mobile Communications Inc. Diversity receiver for signals with multipath time dispersion
US5541917A (en) 1994-09-12 1996-07-30 Bell Atlantic Video and TELCO network control functionality
US5604771A (en) * 1994-10-04 1997-02-18 Quiros; Robert System and method for transmitting sound and computer data
JP3579843B2 (ja) 1994-10-24 2004-10-20 日本テキサス・インスツルメンツ株式会社 ディジタル信号処理装置
US5530663A (en) 1994-11-14 1996-06-25 International Business Machines Corporation Floating point unit for calculating a compound instruction A+B×C in two cycles
EP0796467B1 (en) 1994-12-08 2003-03-19 Intel Corporation A method and an apparatus for enabling a processor to access an external component through a private bus or a shared bus
JP3094832B2 (ja) 1995-03-24 2000-10-03 三菱電機株式会社 信号識別器
US5727194A (en) 1995-06-07 1998-03-10 Hitachi America, Ltd. Repeat-bit based, compact system and method for implementing zero-overhead loops
FI110826B (fi) 1995-06-08 2003-03-31 Nokia Corp Akustisen kaiun poisto digitaalisessa matkaviestinjärjestelmässä
JP2931890B2 (ja) 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
US5598466A (en) 1995-08-28 1997-01-28 Intel Corporation Voice activity detector for half-duplex audio communication system
US6058408A (en) 1995-09-05 2000-05-02 Intel Corporation Method and apparatus for multiplying and accumulating complex numbers in a digital filter
US5983253A (en) 1995-09-05 1999-11-09 Intel Corporation Computer system for performing complex digital filters
JP3767930B2 (ja) 1995-11-13 2006-04-19 沖電気工業株式会社 情報の記録・再生方法および情報記憶装置
US5826072A (en) 1995-11-13 1998-10-20 Oasis Design, Inc. Pipelined digital signal processor and signal processing system employing same
US5881060A (en) 1996-05-30 1999-03-09 Northern Telecom Limited Integrated cellular voice and digital packet data telecommunications systems and methods for their operation
JP3658072B2 (ja) 1996-02-07 2005-06-08 株式会社ルネサステクノロジ データ処理装置およびデータ処理方法
US5940785A (en) 1996-04-29 1999-08-17 International Business Machines Corporation Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit
US6023470A (en) * 1996-05-17 2000-02-08 Lee; Warren S. Point of presence (POP) for digital facsimile network with virtual POPs used to communicate with other networks
US5809133A (en) * 1996-05-24 1998-09-15 Advanced Micro Devices, Inc. DTMF detector system and method which performs frequency domain energy calculations with improved performance
DE19625569A1 (de) 1996-06-26 1998-01-02 Philips Patentverwaltung Signalprozessor
WO1998006030A1 (en) 1996-08-07 1998-02-12 Sun Microsystems Multifunctional execution unit
DE19639703C2 (de) 1996-09-26 1999-05-20 Siemens Ag Verfahren und Anordnung zur Echokompensation
KR100201776B1 (ko) 1996-11-06 1999-06-15 김영환 고리 구조를 갖는 적응 등화기
US5880984A (en) 1997-01-13 1999-03-09 International Business Machines Corporation Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments
US6212374B1 (en) * 1997-06-23 2001-04-03 Paradyne Corporation Disabling of echo cancelers after call startup
US6029267A (en) 1997-11-25 2000-02-22 Lucent Technologies Inc. Single-cycle, soft decision, compare-select operation using dual-add processor
AU6425798A (en) 1997-11-27 1999-06-16 Northern Telecom Limited Method and apparatus for detecting tones
US6172985B1 (en) * 1998-01-28 2001-01-09 Gateway 2000, Inc. Automatic detection of pots line
US5995122A (en) 1998-04-30 1999-11-30 Intel Corporation Method and apparatus for parallel conversion of color values from a single precision floating point format to an integer format
US6188981B1 (en) 1998-09-18 2001-02-13 Conexant Systems, Inc. Method and apparatus for detecting voice activity in a speech signal
US6381330B1 (en) * 1998-12-22 2002-04-30 Agere Systems Guardian Corp. False tone detect suppression using multiple frame sweeping harmonic analysis
US6330660B1 (en) 1999-10-25 2001-12-11 Vxtel, Inc. Method and apparatus for saturated multiplication and accumulation in an application specific signal processor

Also Published As

Publication number Publication date
ATE362277T1 (de) 2007-06-15
AU2001290621A1 (en) 2002-03-22
CN1473442A (zh) 2004-02-04
EP1317858A2 (en) 2003-06-11
US20020076034A1 (en) 2002-06-20
WO2002021855A3 (en) 2003-01-16
EP1317858B1 (en) 2007-05-09
HK1053935A1 (en) 2003-11-07
CA2422203C (en) 2007-01-16
DE60128373D1 (de) 2007-06-21
CA2422203A1 (en) 2002-03-14
WO2002021855A2 (en) 2002-03-14
US7003093B2 (en) 2006-02-21

Similar Documents

Publication Publication Date Title
CN1244240C (zh) 用于集成式远程通信处理的音调检测
CN1473321A (zh) 用于综合电信处理的话音激活检测器
US6738358B2 (en) Network echo canceller for integrated telecommunications processing
CN1287276C (zh) 用于环缓冲数字信号处理指令的方法和装置
CN1246771C (zh) 用于具有二元数字信号处理指令的指令集结构的方法和装置
US7272224B1 (en) Echo cancellation
CN1317636C (zh) 终端装置
CN1716381A (zh) 用循环正则化作多通道回声的消除
JPH09238200A (ja) コンピュータ利用多重パーソナル通信装置
CN1539137A (zh) 产生有色舒适噪声的方法和系统
CN1016553B (zh) 用于无线数字用户通信系统的用户单元
CN1114122A (zh) 用于回声抑制器的话音作用检测器和回声抑制器
CN1136374A (zh) 发送接收装置
CN1223991C (zh) 声频信号处理设备及方法
CN1292617A (zh) 回声抵消方法和装置
CN1251063C (zh) 使指令集结构同时执行原始和阴影数字信号处理子指令的方法和设备
WO2002021780A1 (en) Integrated telecommunications processor for packet networks
US6785522B2 (en) Method for changing timbre during conversation in cellular phone
CN101621311A (zh) 使用噪声发生器和平均功率检测的回声消除平衡
JP2814913B2 (ja) 携帯無線電話用モデムカード
KR100664117B1 (ko) 이동통신단말기의 백색잡음 감소장치 및 방법
KR0128845B1 (ko) 고도지능망용 정보제공시스템(ip)을 위한 음성처리장치 및 방법
KR20000057739A (ko) 서브대역 에코 소거기 및 그 방법
CN1426217A (zh) 一种电话控制方法及系统
Andreyev et al. DSP UNITS FOR IP-TELEPHONY SYSTEMS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060301

Termination date: 20100905