探析語音信號(hào)的數(shù)字化噪聲抑制技術(shù)
時(shí)間:
若木1由 分享
摘要:介紹了語音信號(hào)的數(shù)字化噪聲抑制技術(shù)。該技術(shù)通過PCM編碼對模擬語音信號(hào)數(shù)字化,再以CPLD器件進(jìn)行數(shù)字化噪聲抑制處理,然后解碼為語音輸出,從而得到優(yōu)良的語音噪聲抑制效果,并可通過軟件調(diào)節(jié)噪聲抑制參數(shù)。還以應(yīng)用實(shí)例介紹了電路原理,說明了設(shè)計(jì)要點(diǎn)。
關(guān)鍵詞:噪聲抑制 閾值 延時(shí)時(shí)間 PCM編解碼 CPLD器件
語音信號(hào)的噪聲抑制技術(shù)是基于人耳的聲音屏蔽效應(yīng)的,即當(dāng)有較強(qiáng)的聲音信號(hào)時(shí),較小的噪聲信號(hào)將被屏蔽而不易被聽到。
在具有噪聲抑制功能的語音通信設(shè)備中,沒有語音信號(hào)時(shí)噪聲抑制電路將信道關(guān)閉,使噪聲信號(hào)不能到達(dá)語音終端,避免了噪聲出現(xiàn);語音信號(hào)來到時(shí),噪聲抑制電路自動(dòng)打開信道,這時(shí)雖然噪聲語音一起送到語音終端,但由于聲音屏蔽效應(yīng),噪聲的存在可以忽略。
模式式的噪聲抑制電路直接對語音模擬信號(hào)進(jìn)行處理,通常主要由取樣放大器、模擬比較器、模擬開關(guān)、阻容延時(shí)器件等組成。因其集成度低、參數(shù)調(diào)整困難、設(shè)定的噪聲抑制參數(shù)易受環(huán)境因素影響而漂移,使得噪聲抑制性能難以得到保證。
在為某國孫工程研制新一代語音指揮通信設(shè)備時(shí),為了避免模擬式噪聲抑制技術(shù)的缺點(diǎn),采用了數(shù)字化的噪聲抑制技術(shù)。這一技術(shù),是在對模擬語音信號(hào)進(jìn)行PCM編碼后,再用CPLD(復(fù)雜可編程邏輯器件)對PCM碼流進(jìn)行數(shù)字化噪聲抑制處理,然后將PCM信號(hào)解碼還原為模擬語音信號(hào)。1 噪聲抑制電路的主要技術(shù)參數(shù)
噪聲抑制電路的主要技術(shù)參數(shù)為:噪聲抑制閾值、前道時(shí)時(shí)間、后延時(shí)時(shí)間。
噪聲抑制閥值是指打開語音信道的門限電平值。在閾值之下的信號(hào)認(rèn)為是噪聲,關(guān)閉語音信道;在閾值之上的信號(hào)則認(rèn)為是語音,打開語音信道。這一閾值可根據(jù)環(huán)境噪聲的大小、外來干擾的嚴(yán)重程度及語音信號(hào)的幅度而進(jìn)行設(shè)置。例如,當(dāng)語音信噪比為30dB時(shí),噪聲抑制閾值可設(shè)為32mV左右。
由于語音和噪聲兩種信號(hào)并不總是能夠完全區(qū)分開的,因此在信號(hào)幅度超過噪聲抑制閾值或回落到閾值之下時(shí),需要分別進(jìn)行延時(shí)和后延時(shí)。
前延時(shí)時(shí)間是指語音信號(hào)在超過閾值后到語音信道打開的延時(shí)時(shí)間。這一時(shí)間太長將造成語音的起始音素被切除(稱為“頭切”),是不能允許的。但這一時(shí)間又不能太短,太短的話任何幅度超過噪聲抑制閾值的突發(fā)的短暫干擾都會(huì)立刻打開語音通道并將這干擾送到語音終端,破壞靜音效果。為盡可能地吸收這類干擾又不至于造成“頭切”,根據(jù)語音聲學(xué)特征的有關(guān)統(tǒng)計(jì)資料與經(jīng)驗(yàn)數(shù)值,前延時(shí)時(shí)間可在0.5~4ms之間選擇。
后延時(shí)時(shí)間是指在噪聲抑制門限被打開并自己傳送語音時(shí),從語音信號(hào)幅度回落至噪聲抑制閾值之下到語音信道關(guān)閉的延時(shí)時(shí)間。由于語音信號(hào)波形的動(dòng)態(tài)范圍很大,講話時(shí)又隨著語氣的變化而起伏停頓,因此后延時(shí)時(shí)間太短會(huì)造成語音的斷續(xù),影響語音傳送質(zhì)量。后延時(shí)時(shí)間太長,則造成語音停頓時(shí)噪聲拖尾,同樣影響語音質(zhì)量。為兼顧這兩方面,后延時(shí)時(shí)間的量值范圍約為0.05~0.5s左右。
由于語音特點(diǎn)因人而異,環(huán)境噪聲和外界干擾情況又常有不同,所以上述的噪聲抑制三參數(shù)經(jīng)常需要在語音通信的過程中進(jìn)行調(diào)節(jié)。在使用模擬噪聲抑制電路時(shí),這些參數(shù)是用電位器或開關(guān)來調(diào)節(jié)的。在使用模擬噪聲抑制電路時(shí),這些參數(shù)是用電位器或開關(guān)來調(diào)節(jié)的。采用數(shù)字化噪聲抑制技術(shù)后,通過軟件就可以設(shè)定和調(diào)節(jié)這些參數(shù)了。
2 語音信號(hào)的數(shù)字化
采用數(shù)字化噪聲抑制技術(shù),必須先將語音信號(hào)數(shù)字化。模擬語音信號(hào)的數(shù)字化有多種方法,最通用的是按照G.711標(biāo)準(zhǔn)進(jìn)行PCM編碼[1]。對于頻帶為300~3400Hz的語音信號(hào),采用2.048MHz的取樣時(shí)鐘,以8kHz的速率進(jìn)行8位取樣,取樣數(shù)據(jù)按A律編碼,偶數(shù)位交替反轉(zhuǎn)。多路語音信號(hào)可以分配不同的取樣時(shí)隙,32個(gè)時(shí)隙(125μs)組成一幀。
PCM編解碼芯片選用National Semiconductor公司的TP3094[2]。該芯片為44引腳PLCC封裝,單一5V供電,集成了四路PCM編解碼電路,壓擴(kuò)方式為A/μ律可選,片內(nèi)自帶電壓基準(zhǔn)、低通接收濾波器和帶通發(fā)送濾波器,通過外接電阻可以調(diào)節(jié)輸入信號(hào)的增益。
TP3094可采用長幀和短幀兩種同步方式,外接幀信號(hào)和2.048MHz的時(shí)鐘即可工作。TP3094在進(jìn)行PCM編解碼時(shí)的工作方式有8bit和32bit兩種,以8bit方式工作時(shí)需為每路語音的PCM碼提供單獨(dú)的幀同步信號(hào),而以32bit方式工作時(shí)只要為第一個(gè)時(shí)隙提供短幀同步信號(hào)即可自動(dòng)完成對其后連續(xù)的另三路PCM語音編碼同步。在以32bit方式作時(shí),還可以采用多片TP3094芯片級聯(lián)工作。
圖1所示為兩片TP30094級聯(lián)成為八路PCM語音編解碼電路。圖中TP3094的VCI0~VXI3為四種語音輸入端,GXO0~GXO3為各路的增益調(diào)節(jié)端,在VXI和GXO之間接一電阻,此電阻與VXI端至信號(hào)源間的電阻比值可決定該路語音信號(hào)的輸入增益。VRO0~VRO3為解碼后的四路模擬語音信號(hào)輸出端。電容C1、C2用于濾波。外接的2.048MHz主時(shí)鐘脈沖沖送到兩片TP3094的MCLK端,8kHz的幀信號(hào)F0(由CPLD產(chǎn)生)送到第一片TP3094的FSX0和FSR0端,再將第一片TP3094的FSX和FSR1分別連到第二片TP3094的FSX0和FSR0端,就完成了兩片芯片的級聯(lián)。兩片以上的級聯(lián)亦可由此類推。為避免數(shù)字信號(hào)對模擬信號(hào)的干擾,電路中數(shù)字部分和模擬部分的供電分別布線后再接到單一5伏電源。
兩片TP3094的PCM信號(hào)輸出端DX并聯(lián)后送到數(shù)字噪聲抑制電路,經(jīng)數(shù)字噪聲抑制電路處理后的PCM信號(hào)再送回兩片TP3094的輸入端DR進(jìn)行解碼。TSX0、TSX1是開路溝道輸出端,R1、R2為上拉電阻。在所分配的時(shí)隙輸出PCM信號(hào)時(shí),TSX0、TSX1為低電平,可提供給CPLD作為控制信號(hào)。
TP3094工作于32bit短幀方式時(shí)的時(shí)序圖如圖2所示。
輸入和輸出的PCM信號(hào)DR、DX包含了從CH0至CH3的四路數(shù)字語音信號(hào),每路為一個(gè)時(shí)隙,8個(gè)bit。每路語音的PCM編碼中D7為符號(hào)位。D6~D0為數(shù)值位。FSX1和FSR1可用于級聯(lián)下一個(gè)芯片。
3 數(shù)字化噪聲抑制電路的原理框圖
數(shù)字化噪聲抑制電路的原理框圖如圖3所示。由于采用的是“自頂向下”的CPLD設(shè)計(jì)方法,這一電原理框圖本身就是最頂層的圖形設(shè)計(jì)文件(.gdf文件)。圖中的各個(gè)組成部分,根據(jù)需要分別采用了基本邏輯門電路、參數(shù)化模塊、以缺省符合(Default Symbol)表示的文本輸入(Text Entry)和宏功能邏輯單元(Mega Function)組合。
從PCM解碼輸出端DX輸出表示八路語音信號(hào)的64bit串行信號(hào),進(jìn)入64位的參數(shù)化移位寄存器模塊進(jìn)行串/并變攣,變換后的輸出經(jīng)64位參數(shù)化鎖存器模塊鎖存,每幀刷新一次。鎖存信號(hào)以八位為一路,依次送到八個(gè)噪聲抑制控制器(Symboll)。每個(gè)噪聲抑制控制器獨(dú)自控制一路語音信道,將PCM信號(hào)的偶數(shù)位取反后,再將除符合位(最高位)以外的七位數(shù)字與由S[6..0]設(shè)定的噪聲抑制門限值進(jìn)行比較,比較結(jié)果輸出給延時(shí)器(Symbol2),延時(shí)器輸出則作為控制信號(hào)送到噪聲抑制控制器。各噪聲抑制控制器輸出的PCM信號(hào)經(jīng)64位參數(shù)化稱位寄存器模塊完成并/串行變換后恢復(fù)成串行PCM碼流送往兩片TP3094解碼成為具有噪聲抑制效果的語音信號(hào)。噪聲抑制控制器還輸出八路指示信號(hào)LED[7..0]至八只發(fā)光二極管作為各語音信道的噪聲抑制門限指示。
Symbol3用來產(chǎn)生TP3094要求的幀脈沖F0,提供移閏寄存器、鎖存器、噪聲抑制控制器所需的時(shí)序信號(hào),并為延時(shí)器提供不同的時(shí)鐘信號(hào);P0、P1用來選擇PCM幀32個(gè)時(shí)隙中的哪八個(gè)時(shí)隙用于本片作語音噪聲抑制處理;TSET[3..0]用來選擇CLK1、CLK2的分頻系數(shù)以調(diào)整噪聲抑制延時(shí)時(shí)間。這些輸入都可以通過外部數(shù)字信號(hào)進(jìn)行設(shè)置和調(diào)節(jié)。
按以上方法對PCM信號(hào)進(jìn)行的數(shù)字化噪聲抑制處理使語音信號(hào)產(chǎn)生一幀(125μs)的固定時(shí)延,但人耳的聽覺對這一時(shí)延是完全不能覺察的。
4 CPLD設(shè)計(jì)要點(diǎn)
CPLD器件選用Altera公司的EPF6016ATC100集成電路[3],內(nèi)含16000個(gè)等效門,1320個(gè)邏輯單元,采用100-Pin TQFP封裝。設(shè)計(jì)軟件使用MAX+PLUS II 10.0版本[4],下面介紹設(shè)計(jì)要點(diǎn)。
4.1 Symbol1的設(shè)計(jì)
Symbol1實(shí)施噪聲抑制控制功能,首先通過偶數(shù)位取反將PCM碼轉(zhuǎn)換成便于作大小比較的碼型,再將D[6..0]與S[6..0]輸入的設(shè)定值進(jìn)行噪聲抑制門限比較。比較結(jié)果從D端輸出到延時(shí)器,并從B端收延時(shí)信號(hào)。根據(jù)比較結(jié)果和延時(shí)狀態(tài)決定是將輸入的PCM信號(hào)原樣送往輸出,還是將代表無語音信號(hào)的“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;
以上文本通過編譯后即可建為缺省圖形符號(hào)Symbol1。
4.2 Symbol2的設(shè)計(jì)
Symbol2實(shí)現(xiàn)前后延時(shí)功能,采用圖形輸入,電路圖見圖4。
圖4中CLK1、CLK2為前、后延時(shí)的計(jì)時(shí)脈沖,由2.048MHz的MCLK主時(shí)鐘經(jīng)分頻后得到,分別用于前延時(shí)計(jì)數(shù)器Countr1和后延時(shí)計(jì)數(shù)器Counter2計(jì)時(shí)。當(dāng)無語音信號(hào)時(shí),噪聲抑制控制器Symbol1的輸出D為“0”,Counter2計(jì)至Q2端為“1”后停止計(jì)數(shù),并通過反相器將CLK2的輸入封住。Q2端的高電平同時(shí)對Counter1清零,使B輸出為“1”,噪聲抑制控制器輸出PCM碼“55H”,即無語音信號(hào)。
當(dāng)接收到的PCM信號(hào)幅度超過設(shè)定的噪聲抑制閾值時(shí),D變?yōu)?ldquo;1”,Counter2被清零,此時(shí)Counter1脫離清零狀態(tài)開始計(jì)數(shù)器。Counter1計(jì)至Q1為“1”后B端輸出電平從“1”轉(zhuǎn)為“0”,前延時(shí)結(jié)束,Symbol1的輸出從“55H”變?yōu)檗D(zhuǎn)發(fā)輸入的PCM碼。與此同時(shí),B端的低電平將CLK1時(shí)鐘封住,只要Counter1不被清零,B始終為低。
如果接收到的PCM信號(hào)不是連續(xù)的語音而是突發(fā)噪聲,幅度只是短暫地超過設(shè)定的噪聲抑制閾值,那么D變?yōu)?ldquo;1”后在Counter1未來得及將B變?yōu)?ldquo;0”時(shí)D又回到了“0”,B的電平就一直是“1”,PCM輸出碼也始終是“55H”,突發(fā)的噪聲就不會(huì)傳到輸出端。
在話音信號(hào)持續(xù)期間,信號(hào)幅度在短暫時(shí)間內(nèi)低于噪聲抑制閾值雖然使得D端電平有時(shí)為“0”,從而使Counter2有時(shí)脫離清零狀態(tài)開始計(jì)數(shù),但只要信號(hào)幅度低于噪聲抑制閾值的時(shí)間不超過設(shè)定的后延時(shí)時(shí)間,Counter2就總是在計(jì)數(shù)未滿時(shí)就被再次清零,其輸出一直保持為“0”,使B也一直為“0”,輸出與輸入的PCM信號(hào)始終保持一致,語音不會(huì)發(fā)生繼續(xù)。只有當(dāng)輸入信號(hào)幅度低于噪聲抑制閾值的時(shí)間超過設(shè)定的后延時(shí)時(shí)間后,Q2輸出“1”,才使Counter1被清零,使B為“1”,輸出PCM碼“55H”。再有信號(hào)來時(shí),仍按上述流程工作。
4.3 時(shí)序的設(shè)計(jì)
數(shù)字化噪聲抑制電路必須嚴(yán)格按照標(biāo)準(zhǔn)的PCM時(shí)序工作,電路由外部提供2.048MHz的主時(shí)鐘信號(hào)MCLK和幀同步信號(hào)Fi。Fi用于本部分電路PCM信號(hào)與其它電路的PCM信號(hào)組幀時(shí)進(jìn)行同步,在不需要該功能時(shí)可將Fi輸入端接高電平。
Symbol3在MCLK的作用下產(chǎn)生PCM編解碼電路TP3094所需的幀同步信號(hào)F0,又從TP3094接收TSX0和TSX1信號(hào)以產(chǎn)生數(shù)字噪聲抑制處理所需的時(shí)序信號(hào)TSX、TT。為了保證PCM信號(hào)的正確讀入、鎖存、處理和移位輸出,這些信號(hào)間的時(shí)序關(guān)系必須如圖5所示。
TSX由TSX0、TSX1經(jīng)“與非”后得到,在每幀中所選定的八個(gè)時(shí)隙傳輸PCM信號(hào)時(shí)為高電平。TSX為串/并行移位寄存器提供賦能信號(hào),在主時(shí)鐘MCLK的下降沿將來自DX端的PCM信號(hào)讀入寄存器并移位寄存。TSX同時(shí)是PCM信號(hào)從DR端輸出的三態(tài)門控制信號(hào)。
TT是CPLD噪聲抑制時(shí)序中的一個(gè)重要控制信號(hào),由TSX延時(shí)半個(gè)主時(shí)鐘周期(244ns)后取反得到。由于TT的延時(shí)作用,使得圖3中的參數(shù)化鎖存器模塊能在輸入的PCM信號(hào)完成串/并行變換后隨即于TT的升沿將數(shù)據(jù)鎖存住。在通過并/串行移位寄存器輸出PCM信號(hào)時(shí),TT為高電平時(shí)把并行數(shù)據(jù)裝載進(jìn)移位寄存器;TT為低電平時(shí)MCLK的上升沿將寄存器內(nèi)的數(shù)據(jù)逐位地串行移出至DR端。
CPLD產(chǎn)生的時(shí)序信號(hào)只能滿足圖2和圖5的要求,實(shí)現(xiàn)起來并不復(fù)雜,可用簡單的圖形輸入或文本輸入實(shí)現(xiàn)。值得注意的是,正確使用MAX+PLUS II軟件中的“Assign-Clique”[4]功能,為時(shí)序相關(guān)的功能模塊指定相同的“Clique”,能夠使波形仿真的結(jié)果明顯得到優(yōu)化。
5 應(yīng)用成果
按照以上設(shè)計(jì),用兩片TP3094和一片CPLD芯片再加上少量外圍器件組成的數(shù)字化噪聲抑制電路,改造了某語音指揮通信設(shè)備中采用模擬電路噪聲抑制技術(shù)的八路語音指揮通信電路板,得到了優(yōu)良的語音噪聲抑制效果。新的電路板繼而成功地應(yīng)用到新一代語音指揮通信設(shè)備上,交付用戶使用。更多路的數(shù)字化噪聲抑制電路也已試驗(yàn)成功。
關(guān)鍵詞:噪聲抑制 閾值 延時(shí)時(shí)間 PCM編解碼 CPLD器件
語音信號(hào)的噪聲抑制技術(shù)是基于人耳的聲音屏蔽效應(yīng)的,即當(dāng)有較強(qiáng)的聲音信號(hào)時(shí),較小的噪聲信號(hào)將被屏蔽而不易被聽到。
在具有噪聲抑制功能的語音通信設(shè)備中,沒有語音信號(hào)時(shí)噪聲抑制電路將信道關(guān)閉,使噪聲信號(hào)不能到達(dá)語音終端,避免了噪聲出現(xiàn);語音信號(hào)來到時(shí),噪聲抑制電路自動(dòng)打開信道,這時(shí)雖然噪聲語音一起送到語音終端,但由于聲音屏蔽效應(yīng),噪聲的存在可以忽略。
模式式的噪聲抑制電路直接對語音模擬信號(hào)進(jìn)行處理,通常主要由取樣放大器、模擬比較器、模擬開關(guān)、阻容延時(shí)器件等組成。因其集成度低、參數(shù)調(diào)整困難、設(shè)定的噪聲抑制參數(shù)易受環(huán)境因素影響而漂移,使得噪聲抑制性能難以得到保證。
在為某國孫工程研制新一代語音指揮通信設(shè)備時(shí),為了避免模擬式噪聲抑制技術(shù)的缺點(diǎn),采用了數(shù)字化的噪聲抑制技術(shù)。這一技術(shù),是在對模擬語音信號(hào)進(jìn)行PCM編碼后,再用CPLD(復(fù)雜可編程邏輯器件)對PCM碼流進(jìn)行數(shù)字化噪聲抑制處理,然后將PCM信號(hào)解碼還原為模擬語音信號(hào)。1 噪聲抑制電路的主要技術(shù)參數(shù)
噪聲抑制電路的主要技術(shù)參數(shù)為:噪聲抑制閾值、前道時(shí)時(shí)間、后延時(shí)時(shí)間。
噪聲抑制閥值是指打開語音信道的門限電平值。在閾值之下的信號(hào)認(rèn)為是噪聲,關(guān)閉語音信道;在閾值之上的信號(hào)則認(rèn)為是語音,打開語音信道。這一閾值可根據(jù)環(huán)境噪聲的大小、外來干擾的嚴(yán)重程度及語音信號(hào)的幅度而進(jìn)行設(shè)置。例如,當(dāng)語音信噪比為30dB時(shí),噪聲抑制閾值可設(shè)為32mV左右。
由于語音和噪聲兩種信號(hào)并不總是能夠完全區(qū)分開的,因此在信號(hào)幅度超過噪聲抑制閾值或回落到閾值之下時(shí),需要分別進(jìn)行延時(shí)和后延時(shí)。
前延時(shí)時(shí)間是指語音信號(hào)在超過閾值后到語音信道打開的延時(shí)時(shí)間。這一時(shí)間太長將造成語音的起始音素被切除(稱為“頭切”),是不能允許的。但這一時(shí)間又不能太短,太短的話任何幅度超過噪聲抑制閾值的突發(fā)的短暫干擾都會(huì)立刻打開語音通道并將這干擾送到語音終端,破壞靜音效果。為盡可能地吸收這類干擾又不至于造成“頭切”,根據(jù)語音聲學(xué)特征的有關(guān)統(tǒng)計(jì)資料與經(jīng)驗(yàn)數(shù)值,前延時(shí)時(shí)間可在0.5~4ms之間選擇。
后延時(shí)時(shí)間是指在噪聲抑制門限被打開并自己傳送語音時(shí),從語音信號(hào)幅度回落至噪聲抑制閾值之下到語音信道關(guān)閉的延時(shí)時(shí)間。由于語音信號(hào)波形的動(dòng)態(tài)范圍很大,講話時(shí)又隨著語氣的變化而起伏停頓,因此后延時(shí)時(shí)間太短會(huì)造成語音的斷續(xù),影響語音傳送質(zhì)量。后延時(shí)時(shí)間太長,則造成語音停頓時(shí)噪聲拖尾,同樣影響語音質(zhì)量。為兼顧這兩方面,后延時(shí)時(shí)間的量值范圍約為0.05~0.5s左右。
由于語音特點(diǎn)因人而異,環(huán)境噪聲和外界干擾情況又常有不同,所以上述的噪聲抑制三參數(shù)經(jīng)常需要在語音通信的過程中進(jìn)行調(diào)節(jié)。在使用模擬噪聲抑制電路時(shí),這些參數(shù)是用電位器或開關(guān)來調(diào)節(jié)的。在使用模擬噪聲抑制電路時(shí),這些參數(shù)是用電位器或開關(guān)來調(diào)節(jié)的。采用數(shù)字化噪聲抑制技術(shù)后,通過軟件就可以設(shè)定和調(diào)節(jié)這些參數(shù)了。
2 語音信號(hào)的數(shù)字化
采用數(shù)字化噪聲抑制技術(shù),必須先將語音信號(hào)數(shù)字化。模擬語音信號(hào)的數(shù)字化有多種方法,最通用的是按照G.711標(biāo)準(zhǔn)進(jìn)行PCM編碼[1]。對于頻帶為300~3400Hz的語音信號(hào),采用2.048MHz的取樣時(shí)鐘,以8kHz的速率進(jìn)行8位取樣,取樣數(shù)據(jù)按A律編碼,偶數(shù)位交替反轉(zhuǎn)。多路語音信號(hào)可以分配不同的取樣時(shí)隙,32個(gè)時(shí)隙(125μs)組成一幀。
PCM編解碼芯片選用National Semiconductor公司的TP3094[2]。該芯片為44引腳PLCC封裝,單一5V供電,集成了四路PCM編解碼電路,壓擴(kuò)方式為A/μ律可選,片內(nèi)自帶電壓基準(zhǔn)、低通接收濾波器和帶通發(fā)送濾波器,通過外接電阻可以調(diào)節(jié)輸入信號(hào)的增益。
TP3094可采用長幀和短幀兩種同步方式,外接幀信號(hào)和2.048MHz的時(shí)鐘即可工作。TP3094在進(jìn)行PCM編解碼時(shí)的工作方式有8bit和32bit兩種,以8bit方式工作時(shí)需為每路語音的PCM碼提供單獨(dú)的幀同步信號(hào),而以32bit方式工作時(shí)只要為第一個(gè)時(shí)隙提供短幀同步信號(hào)即可自動(dòng)完成對其后連續(xù)的另三路PCM語音編碼同步。在以32bit方式作時(shí),還可以采用多片TP3094芯片級聯(lián)工作。
圖1所示為兩片TP30094級聯(lián)成為八路PCM語音編解碼電路。圖中TP3094的VCI0~VXI3為四種語音輸入端,GXO0~GXO3為各路的增益調(diào)節(jié)端,在VXI和GXO之間接一電阻,此電阻與VXI端至信號(hào)源間的電阻比值可決定該路語音信號(hào)的輸入增益。VRO0~VRO3為解碼后的四路模擬語音信號(hào)輸出端。電容C1、C2用于濾波。外接的2.048MHz主時(shí)鐘脈沖沖送到兩片TP3094的MCLK端,8kHz的幀信號(hào)F0(由CPLD產(chǎn)生)送到第一片TP3094的FSX0和FSR0端,再將第一片TP3094的FSX和FSR1分別連到第二片TP3094的FSX0和FSR0端,就完成了兩片芯片的級聯(lián)。兩片以上的級聯(lián)亦可由此類推。為避免數(shù)字信號(hào)對模擬信號(hào)的干擾,電路中數(shù)字部分和模擬部分的供電分別布線后再接到單一5伏電源。
兩片TP3094的PCM信號(hào)輸出端DX并聯(lián)后送到數(shù)字噪聲抑制電路,經(jīng)數(shù)字噪聲抑制電路處理后的PCM信號(hào)再送回兩片TP3094的輸入端DR進(jìn)行解碼。TSX0、TSX1是開路溝道輸出端,R1、R2為上拉電阻。在所分配的時(shí)隙輸出PCM信號(hào)時(shí),TSX0、TSX1為低電平,可提供給CPLD作為控制信號(hào)。
TP3094工作于32bit短幀方式時(shí)的時(shí)序圖如圖2所示。
輸入和輸出的PCM信號(hào)DR、DX包含了從CH0至CH3的四路數(shù)字語音信號(hào),每路為一個(gè)時(shí)隙,8個(gè)bit。每路語音的PCM編碼中D7為符號(hào)位。D6~D0為數(shù)值位。FSX1和FSR1可用于級聯(lián)下一個(gè)芯片。
3 數(shù)字化噪聲抑制電路的原理框圖
數(shù)字化噪聲抑制電路的原理框圖如圖3所示。由于采用的是“自頂向下”的CPLD設(shè)計(jì)方法,這一電原理框圖本身就是最頂層的圖形設(shè)計(jì)文件(.gdf文件)。圖中的各個(gè)組成部分,根據(jù)需要分別采用了基本邏輯門電路、參數(shù)化模塊、以缺省符合(Default Symbol)表示的文本輸入(Text Entry)和宏功能邏輯單元(Mega Function)組合。
從PCM解碼輸出端DX輸出表示八路語音信號(hào)的64bit串行信號(hào),進(jìn)入64位的參數(shù)化移位寄存器模塊進(jìn)行串/并變攣,變換后的輸出經(jīng)64位參數(shù)化鎖存器模塊鎖存,每幀刷新一次。鎖存信號(hào)以八位為一路,依次送到八個(gè)噪聲抑制控制器(Symboll)。每個(gè)噪聲抑制控制器獨(dú)自控制一路語音信道,將PCM信號(hào)的偶數(shù)位取反后,再將除符合位(最高位)以外的七位數(shù)字與由S[6..0]設(shè)定的噪聲抑制門限值進(jìn)行比較,比較結(jié)果輸出給延時(shí)器(Symbol2),延時(shí)器輸出則作為控制信號(hào)送到噪聲抑制控制器。各噪聲抑制控制器輸出的PCM信號(hào)經(jīng)64位參數(shù)化稱位寄存器模塊完成并/串行變換后恢復(fù)成串行PCM碼流送往兩片TP3094解碼成為具有噪聲抑制效果的語音信號(hào)。噪聲抑制控制器還輸出八路指示信號(hào)LED[7..0]至八只發(fā)光二極管作為各語音信道的噪聲抑制門限指示。
Symbol3用來產(chǎn)生TP3094要求的幀脈沖F0,提供移閏寄存器、鎖存器、噪聲抑制控制器所需的時(shí)序信號(hào),并為延時(shí)器提供不同的時(shí)鐘信號(hào);P0、P1用來選擇PCM幀32個(gè)時(shí)隙中的哪八個(gè)時(shí)隙用于本片作語音噪聲抑制處理;TSET[3..0]用來選擇CLK1、CLK2的分頻系數(shù)以調(diào)整噪聲抑制延時(shí)時(shí)間。這些輸入都可以通過外部數(shù)字信號(hào)進(jìn)行設(shè)置和調(diào)節(jié)。
按以上方法對PCM信號(hào)進(jìn)行的數(shù)字化噪聲抑制處理使語音信號(hào)產(chǎn)生一幀(125μs)的固定時(shí)延,但人耳的聽覺對這一時(shí)延是完全不能覺察的。
4 CPLD設(shè)計(jì)要點(diǎn)
CPLD器件選用Altera公司的EPF6016ATC100集成電路[3],內(nèi)含16000個(gè)等效門,1320個(gè)邏輯單元,采用100-Pin TQFP封裝。設(shè)計(jì)軟件使用MAX+PLUS II 10.0版本[4],下面介紹設(shè)計(jì)要點(diǎn)。
4.1 Symbol1的設(shè)計(jì)
Symbol1實(shí)施噪聲抑制控制功能,首先通過偶數(shù)位取反將PCM碼轉(zhuǎn)換成便于作大小比較的碼型,再將D[6..0]與S[6..0]輸入的設(shè)定值進(jìn)行噪聲抑制門限比較。比較結(jié)果從D端輸出到延時(shí)器,并從B端收延時(shí)信號(hào)。根據(jù)比較結(jié)果和延時(shí)狀態(tài)決定是將輸入的PCM信號(hào)原樣送往輸出,還是將代表無語音信號(hào)的“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;
以上文本通過編譯后即可建為缺省圖形符號(hào)Symbol1。
4.2 Symbol2的設(shè)計(jì)
Symbol2實(shí)現(xiàn)前后延時(shí)功能,采用圖形輸入,電路圖見圖4。
圖4中CLK1、CLK2為前、后延時(shí)的計(jì)時(shí)脈沖,由2.048MHz的MCLK主時(shí)鐘經(jīng)分頻后得到,分別用于前延時(shí)計(jì)數(shù)器Countr1和后延時(shí)計(jì)數(shù)器Counter2計(jì)時(shí)。當(dāng)無語音信號(hào)時(shí),噪聲抑制控制器Symbol1的輸出D為“0”,Counter2計(jì)至Q2端為“1”后停止計(jì)數(shù),并通過反相器將CLK2的輸入封住。Q2端的高電平同時(shí)對Counter1清零,使B輸出為“1”,噪聲抑制控制器輸出PCM碼“55H”,即無語音信號(hào)。
當(dāng)接收到的PCM信號(hào)幅度超過設(shè)定的噪聲抑制閾值時(shí),D變?yōu)?ldquo;1”,Counter2被清零,此時(shí)Counter1脫離清零狀態(tài)開始計(jì)數(shù)器。Counter1計(jì)至Q1為“1”后B端輸出電平從“1”轉(zhuǎn)為“0”,前延時(shí)結(jié)束,Symbol1的輸出從“55H”變?yōu)檗D(zhuǎn)發(fā)輸入的PCM碼。與此同時(shí),B端的低電平將CLK1時(shí)鐘封住,只要Counter1不被清零,B始終為低。
如果接收到的PCM信號(hào)不是連續(xù)的語音而是突發(fā)噪聲,幅度只是短暫地超過設(shè)定的噪聲抑制閾值,那么D變?yōu)?ldquo;1”后在Counter1未來得及將B變?yōu)?ldquo;0”時(shí)D又回到了“0”,B的電平就一直是“1”,PCM輸出碼也始終是“55H”,突發(fā)的噪聲就不會(huì)傳到輸出端。
在話音信號(hào)持續(xù)期間,信號(hào)幅度在短暫時(shí)間內(nèi)低于噪聲抑制閾值雖然使得D端電平有時(shí)為“0”,從而使Counter2有時(shí)脫離清零狀態(tài)開始計(jì)數(shù),但只要信號(hào)幅度低于噪聲抑制閾值的時(shí)間不超過設(shè)定的后延時(shí)時(shí)間,Counter2就總是在計(jì)數(shù)未滿時(shí)就被再次清零,其輸出一直保持為“0”,使B也一直為“0”,輸出與輸入的PCM信號(hào)始終保持一致,語音不會(huì)發(fā)生繼續(xù)。只有當(dāng)輸入信號(hào)幅度低于噪聲抑制閾值的時(shí)間超過設(shè)定的后延時(shí)時(shí)間后,Q2輸出“1”,才使Counter1被清零,使B為“1”,輸出PCM碼“55H”。再有信號(hào)來時(shí),仍按上述流程工作。
4.3 時(shí)序的設(shè)計(jì)
數(shù)字化噪聲抑制電路必須嚴(yán)格按照標(biāo)準(zhǔn)的PCM時(shí)序工作,電路由外部提供2.048MHz的主時(shí)鐘信號(hào)MCLK和幀同步信號(hào)Fi。Fi用于本部分電路PCM信號(hào)與其它電路的PCM信號(hào)組幀時(shí)進(jìn)行同步,在不需要該功能時(shí)可將Fi輸入端接高電平。
Symbol3在MCLK的作用下產(chǎn)生PCM編解碼電路TP3094所需的幀同步信號(hào)F0,又從TP3094接收TSX0和TSX1信號(hào)以產(chǎn)生數(shù)字噪聲抑制處理所需的時(shí)序信號(hào)TSX、TT。為了保證PCM信號(hào)的正確讀入、鎖存、處理和移位輸出,這些信號(hào)間的時(shí)序關(guān)系必須如圖5所示。
TSX由TSX0、TSX1經(jīng)“與非”后得到,在每幀中所選定的八個(gè)時(shí)隙傳輸PCM信號(hào)時(shí)為高電平。TSX為串/并行移位寄存器提供賦能信號(hào),在主時(shí)鐘MCLK的下降沿將來自DX端的PCM信號(hào)讀入寄存器并移位寄存。TSX同時(shí)是PCM信號(hào)從DR端輸出的三態(tài)門控制信號(hào)。
TT是CPLD噪聲抑制時(shí)序中的一個(gè)重要控制信號(hào),由TSX延時(shí)半個(gè)主時(shí)鐘周期(244ns)后取反得到。由于TT的延時(shí)作用,使得圖3中的參數(shù)化鎖存器模塊能在輸入的PCM信號(hào)完成串/并行變換后隨即于TT的升沿將數(shù)據(jù)鎖存住。在通過并/串行移位寄存器輸出PCM信號(hào)時(shí),TT為高電平時(shí)把并行數(shù)據(jù)裝載進(jìn)移位寄存器;TT為低電平時(shí)MCLK的上升沿將寄存器內(nèi)的數(shù)據(jù)逐位地串行移出至DR端。
CPLD產(chǎn)生的時(shí)序信號(hào)只能滿足圖2和圖5的要求,實(shí)現(xiàn)起來并不復(fù)雜,可用簡單的圖形輸入或文本輸入實(shí)現(xiàn)。值得注意的是,正確使用MAX+PLUS II軟件中的“Assign-Clique”[4]功能,為時(shí)序相關(guān)的功能模塊指定相同的“Clique”,能夠使波形仿真的結(jié)果明顯得到優(yōu)化。
5 應(yīng)用成果
按照以上設(shè)計(jì),用兩片TP3094和一片CPLD芯片再加上少量外圍器件組成的數(shù)字化噪聲抑制電路,改造了某語音指揮通信設(shè)備中采用模擬電路噪聲抑制技術(shù)的八路語音指揮通信電路板,得到了優(yōu)良的語音噪聲抑制效果。新的電路板繼而成功地應(yīng)用到新一代語音指揮通信設(shè)備上,交付用戶使用。更多路的數(shù)字化噪聲抑制電路也已試驗(yàn)成功。