數(shù)字化全雙工語音會議電路

來源:上海船舶運輸科學(xué)研究所 更新日期:2008-07-10 作者:陳演平
語音會議和全雙工語音會議

  “語音會議”常被稱為“電話會議”,但電話會議只是語音會議的形式之一。實際上,語音會議的用戶終端并不限于電話機,也可以是調(diào)度機、會議機、指揮機等各種通信設(shè)備的語音終端;語音會議的通信網(wǎng)絡(luò)也并不限于普通的二線制PSTN電話網(wǎng)絡(luò),還可以是四線制的語音網(wǎng)絡(luò)、專用的無線通信網(wǎng)絡(luò)或者有線/無線結(jié)合的綜合通信網(wǎng)絡(luò)。

  在語音會議中,每個與會者都可以收聽會議,但不一定能夠發(fā)言。如果與會者要通過申請才能發(fā)言,那么習(xí)慣上稱其為“半雙工”語音會議。要申請發(fā)言,并不是一件方便的事。因為既然是半雙工,與會者在自己的終端上說話會議是聽不到的,他要么再用別的通信設(shè)備來向會議主持者提出他的發(fā)言請求,要么就只能在自己的終端上通過語音以外的方式來發(fā)出申請,如拍打叉簧開關(guān)或按雙音多頻撥號鍵來發(fā)出信號等。

  如果每個與會者除了能夠收聽會議外,還可以自由發(fā)言,那么就是“全雙工”語音會議。這里的“自由”是指電路上能夠讓與會者的語音隨時發(fā)出供大家收聽,至于會議規(guī)則是允許或是禁止某個用戶在某個時段發(fā)言則另當(dāng)別論。顯然,全雙工會議更方便,更有效率。但全雙工會議的電路要復(fù)雜得多,尤其是較大門次(32門以上)的全雙工語音會議。
  
  語音會議的實現(xiàn)方法

  無論是哪種語音會議,主要采用的都是語音求和技術(shù)。實現(xiàn)方法是把所有發(fā)言者的語音信號求和后發(fā)送給各個有權(quán)收聽的與會者,但每路都不能接收自己發(fā)送的語音,以避免自發(fā)自收的反饋信號造成回聲嘯叫。在最簡單的情況下,每個與會者的收聽權(quán)是相等的,如果這時每路的收發(fā)語音已分離(四線制或經(jīng)過了二/四線變換),那么有兩種實現(xiàn)方法:一種是把除本路以外的n-1路(n為會議用戶數(shù))發(fā)送語音求和后送給本路接收,用模擬語音電路來實現(xiàn)時需要用到n個n-1路的語音加法器;另一種方法是把全部的發(fā)言都相加后減去某個用戶的發(fā)言再發(fā)送給這個用戶,用模擬電路時需要用到1個n路的加法器和n個2路的減法器。每個加/減法器的模擬電路都可以用運算放大器和若干個電阻來實現(xiàn)。第二種方法由于求和的路數(shù)少,雖然多用1個運放,卻可少用許多電阻和連線。但用第二種方法時,如果模擬減法器的增益沒有調(diào)到使本路語音完全被抵消,就會產(chǎn)生收發(fā)串音。

  在模擬式語音會議電路中,如果需要視情況決定是否接受每個與會者的發(fā)言申請,那么還要增加模擬開關(guān)來控制每路語音是否參加求和運算。

  當(dāng)開關(guān)數(shù)量多時,還必須加入譯碼電路來分別選通這些開關(guān)。由于不得不使用大量運放、電阻、模擬開關(guān)、譯碼器及信號線和控制線,使得大門次的模擬式語音會議電路變得十分煩瑣復(fù)雜,集成度低,功耗大。

  如果語音會議系統(tǒng)建立在PCM/TDM(脈沖編碼調(diào)制/時分多路復(fù)用)數(shù)字交換平臺上,這時處理的是數(shù)字化了的語音信號,一般可用ASIC(特定用途集成電路)器件來實現(xiàn)數(shù)字化語音會議功能, 如Zarlink公司的MT8924、ST公司的M34116等芯片。ASIC器件使用方便、成本低,但通常只能處理1幀PCM信號中32個時隙的語音。如果要實現(xiàn)大門次的全雙工會議,就只有把多片這類器件組合起來復(fù)用,為此還得再配上時隙交換芯片(如MT8980等)來調(diào)整各路信號的時隙關(guān)系、增加譯碼電路來分別選通各片器件。這一來電路的復(fù)雜度又增加了,而且功能更改困難。

  相比之下,F(xiàn)PGA技術(shù)能夠提供一個集成度更高、更靈活的解決方案。FPGA的優(yōu)勢在于,能夠輕易地在其芯片內(nèi)設(shè)計和配置出大量并行工作的加/減法器,來處理多路語音信號。FPGA片內(nèi)的加/減法器是純硬件結(jié)構(gòu),能夠相當(dāng)精確地設(shè)計其語音輸出入信號的時序關(guān)系,并可通過EDA軟件準(zhǔn)確地預(yù)測和仿真電路的實時特性。這對于語音之類實時性要求很高的信號來說是十分重要的。FPGA成本低廉,用來實現(xiàn)全雙工語音會議功能時,除配置芯片外不需要再加其它外圍芯片,十分接近于單芯片的解決方案。
  
  基于FPGA的全雙工語音會議電路

  圖1即為基于FPGA的數(shù)字化全雙工語音會議電路的原理框圖。

