摘要:介绍了语音信号的数字化噪声抑制技术。该技术通过PCM编码对模拟语音信号数字化,再以CPLD器件进行数字化噪声抑制处理,然后解码为语音输出,从而得到优良的语音噪声抑制效果,并可通过软件调节噪声抑制参数。还以应用实例介绍了电路原理,说明了设计要点。
关键词:噪声抑制 阈值 延时时间 PCM编解码 CPLD器件
语音信号的噪声抑制技术是基于人耳的声音屏蔽效应的,即当有较强的声音信号时,较小的噪声信号将被屏蔽而不易被听到。
在具有噪声抑制功能的语音通信设备中,没有语音信号时噪声抑制电路将信道关闭,使噪声信号不能到达语音终端,避免了噪声出现;语音信号来到时,噪声抑制电路自动打开信道,这时虽然噪声语音一起送到语音终端,但由于声音屏蔽效应,噪声的存在可以忽略。
模式式的噪声抑制电路直接对语音模拟信号进行处理,通常主要由取样放大器、模拟比较器、模拟开关、阻容延时器件等组成。因其集成度低、参数调整困难、设定的噪声抑制参数易受环境因素影响而漂移,使得噪声抑制性能难以得到保证。
在为某国孙工程研制新一代语音指挥通信设备时,为了避免模拟式噪声抑制技术的缺点,采用了数字化的噪声抑制技术。这一技术,是在对模拟语音信号进行PCM编码后,再用CPLD(复杂可编程逻辑器件)对PCM码流进行数字化噪声抑制处理,然后将PCM信号解码还原为模拟语音信号。结果,不仅获得了优良的噪声抑制效果,而且能够用软件调节噪声抑制参数,设备的集成主和稳定性都有显著提高。
1 噪声抑制电路的主要技术参数
噪声抑制电路的主要技术参数为:噪声抑制阈值、前道时时间、后延时时间。
噪声抑制阀值是指打开语音信道的门限电平值。在阈值之下的信号认为是噪声,关闭语音信道;在阈值之上的信号则认为是语音,打开语音信道。这一阈值可根据环境噪声的大小、外来干扰的严重程度及语音信号的幅度而进行设置。例如,当语音信噪比为30dB时,噪声抑制阈值可设为32mV左右。
由于语音和噪声两种信号并不总是能够完全区分开的,因此在信号幅度超过噪声抑制阈值或回落到阈值之下时,需要分别进行延时和后延时。
前延时时间是指语音信号在超过阈值后到语音信道打开的延时时间。这一时间太长将造成语音的起始音素被切除(称为“头切”),是不能允许的。但这一时间又不能太短,太短的话任何幅度超过噪声抑制阈值的突发的短暂干扰都会立刻打开语音通道并将这干扰送到语音终端,破坏静音效果。为尽可能地吸收这类干扰又不至于造成“头切”,根据语音声学特征的有关统计资料与经验数值,前延时时间可在0.5~4ms之间选择。
后延时时间是指在噪声抑制门限被打开并自己传送语音时,从语音信号幅度回落至噪声抑制阈值之下到语音信道关闭的延时时间。由于语音信号波形的动态范围很大,讲话时又随着语气的变化而起伏停顿,因此后延时时间太短会造成语音的断续,影响语音传送质量。后延时时间太长,则造成语音停顿时噪声拖尾,同样影响语音质量。为兼顾这两方面,后延时时间的量值范围约为0.05~0.5s左右。
由于语音特点因人而异,环境噪声和外界干扰情况又常有不同,所以上述的噪声抑制三参数经常需要在语音通信的过程中进行调节。在使用模拟噪声抑制电路时,这些参数是用电位器或开关来调节的。在使用模拟噪声抑制电路时,这些参数是用电位器或开关来调节的。采用数字化噪声抑制技术后,通过软件就可以设定和调节这些参数了。
2 语音信号的数字化
采用数字化噪声抑制技术,必须先将语音信号数字化。模拟语音信号的数字化有多种方法,最通用的是按照G.711标准进行PCM编码[1]。对于频带为300~3400Hz的语音信号,采用2.048MHz的取样时钟,以8kHz的速率进行8位取样,取样数据按A律编码,偶数位交替反转。多路语音信号可以分配不同的取样时隙,32个时隙(125μs)组成一帧。
PCM编解码芯片选用National Semiconductor公司的TP3094[2]。该芯片为44引脚PLCC封装,单一5V供电,集成了四路PCM编解码电路,压扩方式为A/μ律可选,片内自带电压基准、低通接收滤波器和带通发送滤波器,通过外接电阻可以调节输入信号的增益。
TP3094可采用长帧和短帧两种同步方式,外接帧信号和2.048MHz的时钟即可工作。TP3094在进行PCM编解码时的工作方式有8bit和32bit两种,以8bit方式工作时需为每路语音的PCM码提供单独的帧同步信号,而以32bit方式工作时只要为第一个时隙提供短帧同步信号即可自动完成对其后连续的另三路PCM语音编码同步。在以32bit方式作时,还可以采用多片TP3094芯片级联工作。
图1所示为两片TP30094级联成为八路PCM语音编解码电路。图中TP3094的VCI0~VXI3为四种语音输入端,GXO0~GXO3为各路的增益调节端,在VXI和GXO之间接一电阻,此电阻与VXI端至信号源间的电阻比值可决定该路语音信号的输入增益。VRO0~VRO3为解码后的四路模拟语音信号输出端。电容C1、C2用于滤波。外接的2.048MHz主时钟脉冲冲送到两片TP3094的MCLK端,8kHz的帧信号F0(由CPLD产生)送到第一片TP3094的FSX0和FSR0端,再将第一片TP3094的FSX和FSR1分别连到第二片TP3094的FSX0和FSR0端,就完成了两片芯片的级联。两片以上的级联亦可由此类推。为避免数字信号对模拟信号的干扰,电路中数字部分和模拟部分的供电分别布线后再接到单一5伏电源。
两片TP3094的PCM信号输出端DX并联后送到数字噪声抑制电路,经数字噪声抑制电路处理后的PCM信号再送回两片TP3094的输入端DR进行解码。TSX0、TSX1是开路沟道输出端,R1、R2为上拉电阻。在所分配的时隙输出PCM信号时,TSX0、TSX1为低电平,可提供给CPLD作为控制信号。
TP3094工作于32bit短帧方式时的时序图如图2所示。
输入和输出的PCM信号DR、DX包含了从CH0至CH3的四路数字语音信号,每路为一个时隙,8个bit。每路语音的PCM编码中D7为符号位。D6~D0为数值位。FSX1和FSR1可用于级联下一个芯片。
3 数字化噪声抑制电路的原理框图
数字化噪声抑制电路的原理框图如图3所示。由于采用的是“自顶向下”的CPLD设计方法,这一电原理框图本身就是最顶层的图形设计文件(.gdf文件)。图中的各个组成部分,根据需要分别采用了基本逻辑门电路、参数化模块、以缺省符合(Default Symbol)表示的文本输入(Text Entry)和宏功能逻辑单元(Mega Function)组合。
从PCM解码输出端DX输出表示八路语音信号的64bit串行信号,进入64位的参数化移位寄存器模块进行串/并变挛,变换后的输出经64位参数化锁存器模块锁存,每帧刷新一次。锁存信号以八位为一路,依次送到八个噪声抑制控制器(Symboll)。每个噪声抑制控制器独自控制一路语音信道,将PCM信号的偶数位取反后,再将除符合位(最高位)以外的七位数字与由S[6..0]设定的噪声抑制门限值进行比较,比较结果输出给延时器(Symbol2),延时器输出则作为控制信号送到噪声抑制控制器。各噪声抑制控制器输出的PCM信号经64位参数化称位寄存器模块完成并/串行变换后恢复成串行PCM码流送往两片TP3094解码成为具有噪声抑制效果的语音信号。噪声抑制控制器还输出八路指示信号LED[7..0]至八只发光二极管作为各语音信道的噪声抑制门限指示。
Symbol3用来产生TP3094要求的帧脉冲F0,提供移闰寄存器、锁存器、噪声抑制控制器所需的时序信号,并为延时器提供不同的时钟信号;P0、P1用来选择PCM帧32个时隙中的哪八个时隙用于本片作语音噪声抑制处理;TSET[3..0]用来选择CLK1、CLK2的分频系数以调整噪声抑制延时时间。这些输入都可以通过外部数字信号进行设置和调节。
按以上方法对PCM信号进行的数字化噪声抑制处理使语音信号产生一帧(125μs)的固定时延,但人耳的听觉对这一时延是完全不能觉察的。
4 CPLD设计要点
CPLD器件选用Altera公司的EPF6016ATC100集成电路[3],内含16000个等效门,1320个逻辑单元,采用100-Pin TQFP封装。设计软件使用MAX+PLUS II 10.0版本[4],下面介绍设计要点。
4.1 Symbol1的设计
Symbol1实施噪声抑制控制功能,首先通过偶数位取反将PCM码转换成便于作大小比较的码型,再将D[6..0]与S[6..0]输入的设定值进行噪声抑制门限比较。比较结果从D端输出到延时器,并从B端收延时信号。根据比较结果和延时状态决定是将输入的PCM信号原样送往输出,还是将代表无语音信号的“55H”码送往输出。
Symbol1的逻辑功能由AHDL语言编写,具体如下:
Subdesign symbol1
(A[7..0],S[6..0],B:input;
Y[7..0],D,L:output;)
variable
E[6..0]:node;
begin
E6=!A6;E5=A5;E4=!A4;
E3=A3;E2=!A2;E1=A1;
E0=!A0;
L=!B;
if(E[6..0]>S[6..0]) then
(D) = B "1";
end if;
if (B) then
(Y[7..0])=H"55";
else(Y[7..0]) = A[7..0];
end if;
end;
以上文本通过编译后即可建为缺省图形符号Symbol1。
4.2 Symbol2的设计
Symbol2实现前后延时功能,采用图形输入,电路图见图4。
图4中CLK1、CLK2为前、后延时的计时脉冲,由2.048MHz的MCLK主时钟经分频后得到,分别用于前延时计数器Countr1和后延时计数器Counter2计时。当无语音信号时,噪声抑制控制器Symbol1的输出D为“0”,Counter2计至Q2端为“1”后停止计数,并通过反相器将CLK2的输入封住。Q2端的高电平同时对Counter1清零,使B输出为“1”,噪声抑制控制器输出PCM码“55H”,即无语音信号。
当接收到的PCM信号幅度超过设定的噪声抑制阈值时,D变为“1”,Counter2被清零,此时Counter1脱离清零状态开始计数器。Counter1计至Q1为“1”后B端输出电平从“1”转为“0”,前延时结束,Symbol1的输出从“55H”变为转发输入的PCM码。与此同时,B端的低电平将CLK1时钟封住,只要Counter1不被清零,B始终为低。
如果接收到的PCM信号不是连续的语音而是突发噪声,幅度只是短暂地超过设定的噪声抑制阈值,那么D变为“1”后在Counter1未来得及将B变为“0”时D又回到了“0”,B的电平就一直是“1”,PCM输出码也始终是“55H”,突发的噪声就不会传到输出端。
在话音信号持续期间,信号幅度在短暂时间内低于噪声抑制阈值虽然使得D端电平有时为“0”,从而使Counter2有时脱离清零状态开始计数,但只要信号幅度低于噪声抑制阈值的时间不超过设定的后延时时间,Counter2就总是在计数未满时就被再次清零,其输出一直保持为“0”,使B也一直为“0”,输出与输入的PCM信号始终保持一致,语音不会发生继续。只有当输入信号幅度低于噪声抑制阈值的时间超过设定的后延时时间后,Q2输出“1”,才使Counter1被清零,使B为“1”,输出PCM码“55H”。再有信号来时,仍按上述流程工作。
4.3 时序的设计
数字化噪声抑制电路必须严格按照标准的PCM时序工作,电路由外部提供2.048MHz的主时钟信号MCLK和帧同步信号Fi。Fi用于本部分电路PCM信号与其它电路的PCM信号组帧时进行同步,在不需要该功能时可将Fi输入端接高电平。
Symbol3在MCLK的作用下产生PCM编解码电路TP3094所需的帧同步信号F0,又从TP3094接收TSX0和TSX1信号以产生数字噪声抑制处理所需的时序信号TSX、TT。为了保证PCM信号的正确读入、锁存、处理和移位输出,这些信号间的时序关系必须如图5所示。
TSX由TSX0、TSX1经“与非”后得到,在每帧中所选定的八个时隙传输PCM信号时为高电平。TSX为串/并行移位寄存器提供赋能信号,在主时钟MCLK的下降沿将来自DX端的PCM信号读入寄存器并移位寄存。TSX同时是PCM信号从DR端输出的三态门控制信号。
TT是CPLD噪声抑制时序中的一个重要控制信号,由TSX延时半个主时钟周期(244ns)后取反得到。由于TT的延时作用,使得图3中的参数化锁存器模块能在输入的PCM信号完成串/并行变换后随即于TT的升沿将数据锁存住。在通过并/串行移位寄存器输出PCM信号时,TT为高电平时把并行数据装载进移位寄存器;TT为低电平时MCLK的上升沿将寄存器内的数据逐位地串行移出至DR端。
CPLD产生的时序信号只能满足图2和图5的要求,实现起来并不复杂,可用简单的图形输入或文本输入实现。值得注意的是,正确使用MAX+PLUS II软件中的“Assign-Clique”[4]功能,为时序相关的功能模块指定相同的“Clique”,能够使波形仿真的结果明显得到优化。
5 应用成果
按照以上设计,用两片TP3094和一片CPLD芯片再加上少量外围器件组成的数字化噪声抑制电路,改造了某语音指挥通信设备中采用模拟电路噪声抑制技术的八路语音指挥通信电路板,得到了优良的语音噪声抑制效果。新的电路板继而成功地应用到新一代语音指挥通信设备上,交付用户使用。更多路的数字化噪声抑制电路也已试验成功。