具体实施方式
A.介绍
本发明的以下详细说明参考了附图,附图图解了本发明的例示性实施方式。也可采用其他实施方式,只要符合本发明的主旨和范围,可对实施方式进行修改。因此,以下详细说明并不限制本发明。相反,本发明的范围由所附权利要求所限定。
说明书中提到的“一个实施方式、”“示例实施方式”等表示所述例示性实施方式可包括特定特征、结构或特性,但每个实施方式并不一定包括特定特征、结构或特性。另外,这些短语不一定指代同一实施方式。进一步,结合一实施方式对特定特征、结构或特性进行说明时,本领域的技术人员应理解的是,结合其他实施方式也可实施这些特征、结构或特性,无论是否有明确说明。
本文对输入FM无线电信号较弱和/或CNR较低时增强FM接收机的输出音频质量的系统和方法进行了说明。本文所述的实施方式通过增强立体声分离度,并降低FM接收机输出音频信号中的嘶嘶声背景噪声和噪声 脉冲(随机噪声)而实现上述目标。这些实施方式可提供FM接收机的用户易于感知的,非常显著的,有时甚至极大的音频质量提高效果。
本文所述的用于增强FM接收机的输出音频质量的主要技术包括:(1)给每个L+R和L-R信号实施单声道噪声抑制;(2)CNR下降到特定阈值以下时实施本文称为“弹跳抑制”的技术,以检测和消除脉冲噪声(“噪声脉冲”或“随机噪声”);以及,(3)实施本文称为“快衰落补偿”的技术,以用通过波形外推法的形式合成的替代段替代L+R和L-R信号的噪声段。
如上所述,本文所述的各个实施方式给L-R信号实施单声道噪声抑制。该方法的前提是,增强立体声分离度并降低FM接收机中的嘶嘶声噪声和随机噪声的问题可作为单声道噪声抑制问题而处理。具体地,通过利用单声道噪声抑制技术而抑制L-R信号中的噪声,本文所述的实施方式不需要降低置于L-R信号上的权重,而常规立体声混合方案在重构L和R信号时会进行这一步。因此,不仅L-R信号中(最终,L和R信号中)的嘶嘶声背景噪声可比立体声混合大大降低,而且立体声分离度(立体声效果的程度)可作为副产物同时增强。
L+R信号也具有噪声,但其电平低于L-R噪声。因此,本文所述的实施方式还给L+R信号实施单声道噪声抑制。可给L+R信号实施强度低于给L-R信号实施的单声道噪声抑制的单声道噪声抑制。
单声道噪声抑制成功的前提是可靠地估算背景噪声(称为“本底噪声”)的幅度谱。在电信应用中实施在语音信号上时,常规单声道噪声抑制技术一般直接分析语音信号,并估算没有主动语音信号,仅存在背景噪声的音节间和句间静寂时间段内的本底噪声。与此相反,在FM增强应用中,音频信号通常为音乐信号,因此,仅存在背景噪声的时间段非常少。这样,通过直接分析音频信号而可靠估算本底噪声变得困难。本文所述的实施方式并非通过直接分析音频信号而提取本底噪声的方法解决该问题,而是通过使用其他间接方法。采用间接方法,无论音频信号是否存在,是否“盖过”噪声,都可对本底噪声进行相当可靠的估算。
如上所述,本文所述的各个实施方式在CNR低于特定阈值时,实施称为“弹跳抑制”的技术,以检测噪声脉冲,并将其从L+R信号中消除。具体地,输入FM无线电信号的CNR低于特定阈值(一般约为12dB)时,L+R和L-R信号中出现噪声脉冲。本文所述的实施方式给这种低CNR下的L-R信号实施强度相当大的单声道噪声抑制,从而将经噪声抑制的L-R信号几乎降为零。因此,L-R信号中的噪声脉冲在这些实施方式中不再是问题。另一方面,这些实施方式可仅给这种低CNR下的L+R信号实施适度量的单声道噪声抑制,因此,噪声脉冲可在实施噪声抑制之后仍可听到。因此,本文所述的实施方式实施单独处理步骤,以检测L+R信号中的这种噪声脉冲并随后将其消除。由于噪声脉冲在信号中看起来像弹跳,因此将其称为“弹跳抑制(pop suppression)”。
本发明的发明人意识到,虽然有时多个脉冲可能互相重叠,但L+R信号中的所有独立噪声脉冲都具有非常相似的形状和持续时间。因此,本文所述的实施方式使用脉冲形状“码本(codebook)”检测噪声脉冲,来利用这一事实。在特定实施方式中,脉冲形状码本包含通过对不同相位下的单个代表性噪声脉冲进行采样而获取的噪声脉冲模板,以及用于代表多个重叠噪声脉冲的噪声脉冲模板。本文所述的实施方式还利用短期和长期线性预测在对结果预测残差开始脉冲检测步骤之前尽可能地消除底层音频信号。获取了与脉冲形状码本中的一个模板充分匹配的脉冲形状之后,在最佳缩放之后从音频信号中减去最匹配的脉冲模板。这种弹跳抑制方案效果非常好,可消除特定实施方式中的CNR水平低至8至9dB的大多数噪声脉冲。
如上所述,本文所述的各个实施方式实施本文称为“快衰落补偿”的技术,以用通过波形外推法的形式合成的段替代L+R和L-R信号的噪声段。“快衰落”指输入FM无线电信号的CNR快速下降到非常低的水平(例如,低于4dB)。例如,FM无线电监听器经过FM无线电信号受到多路失真或阻塞的一系列“衰落区域”时,这种快速下降可能会频繁发生。本文所述的实施方式的前提是,如果受到快衰落影响的L-R和L+R信号的段非常短,可利用与用于替代电信应用中携带语音信号的丢失包和擦除帧 的技术有些相似的技术替代。例如,根据各个实施方式,可使用新形式的波形外推法替代受到快衰落影响的L-R和L+R信号。这种方法可用于大大提高快衰落状况期间的音频输出信号质量。
本文所述的实施方式还以连续动态的方式有利地估算接收的FM信号的CNR,并以用于将当前估算的CNR下的输出音频质量最大化的方式实施弹跳抑制、L-R噪声抑制、L+R噪声抑制、L-R快衰落补偿和L+R快衰落补偿中的每种技术。
现在将对用于增强FM接收机的音频质量的系统的两个主要实施方式进行说明。这两个主要实施方式通过用于估算L-R本底噪声、L+R本底噪声和CNR的间接方法进行区分。估算L-R本底噪声用于对L-R信号进行单声道噪声抑制,估算L+R本底噪声用于对L+R信号进行单声道噪声抑制,估算的CNR用于控制是否进行弹跳抑制、噪声抑制和快衰落补偿及/或进行到何种程度。
B部分将对第一主要实施方式进行说明。在该实施方式中,产生“经正交解调的L-R噪声”的FM立体声解码器中使用专用硬件。基本理念是,用与通常用于解调L-R信号的载波成90度异相的特殊载波解调L-R信号。由于该特殊载波与用于L-R信号的正常载波“正交”,其不会拾取L-R信号,相反,会产生正交解调版的L-R噪声。这种经正交解调的L-R噪声的样本值将与解调L-R信号中的真实噪声不同,但与解调L-R信号中的真实噪声相比时,平均幅度谱基本相同。因此,L-R本底噪声可容易可靠地通过计算该经正交解调的L-R噪声的幅度谱而获取。获取L-R本底噪声之后,可基于根据经验得出的表通过查找表和沿频率和CNR轴的内插法而估算L+R本底噪声。另外,经正交解调的L-R噪声的平均功率还由该第一主要实施方式用于估算CNR。
C部分将对第二主要实施方式进行说明。在该实施方式中,假定没有专用硬件可用于产生经正交解调的L-R噪声。这种情况下,以足够高的采样率对L+R信号进行采样,以提取15和23kHz之间的阻带信号(见图1)。抑制19kHz立体声导频音,以及为避免某些乱真音而可能进行的进一步 频带选择之后,该阻带信号的平均功率可与查找表和沿频率和CNR轴的内插法组合,以基于根据经验得出的表估算L-R本底噪声、L+R本底噪声和CNR。
在任一实施方式中,除CNR和L+R和L-R本底噪声的估算之外,单声道噪声抑制、弹跳抑制和快衰落补偿的核心操作可基本保持不变。
D部分为结束语。
B.用于增强FM接收机的音频质量的第一示例系统和方法
图2为用于增强根据第一主要实施方式的FM接收机的音频质量的示例系统200的框图。系统200例如可实施为FM接收机的集成部分,或包括FM接收机的系统的集成部分。如图2所示,系统200至少包括FM立体声解码器202和FM音频增强逻辑204。现在将对每个部件进行简要说明。
一般来说,FM立体声解码器202是一种用于对输入FM音频信号进行信号处理操作,以生成L+R信号、L-R信号和经正交解调的L-R噪声信号的部件。FM立体声解码器202例如可从天线或与天线连接的信号处理部件(例如,下采样器)接收输入FM无线电信号。在一个实施方式中,FM立体声解码器202实施为使用模拟和/或数字电路的硬件。如图2所示,FM立体声解码器202至少包括FM解调器212、L+R滤波器214、导频信号恢复逻辑216和L-R恢复逻辑218。
FM解调器212用于对输入FM无线电信号进行频率解调,以生成复合基带信号,复合基带信号随后由L+R滤波器214、导频信号恢复逻辑216和L-R恢复逻辑218接收。在该实施方式中,所述复合基带信号具有与图1所示相似的频谱。L+R滤波器214用于对复合基带信号进行低通滤波,以恢复占据30Hz至15kHz的基带范围的L+R信号。导频信号恢复逻辑216对复合基带信号进行处理,以恢复19kHz下的导频音。L-R恢复逻辑218用于使用19kHz导频音重新生成具有正确相位的L-R信号。具体地,L-R恢复逻辑218包括同相L-R解调器220,所述同相L-R解调器220用与导频音同相的载波对复合基带信号进行解调,以生成L-R信号。
如图2进一步所示,L-R恢复逻辑218还包括正交相位L-R解调器222,所述正交相位L-R解调器222用与导频音成90度异相的载波解调复合基带信号,以生成经正交解调的L-R噪声信号。如上所述,所述经正交解调的L-R噪声信号的样本值将与L-R信号中的真实噪声不同,但与解调L-R信号中的真实噪声相比时,平均幅度谱基本相同。
如图2进一步所示,FM立体声解码器202生成的L+R信号、L-R信号和经正交解调的L-R噪声信号传递给FM音频增强逻辑204。在一个实施方式中,这些信号中的每个均为32kHz信号。FM音频增强逻辑204以本文所述的方式处理L+R信号,以生成增强L+R信号。FM音频增强逻辑204还以本文所述的方式处理L-R信号,以生成增强L-R信号。FM音频增强逻辑204以本文所述的方式使用经正交解调的L-R噪声信号估算输入FM无线电信号的CNR,并估算L-R和L+R信号的本底噪声。估算的CNR和估算的本底噪声用于驱动L-R和L+R信号的处理的特定方面,如本文所述。
图3为根据一个实施方式的示出FM音频增强逻辑204的各个部件的框图。如图3所示,FM音频增强逻辑204包括CNR估算逻辑302、基于CNR的参数自适应逻辑304、L+R弹跳抑制逻辑306、L-R噪声抑制逻辑308、L+R噪声抑制逻辑310、L-R快衰落补偿逻辑312和L+R快衰落补偿逻辑314。FM音频增强逻辑204的每个部件可实施为硬件、软件,或硬件或软件的组合。根据一些实施方式,FM音频增强逻辑204的一个或多个部件实施为由处理单元执行的固件,其中,所述处理单元可包括在FM接收机内,FM音频增强逻辑204属于FM接收机的一部分,或可与这种FM接收机连接。
根据一个实施方式,图3所示的每个部件逐帧操作。帧尺寸的范围例如可为5毫秒(ms)至20ms。在一个特定实施方式中,使用8ms的帧尺寸。根据在32kHz下对L+R和L-R信号进行采样的实施方式,每个8ms帧由256个样本组成。
如图3所示,CNR估算逻辑302用于接收FM立体声解码器202生成的经正交解调的L-R噪声信号。CNR估算逻辑302使用该信号为L-R和L+R信号的每个帧生成当前估值。具体地,CNR估算逻辑302为当前帧确定经正交解调的L-R噪声信号的平均功率,随后基于该值为当前帧生成估算的CNR。一个帧的估算的CNR用于控制是否为该帧进行L+R弹跳抑制、噪声抑制和快衰落补偿及/或进行到何种程度。
一般来说,估算的CNR非常高时,不进行L+R弹跳抑制、噪声抑制和快衰落补偿,因为任何信号修正都可能降低音频质量。但是,估算的CNR下降时,将以逐渐增加的强度实施噪声抑制。估算的CNR下降到第一阈值(例如,根据一些实施方式,14dB)以下时,将实施L+R弹跳抑制,估算的CNR下降到更低阈值(例如,根据一些实施方式,4dB)以下时,将根据进一步实施方式实施快衰落补偿。
在一些实施方式中,使用单个估算的CNR来控制是否对指定帧进行L+R弹跳抑制、噪声抑制和快衰落补偿及/或进行到何种程度。在替代实施方式中,可计算不同估算的CNR,以控制这些不同操作中的各个操作。例如,可计算第一估算的CNR,以控制L+R弹跳抑制,可计算第二估算的CNR,以控制噪声抑制。为了使特定处理块对使用略微不同的帧边界的帧进行处理,使不同处理块使用利用不同程度的平滑确定的估算的CNR(例如,一个处理块可使用平滑估算的CNR,另一个处理块可使用瞬时估算的CNR),或为了其他目的,以这种方式计算不同估算的CNR被视为是期望的。
基于CNR的参数自适应逻辑304使用CNR估算逻辑302输出的估算的CNR选择将用于控制进行L-R噪声抑制、L+R噪声抑制、L-R快衰落补偿和L+R快衰落补偿的方式的各个参数。基于估算的CNR选择这些参数的方式将在下文中描述这些操作的部分中进行说明。
如上所述,L+R弹跳抑制逻辑306将在从CNR估算逻辑302接收的估算的CNR下降到预定阈值(在一个实施方式中为14dB)以下时对L+R信号进行弹跳抑制,以生成经弹跳抑制的L+R信号。否则,L+R弹跳抑 制逻辑306将输出非修正版的L+R信号,作为经弹跳抑制的L+R信号。L+R弹跳抑制逻辑306启动时,利用短期和长期线性预测技术尝试将底层音频信号从L+R信号中消除,具体如下文中的B.3部分所述。L+R弹跳抑制逻辑306随后尝试将预测残差中出现的脉冲与预测残差域中的脉冲形状码本中的噪声脉冲模板相匹配。如果获得充分匹配,L+R弹跳抑制逻辑306在最佳缩放之后从音频信号中减去最匹配的噪声脉冲模板。通过这种方式的操作,L+R弹跳抑制逻辑306的一个实施方式可消除特定实施方式中的CNR水平低至8至9dB的L+R信号中出现的大多数噪声脉冲。
图4示出了根据一个实施方式进行L+R弹跳抑制的方法的高水平流程图400。流程图400的方法例如可由上文所述的图2和图3所示的系统200的部件进行。但是,本发明并不限于该实施方式。
如图4所示,流程图400的方法从步骤402开始。在步骤402中,给FM解调器输出的复合基带信号实施正交L-R解调,以获取经正交解调的L-R噪声信号(为了简洁起见,下文称为“L-R噪声信号”)。例如,该步骤可由上文所述的图2所示的正交L-R解调器222进行。
在步骤404中,基于L-R噪声信号计算估算的CNR。例如,该步骤可由上文所述的图3所示的CNR估算逻辑302进行。关于如何计算估算的CNR的额外细节将在下文中的B.1部分中说明。
在步骤406中,确定估算的CNR是否低于预定阈值(例如,14dB)。
在步骤408中,响应于确定估算的CNR低于预定阈值,对从复合基带信号获取的L+R信号中的噪声脉冲进行检测,并将检测到的噪声脉冲从中消除,其中,噪声脉冲的检测包括使用多个噪声脉冲模板。例如,步骤406和408可由上文所述的图3所示的L+R弹跳抑制逻辑306进行。关于L+R弹跳抑制逻辑306如何操作的额外细节将在下文中的B.3部分中说明。
L-R噪声抑制逻辑308用于接收L-R信号并在频域中对其实施单声道噪声抑制,以生成经噪声抑制的L-R信号。相似地,L+R噪声抑制逻辑 310用于从L+R弹跳抑制逻辑306接收经弹跳抑制的L+R信号并在频域中对其实施单声道噪声抑制,以生成经噪声抑制的L+R信号。
L-R噪声抑制逻辑308和L+R噪声抑制逻辑310用于在频域中进行单声道噪声抑制的基本技术效仿2010年10月4日提交的标题为“噪声抑制系统和方法”的与Thyssen共同拥有共同待决的第12/897,548号美国专利申请中所述的技术,其完整内容纳入本文,作为参考。如该申请所述,要实施到音频信号的频域表示的每个子频带的噪声抑制增益的量可基于每个子频带的预期噪声衰减(可为平坦型或有形状)和SNR而确定。在当前实施方式中,L-R和L+R噪声抑制的预期噪声衰减均基于CNR估算逻辑302确定的估算的CNR而选择,L-R信号的子频带的SNR利用L-R信号和L-R噪声信号的功率谱而获取,L+R信号的子频带的SNR利用经弹跳抑制的L+R信号的功率谱和基于L-R噪声信号(由L-R噪声抑制逻辑308确定,并传递给L+R噪声抑制逻辑,如图3所示)的功率谱而估算的L+R噪声信号的功率谱而获取。
图5示出了根据一个实施方式进行L-R和L+R噪声抑制的方法的高水平流程图500。流程图500的方法例如可由上文所述的图2和图3所示的系统200的部件进行。但是,本发明并不限于该实施方式。
如图5所示,流程图500的方法从步骤502开始。在步骤502中,给FM解调器输出的复合基带信号实施正交L-R解调,以获取L-R噪声信号。例如,该步骤可由上文所述的图2所示的正交L-R解调器222进行。
在步骤504中,基于L-R噪声信号计算估算的CNR。例如,该步骤可由上文所述的图3所示的CNR估算逻辑302进行。关于如何计算估算的CNR的额外细节将在下文中的B.1部分中说明。
在步骤506中,基于L-R噪声信号和估算的CNR对从复合基带信号获取的L-R信号实施单声道噪声抑制。例如,该步骤可由上文所述的图3所示的L-R噪声抑制逻辑308进行。
在步骤508中,基于L-R噪声信号和估算的CNR对从复合基带信号获取的L+R信号实施单声道噪声抑制。例如,该步骤可由上文所述的图3 所示的L+R噪声抑制逻辑310进行。应注意的是,根据本特定示例,“从复合基带信号获取的L+R信号”指L+R弹跳抑制逻辑306生成的该信号的弹跳抑制版本。
图6示出了根据一个实施方式的可进行流程图500的步骤506的方法的高水平流程图600。如图6所示,流程图600的方法从步骤602开始,在步骤602中,基于估算的CNR确定预期L-R噪声衰减。在步骤604中,基于L-R信号和L-R噪声信号的功率谱为L-R信号的频域表示的多个子频带中的每个子频带获取SNR。在步骤606中,要实施到L-R信号的频域表示的每个子频带的噪声抑制增益的量可基于步骤602中确定的预期L-R噪声衰减和步骤604中获取的SNR而确定。关于L-R噪声抑制逻辑308如何操作的额外细节将在下文中的B.4部分中说明。
图7示出了根据一个实施方式的可进行流程图500的步骤508的方法的高水平流程图700。如图7所示,流程图700的方法从步骤702开始,在步骤702中,基于L-R噪声信号的功率谱估算L+R噪声信号的功率谱。在步骤704中,基于估算的SNR确定预期L+R噪声衰减。在步骤706中,基于L+R信号和L+R噪声信号的功率谱为L+R信号的频域表示的多个子频带中的每个子频带获取SNR。在步骤708中,要实施到L+R信号的频域表示的每个子频带的噪声抑制增益的量基于步骤704中确定的预期L+R噪声衰减和步骤706中获取的SNR而确定。关于L+R噪声抑制逻辑310如何操作的额外细节将在下文中的B.4部分中说明。
L-R快衰落补偿逻辑312用于接收L-R噪声抑制逻辑308生成的经噪声抑制的L-R信号,并对其实施快衰落补偿,以生成增强L-R信号。相似地,L+R快衰落补偿逻辑314用于接收L+R噪声抑制逻辑310生成的经噪声抑制的L+R信号,并对其实施快衰落补偿,以生成增强L+R信号。如上所述,快衰落补偿涉及利用新形式的波形外推法(waveform extrapolation)替代非常低的CNR下的L-R和L+R信号的噪声段。
图8示出了根据一个实施方式进行L-R和L+R快衰落补偿的方法的高水平流程图800。流程图800的方法例如可由上文所述的图2和图3所示的系统200的部件进行。但是,本发明并不限于该实施方式。
如图8所示,流程图800的方法从步骤802开始。在步骤802中,给FM解调器输出的复合基带信号实施正交L-R解调,以获取L-R噪声信号。例如,该步骤可由上文所述的图2所示的正交L-R解调器222进行。
在步骤804中,基于L-R噪声信号计算估算的CNR。例如,该步骤可由上文所述的图3所示的CNR估算逻辑302进行。关于如何计算估算的CNR的额外细节将在下文中的B.1部分中说明。
在步骤806中,确定估算的CNR是否低于预定阈值(例如,4dB)。
在步骤808中,响应于确定估算的CNR低于预定阈值,从复合基带信号获取的L-R信号或L+R信号的波形段用通过波形外推法的形式生成的替代波形段替代。例如,步骤806和808可由上文所述的图3所示的L-R快衰落补偿逻辑312或L+R快衰落补偿逻辑314进行。关于L-R快衰落补偿逻辑312和L+R快衰落补偿逻辑314如何操作的额外细节将在下文中的B.5部分中说明。
FM音频增强逻辑204生成的增强L-R信号和增强L+R信号随后可由FM接收机以已知方式组合,以生成L和R音频输出声道。
以下部分将对关于FM音频增强逻辑204的前述部件的操作方式的额外细节进行说明。具体地,B.1部分将对关于CNR估算逻辑302的操作的额外细节进行说明,B.2部分将对关于基于CNR的参数自适应逻辑304的操作的额外细节进行说明,B.3部分将对关于L+R弹跳抑制逻辑306的操作的额外细节进行说明,B.4部分将对关于L-R噪声抑制逻辑308和L+R噪声抑制逻辑310的操作的额外细节进行说明,B.5部分将对关于L-R快衰落补偿逻辑312和L+R快衰落补偿逻辑314的操作的额外细节进行说明。
1.CNR估算
图9为示出如何根据一个示例实施方式实施CNR估算逻辑302的框图。如图9所示,CNR估算逻辑302可包括第一逻辑块902,所述第一逻辑块902接收经正交解调的L-R噪声信号,并用其计算当前帧的L-R噪声能量。该步骤例如可能涉及获取经正交解调的L-R噪声信号的频域表示,并总计经正交解调的L-R噪声信号的频域表示的每个子频带上的能量。在一个实施方式中,获取经正交解调的L-R噪声信号的频域表示的步骤包括:对经正交解调的L-R噪声信号进行快速傅里叶变换(FFT)。在一个特定实施方式中,使用实施为硬件的FFT加速器有效地进行该操作。在替代实施方式中,使用经正交解调的L-R噪声信号的时域表示计算当前帧的L-R噪声能量。可使用用于确定时域信号的能量的各种已知技术进行该操作。
为当前帧获取了L-R噪声能量之后,第二逻辑块904计算L-R信号的预定最大信号能量与L-R噪声能量之间的比,从而生成当前帧的最大信噪比(MNR)。L-R信号的最大信号能量可包括可根据经验为指定实施方式确定的固定或可配置系统参数。最大信号能量提供可用于协助缩放的参考值,缩放操作可在由FM音频增强逻辑204接收该信号之前对L-R信号实施,并能随后映射到瞬时CNR。
为当前帧计算了MNR之后,第三逻辑块906将MNR转换为当前帧的瞬时CNR。在一个实施方式中,将MNR转换为瞬时CNR的步骤包括:获取MNR的对数值,随后减去预定偏差,其中,预定偏差包括根据观测在L+R信号中出现噪声脉冲的MNR与预计没有音频信号时会出现噪声脉冲的CNR之间的差(例如,12dB)。因此,例如,对于一个指定实施方式,如果根据观测在30dB的MNR下出现噪声脉冲,12dB为预计没有音频信号时会出现噪声脉冲的CNR,则从第二逻辑块904计算的MNR中减去18dB的偏差,以获取瞬时CNR。还可使用其他方法基于计算的MNR确定瞬时CNR。
为当前帧获取了瞬时CNR之后,该瞬时CNR由第四逻辑块908进行平滑,以获取当前帧的平滑CNR,平滑CNR随后由CNR估算器302输出,作为当前帧的估算的CNR。平滑操作例如可通过计算为当前帧确 定的瞬时CNR与为先前帧确定的瞬时CNR的长期移动平均值的加权和而实现,但该示例并不具有限制性。
由上文可以看出,图9的示例实施方式输出单个估算的CNR。但是,如上所述,CNR估算逻辑302可输出不同估算的CNR,以控制L+R弹跳抑制、噪声抑制和快衰落补偿。例如,可计算第一估算的CNR,以控制L+R弹跳抑制,并可计算第二估算的CNR,以控制噪声抑制。
2.基于CNR的参数自适应
基于CNR的参数自适应逻辑304使用CNR估算逻辑302输出的估算的CNR选择将用于控制由L-R噪声抑制逻辑308进行L-R噪声抑制、由L+R噪声抑制逻辑310进行L+R噪声抑制、由L-R快衰落补偿逻辑312进行L-R快衰落补偿,并由L+R快衰落补偿逻辑14进行L+R快衰落补偿的方式的各个参数。
对于L+R噪声抑制,估算的CNR用于基于L-R噪声的功率谱确定L+R噪声的功率谱。对于L-R和L+R噪声抑制,估算的CNR用于确定预期噪声衰减、要在主信号频带之外实施的额外噪声衰减的量、要实施的软静噪(soft-muting)衰减的量,以及子频带指标(在该指标或以上时,将实施任何高截频(high-cut)衰减)。关于如何使用估算的CNR确定这些参数,以进行L-R和L+R噪声抑制的进一步细节将在下文中的B.4部分中说明。
对于L-R和L+R快衰落补偿,估算的CNR用于确定是否完全实施快衰落补偿,并且,对于实施快衰落补偿的帧,确定用于生成作为要替代的波形与从历史缓存中获取的最匹配波形段的加权和的替代波形的加权因数。关于如何使用估算的CNR确定加权因数的进一步细节将在下文中的B.5部分中说明。
3.L+R弹跳抑制
如上所述,虽然有时多个脉冲可能互相重叠,但L+R弹跳抑制逻辑306实施的技术的前提是,L+R信号中的所有独立噪声脉冲都具有非常相似的形状和持续时间。例如,根据观测,在一个FM接收机实施方式中, L+R信号中的所有独立噪声脉冲的基本形状由一个非常大的峰值和后面的多个较小峰值(峰值振幅限于非常窄的振幅范围)组成,其持续时间约为4ms。本文所述的实施方式使用脉冲形状“码本”检测噪声脉冲,来利用这一事实。脉冲形状码本包括通过对不同相位下的单个代表性噪声脉冲进行采样而获取的噪声脉冲模板。
例如,根据一个实施方式,部分地,脉冲形状码本通过从在11dB CNR下捕获的解调L+R信号的片段中获取八个代表性正噪声脉冲和八个代表性负噪声脉冲,并从在9dB CNR下捕获的解调L+R信号的片段中获取八个代表性正噪声脉冲和八个代表性负噪声脉冲而生成。三十二个代表性噪声脉冲随后通过从48kHz至192kHz的上采样、缩放和时间校准而进行平滑。随后,三十二个经过缩放和时间校准的代表性噪声脉冲的样本的振幅一起平均,生成图10所示的平均噪声脉冲。
图10所示的平均噪声脉冲随后在六个不同相位下进行二次采样,以生成32kHz下的六个未标准化噪声脉冲模板,每个模板都由九个样本组成。随后通过在模板的第一和第九样本的幅度之间进行内插,并从对应样本中减去为每个样本确定的偏差,而为每个未标准化噪声脉冲模板的每个样本确定偏差。这使第一和第九样本的幅度为零。生成的具有零值终点的未标准化噪声脉冲模板如图11所示。
在一个实施方式中,图11所示的每个未标准化噪声脉冲模板被位于其第三样本的峰值的幅度相除,以得到六个标准化(归一化)噪声脉冲模板。进一步根据该实施方式,零值终点并非存储作为脉冲形状码本中噪声脉冲模板的一部分,因为其值对于每个模板都相同。这种方法增加了噪声脉冲搜索的效率,并减小了存储脉冲形状码本所需的存储量。图12示出了去除了零值终点的生成的32kHz下的标准化噪声脉冲模板。如图12所示,每个标准化噪声脉冲模板由七个样本组成。
在一个进一步实施方式中,生成额外噪声脉冲模板,以满足两个噪声脉冲重叠的方案。根据一个特定实施方式,生成这种额外噪声脉冲模板,以满足32kHz域中第二噪声脉冲仅比第一噪声脉冲落后一个或两个样本 的方案。对于32kHz域中第二噪声脉冲比第一噪声脉冲落后三个或四个样本的方案,采用特殊处理步骤检测这种重叠噪声脉冲。对于32kHz域中第二噪声脉冲比第一噪声脉冲落后五个或更多个样本的方案,根据观测,将噪声脉冲分别与“单脉冲”噪声脉冲模板匹配,可获得令人满意的结果。
上文对根据本文所述的各种技术生成用于进行L+R弹跳抑制的噪声脉冲模板的码本的某些示例方法进行了说明。但是,应理解的是,可采用多种方法中的任何方法生成合适噪声脉冲模板的码本,这些方法并不一定限于上文所述的方法。另外,根据FM接收机的设计,L+R信号中出现的噪声脉冲的特征形状可与上文所述的不同。例如,使用具有不同脉冲响应的不同滤波器恢复L+R信号可生成具有不同特征形状的噪声脉冲。由此,可对不同FM接收机设计生成不同噪声脉冲模板,以进行弹跳抑制。
图13为根据一个示例实施方式的L+R弹跳抑制逻辑306的框图。如图13所示,L+R弹跳抑制逻辑306包括一起运行,以进行上述操作的多个互连逻辑块、部件或模块。根据该实施方式,这些部件中的每个部件可实施为硬件、软件或硬件和软件的组合。现在将对这些部件的运行方式进行说明。
继续如图13所示,L+R弹跳抑制逻辑306包括开关逻辑,开关逻辑用符号表示为第一开关1302和第二开关1304。该开关逻辑将从CNR估算逻辑302接收的估算的CNR与弹跳出现阈值相比较。如果估算的CNR超过阈值,开关逻辑在不进行修正的情况下直接将从FM立体声解码器202接收的L+R信号传递到L+R弹跳抑制逻辑306的输出端。若用符号表示,在图13中通过将开关1302和1304置于“上”位置来表示。跳过弹跳抑制功能的原因在于,在较高CNR下,L+R信号中的噪声脉冲非常少,或没有噪声脉冲,因此,实施弹跳抑制没有益处。相反,在这种较高CNR下实施弹跳抑制会造成错误检测,实际上会将噪声脉冲意外引入L+R信号。
但是,如果估算的CNR小于或等于弹跳抑制阈值,开关逻辑将从FM立体声解码器202接收的L+R信号传递给逻辑块1306、1308和1320,以进行弹跳抑制,并输出逻辑块1324生成的经处理L+R信号,作为L+R弹跳抑制逻辑306生成的经弹跳抑制的L+R信号。若用符号表示,在图13中通过将开关1302和1304置于“下”位置来表示。
弹跳抑制阈值可根据实施方式的不同而不同。在一个特定实施方式中,弹跳抑制阈值设为纯热噪声条件和无音频信号情况下L+R信号中开始出现噪声脉冲的CNR,外加可配置“安全裕度”。例如,根据这种实施方式,如果纯热噪声条件和无音频信号情况下L+R信号中开始出现噪声脉冲的CNR为12dB,可配置安全裕度为2dB,则弹跳抑制阈值将为14dB。还可采用其他方法确定弹跳出现阈值。
在某些实施方式中,即使估算的CNR小于或等于弹跳抑制阈值,噪声脉冲也可能会发生错误检测。但是,可确定的是,消除这种估算的CNR下的实际噪声脉冲的好处比噪声脉冲的错误检测可能造成的轻微信号衰减重要地多。
如上所述,如果估算的CNR小于或等于弹跳抑制阈值,开关逻辑将从FM立体声解码器202接收的L+R信号传递给逻辑块1306、1308和1320,以进行弹跳抑制。逻辑块1306在时域内对L+R信号的当前帧进行线性预测编码(LPC)分析(还称为短期预测分析)。逻辑块1306进行LPC分析,以确定LPC预测器的系数,所述LPC预测器将当前帧的每个样本的值预测为多个先前样本的加权和。逻辑块1308使用逻辑块1306获取的LPC预测器计算LPC预测误差(还称为短期预测误差或短期预测残差)。具体地,对于L+R信号的当前帧中的每个样本,逻辑块1308从样本的实际值中减去利用LPC预测器获取的样本的预测值,以获取LPC预测误差的样本。前述操作用于生成消除了音频信号的短期冗余的L+R信号的表示。
在一个实施方式中,为了避免计算LPC预测误差时消除噪声脉冲,使用LPC预测器,用于将当前帧的每个样本的值预测为多个先前样本的 加权和,其中,先前样本互相不相邻,或与当前样本不相邻。这种LPC预测在本文中称为“稀疏预测”。例如,在一个实施方式中,用于LPC预测的每个先前样本与另一个先前样本距离(away from)两个样本,最靠近当前样本的先前样本与当前样本距离两个样本。根据观测,这种LPC预测器不太可能预测上述噪声脉冲模板代表的噪声脉冲,因此,由于逻辑块1306和1308的运行,使用这种LPC预测器将有助于确保噪声脉冲不会从LPC预测误差中消除。但是,根据观测,这种LPC预测器在进行短期预测功能时仍会提供令人满意的精确度。
根据一个特定实施方式,使用30阶稀疏LPC预测器将当前样本预测为30个先前样本的加权和,其中,每个先前样本与另一个先前样本距离两个样本,最靠近当前样本的先前样本与当前样本距离两个样本。在32kHz下,这种30阶稀疏LPC预测器将在一般由将当前样本预测为所有先前样本的加权和的60阶LPC预测器覆盖的时间段上进行预测,但复杂度小得多。
应注意的是,在替代实施方式中,可采用除LPC预测之外的短期预测技术计算短期预测误差。例如,在一个实施方式中,可采用简单线性内插法进行短期预测,以降低复杂度。还可采用其他技术。
逻辑块1308计算的LPC预测误差传递给逻辑块1310。逻辑块1310对LPC预测误差进行基音(Pitch)预测分析(还称为长期预测分析),以确定基音预测器的系数。逻辑块1310使用基音预测器计算基音预测误差(还称为长期预测误差或长期预测残差)。具体地,对于LPC预测误差中的每个样本,逻辑块1310从样本的实际值中减去利用基音预测器获取的样本的预测值,以获取基音预测误差的样本。前述操作用于生成消除了音频信号的短期和长期冗余的L+R信号的表示。
在一个实施方式中,确定基音预测器的系数的步骤包括:估算基音周期或延迟,随后导出一个或多个基音预测器抽头(tap)。相关领域的技术人员应理解的是,可使用已知标准化互相关函数估算基音周期。在一个替代实施方式中,使用基于平均幅度差函数(AMDF)的简单基音提取算法。 这种基音提取算法的一个示例在2008年6月27日提交的标题为“低复杂度帧擦除掩蔽”的与Chen共同拥有共同待决美国专利申请第12/147,781号中进行了说明,其完整内容纳入本文,作为参考。
在一个特定实施方式中,使用单个基音预测器抽头。根据观测,对32kHz信号使用单个基音预测器抽头会在降低复杂度的同时产生令人满意的结果。
由逻辑块1310计算了基音预测误差之后,将其提供给逻辑块1316,以开始与多个噪声脉冲模板1312进行匹配。噪声脉冲模板1312的各个示例和如何获得这种模板的描述如上文所述。在一个实施方式中,使用六个“单脉冲”和五个“双脉冲”噪声脉冲模板。
由于将由逻辑块1316执行的匹配针对逻辑块1310生成的基音预测误差而不是L+R信号的原始帧来执行,因此噪声脉冲模板1312先用逻辑块1308使用的LPC预测误差滤波器的脉冲响应进行卷积,以计算LPC预测误差。逻辑块1314进行的该操作在与LPC预测误差相同的域中生成后续匹配操作所需的噪声脉冲模板的表示。应注意的是,在图13所示的实施方式中,噪声脉冲模板并非用基音预测误差滤波器的脉冲响应进行卷积,因为最小基音周期大于噪声脉冲模板的持续时间。
逻辑块1316用于找到从逻辑块1310接收的基音预测误差中的每个样本的最匹配的卷积噪声脉冲模板。在一个实施方式中,逻辑块1316通过以下步骤对逻辑块1310生成的基音预测误差中的每个样本进行该功能:生成比较波形;将生成的比较波形与每个卷积噪声脉冲模板相比较,以确定与每个卷积噪声脉冲关联的不相似性度量或相似性度量;并且,识别提供最小不相似性度量或最大相似性度量的卷积噪声脉冲模板。
在一个实施方式中,为基音预测误差中的特定样本生成比较波形的步骤包括:识别预测误差波形,其包括该样本前面的两个样本、当前样本、该样本后面的六个样本,并且,以与用于生成噪声脉冲模板的方式(如上所述)相同的方式对预测误差波形实施偏差消除和标准化。由于实施了偏 差消除,零值终点可从处理的预测误差波形中消除,生成七样本比较波形,可用于与七样本的卷积噪声脉冲模板进行匹配。
在一个实施方式中,通过计算每个比较波形与每个卷积噪声脉冲模板之间的幅度差的总和(SMD),并选择提供最小SMD的卷积噪声脉冲模板而为基音预测误差中的每个样本识别提供最小不相似性度量的卷积噪声脉冲模板。
逻辑块1316为基音预测误差中的每个样本找到最匹配的卷积噪声脉冲模板之后,逻辑块1318进行阈值测试,以识别初级候选噪声脉冲。在一个实施方式中,逻辑块1318通过对基音预测误差中的每个样本确定与最匹配的卷积噪声脉冲关联的不相似性度量是否小于预定阈值,或与最匹配的卷积噪声脉冲关联的相似性度量是否大于预定阈值而进行该功能。随后使用找到了最匹配的卷积噪声模板且满足阈值测试的样本,以识别L+R信号域中初级候选噪声脉冲的位置。
在一个实施方式中,在进行阈值测试之前对包括基音预测误差中的每个样本的最小不相似性度量(例如,SMD)的信号进行操作,以更好识别初级候选噪声脉冲。例如,可对包括基音预测误差中的每个样本的最小不相似性度量的信号进行转换,以促进识别初级候选噪声脉冲的峰值检测技术的实施。这种转换例如可涉及对信号的脉冲振幅进行标准化,转换标准化信号,限制转换信号的范围,并利用原始信号电平将转换信号放大。另外,可用需要对转换信号实施从峰值样本的值中减去峰值后的两个样本后面的样本的值的峰值增强技术。该技术的前提是,转换信号具有代表噪声脉冲位置的正峰值时,其后的两个样本后面通常会有一个负峰值。应注意的是,在采用这种“双样本差分”峰值增强技术的实施方式中,卷积噪声脉冲模板匹配从基音预测误差的最后一个样本开始,并倒退到第一样本。还可采用其他信号处理技术识别初级候选噪声脉冲。
逻辑块1320进行操作,以确认逻辑块1318在L+R信号域中识别的初级候选噪声脉冲实际上与对应噪声脉冲模板匹配。例如,逻辑块1320可计算L+R信号域中的初级候选噪声脉冲与对应噪声脉冲模板之间的不 相似性度量,并确定不相似性度量是否小于预定阈值。可替代地,逻辑块1320可计算初级候选噪声脉冲与L+R信号域中的对应噪声脉冲模板之间的相似性度量,并确定相似性度量是否超过预定阈值。
在一个实施方式中,逻辑块1320通过以下步骤确认在L+R信号域中识别的初级候选噪声脉冲实际上与对应噪声脉冲模板匹配:为对应噪声脉冲模板生成多个匹配子向量;计算每个子向量的不相似性度量或相似性度量;总计所有子向量上的不相似性度量或相似性度量;将总和与阈值相比较,确定不相似性总度量是否小于预定阈值,或相似性总度量是否大于预定阈值。例如,在每个噪声脉冲模板包括时间指数[1,2,3,4,5,6,7]的向量代表的七个样本的实施方式中,可为噪声脉冲模板的以下七个子向量确定失真度量或相似性度量:[1,2,3,4]、[2,3,4,5]、[1,2,3,4,5]、[2,3,4,5,6]、[1,2,3,4,5,6]、[2,3,4,5,6,7]和[1,2,3,4,5,6,7]。随后可总计所有七个子向量上的失真度量或相似性度量,并可将总和与阈值相比较,以确定初级候选噪声脉冲实际上是否为噪声脉冲。这种基于子向量的匹配方法可用于确保初级候选噪声脉冲在消除前与噪声脉冲模板严密匹配。
如果逻辑块1320确定初级候选噪声脉冲实际上与对应噪声脉冲模板匹配,逻辑块1322则从L+R信号的当前帧中的适当位置减去对应噪声脉冲模板的合适缩放版。为了确保噪声脉冲没有被逻辑块1320使用的基音预测器向前传播,逻辑块1322从逻辑块1108生成的LPC预测误差中减去对应噪声脉冲模板的卷积版。
某些噪声脉冲可重叠。如上所述,根据一个实施方式,噪声脉冲模板1312包括多个“双脉冲”噪声脉冲模板,用于在32kHz域中的第二噪声脉冲仅比第一噪声脉冲落后一个或两个样本的情况下检测和消除重叠噪声脉冲。进一步根据这种实施方式,根据观测,“单脉冲”噪声脉冲模板足以在32kHz域中的第二噪声脉冲比第一噪声脉冲落后五个或更多个样本的情况下检测和消除重叠噪声脉冲。
还包括逻辑块1324,用于完成32kHz域中的第二噪声脉冲比第一噪声脉冲落后三个或四个样本的方案。根据这种方案,应理解的是,图13 所示的前述部件的操作足以检测和消除第二噪声脉冲,因为第二噪声脉冲的形状与“单脉冲”噪声脉冲模板的其中之一非常相似。但是,这种操作不足以检测和消除第一噪声脉冲,因为第一噪声脉冲不具有这种形状,直到逻辑块1320消除了第二噪声脉冲。因此,由逻辑块1320从L+R信号的当前帧消除了噪声脉冲之后,逻辑块1324将搜索处于消除的噪声脉冲的位置前的3个或4个样本前面的噪声脉冲。如果逻辑块1324在这些位置检测到噪声脉冲,其将消除这些噪声脉冲,并调用逻辑块1322以上文所述的方式从LPC预测误差中消除卷积版。一种替代方法为,在整个帧中第二次搜索额外噪声脉冲;但是,这种方法的效率比在被消除的噪声脉冲的位置前的3个或4个样本的位置上进行搜索的方法低。
逻辑块1324检测到任何额外噪声脉冲,并将其从L+R信号的当前帧中消除之后,输出修正帧,作为经弹跳抑制的L+R信号的一部分。
图13所示的L+R弹跳抑制逻辑306的实施方式的复杂度可高于给定FM接收机实施方式所需的复杂度。例如,FM接收机可能不包括用以进行关于图13的各个逻辑块的所有上述操作的必要处理能力和/或存储器。为了解决该问题,可实施L+R弹跳抑制逻辑306的低复杂度版。例如,为了降低复杂度,可对前述实施方式进行任何或所有以下修改:(1)可使用8阶LPC预测器,代替前述30阶LPC预测器;(2)可完全取消基音预测,使卷积噪声脉冲模板直接与LPC预测误差进行匹配;(3)不进行关于逻辑块1320的上述多子向量搜索;并且(4)噪声脉冲模板1312中不包括“双脉冲”噪声脉冲模板。
另外,为了降低复杂度,可对LPC预测误差实施“预筛选”,仅考虑可配置数量的样本由逻辑块1316进行匹配,而不是上述所有样本。考虑的样本可为幅度最大的样本(因此,最可能与噪声脉冲的峰值对应)。进一步根据该示例,如果样本的可配置数量为10,LPC预测误差包括256个样本,仅考虑幅度最大的10个样本由逻辑块1316进行匹配,而不是所有256个样本。前述方法可大大降低复杂度,但缺点在于,会轻微降低噪声脉冲检测和消除的稳定性。
图14示出了根据一个实施方式的用于进行L+R弹跳抑制的方法的流程图1400。流程图1400的方法例如可由上文所述的图3和图13所示的L+R弹跳抑制逻辑306进行。然而,该方法不限于此实施方式。确定与L+R信号的帧相关联的估算的CNR低于预定阈值时,对该帧实施流程图1400的方法。
如图14所示,从步骤1402开始流程图1400的方法,随后控制过程进入步骤1404。在步骤1404中,对L+R信号的当前帧进行LPC分析,以确定LPC预测器的系数,LPC预测器将当前帧的每个样本的值预测为多个先前样本的加权和。该步骤例如可由图13的逻辑块1306进行。
在步骤1406中,步骤1404中获取的LPC预测器用于计算LPC预测残差(还可称为LPC预测误差或短期预测残差/误差)。具体地,对于L+R信号的当前帧中的每个样本,从样本的实际值中减去利用LPC预测器获取的样本的预测值,以获取LPC预测残差的样本。
在步骤1408中,对LPC预测残差进行基音预测分析,以确定基音预测器的系数,包括估算的基音周期。
在步骤1410中,基音预测器用于计算基音预测残差(还可称为基音预测误差或长期预测残差/误差)。具体地,对于LPC预测残差中的每个样本,从样本的实际值中减去利用基音预测器获取的样本的预测值,以获取基音预测残差的样本。
在步骤1412中,码本中存储的多个噪声脉冲模板用步骤1406中使用的LPC预测误差滤波器的脉冲响应进行卷积,以计算LPC预测残差。该操作在与LPC预测残差相同的域中生成后续匹配操作所需的噪声脉冲模板的表示。
在步骤1414中,为基音预测残差的每个样本找到最匹配的卷积噪声脉冲模板。该步骤可包括以下步骤:生成与样本对应的比较波形;将生成的比较波形与每个卷积噪声脉冲模板相比较,以确定与每个卷积噪声脉冲关联的不相似性度量或相似性度量;并且,识别提供最小不相似性度量或最大相似性度量的卷积噪声脉冲模板。
为基音预测残差中的每个样本找到最匹配的卷积噪声脉冲模板之后,进行阈值测试,以找到L+R信号中的初级候选噪声脉冲的位置,如步骤1416所示。在一个实施方式中,通过为基音预测残差中的每个样本确定与最匹配的卷积噪声脉冲关联的不相似性度量是否小于预定阈值,或与最匹配的卷积噪声脉冲关联的相似性度量是否大于预定阈值而进行该步骤。还可采用其他技术进行该步骤。随后使用找到了最匹配的卷积噪声模板且满足阈值测试的样本识别L+R信号域中初级候选噪声脉冲的位置。
在步骤1418中,在L+R信号中的初级候选噪声脉冲的识别位置处或周围进行搜索,以检测噪声脉冲。在一个实施方式中,在步骤1416生成的每个识别位置的+/-1样本内进行搜索。搜索步骤可包括进行匹配操作,以确定位于L+R信号内的波形是否与对应噪声脉冲模板匹配。
应理解的是,为步骤1418中检测到的每个噪声脉冲进行步骤1420、1422和1424。具体地,在步骤1420中,从L+R信号中消除步骤1418中检测到的噪声脉冲。在一个实施方式中,该步骤包括:从L+R信号中减去对应噪声脉冲模板的合适缩放版。在步骤1422中,还从LPC预测残差中消除检测到的噪声脉冲的卷积版。该步骤可包括:从LPC预测残差中减去对应噪声脉冲模板的卷积版。在步骤1424中,在消除的噪声脉冲前的3个或4个样本的位置处进行噪声脉冲搜索。如果在该位置处检测到噪声脉冲,以与步骤1420和1422相似的方式将其消除。
最后,在步骤1426中,流程图1400的方法结束。
应注意的是,流程图1400的方法仅对进行L+R弹跳抑制的一种方式进行了说明。可使用多种不同方法进行L+R弹跳抑制。例如,上文参考图13对进行L+R弹跳抑制的高复杂度和低复杂度方法,以及用于进行L+R弹跳抑制的各个步骤的各种替代技术进行了说明。因此,流程图1400在本文中仅作为示例而说明,并不具有限制性。
4.L-R和L+R单声道噪声抑制
图15示出了根据一个实施方式的用于对L-R信号实施单声道噪声抑制的方法的流程图1500。流程图1500的方法例如可由上文所述的图3所示的L-R噪声抑制逻辑308进行。但是,本方法并不限于该实施方式。
一次对L-R信号的一个帧实施流程图1500的方法。由该方法操作之前,L-R信号的每个帧从时域转换为频域。另外,对于将由该方法操作的L-R信号的每个帧,还接收经正交解调的L-R噪声信号的时间校准帧,并将其从时域转换为频域。这些帧从时域到频域的转换例如可通过进行FFT而完成。在一个特定实施方式中,使用实施为硬件的FFT加速器有效地进行转换。
如图15所示,从步骤1502开始流程图1500的方法,随后控制过程进入步骤1504。在步骤1504中,为L-R信号和L-R噪声信号的当前帧获取瞬时功率谱。在一个实施方式中,通过对其频域表示中包括的每个频率分量的幅度进行平方而获取L-R信号的当前帧的瞬时功率谱。可采用相似方法获取L-R噪声信号的当前帧的瞬时功率谱。
在步骤1506中,基于从CNR估算逻辑302接收的估算的CNR为L-R信号的当前帧获取预期噪声衰减。一般来说,估算的CNR越低,选择的预期噪声衰减的量越大。在一个实施方式中,当前估算的CNR下降到指定的估算的CNR值的其中之一之间时,通过将指定的估算的CNR映射到对应噪声衰减量,并在噪声衰减量之间进行线性内插法而进行该步骤。但是,还可采用完全不同的方法基于估算的CNR为L-R信号的当前帧获取预期噪声衰减。
在步骤1508中,利用步骤1306中确定的L-R信号的预期噪声衰减确定谱形状,以进行L-R噪声谱整形。所选谱形状确定了以逐个子频带的形式应用总预期噪声衰减的方式。使用谱形状在基于频率的单声道噪声抑制系统中实施噪声谱整形的方式在上文所述的且纳入本文的2010年10月4日提交的标题为“噪声抑制系统和方法”的Thyssen发明的第12/897,548号美国专利申请中进行了说明。在第12/897,548号美国专利申请的范围内,用于噪声谱整形的谱形状用频率相关噪声衰减系数Hs(f)表示。如第 12/897,548号美国专利申请所述,如果频率相关噪声衰减系数Hs(f)在所有子频带上都相同,则其与对噪声信号实施平坦衰减(即,不对噪声信号进行整形)的情况相同,而如果噪声衰减系数在子频带之间不同,可进行任意噪声整形。
在步骤1510中,基于L-R信号的当前帧和L-R噪声信号的当前帧的瞬时功率谱为每个子频带获取SNR。
在一个实施方式中,步骤1510包括:为每个子频带获取平滑SNR。SNR平滑可用于避免实施噪声抑制时在L-R信号中产生过度波动,因为给每个子频带实施的噪声抑制增益的量由该子频带的估算的CNR部分地驱动。
在一个特定实施方式中,为每个子频带获取平滑SNR的步骤包括:(1)基于每个子频带的当前瞬时L-R噪声功率为每个子频带更新平滑L-R噪声功率;(2)通过用对应子频带的平滑L-R噪声功率驱动每个子频带的瞬时L-R噪声功率而为每个子频带获取瞬时SNR;并且(3)基于每个子频带的瞬时SNR为每个子频带更新平滑SNR。
进一步根据这种实施方式,基于每个子频带的当前瞬时L-R噪声功率为每个子频带更新平滑L-R噪声功率的步骤可通过实施指数平均而进行。例如,给定子频带的平滑L-R噪声功率可根据以下等式而更新
Plmrnsm=AFLMRN*Plmrnsm+(1-AFLMRN)*Plmrn(等式1)
其中,Plmrnsm为给定子频带的平滑L-R噪声功率,Plmrn为给定子频带的瞬时L-R噪声功率,AFLMRN为用于对L-R噪声功率进行平滑的指数衰减系数。相似的,为每个子频带更新平滑SNR的步骤也可通过实施指数平均而进行。例如,给定子频带的平滑SNR可根据以下等式而更新
Snrlmrsm=AFLMR*Snrlmrsm+(1-AFLMR)*Snrlmr(等式2)
其中,Snrlmrsm为给定子频带的平滑SNR,Snrlmr为给定子频带的瞬时SNR,AFLMR为用于对SNR进行平滑的指数衰减系数。
在利用衰减系数对接近1的SNR进行平滑的实施方式中,根据观测,系统复位或FM站点变化之后达到SNR平滑的预期水平需要较长时间(例如,100个以上的8-ms帧)。在该时间段内,输出音频质量下降。为了更快地达到SNR平滑的预期水平,一个实施方式在系统复位或FM站点变化之后对预定数量的帧进行SNR矩形平均,随后在处理了预定数量的帧后切换为指数平均。例如,在一个特定实施方式中,系统复位或FM站点变化后不对第一帧进行平滑,随后,从第2帧到第20帧,给定子频带的平滑L-R噪声功率根据以下等式而更新
Plmrnsm=((k-1)*Plmrnsm+Plmrn)/k(等式3)
其中,k为帧数,给定子频带的平滑SNR根据以下等式而更新
Snrlmrsm=((k-1)*Snrlmrsm+Snrlmr)/k(等式4)
可以看出,等式3和4与从第一帧到第k帧用矩形窗进行平均的方式相同,但其优点在于,具有与等式1和2相同的形式,并且不需要将来自第(k-1)帧的Plmrn和Snrlmr存储回第一帧。在第20帧之后,采用指数平均利用上述等式1和2为每个子频带计算平滑L-R噪声功率和平滑SNR。这种实施方式可在系统复位或FM站点变化之后在前20个帧内实现SNR的充分平滑。另外,可在前20个帧内对输出音频信号实施静噪(muting),以避免该时间段内生成质量差的音频输出。
如上所述,SNR平滑可用于避免在噪声抑制的应用中将过度波动引入L-R信号中。然而,存在过度SNR平滑可能使得L-R信号的有效部分被抑制的实例。一般来说,出现这种状况是因为尽管在L-R信号的有效部分期间L-R信号的瞬时SNR可迅速增大,但相应的平滑SNR将不能充分地迅速增大以产生噪声抑制增益的充分增大。为解决此问题,又一实施方式以瞬时SNR来代替任意子频带(在该任意子频带中,L-R信号被认为是有效的或者L-R信号当前不有效但被认为在前一帧中是有效的)中的平滑SNR。例如,这可通过用瞬时SNR来代替任意子频带(在该任意子频带中,当前帧的瞬时SNR超过预定阈值(例如,20),或者当前帧的瞬时 SNR未超过预定阈值但是前一帧的瞬时SNR却超过了预定阈值)中的平滑SNR来实现。
为每个子频带获取了SNR之后,在步骤1512中,基于获取的SNR和步骤1508中确定的L-R噪声的谱形状确定要施加在每个子频带上的噪声抑制增益。在一个实施方式中,给定子频带的噪声抑制增益根据以下等式而确定
(等式5)
其中,Hlmr为给定子频带的噪声抑制增益,SNRapriori_lmr为给定子频带的线性域的先验SNR,先验SNR通过从等式2和4中计算的线性域中的后验SNR中减去1,并通过小正数对其进行下限处理(lower-bounding)而获得,αLMR为指定了预期L-R信号的失真与经噪声抑制的L-R信号中包括的残余噪声信号的不自然性之间的平衡度的参数,且Hslmr代表用于对L-R噪声施加所选谱形状的频率相关噪声衰减系数。上述为给定子频带确定噪声抑制增益的技术在上文所述且纳入本文的2010年10月4日提交的Thyssen发明的标题为“噪声抑制系统和方法”的第12/897,548号美国专利申请中进行了进一步说明。
在步骤1512中确定了噪声抑制增益之后,可将其应用在L-R信号的当前帧的对应子频带上,以生成经噪声抑制的L-R信号的帧。但是,在图15所示的实施方式中,还进行了额外处理步骤,以进一步提高经噪声抑制的L-R信号的音频质量。
具体地,如步骤1514所示,确定是否应对当前L-R帧的“主信号频带”之外的每个子频带实施附加衰减。在谨慎调节预期噪声衰减量的实施方式中,期望进行该步骤,以避免在L-R信号中产生过度失真。根据观测,实施小强度噪声衰减量时,经噪声抑制的L-R信号的上子频带中仍可听到噪声。因此,该步骤用于对这种子频带实施附加衰减。
在一个实施方式中,确定“主信号频带”的步骤包括:检测瞬时SNR高于特定阈值的最高子频带;并且,将该子频带和该子频带以下的每个子频带作为主信号频带。在另一个实施方式中,确定“主信号频带”的步骤可包括:检测瞬时SNR高于特定阈值的最低和最高子频带;并且,将这些子频带和这些子频带之间的每个子频带作为主信号频带。还可采用其他方法确定哪些子频带被视为处于主信号频带内。
在一个实施方式,基于估算的CNR为当前L-R信号帧选择要实施在主信号频带之外的附加衰减量。一般来说,估算的CNR越低,选择的附加衰减的量越大。在一个实施方式中,当前估算的CNR下降到指定估算的CNR值的其中之一之间时,通过将指定估算的CNR值映射到对应附加衰减量,并在附加衰减量之间进行线性内插法而进行该步骤。但是,还可采用完全不同的方法基于估算的CNR获取要实施在主信号频带之外的子频带上的附加衰减量。
在步骤1516中,确定是否对每个子频带实施软静噪或高截频衰减。一般来说,软静噪涉及在预计音频质量非常差时对非常低的CNR下的所有子频带实施等量的附加衰减。在一个实施方式中,仅在估算的CNR下降到预定阈值(例如,8dB)以下时实施软静噪。进一步根据这种实施方式,要实施的软静噪衰减的量可随着估算的CNR的下降而增加。例如,估算的CNR从8dB下降到0dB时,可增加要实施的软静噪衰减的量。
高截频衰减一般指对预定数量的最高子频带实施衰减,以从非常低的CNR下的L-R信号中消除嘶嘶声。在一个实施方式中,仅在估算的CNR下降到预定阈值(例如,8dB)以下时实施高截频衰减。进一步根据这种实施方式,要实施高截频衰减的最低子频带的指数(index)可随着估算的CNR的下降而下降。例如,估算的CNR从8dB下降到0dB时,可减小要实施高截频衰减的最低子频带的指数。高截频衰减可涉及对所识别的最低子频带和指数大于识别的最低子频带的每个子频带实施零增益。可替代地,高截频衰减可涉及在要实施这种衰减的子频带的指数增加时增加实施的衰减量。
在步骤1518中,步骤1512、1514和1516期间要实施在L-R信号的当前帧的各个子频带上的增益组合在一起,并以逐个子频带的方式实施在L-R信号的当前帧上。该步骤可涉及生成要实施在L-R信号的当前帧的频域表示上的增益掩码。根据一些实施方式,可在实施到L-R信号的当前帧之前对步骤1512、1514和1516中确定的任何增益,或通过组合这些增益而获取的任何增益进行平滑。
最后,在步骤1520中,流程图1500的方法结束。该方法生成L-R信号噪声抑制当前帧的频域表示。该频域表示可转回为时域。例如可通过进行反FFT(IFFT)进行该步骤。
图16示出了根据一个实施方式的用于对L+R信号实施单声道噪声抑制的方法的流程图1600。流程图1600的方法例如可由上文所述的图3所示的L+R噪声抑制逻辑310进行。但是,本方法并不限于该实施方式。
下文将对对L+R信号进行的流程图1600的方法进行说明。但是,在由L+R噪声抑制逻辑310进行流程图1600的方法的实施方式中,本方法实际上应用于L+R弹跳抑制逻辑306生成的经弹跳抑制的L+R信号。因此,在流程图1600的方法的以下说明的场景中,提到的“L+R信号”应理解为包括经弹跳抑制的L+R信号和未施加弹跳抑制的L+R信号。
一次对L+R信号的一个帧实施流程图1600的方法。由该方法操作之前,L+R信号的每个帧从时域转换为频域。帧从时域到频域的转换例如可通过进行FFT而完成。在一个具体实施方式中,使用实施为硬件的FFT加速器有效地进行转换。
如图16所示,从步骤1602开始流程图1600的方法,随后控制过程进入步骤1604。在步骤1604中,为L+R信号的当前帧获取瞬时功率谱。在一个实施方式中,通过对其频域表示中包括的每个频率分量的幅度进行平方而获取L+R信号的当前帧的瞬时功率谱。
在步骤1606中,基于L-R噪声信号的平滑功率谱和当前帧的估算的CNR估算L+R噪声的功率谱。L-R噪声的平滑功率谱可根据上文根据流 程图1500的步骤1510所述的技术而获取,因此,为了简明起见,此处不再重复。当前帧的估算的CNR从CNR估算逻辑302中接收。
一般来说,步骤1606通过在对数域中从每个子频带中的平滑L-R噪声功率中减去噪声差而进行,以生成每个子频带中的估算L+R噪声功率。由于L-R噪声的功率谱和L+R噪声的功率谱在频率和CNR上没有明显关系,因此要对给定子频带和给定估算的CNR减去的噪声差的量可根据经验确定,并存储在查找表中,查找表从而可用于进行该步骤。在一个实施方式中,查找表仅包括用于子频带/估算的CNR的所有可能组合的子集的噪声差,使用表项之间的线性内插获取其他组合的噪声差。
在步骤1608中,基于从CNR估算逻辑302接收的估算的CNR为L+R信号的当前帧获取预期噪声衰减。一般来说,估算的CNR越低,选择的预期噪声衰减的量越大。在一个实施方式中,当前估算的CNR下降到指定估算的CNR值的其中之一之间时,通过将指定估算的CNR映射到对应噪声衰减量,并在噪声衰减量之间进行线性内插法而进行该步骤。但是,还可采用完全不同的方法基于估算的CNR为L+R信号的当前帧获取预期噪声衰减。
在步骤1610中,利用步骤1608中确定的L+R信号的预期噪声衰减确定谱形状,以进行L+R噪声谱整形。所选谱形状确定了以逐个子频带的形式实施总预期噪声衰减的方式。
在步骤1612中,基于L+R信号的当前帧的瞬时功率谱和L+R噪声信号的估算功率谱为每个子频带获取SNR。
在一个实施方式中,步骤1612包括:为每个子频带获取平滑SNR,这通过(1)用每个子频带的瞬时L+R信号功率除以对应子频带的估算L+R噪声功率来为每个子频带获取瞬时SNR;并且(2)基于每个子频带的瞬时SNR为每个子频带更新平滑SNR。
进一步根据这种实施方式,为每个子频带更新平滑SNR的步骤可通过实施指数平均而进行。例如,给定子频带的平滑SNR可根据以下等式而更新
Snrlprsm=AFLPR*Snrlprsm+(1-AFLPR)*Snrlpr(等式6)
其中,Snrlprsm为给定子频带的平滑SNR,Snrlpr为给定子频带的瞬时SNR,AFLPR为用于对SNR进行平滑的指数衰减系数。
在利用衰减系数对接近1的SNR进行平滑的实施方式中,根据观测,系统复位或FM站点变化之后达到SNR平滑的预期水平需要较长时间(例如,100个以上的8-ms帧)。在该时间段内,输出音频质量下降。为了更快地达到SNR平滑的预期水平,一个实施方式在系统复位或FM站点变化之后对预定数量的帧进行SNR矩形平均,随后在处理了预定数量的帧后进行指数平均。例如,在一个具体实施方式中,系统复位或FM站点变化后不对第一帧进行平滑,随后从第2帧到第20帧,给定子频带的平滑SNR根据以下等式而更新
Snrlprsm=((k-1)*Snrlprsm+Snrlpr)/k(等式7)
其中,k为帧数。在第20帧之后,采用指数平均利用上述等式6为每个子频带计算平滑SNR。这种实施方式可在系统复位或FM站点变化之后在前20个帧内实现SNR的充分平滑。另外,可在前20个帧内对输出音频信号实施静噪,以避免该时间段内生成质量差的音频输出。
如上所述,SNR平滑可用于避免实施噪声抑制时在L+R信号中引入过度波动。但是,也存在过度SNR平滑使L+R信号的有效部分被抑制的情况。为了解决这个问题,一个进一步实施方式在L+R信号被视为有效、或者L+R信号当前非有效但在前一帧中被视为有效的任何子频带中用瞬时SNR替代了平滑SNR。例如,这可通过以下方式实现:在当前帧的瞬时SNR超过了预定阈值(例如,30)、或者当前帧的瞬时SNR没有超过预定阈值但前一帧的瞬时SNR曾超过了预定阈值的任何子频带中用瞬时SNR替代平滑SNR。
为每个子频带获取了SNR之后,在步骤1614中,基于获取的SNR和步骤1610中确定的L+R噪声的谱形状确定要施加在每个子频带上的噪声抑制增益。在一个实施方式中,给定子频带的噪声抑制增益根据以下等 式而确定
(等式8)
其中,Hlpr为给定子频带的噪声抑制增益,SNRapriori_lpr为给定子频带的线性域的先验SNR,先验SNR通过从等式6和7中计算的线性域中的后验SNR中减去1,并通过小正数对其进行下限处理而获得,αLPR为指定了预期L+R信号的失真与经噪声抑制的L+R信号中包括的残余噪声信号的不自然性之间的平衡度的参数,且Hslpr代表用于对L+R噪声施加所选谱形状的频率相关噪声衰减系数。
在步骤1614中确定了噪声抑制增益之后,可将其实施在L+R信号的当前帧的对应子频带上,以生成经噪声抑制的L+R信号的帧。但是,在图16所示的实施方式中,还进行了额外处理步骤,以进一步提高经噪声抑制的L+R信号的音频质量。
具体地,如步骤1616所示,确定是否应对当前L-R帧的“主信号频带”之外的每个子频带实施附加衰减。在一个实施方式中,确定“主信号频带”的步骤包括:检测瞬时SNR高于特定阈值的最高子频带;并且,将该子频带和该子频带以下的每个子频带作为主信号频带。在另一个实施方式中,确定“主信号频带”的步骤可包括:检测瞬时SNR高于特定阈值的最低和最高子频带;并且,将这些子频带和这些子频带之间的每个子频带作为主信号频带。还可采用其他方法确定被视为处于主信号频带内的子频带。
在一个实施方式中,基于估算的CNR为当前L+R信号帧选择要实施在主信号频带之外的附加衰减量。一般来说,估算的CNR越低,选择的附加衰减的量越大。在一个实施方式中,当前估算的CNR下降到指定估算的CNR值的其中之一之间时,通过将指定估算的CNR值映射到对应附加衰减量,并在附加衰减量之间进行线性内插法而进行该步骤。但是,还 可采用完全不同的方法基于估算的CNR获取要实施在主信号频带之外的子频带上的附加衰减量。
在步骤1618中,确定是否对每个子频带实施软静噪或高截频衰减。上文根据流程图1500的步骤1516对实施软静噪和/或高截频衰减的方法进行了说明,因此,为了简明起见,此处不再重复。
在步骤1620中,步骤1614、1616和1618中要实施在L+R信号的当前帧的各个子频带上的增益组合在一起,并以逐个子频带的方式实施在L+R信号的当前帧上。该步骤可涉及生成要实施在L+R信号的当前帧的频域表示上的增益掩码。根据一些实施方式,可在实施到L+R信号的当前帧之前对步骤1614、1616和1618中确定的任何增益,或通过组合这些增益而获取的任何增益进行平滑。
最后,在步骤1622中,流程图1600的方法结束。该方法生成L+R信号的经噪声抑制的当前帧的频域表示。该频域表示可转回为时域。例如可通过进行反FFT(IFFT)进行该步骤。
5.L-R和L+R快衰落补偿
图17示出了根据一个实施方式的用于给L-R信号或L+R信号施加快衰落补偿的方法的流程图1700。流程图1700的方法例如可由上文所述的图3所示的L-R快衰落补偿逻辑312进行,这种情况下,本方法应用于L-R噪声抑制逻辑308生成的经噪声抑制的L-R信号。流程图1700的方法还可由上文所述的图3所示的L+R快衰落补偿逻辑314进行,这种情况下,本方法应用于L+R噪声抑制逻辑310生成的经噪声抑制的L+R信号。但是,本方法并不限于这些实施方式。例如,根据某些替代实施方式,本方法可直接实施于FM立体声解码器202生成的原始L-R信号、FM立体声解码器202生成的原始L+R信号或L+R弹跳抑制逻辑306生成的经弹跳抑制的L+R信号。
一般来说,流程图1700中所述的快衰落补偿方法实施新形式的波形外推法,以生成掩蔽(concealment)波形,用于代替受快衰落影响的L-R和L+R信号的段。如上所述,“快衰落”指输入FM无线电信号的CNR 快速下降到非常低的水平(例如,低于4dB)。例如,FM无线电监听器经过FM无线电信号受到多路失真或阻塞的一系列“衰落区域”时,这种快速下降可能会频繁发生。快衰落可能造成每秒出现5至10次CNR下跌,这严重削弱了音频质量。
本文所述的实施方式的前提是,如果受到快衰落影响的L-R和L+R信号的段非常短,可利用与用于替代电信应用中携带语音信号的丢失包和擦除帧的技术有些相似的技术替代。但是,可以确定的是,由于L-R和L+R信号的帧尺寸相对较短(在一个实施方式中为8ms),采用已知“帧重复”方法生成掩蔽波形不会产生令人满意的结果。相反,这种方法可产生听起来为“嗡嗡声”的非常具有周期性的掩蔽波形。因此,选择基于波形外推法的掩蔽技术。
如图17所示,从步骤1702开始流程图1700的方法,随后控制过程进入步骤1704。在判定步骤1704中,确定当前帧的估算的CNR是否超过进行快衰落补偿的预定阈值(“FFC阈值”)。如果当前帧的估算的CNR超过了FFC阈值,不对音频信号的当前帧(即,L-R或L+R信号的当前帧)实施快衰落补偿,处理过程结束,如步骤1714所示。但是,如果当前帧的估算的CNR没有超过FFC阈值,根据后续步骤1706、1708、1710和1712实施快衰落补偿。FFC阈值可包括可配置参数,可对可配置参数进行调节,以对不同实施方式提供预期结果。在一个特定实施方式中,FFC阈值设为4dB。
在实施快衰落补偿的情况下,控制过程进入步骤1706。在步骤1706中,将要替代的音频信号的波形与先前接收的音频信号的波形段相比较,以识别先前接收的音频信号内最匹配的波形段。
在一个实施方式中,在对音频信号的频域表示进行IFFT的处理块的输出上实施快衰落补偿方法。根据这种实施方式,必须进行某些初步操作,以获取要替代的音频信号的波形。例如,可在图18所示的系统1800中实施快衰落补偿方法。系统1800包括通常用于在频域中进行音频信号处理操作的单元。具体地,如图18所示,系统1800包括逻辑块1802,逻辑块 1802对输入音频信号的先前接收帧和输入音频信号的当前接收帧施加正弦窗,其中,这两个帧都包括时域信号。在音频信号的帧为8-ms帧的实施方式中,这会产生长度为16ms的正弦窗音频信号。逻辑块1804对正弦窗音频信号实施FFT,从而生成正弦窗音频信号的频域表示。该频域表示可由噪声抑制逻辑1806(例如可代表L-R噪声抑制逻辑308或L+R噪声抑制逻辑310)操作,从而生成正弦窗音频信号的噪声抑制频域表示。逻辑块1808对正弦窗音频信号的噪声抑制频域表示实施IFFT,从而生成正弦窗噪声抑制音频信号。再次说明,在音频信号的帧为8-ms帧的实施方式中,该正弦窗噪声抑制音频信号的长度将为16ms。接下来,逻辑块1810对正弦窗噪声抑制音频信号施加另一个正弦窗,以生成正弦平方窗噪声抑制音频信号。逻辑块1812将正弦平方窗噪声抑制音频信号的前半部分与逻辑块1812先前输出的正弦平方窗噪声抑制音频信号的后半部分重叠,以生成输出音频信号的单时域帧。
进一步如图18所示,快衰落补偿逻辑1814(可代表L-R快衰落补偿逻辑312或L+R快衰落补偿逻辑314)可在由逻辑块1808输出音频信号时对音频信号的帧进行操作。因此,在一个实施方式中,快衰落补偿逻辑1814可能需要对16-ms正弦窗噪声抑制音频信号进行操作。根据这种实施方式,为了获取要替代的波形的前半部分,对16-ms正弦窗噪声抑制音频信号的前半部分施加正弦窗,并将该操作结果与逻辑块1812先前输出的正弦平方窗噪声抑制音频信号的后半部分重叠相加。进一步根据这种实施方式,为了获取要替代的波形的后半部分,对16-ms正弦窗噪声抑制音频信号的后半部分施加反正弦窗。这些操作会产生“平坦”时域波形,“平坦”时域波形随后可以下文所述的方式被替代波形所替代。
获取了要替代的波形之后,将其与存储于历史缓存中的先前接收的音频信号的时域波形段相比较,以识别最匹配的波形段。在一个实施方式中,历史缓存的长度为40ms。在一个进一步实施方式中,要替代的波形的长度为16ms,并将其与先前接收的音频信号内的16-ms长的波形段相比较。例如,在一个实施方式中,将要替代的16-ms长的波形与通过将至少16ms“移位”回历史缓存内而获取的16-ms长的波形段相比较。随后将要替代 的16-ms长的波形与在先前的16-ms长波形段之前有固定数量的样本的波形段相比较,以此类推。
将要替代的波形与从历史缓存中获取的每个候选波形段相比较的步骤可包括:计算要替代的波形与每个候选波形段之间的相似性度量,这种情况下,最匹配的波形段则为产生最大相似性度量的波形段。可替代地,将要替代的波形与从历史缓存中获取的每个候选波形段相比较的步骤可包括:计算要替代的波形与每个候选波形段之间的不相似性度量,这种情况下,最匹配的波形段则为产生最小不相似性度量的波形段。进一步根据后一种实施方式,可通过计算要替代的波形与从历史缓存中获取的每个候选波形段之间的幅度差总和(SMD)而计算不相似性度量。
在一个实施方式中,为了降低复杂度,对最匹配的波形段进行两级搜索。首先,对历史缓存中互相距离六个样本的波形段进行粗略搜索,并对要替代的波形的每六个样本和候选波形段施加相似性或不相似性度量。该粗略搜索产生初步最匹配波形。找到了初步最匹配波形之后,对紧挨初步最匹配波形的波形进行高分辨率搜索,以产生最终最匹配波形。
在步骤1706中找到历史缓存中的最匹配波形段之后,控制过程进入步骤1708。在步骤1708处,基于当前的估计的CNR确定加权因数。步骤1710中将使用加权因数通过获取要替代的波形与最匹配波形段的加权组合而产生替代波形。在一个实施方式中,估算的CNR越接近FFC阈值,施加在要替代的波形上的权重越大;估算的CNR越接近0dB,施加在最匹配波形上的权重越大。例如,假定β为要施加在要替代的波形上的加权因数,(1-β)为要施加在最匹配波形上的加权因数。那么,在一个实施方式中,估算的CNR为0dB时,β的值可设为0,估算的CNR大于或等于FFC阈值时,可设为1,估算的CNR处于0dB与FFC阈值之间时,设为通过线性内插获取的0与1之间的值。
在步骤1708中获取了加权因数之后,其随后用于生成要替代的波形与最匹配波形段的加权组合,从而产生替代波形,如步骤1710所示。如上所述,在一个实施方式中,估算的CNR小于或等于0dB时,替代波形 将与最匹配波形段相同,估算的CNR大于或等于FFC阈值时,替代波形将与要替代的波形相同,估算的CNR处于0与4dB之间时,替代波形将为最匹配波形段与要替代的波形的线性组合。
上述方法的优点在于,在噪声没有完全湮没原始波形的情况下,其将原始波形的至少某些新内容与替代波形混合。这可有助于避免严重噪声的较长时间段内相同外推波形不断重复,否则会产生非常有周期性的“嗡嗡声”替代信号。
在步骤1712中,用在步骤1710中获取的替代波形替代要替代的波形。在一个实施方式中,例如,如图18所示,IFFT逻辑块1808输出音频信号时,对音频信号的帧实施快衰落补偿,必须在这种替代发生之前先对替代波形施加正弦窗。在进一步实施方式中,估算的CNR低于FFC阈值的时间超过预定时间段时,可采用软静噪对替代波形进行衰减。
最后,在步骤1714中,流程图1700的方法结束。
C.用于增强FM接收机的音频质量的第二示例系统和方法
现在将对用于增强FM接收机的音频质量的系统的第二主要实施方式进行说明。如上所述,第一主要实施方式利用FM立体声解码器中的专用硬件生成提供L-R本底噪声的可靠表示的经正交解调的L-R噪声信号。该L-R本底噪声随后用于估算L+R本底噪声和CNR。但是,在第二主要实施方式中,假定没有专用硬件可用于产生经正交解调的L-R噪声。相反,在第二主要实施方式中,以足够高的采样率对L+R信号进行采样,以提取15和23kHz之间的阻带信号(见图1)。抑制19kHz立体声导频音,以及为避免某些乱真音而可能进行的进一步频带选择之后,该阻带信号的平均功率可与查找表和沿频率和CNR轴的内插法组合,以基于根据经验得出的表估算L-R本底噪声、L+R本底噪声和CNR。随后可以与上述第一主要实施方式基本相同的方式进行L+R弹跳抑制、L-R和L+R噪声抑制和L-R和L+R快衰落补偿。
图19为根据第二主要实施方式的可在FM接收机中实施的FM音频增强逻辑1900的各个部件的框图。如图19所示,FM音频增强逻辑1900 包括CNR估算逻辑1902、基于CNR的参数自适应逻辑1904、L+R弹跳抑制逻辑1906、L-R噪声抑制逻辑1908、L+R噪声抑制逻辑1910、L-R快衰落补偿逻辑1912、L+R快衰落补偿逻辑1914、阻带噪声提取逻辑1916、L-R下采样逻辑1918和L+R下采样逻辑1920。FM音频增强逻辑1900的每个部件可实施为硬件、软件,或硬件或软件的组合。根据一些实施方式,FM音频增强逻辑1900的一个或多个部件实施为由处理单元执行的固件,其中,所述处理单元可包括在FM接收机内,FM音频增强逻辑1900属于FM接收机的一部分,或可与这种FM接收机连接。
如图19所示,阻带噪声提取逻辑1916用于接收FM立体声解码器提供的L+R信号。如上所述,在足够高的采样率下对L+R信号进行采样,以提取FM解码器生成的复合基带信号的15至23kHz的阻带信号。在一个实施方式中,在48kHz下对L+R信号进行采样。阻带噪声提取逻辑1916对L+R信号进行滤波,以生成阻带噪声信号。在一个实施方式中,阻带噪声提取逻辑1916采用一系列滤波器生成阻带噪声信号。例如,如图20所示,在一个实施方式中,阻带噪声提取逻辑1916采用滤波器2000的级联,滤波器2000包括第一陷波滤波器2002、第二陷波滤波器2004、高通滤波器2006和带通滤波器2008,以生成阻带噪声信号。陷波滤波器2002和2004分别用于从L+R信号中消除19kHz音调。在一个实施方式中,陷波滤波器2002和2004分别包括相同二阶IR滤波器。高通滤波器2006用于消除与19kHz脉冲以下出现的有效信号频带关联的音频能量。带通滤波器2008用于传递19.4至21.4kHz的频带内的信号分量,以消除L+R信号中可能出现的其他乱真音。
阻带噪声提取逻辑1916生成的阻带噪声信号传递给CNR估算逻辑1902、L-R噪声抑制逻辑1908和L+R噪声抑制逻辑1910。
CNR估算逻辑1902使用阻带噪声信号为当前L-R和L+R帧估算CNR。如图21所示,在一个实施方式中,CNR估算逻辑1902包括第一逻辑块2102,第一逻辑块2102接收阻带噪声信号,并用其计算当前帧的阻带噪声能量。第二逻辑块2104随后计算阻带信号的预定最大信号能量与阻带噪声能量之间的比,从而生成当前帧的最大信噪比(MNR)。为当 前帧计算了MNR之后,第三逻辑块2106将MNR转换为当前帧的瞬时CNR。在一个实施方式中,将MNR转换为瞬时CNR的步骤包括:获取MNR的对数值,随后减去预定偏差,其中,预定偏差包括根据观察在L+R信号中出现噪声脉冲的MNR与预计没有音频信号时会出现噪声脉冲的CNR之间的差(例如,12dB)。为当前帧获取了瞬时CNR之后,该瞬时CNR由第四逻辑块2108进行平滑,以获取当前帧的平滑CNR,平滑CNR随后由CNR估算器1902输出,作为当前帧的估算的CNR。
L-R噪声抑制逻辑1908利用阻带噪声信号的功率估算进行L-R噪声抑制所需的L-R噪声的功率谱。由于阻带噪声的功率和L-R噪声的功率谱在频率和CNR上没有明显关系,要对给定子频带和给定的估算的CNR施加的偏差的量可根据经验确定,并存储在查找表中,查找表随后可用于进行该步骤。在一个实施方式中,查找表仅包括用于子频带/估算的CNR的所有可能组合的子集的偏差,使用表项之间的线性内插获取用于其他组合的偏差。
相似地,L+R噪声抑制逻辑1910利用阻带噪声信号的功率估算进行L+R噪声抑制所需的L+R噪声的功率谱。由于阻带噪声的功率和L+R噪声的功率谱在频率和CNR上没有明显关系,要对给定子频带和给定的估算的CNR施加的偏差的量可根据经验确定,并存储在查找表中,查找表随后可用于进行该步骤。在一个实施方式中,查找表仅包括用于子频带/估算的CNR的所有可能组合的子集的偏差,使用表项之间的线性内插获取其他组合的偏差。
L+R下采样逻辑1920用于将具有足够高的采样率以允许提取复合基带信号的15至23kHz的阻带信号的L+R信号在其被L+R弹跳抑制逻辑1906处理前转换到较低采样率。在一个实施方式中,L+R下采样逻辑1920用于将L+R信号从48kHz转换到32kHz。
在图19所示的实施方式中,从FM立体声解码器提供的L-R信号以与L+R信号相同的采样率提供。由此,FM音频增强逻辑1900还包括L-R下采样逻辑1918,L-R下采样逻辑1918用于将L-R信号在由L-R噪声抑 制逻辑1908处理之前从该采样率转换到较低采样率。在一个实施方式中,L-R下采样逻辑1918用于将L-R信号从48kHz转换到32kHz。
除上文所述的差别之外,FM音频增强逻辑1900的每个其他部件还以与图3所示的名称相似的对应物基本相同的方式进行操作。例如,基于CNR的参数自适应逻辑1904使用CNR估算逻辑1902输出的估算的CNR选择将用于控制进行L-R噪声抑制、L+R噪声抑制、L-R快衰落补偿和L+R快衰落补偿的方式的各个参数。
另外,L+R弹跳抑制逻辑1906将在从CNR估算逻辑1902接收的估算的CNR下降到预定阈值以下时对下采样L+R信号进行弹跳抑制,以生成经弹跳抑制的L+R信号。否则,L+R弹跳抑制逻辑1906将输出非修正版的下采样L+R信号,作为经弹跳抑制的L+R信号。
图22示出了根据一个实施方式进行L+R弹跳抑制的方法的高水平流程图2200。流程图2200的方法例如可由上文所述的图19所示的FM音频增强逻辑1900的部件进行。但是,本方法并不限于该实施方式。
如图22所示,流程图2200的方法从步骤2202开始,在步骤2202中,从FM立体声解码器生成的L+R信号中提取阻带噪声信号。例如,该步骤可由上文所述的图19所示的阻带噪声提取逻辑1916进行。在步骤2204中,基于阻带噪声信号计算估算的CNR。例如,该步骤可由上文所述的图19所示的CNR估算逻辑1902进行。在步骤2206中,确定估算的CNR是否低于预定阈值。在步骤2208中,响应于确定估算的CNR低于预定阈值,在L+R信号中对噪声脉冲进行检测,并将检测到的噪声脉冲从中消除,其中,噪声脉冲的检测包括使用多个噪声脉冲模板。例如,步骤2206和2208可由上文所述的图19所示的L+R弹跳抑制逻辑1906进行。
L-R噪声抑制逻辑1908用于接收下采样L-R信号并在频域中对其实施单声道噪声抑制,以生成经噪声抑制的L-R信号。相似地,L+R噪声抑制逻辑1908用于从L+R弹跳抑制逻辑1906接收经弹跳抑制的L+R信号并在频域中对其实施单声道噪声抑制,以生成经噪声抑制的L+R信号。
图23示出了根据一个实施方式进行L-R和L+R噪声抑制的方法的高水平流程图2300。流程图2300的方法例如可由上文所述的图19所示的FM音频增强逻辑1900的部件进行。但是,本方法并不限于该实施方式。
如图23所示,流程图2300的方法从步骤2302开始,在步骤2302中,从FM立体声解码器生成的L+R信号中提取阻带噪声信号。例如,该步骤可由上文所述的图19所示的阻带噪声提取逻辑1916进行。在步骤2304中,基于阻带噪声信号计算估算的CNR。例如,该步骤可由上文所述的图19所示的CNR估算逻辑1902进行。在步骤2306中,基于阻带噪声信号和估算的CNR对FM立体声解码器生成的L-R信号实施单声道噪声抑制。例如,该步骤可由上文所述的图19所示的L-R噪声抑制逻辑1908进行。在步骤2308中,基于阻带噪声信号和估算的CNR对L+R信号实施单声道噪声抑制。例如,该步骤可由上文所述的图19所示的L+R噪声抑制逻辑1910进行。
图24示出了根据一个实施方式的可进行流程图2300的步骤2306的方法的高水平流程图2400。如图24所示,流程图2400的方法从步骤2402开始,在步骤2402中,基于阻带噪声信号的功率估算预期L-R噪声信号的功率谱。在步骤2404中,基于估算的CNR获取预期L-R噪声衰减。在步骤2406中,基于L-R信号和L-R噪声信号的功率谱为L-R信号的频域表示的多个子频带中的每个来获取SNR。在步骤2408中,要实施到L-R信号的频域表示的每个子频带的噪声抑制增益的量基于步骤2404中确定的预期L-R噪声衰减和步骤2406中获取的SNR而确定。
图25示出了根据一个实施方式的可进行流程图2300的步骤2308的方法的高水平流程图2500。如图25所示,流程图2500的方法从步骤2502开始,在步骤2502中,基于阻带噪声信号的功率估算L+R噪声信号的功率谱。在步骤2504中,基于估算的CNR确定预期L+R噪声衰减。在步骤2506中,基于L+R信号和L+R噪声信号的功率谱为L+R信号的频域表示的多个子频带中的每个子频带获取SNR。在步骤2508中,要实施到L+R信号的频域表示的每个子频带的噪声抑制增益的量基于步骤2504中确定的预期L+R噪声衰减和步骤2506中获取的SNR而确定。
L-R快衰落补偿逻辑1912用于接收L-R噪声抑制逻辑1908生成的经噪声抑制的L-R信号,并对其实施快衰落补偿,以生成增强L-R信号。相似地,L+R快衰落补偿逻辑1914用于接收L+R噪声抑制逻辑1910生成的经噪声抑制的L+R信号,并对其实施快衰落补偿,以生成增强L+R信号。如上所述,快衰落补偿需要利用新形式的波形外推法替代非常低的CNR下的L-R和L+R信号的噪声段。
图26示出了根据一个实施方式进行L-R和L+R快衰落补偿的方法的高水平流程图2600。流程图2600的方法例如可由上文所述的图19所示的FM音频增强逻辑1900的部件进行。但是,本方法并不限于该实施方式。
如图26所示,流程图2600的方法从步骤2602开始,在步骤2602中,从FM立体声解码器生成的L+R信号中提取阻带噪声信号。例如,该步骤可由上文所述的图19所示的阻带噪声提取逻辑1916进行。在步骤2604中,基于阻带噪声信号计算估算的CNR。例如,该步骤可由上文所述的图19所示的CNR估算逻辑1902进行。在步骤2606中,确定估算的CNR是否低于预定阈值。在步骤2608中,响应于确定估算的CNR低于预定阈值,FM立体声解码器生成的L-R信号或L+R信号的波形段用通过波形外推法的形式生成的波形段替代。例如,步骤2606和2608可由上文所述的图19所示的L-R快衰落补偿逻辑1912或L+R快衰落补偿逻辑1914而进行。
FM音频增强逻辑1900生成的增强L-R信号和增强L+R信号随后可由FM接收机以已知方式组合,以生成L和R音频输出声道。
上文的第二主要实施方式对从FM立体声解码器生成的L+R信号中提取阻带噪声信号的过程进行了说明,但相关领域的技术人员应理解的是,还可从FM立体声解码器生成的L-R信号中提取阻带噪声信号。由此,在一个替代实施方式中,阻带噪声提取逻辑1916用于从FM立体声解码器生成的L-R信号中提取阻带噪声信号,而不是从FM立体声解码器生成的L+R信号中提取阻带噪声信号。
D.总结
上文对本发明的各个实施方式进行了说明,但应理解的是,其仅作为示例,并非用于限制。相关领域的技术人员应理解的是,只要不脱离所附权利要求限定的本发明的主旨和范围,可对其形式和细节进行各种改变。
例如,上文利用功能组成块和对特定功能的性能及其关系进行说明的方法步骤对本发明进行了说明。为了便于说明,本文随机限定了这些功能组成块和方法步骤的界限。只要特定功能及其关系以合适方式进行,可限定替代界限。因此,任何这种替代界限都应符合本发明的范围和主旨。本领域的技术人员应理解的是,这些功能组成块可由分立元件、专用集成电路、处理器执行的适当软件等,或其任何组合执行。因此,本发明的幅度和范围不应限于任何上述例示性实施方式,而仅应根据以下权利要求及其等同物进行限定。
另一个示例为,本文所述的各个实施方式基于L-R噪声信号或阻带噪声信号计算估算的CNR,随后使用估算的CNR控制一个或多个过程的执行。但是,应注意的是,除估算的CNR之外的各种FM声道(channel,信道)质量度量(为了简明起见,本文其他地方简称为“声道质量度量”)可基于L-R噪声信号或阻带噪声信号而计算,并用于控制这些过程的执行。例如,还可使用SNR或任何其他声道质量度量。
另外,在上文的说明中,对L+R信号进行弹跳抑制,对L-R信号和经弹跳抑制的L+R信号进行噪声抑制,对经噪声抑制的L-R信号和经噪声抑制的L+R信号进行快衰落补偿。但是,应理解的是,可分别对FM立体声解码器生成的L+R和L-R信号或这些L+R或L-R信号的处理版直接进行任何上述过程。因此,在所附权利要求中,提到的任何L+R信号都广泛指FM立体声解码器生成的L+R信号,以及这种L+R信号的任何处理版,提到的任何L-R信号都广泛指FM立体声解码器生成的L-R信号,以及这种L-R信号的任何处理版。另外,本文所述的对L+R信号和/或L-R信号实施的任何信号处理技术还可实施于通过将L+R信号和L-R信号相加而获取的L信号,和/或通过从L+R信号中减去L-R信号而获取的R信号上。