數(shù)字化全雙工語音會議電路

圖1

點擊此處查看全部新聞圖片

  圖1中間框內(nèi)的電路全部由一片F(xiàn)PGA芯片來實現(xiàn)。模擬語音信號通過PCM編碼器成為串行數(shù)字語音信號送入FPGA芯片。PCM語音編碼以32個時隙組成1幀,每路語音占用1個時隙。為了發(fā)揮FPGA并行處理信號的長處,把輸入語音信號每32路作為1組,經(jīng)編碼后成為1幀PCM信號,F(xiàn)PGA對各幀信號進行并行處理。例如輸入是128路語音時,F(xiàn)PGA就同時處理4幀PCM信號。經(jīng)FPGA處理后的信號最終仍然分幀輸出,經(jīng)PCM解碼器后還原為模擬語音。圖中為了說明信號流程把PCM編碼器和解碼器分開來畫,實際上編解碼器是集成于同一芯片內(nèi)的。

  以下簡要說明FPGA內(nèi)各電路模塊的功能:

  串行/并行轉(zhuǎn)換電路 

  輸入到FPGA的串行PCM信號通過該電路將每時隙8比特的串行數(shù)據(jù)轉(zhuǎn)換成8位的并行信號,然后暫存在用FPGA片內(nèi)RAM資源設(shè)計成的雙端口存儲器中。雙端口存儲器的另一端按要求的時序依次輸出各并行數(shù)據(jù),供后續(xù)處理。

  A律碼/線性碼轉(zhuǎn)換電路 

  本部分電路完成8位A律PCM碼到13位線性碼的轉(zhuǎn)換,以便隨后對語音進行線性運算。轉(zhuǎn)換電路用AHDL語言編寫。在每幀的125μs時間內(nèi)32路PCM語音信號分時使用本電路,因此每32路可共用1個碼型轉(zhuǎn)換電路。

  靜噪門限控制電路 

  全雙工會議的發(fā)言通道向每個與會者敞開,雖然同時發(fā)言的用戶總是少數(shù),但任何一路即使不發(fā)言也會產(chǎn)生噪聲。如果所有的輸入噪聲都被迭加求和后放出,將嚴(yán)重影響會議效果。因此,必須對每路輸入語音實施靜態(tài)噪聲控制。噪聲控制的原理是設(shè)置一個門限值,當(dāng)輸入信號的幅度低于門限值則認(rèn)為是噪聲拒絕其通過,高于門限則認(rèn)為是語音而放行。但某些突發(fā)噪聲也可能在短時間的幅度高于門限值,語音中也會有幅度比噪聲更小的有用信號或短暫的無聲停頓。因此,靜噪門限電路還應(yīng)該具有“前延時”功能以阻擋短促的突發(fā)噪聲,具有“后延時”功能以防止話音斷續(xù)。

  幀加法器

  通過前面電路的處理,每幀PCM信號已經(jīng)轉(zhuǎn)換成了32路分時的13位并行線性碼,每路信號的持續(xù)時間是3.9μs。幀加法器的作用是累加這32路信號,其單元電路如圖2。

圖2

圖2

