蜂窝手持机等无线设备或移动台发送和接收语音
波形。此类手持 机内部的基带
信号处理一般分为两个主要部分,声码器和
调制解调器。 声码器的功能是对语音波形执行源编码和解码。源编码从波形中去除 冗余并减小带宽(或等效地,减小比特率),以实时地发送波形。调制 解调器典型地包括信道
编码器/
解码器和信道
调制器/解调器。信道编 码器的功能是增加发送信号中的冗余,以增强发送信号的鲁棒性。信 道调制器/解调器将数据流转换为适合在带限射频(RF)信道中传输 的格式。
存在多种不同的无线协议。一种常用协议称作全球移动通信系统 (GSM)。在GSM系统中,声码器对持续时间为20毫秒(ms)的语 音数据
块进行操作。调制解调器每4.615ms发送和接收数据。因为语 音编码器(即声码器)用作信道编码器/调制器(即,调制解调器)的 数据源,语音解码器(即声码器)用作信道解调器/解码器(即,调制 解调器)的数据宿,所以声码器和调制解调器应该保持同步。
此外,语音编码器应该以足够的余裕向信道编码器传送数据,以 在无线发送该数据之前完成信道编码和调制操作。使这一问题更加复 杂的是整个通信链路的往返行程(round-trip)延迟的限制。因此,声 码器不能过早传送数据,以免违反延迟预算(例如欧洲电信标准协会 (ETSI))提出的),也不能过晚传送数据,以免数据被丢弃。实际上, 声码器向信道编码器传送数据越晚,
数字信号处理器(DSP)必须越 辛苦地工作以按时完成所有
信号处理,从而造成更重的系统负荷。
该同步问题的适当比拟是经由火车运输
水果。考虑刚刚采摘的苹 果。如果过早将苹果运到火车站,苹果可能在火车达到之前腐烂。相 反,如果过晚将苹果运到火车站,火车可能在苹果运到车站之前已离 站了。因此,苹果的运输应该与火车的时刻表保持同步,正如声码器 和调制解调器应该保持同步一样。
如果调制解调器
和声码器失去同步,后果可能非常严重,包括但 不限于:DSP峰值负荷可能超过100%,导致其他基于DSP的功能失 灵(或者甚至系统崩溃);语音
缓冲器可能在数据被处理好并可以发送 之前就已回绕,造成‘类似金属’
质量的语音失真;或者可能超过ETSI 定义的延迟预算。
手持机的移动性进一步加剧了同步问题,这可能造成接收
频率发 生多普勒频移。如果手持机处于车辆中或处于其他具有相对服务小区 的运动径向分量的交通工具中,则从基站接收的频率会上移或下移。 手持机通过调整其内部晶体使所感测的偏移为零,以补偿多普勒频移。 从调制解调器
角度来看,系统定时会过快或过慢并且无校正,手持机 对于每个相继数据
帧的发送会早一点或晚一点。但是,调制解调器通 过
跟踪从基站接收的每个突发的中心点来补偿时间偏移,并手动地强 制时间对准,以匹配所接收突发的
位置。这样,即使存在显著的多普 勒频移,调制解调器也可以保持按时。
另一方面,声码器没有对其操作进行步幅调整(pace)以补偿晶 体频率中的误差的固有机制。因此,声码器对至调制解调器和来自调 制解调器的语音流进行操作,该调制解调器运行地稍微过快或过慢。 误差在时间上累积,最终调制解调器和声码器会失去同步。
因此,用于保持调制解调器与声码器之间的同步的方法和设备将 改善移动台的性能。
参照图1,示出了根据本发明实施例的无线设备中用于音频数据 信号处理的传输链的框图。该传输链可以采取例如蜂窝手持机或其他 移动台内的多个组件的形式。如图1所示,
专用集成电路(ASIC)100 可以包括基带和射频(RF)电路。基带电路可以包括数字信号处理器 (DSP)110。DSP 110可以根据滤波、编码等多种
算法,处理输入和 输出的音频采样。
虽然图1实施例中示出了包括多个具体组件,但是要理解,DSP 110可以包括其他组件,类似地,图1所示的DSP 110的一些部分可 以设置在DSP 110外部。也可以理解,DSP 110可以实现为一个或更 多个处理单元,以在软件控制下执行图1所示的各种功能。即,DSP 110 内所示的不同组件的功能可以由DSP的共用硬件根据一个或更多个 软件例程来执行。如图1中还示出的,ASIC 100可以包括微
控制器单 元(MCU)165。MCU 165可以适于执行控制应用并处理ASIC 100 的其他功能。
DSP 110可以适于对音频数据执行多种信号处理功能。在上行链 路方向上,DSP 110可以接收来自例如手持机的麦克
风105的输入语 音信息,并处理语音信息,以进行从该手持机的上行链路发送。可以 使用由
模数转换器(ADC)118和
数模转换器(DAC)122形成的编 解码器120将该输入音频数据从模拟信号转换为数字格式。在一些实 施例中,可以按照每秒8,000个采样(kS/s),对模拟语音信息进行采 样。数字化采样数据可以存储在临时存储介质中,例如缓冲器125中。 在一些实施例中,上行链路和下行链路方向上均可以存在一个或更多 个该缓冲器。虽然图1中示出缓冲器是DSP 110的一部分,但是要理 解,缓冲器可以位于ASIC 110的其他部分中,甚至在芯片外部,只要 DSP 110可以
访问缓冲器。
存储器的类型在不同实施例中可以是不同 的,在一些实施例中,缓冲器125可以是先进先出(FIFO)缓冲器或 环形缓冲器。除了存储器之外,缓冲器125可以包括多种控制寄存器, 包括对下一次访问的当前存储位置进行指示的一个或更多个
指针。例 如,每个缓冲器可以包括指向要写入的下一存储位置的写指针、以及 指向要读出的下一存储位置的读指针。
音频采样可以收集并存储在缓冲器125中,直到存储完整的数据 帧为止。数据帧的大小可以改变,但在用于时分多址(TDMA)系统 的实施例中,数据帧(也称作“语音帧”)可以对应于20ms的实时语 音(例如,对应于160个语音采样)。在多种实施例中,输入缓冲器可 以保持来自ADC 118的20ms或更多的语音数据。在一个具体实施例 中,可以使用至少存储30ms的缓冲器,但是本发明范围不限于此。 如下进一步描述的,输出缓冲器125b可以保持将传送至DAC 122的 20ms或更多的语音数据,在具体实施例中可以使用至少存储30ms的 缓冲器。
可以将缓冲数据采样提供给设备
驱动器130a,以进行处理。在一 些实施例中,存储缓冲器可以位于设备驱动器内。从设备驱动器130a 向前端处理器135a提供数据,以进行进一步处理,例如均衡化、音量 控制、衰减、回音抑制、回音消除、噪声抑制、自动增益控制(AGC) 等。从前端处理器135a向声码器140提供数据,以进行编码和压缩。 如图1所示,声码器140可以包括上行链路方向上的语音编码器142a 和下行链路方向上的语音解码器142b。然后,声码器140经由信道解 码器145a向用于调制的调制解调器150传递数据。然后将调制后的数 据提供给RF电路160,RF电路160可以是包括接收和发送功能的收 发机,以从调制解调器150获取调制后的基带信号并将其转换到所需 的RF频率(反之亦然)。从此处,经由天线170从手持机发送包括调 制后的数据的RF信号。
在下行链路方向上,输入RF信号可以由天线170接收并提供给 RF电路160,以转换为基带信号。然后,传输链沿反向进行,使得把 调制后的基带信号耦合通过调制解调器150、信道编码器145b、声码 器140、前端处理器135b、设备驱动器130b、缓冲器125b和DAC 122, 以获得耦合至例如手持机的扬声器108的模拟音频数据。
在DSP 100内的语音处理过程中,声码器140和调制解调器150 可能失去同步。如上所述,失去同步可能导致不希望的性能下降。因 此,可以使用本发明的实施例使声码器和调制解调器基本上保持同步。 这里使用的术语“基本上”同步是指声码器和调制解调器可以在避免 不利性能效果的程度上同步。在一些实施例中,这种同步可以对应于 多个音频采样,例如,少于5个采样。例如,手持机相对于基站的运 动可能导致失去同步,引起所接收频率中的多普勒频移,从而引起手 持机的内部振荡频率发生改变。这会引起调制解调器改变其操作速率, 导致失去同步。
在多种实施例中,可以在相对于TDMA帧结构或调制解调器调度 的已知时间点上对用于输入和输出语音数据的缓冲器(即,输入缓冲 器和输出缓冲器)的程度(level)进行分析,以确定声码器与调制解 调器之间的定时。此外,通过分析不同数据序列之间的缓冲器程度的 改变,实施例可以调整定时,以保持声码器与调制解调器之间的同步。
虽然同步可以多种模型为特征,但是代表模型可以确定相对于整 个数据帧结构的定时来说,何时填充(沿上行链路方向)或清空(沿 下行链路方向)给定大小的语音块。为论述的目的,使用实施TDMA 方案的GSM系统。但是要理解,其他协议可以实现这里公开的同步 方法和设备。
GSM业务信道中的基本可重复单元是26个TMDA帧的序列。在 电话呼叫期间,一再复制该帧结构。每个TDMA帧的持续时间是 4.615ms,因此26个TDMA帧的帧序列消耗实时120ms。在不同实施 例中,这个帧序列可以在多个块中处理。例如,可以处理各自为20ms 的语音块或帧。因此,帧序列可以表示6个不同的语音帧(每个帧的 持续时间是20ms)的发送和接收。
指定相对于全帧结构在何时填充这 些语音帧或块中任何一个,这样可以定义上行链路方向上的调制解调 器-声码器定时。类似地,在下行链路端指定何时清空这些语音帧中任 何一个也足以指定下行链路方向上的调制解调器-声码器定时。
考虑上行链路(即,输入)缓冲器的情况。麦克风将声能转换成
电信号,并对得到的模拟信号进行采样(例如,以8kS/s进行采样) 并通过ADC将其转换成数字格式。收集采样并将其存储在DSP可访 问的上行链路缓冲器中,直到完整的数据帧(例如,20ms或160个采 样)驻留其中为止。然后,语音编码器(即,声码器)对该完整语音 帧编码,压缩的语音帧被传递至信道编码器/调制器(即,调制解调器)。 因为收集并传输所有语音数据,所以足以能够在全帧序列(例如, 120ms)内指定输入缓冲器填充(例如,具有160个采样)的单个时 间点。给定一个这种参考点,可以确定完整的缓冲器调度,这是因为 此后每20ms缓冲器就会填充。参考点可以是相对于帧结构的固定时 间点。在一个实施例中,在每个26帧的序列的前沿发生的TDMA帧 中断可以用作参考点。但是,可以使用任何TDMA帧上的任何数量的 其他点,例如接收突发的上升沿、接收突发的下降沿、监控突发的上 升沿或监控突发的下降沿。类似地,可以使用与任何TDMA帧的前沿 有固定时间关系(在前或在后)的任何系统中断(与撞击(impinge on) 天线的接收突发中的
能量相一致)。
可以使用两个参数来控制上行链路和下行链路音频块调度的设 置。因此,这些参数可以控制绝对系统延迟。对于上行链路端,可以 使用输入缓冲器填充(即,该缓冲器已累积了20ms的新声音数据) 时的时间和与全帧结构的第一帧(T2=0)同时发生的帧中断之间的时 间差。对于下行链路端,可以使用输出缓冲器清空(即,下行链路缓 冲器至少具有20ms的自由空间-足以容纳新的语音块)时的时间和与 全帧结构的第一帧(T2=0)同时发生的帧中断之间的时间差。
可以使用等式将上述两个参数与指向缓冲器的指针的初始值进行 关联。即,可以确定写指针(对于上行链路缓冲器)和读指针(对于 下行链路输出缓冲器)的初始值,以根据这些参数来填充输入缓冲器 和清空输出缓冲器。类似地,可以设定FIFO的填充程度,以实现指 定的系统延迟。
设delta(Δ)表示从输入缓冲器填充的时间开始直到全帧序列中 第一TDMA帧开始(即,接收突发的上升沿)时的时间,单位为毫秒。 对于从0到25计数并描述业务信道中的帧的帧计数器(即,T2),开 始点出现在T2=0。注意,指定Δ可以完全确定缓冲器填充调度,在理 解了编解码器中的缓冲操作和声信号路径中ADC/DAC电路中的滤波 延迟的情况下,可以选择Δ以满足所需的定时约束,例如ETSI延迟预 算。在一个实施例中,延迟参数Δ可以是12ms,但是本发明范围不限 于此。给定Δ,可以确定在任何TDMA帧的开始处或在固定参照TDMA 帧定时的任何其他时间点处,输入缓冲器的填充程度应该如何。在移 动台中,TDMA帧的开始与该帧中第一接收突发的上升沿相一致。这 是方便的参考点,但是可以采用与TDMA帧定时具有固定关系的任何 其他参考。对于全帧序列内的给定帧,如下等式给出了输入缓冲器中 期望的采样数量(N):
N=[(Δ+T2·4.6150)·8]%160 (等式1)
其中%表示模数运算。对于Δ=12ms和T2=0,N=96。即,用96 个采样对输入缓冲器进行人为填充(例如,通过添0),以实现12ms 的延迟值。
通过在启动时人为地固定输入缓冲器的深度,以符合等式(1)所 示的期望填充程度,可以实现调制解调器-声码器同步。在一些实施例 中,可以对缓冲器添0,以将预加载的信号采样填充到所需深度。类 似地,可以在任何TDMA帧边界(或任何其他预定参考点)使用等式 (1)来检查输入缓冲器的填充深度,以验证调制解调器和声码器处于 同步。
类似分析适用于下行链路。但是,对于下行链路端,输出缓冲器 清空状况一即,当输出缓冲器至少具有160个空时隙(足以容纳一个 新语音帧的空间)时一可能是要分析的状态。在一些实施例中,参考 点可以定义为在全TDMA帧的开始(例如,T2=0)之前的最末输出 缓冲器清空状况。等式(1)可以用于下行链路部分,但是用于确定缓 冲器中空时隙的数量(即,N)而不是信号采样的数量。当初始化时, 可以设定缓冲器指针,以使输出缓冲器包含160-N个采样。可以用0 预加载这些采样,这是因为在对完整语音帧解码之前不再有数据是可 用的。在一些实施例中,Δ=6ms这一值可能是用于在下行链路方向上 确定N的合理选择,但是本发明范围不限于此。
可以评估读/写指针(如果采用环形缓冲器)相对于其期望值的位 置,以确定声码器相对于调制解调器调度是超前还是滞后。可以预定 间隔来调用该分析。例如,可以在每个帧中断处、或更少频率地执行 该分析。在一个实施例中,可以每个多帧序列执行一次该分析。
除了确定指针位置从而确定缓冲器程度之外,该信息还可以用于 将声码器与调制解调器同步。即,基于缓冲器程度,可以调整声码器, 使其与调制解调器同步。在多种实施例中,声码器不是基于每次测量 而调整的。而是,可以分析一系列测量,以确定是否并如何调整声码 器。具体而言,可以设置对这些瞬时测量提供滞后和平滑的逻辑。特 别地,由于中断等待时间,声码器调度不是基于单次测量而调整的。 而是,差值(即,实际与期望指针值之间)可能超过目标程度(例如 两个声采样),以避免对无害定时delta作出过激反应。在一些实施例 中,该逻辑可以通过单采样(即,添加或丢弃)调整来保持调制解调 器与声码器同步。
对于每个全帧序列,调制解调器与声码器之间的“滑程”(S)从 采样数量方面来说可以计算为Ne-Na,其中Ne是期望数据数量,Na是 缓冲器中的实际数据数量。如果滑程的绝对值大于
阈值(表示为TH), 则系统可以直接进行强制同步,而不是等待一个或更多个附加全帧序 列来执行同步。这种直接或立即同步可以对应于紧急对准,其中通过 调整缓冲器的填充程度来强制调制解调器与声码器同步。在S为正的 情况下,向缓冲器添0,以提高填充程度。如果S为负,则从缓冲器 中丢弃数据,以降低填充程度。但是,这种选择可能产生语音路径中 的可听伪像(对于S为正或负),因此只能在调制解调器与声码器严 重失去同步时才可以使用该选择。
如果滑程小于阈值(TH)但是大于较低程度M,则系统可以采取 如下措施之一:(1)如果对于至少K个连续时间(例如,在K个多帧 上),M<|S|<TH,则系统调整声码器,以将滑程递减或递增一个采样 (取决于声码器相对于调制解调器是过快还是过慢);(2)如果对于少 于K个的连续时间,M<|S|<TH,则系统不进行任何调整。在一些实 施例中,TH、M和K都可以是可调参数。在一个具体实施例中,这 些值可以对应于TH=20,M=2,K=3,但是在本发明范围内也可以采 用其他值。当然,可以实现在差值存在时确定是否调整声码器的其他 方式。
可以采用不同方式来通过单采样调整对声码器进行调整。在一些 实施例中,可以实现如下机制:对语音块进行插值,以添加或丢弃一 个声采样。
现在参照表1,示出了针对上行链路方向上流动的数据采样而调 整声码器的实施方式。如果编解码器时钟相对于调制解调器运行过快, 则S<0,要使定时滞后-即,要减小从输入缓冲器读取数据采样的速 率。类似的,如果编解码器时钟相对于调制解调器运行过慢,则S>0, 要使定时提前-即,要增大从输入缓冲器读取数据采样的速率。在所 有情况下,均向语音编码器传送一个完整语音块(160个采样)。
表1
滞后定时S<0 从ADC读取159个采样,并执行块插值以产生160 个采样 提前定时S>0 从ADC读取161个采样,并执行块
抽取以产生160 个采样
现在参照表2,示出了针对下行链路方向上流动的数据采样而调 整声码器的协议。语音解码器传送一个完整语音帧(160个采样)。因 此,对语音块进行插值,以增加或减少信号采样的数量,从而使定时 滞后或提前。
表2
滞后定时S<0 对160个采样的块进行插值以产生161个采样,并路 由至DAC 提前定时S>0 对160个采样的块进行抽取以产生159个采样,并路 由至DAC
给定L个信号采样的块{x[k],k=0,1,2,…,L-1},在一个实施例中, 可以采用如下递归来实现从L到L+1个信号采样的块插值:
y[k]=k·δ·x[k-1]+(1-k·δ)x[k],0≤k≤L (等式2)
其中
(等式3)
并且x[-1]=x[L]=0。
类似地,给定L+1个信号采样的块{x[k],k=0,1,2,…,L},可以采用 如下递归来实现从L+1到L个信号采样的块插值:
y[k]=(1-k·δ)x[k]+k·δ·x[k+1],0≤k≤L (等式4)
其中
(等式5)
可以使用多种插值/抽取例程。在其他实施例中,可以实施其他采 样调整方法,例如0阶线性插值(即,重复一个采样以扩展块,以及 删除一个采样以缩短块)。在一个实施例中,可以使用在整个块上运算 的线性插值方案,以使不连续性最小。在这种方式中,人类观察者在 感观上觉察不出添加或丢弃采样的效果。
参照图2,示出了根据本发明一个实施例的方法的流程图。如图2 所示,方法200可以用于将调制解调器与声码器同步。首先,可以在 预定测量时间确定所需的缓冲器程度(框210)。例如,可以根据上述 等式1计算所需缓冲器程度N。在不同实施例中,制造商可以相对于 具体系统,基于系统延迟、缓冲器大小等来确定所需缓冲器程度。此 外,初始时可以将指示全帧序列的数量的计数复位(框215),在这些 全帧序列中,缓冲器程度已变为不同于所需程度。
接着,在正常操作期间,可以在多帧序列内的预定时间分析缓冲 器程度(框220)。对于GSM系统,可以分析整个26帧序列开始处的 缓冲器程度。可以使用等式1确定缓冲器程度。然后,可以确定缓冲 器程度是否变为不同于所需程度(菱形框230)。如果不是,则调制解 调器与声码器处于同步。因此,可以将指示全帧序列的数量的计数复 位(框215),在这些全帧序列中,缓冲器程度已变为不同于所需程度。 当对该计数复位时,控制返回到框220,以在下一数据结构期间进行 类似分析。
如果在菱形框230处确定实际缓冲器程度与所需缓冲器程度之间 存在差值,则可以确定该差值是否大于第一阈值(菱形框240)。在不 同实施例中,第一阈值可以对应于相对大的差值,表示调制解调器与 声码器严重失去同步。该第一阈值可以对应于上述阈值TH。因此, 如果该差值大于第一阈值,则控制到达框250,其中直接调整声码器 (框250)。如上所述,该直接或立即同步可以是在其中添加或删除多 个采样的紧急模式。此后,控制可以返回框215,在此对(连续帧序 列的)计数进行复位。然后控制返回框220,以分析下一数据结构。
如果在菱形框240处,该差值不大于第一阈值,则控制到达菱形 框255,在此可以确定该差值是否大于第二阈值(菱形框255)。第二 阈值可以对应于调制解调器与声码器之间的最小差,例如,对应于上 述较低程度M。如果该差值小于该阈值,则控制返回框215,在此将 计数复位,控制返回框220,以分析下一数据结构。
如果在菱形框255处确定该差值大于第二阈值,则控制到达框 260。在此,与表示该差值的连续数据结构的数量相对应的计数递增(框 260)。接着,可以确定该计数是否大于第三阈值(菱形框270)。第三 阈值可以对应于多个连续时间(即,数据结构),对于该多个连续时间, 在任何调整发生之前可能存在差值。第三阈值可以对应于上述连续多 帧序列的计数K。如果该计数大于第三阈值,则可以调整声码器(框 280)。例如,可以添加或删除单个采样。例如,该调整可以采用表1 和表2中示出的那些形式。然后将计数复位(框215),控制返回框220, 以分析下一数据结构。如果在菱形框270处,该计数不大于第三阈值, 则不采取任何行动,控制返回框220,以分析下一数据结构(即,多 帧序列)。
因此,在不同实施例中,可以提供用于基本的调制解调器-声码器 同步的机制。此外,可以实施连续监控和校正以保持同步,一般而言 这不会对语音数据造成任何可检测到的影响。这里所述的方法可以软 件、固件和/或
硬件实现。软件实现可以包括机器可读存储介质形式的 物品,在该存储介质上存储有指令和数据,这些指令和数据形成了执 行该方法的程序。例如,DSP可以包括指令,或者可以用存储介质上 存储的指令对DSP进行编程,以执行根据本发明实施例的调制解调器 -声码器同步。此外,软件可以是可调的。例如,在设计与现场测试进 行之后,制造商可以针对具体系统调整上述参数。此外,在编制之后 可以通过
补丁来
修改软件。这样,可以消耗适度的系统资源来实现调 制解调器-声码器同步。
现在参照图3,示出了根据本发明一个实施例的系统的框图。如 图3所示,系统300可以是无线设备,例如蜂窝电话、PDA、便携式 计算机等。天线305用于接收和发送RF信号。天线305可以使用天 线切换来接收不同频带的输入RF信号。例如,四频带接收机可以适 用于接收GSM通信、增强GSM(EGSM)、数字蜂窝系统(DCS)和 个人通信系统(PCS)信号,但是本发明范围不限于此。在其他实施 例中,天线305可适用于例如通用分组无线业务(GPRS)设备、卫星 调谐器或无线局域网(WLAN)设备。
输入RF信号提供至收发机310,该收发机310可以是包括RF组 件和基带组件的单芯片收发机。在一些实施例中,可以使用互补金属
氧化物
半导体(CMOS)工艺来形成收发机310。如图3所示,收发 机310包括RF收发机312和
基带处理器314。RF收发机312可以包 括接收和发送部分,并可以适用于提供RF
频谱与基带之间的频率转 换。然后将基带信号提供给基带处理器314,以进行进一步处理。
在一些实施例中,收发机310可以对应于图1的ASIC 100。基带 处理器314可以对应于图1的DSP 110,并可以通过端口318耦合, 端口318可以与内部扬声器360耦合,以向终端用户提供语音数据。 端口318也可以与内部麦克风370耦合,以从终端用户接收语音数据。
在处理了从RF接收机312接收到信号之后,基带处理器314可 以将这些信号提供给系统300内的不同位置,例如包括应用处理器320 和存储器330。应用处理器320可以是
微处理器,例如中央处理单元 (CPU),用于控制系统300的操作,还处理应用程序,例如个人信息 管理(PIM)程序、
电子邮件程序、下载的游戏等。存储器330可以 包括不同的存储组件,例如闪存和
只读存储器(ROM),但是本发明 范围不限于此。此外,显示器340与应用处理器320耦合,用于显示 与例如电话呼叫和应用程序关联的信息。此外,系统300中可以存在 小
键盘350,用于接收用户输入。
虽然参照数量有限的实施例描述了本发明,但是本领域技术人员 会从中想到多种修改和变体。所附
权利要求旨在涵盖落入本发明真实 精神和范围内的所有修改和变体。