點擊此處查看全部新聞圖片

  圖2 中加法器add_sub在每幀起始時被frame信號清零。隨后在第1個3.9μs時間內(nèi),第1路線性碼的低12位數(shù)據(jù)l[11..0]送入加法器,符號位l12則用來控制加或減。加法器的輸出ds[11..0]反饋回來,在第2個3.9μs周期里和第2路信號相加,其和再反饋回來和第3路信號相加。如此在1幀時間里完成全幀32路語音信號的求和運算。

  在多路語音信號相加時,如果求和所得信號溢出,語音將產(chǎn)生限幅失真。為解決這一問題,用雙向計數(shù)器carry_counter來擴展“和”的動態(tài)范圍。用a/c_clock信號的上升沿執(zhí)行加/減法操作、下降沿執(zhí)行進/退位操作。采用這一技術(shù)比簡單地增加加法器的數(shù)據(jù)寬度節(jié)省芯片的邏輯資源。通常carry_counter用4位計數(shù)器就夠了。

  summing_enable信號用來允許/禁止某路語音參加求和。如果要禁止某路發(fā)言,當(dāng)加法器對該路數(shù)據(jù)求和時,使summing_enable為低即可。

  求和后的線性碼ds[11..0]和進/退位信號ds[15..12]在每幀結(jié)束時被sum_latch信號鎖存,然后在sum_out信號有效時輸出。

  全局加法器

  來自各個幀加法器的輸出分時選通三態(tài)總線,相繼送入全局加法器,在全局加法器里累加所有各幀的信號。從全局加法器輸出的“和”信號就包括了所有與會者的發(fā)言。全局加法器的電路設(shè)計類似于幀加法器。

  本路減法器和延時電路

  本路減法器由32路信號分時共用,從全部“和”信號中減去一路信號再輸出到該路,這路就收到了除自己以外的所有其它與會者的發(fā)言。但是由于兩次累加過程,“和”信號已經(jīng)產(chǎn)生了兩幀時間的延遲,因此必須把擬減去的本路信號先做相同的延時,然后再相減。只要在前面的累加過程中沒有產(chǎn)生限幅失真,本路信號就能夠被精確地減除掉。

  線性碼/A律碼轉(zhuǎn)換電路 

  從本路減法器輸出的仍是線性碼,通過本模塊轉(zhuǎn)換回A律編碼。該轉(zhuǎn)換電路也是1幀32路信號分時共用的。

  并行/串行轉(zhuǎn)換電路 

  最后把運算完畢的并行信號轉(zhuǎn)換成符合PCM時序要求的串行信號,即可輸出給PCM解碼器,得到供各用戶收聽的語音會議信號。

  時序發(fā)生器 

  時序發(fā)生器外接16.384MHz的有源晶振,導(dǎo)出3組同步的時鐘信號:FPGA內(nèi)各邏輯處理電路的時序信號、FPGA和外部處理器接口的時序信號、PCM編解碼器的時鐘信號。

  外部處理器接口   
 
  本接口通過地址、數(shù)據(jù)、控制三組總線連接到FPGA片外的單片機或嵌入式計算機。通過本接口,外部處理器可以設(shè)定和選擇FPGA的功能,如禁止某路發(fā)言或收聽等。

  如把數(shù)據(jù)和控制總線設(shè)計成雙向的,還可以讀取到FPGA內(nèi)各路用戶的語音狀態(tài)信息。
  
  設(shè)計結(jié)果

  以上電路用Altera公司的QuartusⅡ 5.1版軟件進行設(shè)計、仿真和下載編程,選用的FPGA是Altera公司Cyclone系列的EP1C6 T144芯片。本設(shè)計的關(guān)鍵是各路信號處理流程中的時序關(guān)系必須嚴(yán)格符合PCM信號的時序要求,否則會影響語音質(zhì)量。為此要認(rèn)真進行電路波形的仿真,還要保證所有波形去除掉“毛刺”使電路能穩(wěn)定工作。設(shè)計完成后對32路、128路等全雙工語音會議進行了實際電路的制作和實驗,試聽語音會議的音質(zhì)優(yōu)良,效果完全達(dá)到設(shè)計要求。

  依據(jù)上述設(shè)計原理,對電路做些改變,還能夠進一步擴展語音會議的功能,如分組會議、調(diào)度會議、通播會議等。

廣告聯(lián)系:010-82755684 | 010-82755685 手機版:m.pjtime.com官方微博:weibo.com/pjtime官方微信:pjtime
Copyright (C) 2007 by PjTime.com,投影時代網(wǎng) 版權(quán)所有 關(guān)于投影時代 | 聯(lián)系我們 | 歡迎來稿 | 網(wǎng)站地圖
返回首頁 網(wǎng)友評論 返回頂部 建議反饋
快速評論
驗證碼: 看不清?點一下
發(fā)表評論