李偉聰, 陳敏, 劉穎君, 鄺禹聰(華南理工大學 廣州學院,廣州510800)
隨著科技的進步,數字信號處理被應用到各行各業,同時高校開設的數字信號課堂要求也在不斷提高,但傳統的數字信號處理實驗通常只能數據處理前后的頻譜圖,不能將數據用便于理解的方式展現出來,而且不能根據現實需求,快速地增加其他功能,使用過程中存在一定的局限性。通訊技術快速發展,微信、QQ等社交軟件得到了廣泛的使用,其中語音聊天功能更是受到了好評,語音的加密與解密成為語音聊天的關注點。因此,將傳統的數字信號處理和日常中使用的語音解密結合,形成一套便于學生理解數字信號處理的實驗系統。
近年來,隨著虛擬儀器技術的發展和普及,越來越多人使用美國儀器公司的LabVIEW軟件。LabVIEW軟件以開發速度快,程序包容性強等特點深受用戶的喜愛[1]。本設計是基于LabVIEW生產——消費者模式的語音解密實驗系統設計,運用LabVIEW軟件快速開發一套操作簡單、理解深刻的語音解密實驗系統。預計本系統可應用于學校、研究院所等學習機構。
本系統是基于LabVIEW的語音解密實驗系統,對已經加密的語音進行頻譜分析,并且將數據發送至語音解密實驗系統的UI界面。并且采用事件生產——消費者結構,實現人機交互模式的設計[2]。同時增強系統的擴展性,降低系統的耦合程度,為系統添加、修改、刪減功能提供可靠的結構保障。
消費者系統由解密實驗和實驗原理兩部分組成,解密實驗主要由經典濾波器和音頻信號的頻譜分析組成。實驗原理主要由信號發生器、噪聲發生器和經典濾波器組成。所生成的信號可以通過音頻模塊,將電信號轉換為音頻信號播放出來,從而將數字信號處理結果清晰地展現出來。
語音解密的UI界面將數據以頻譜圖的形式展現,通過對比加密前后頻譜的差異,選用A到H組的濾波器對己加密的語音信號進行濾波處理,濾波后新的數據會更新至濾波后的頻譜圖,UI界面上A到H組的濾波器和對應的數據并生成報表。
LabVIEW是一種程序開發環境,類似于C和C#的開發環境,但是LabVIEW使用的是圖形化編輯語言G語言編寫程序。傳統的文本編程語言根據指令的先后順序決定程序的執行順序,在LabVIEW編程中則是采用數據流的方式來傳輸數據[3]。為程序的并行運行提供可靠的語言基礎。LabVIEW編程中存在3種范式(面向過程、面向事件、面向對象),6種基礎模式(標準狀態機、消息隊列、生產-消費者(事件)、生產-消費者(數據)、用戶界面事件處理、主/從結構),采用合理的編程模式會減小CPU的占用和提高程序的擴展性和穩定性。同時,LabVIEW提供多種外觀與傳統儀器類似的控件,實現用戶界面的快速開發[4]。
1)實驗系統模式。語音解密實驗需要運算8個IIR無限脈沖響應濾波器、加密前后的音頻信號進行快速傅里葉變換(FFT)需要占用大量的CPU資源,選擇合適的范式和模式有利于提高實驗系統運算速度。如果采用傳統的循環或局部變量模式,會導致運算過程中卡頓或數據丟失,對實驗結果造成影響。通過采用生產-消費者模式(事件)能夠提高實驗系統的穩定性,實現數據不卡頓丟失運算,達到運算結果能準確地以聲音的形式輸出。
2)生產-消費者模式(事件)。本語音解密實驗系統采用的生產-消費者模式為3個while循環組成的并行結構,由一個生產者向2個消費者發送包含命令和數據的簇,并且指令簇以隊列的形式發送,保證指令簇按順序不丟失地發送給消費者。消費者循環設置出隊列的超時毫秒設置為-1 ms,在沒有接送到來自生產者循環的命令前,處于超時狀態減少語音解密系統對CPU的占用率。生產者采用用戶事件結構,從事件超時設置為-1,在沒有與用戶交互的狀態下,語音解密系統處于超時。利用事件結構的數據節點,獲取與用戶交互的命令和數據寫入指令簇中[5]。指令簇分別進入不同的隊列中等待消費者進行運算。解密實驗消費者和實驗原理消費者接收處理數據互不干擾,實現實驗系統的高效穩定的運行。
語音解密系統解密部分將已經加密的通用數字音頻文件進行數字/模擬信號轉換,對轉換后的模擬加密信號快速傅里葉變換,并且以頻譜圖的形式展示出來,通過選用A~H組濾波器和調節濾波器的高、低截止頻率,對音頻信號進行濾波處理,處理后的數據在濾波后頻譜圖上顯示,并且可以使用聲音播放的形式來判斷信號的還原程度,最后將解密實驗系統的UI界面上的數據導入word報表,生成語音解密實驗的實驗報告。實驗語音解密主要分為頻譜分析和經典濾波器。
與傳統的示波器界面設計不同,語音解密實驗系統的UI界面采用LabVIEW提供的波形圖[6],用戶通過鼠標點擊拖拽等操作可以對頻譜圖的縱坐標(幅值)、橫坐標(頻率)進行放大,或者通過修改縱橫坐標上的數值對波形圖上的波形進行縮放。

圖1 解密實驗操作界面
1)語音加密。語音加密模塊獲取PC上的通用數字音頻文件(.wav),并且將量化的數字信號進行數字/模擬信號轉換,將信號恢復成原來的模擬音頻信號。根據人說話的聲音的頻率為30 Hz~3 kHz,人耳能感受到的音頻信號頻率為20 Hz~20 kHz,使用信號方式模塊分別模擬不同頻率,幅值相同的正弦信號,并且與模擬音頻信號合成,實現對原有音頻信號的低頻段(30~150 Hz)、中低頻段(150~500 Hz)、中高頻段(50~5000 Hz)、高頻段(5000~20000 Hz)進行覆蓋和干擾,最終達到音頻信號的加密效果[7]。加密后獲取的模擬音頻信號進行量化和編碼后,重新儲存PC上的通用數字音頻文件(.wav)上,形成加密后的聲音文件。
2)頻譜分析。語音解密實驗系統自動檢索并加載PC上指定位置的加密通用數字音頻文件。讀取文件的數字音頻信息并轉換為模擬加密音頻信號。頻譜分析采用快速傅里葉變換(FFT),快速傅里葉變換(FFT)是離散傅里葉變換(DFT)的快速計算方法。傅里葉變換是將信號的時域轉換為頻域的表達方法。離散傅里葉變換和離散傅里葉逆變換,如下式:

頻譜分析模塊對已經完成加密的音頻信號上使用Hanning窗,進行快速傅里葉變換頻域分析,測量結果以峰值的形式展示,并且使用頻譜圖的形式將數據展示出來。
LabVIEW2015中為我們提供了十分便利的函數完成頻譜分析,在LabVIEW的Express函數入口中選擇信號分析模塊[10],在信號分析模塊中我們采用頻譜測量。進入頻譜測量中可以完成上述Hanning窗和測量結果以峰值表示的設置,實現了測量模塊的快速開發和便捷的配置方式,使得頻譜分析模塊具有良好的擴展性。
3)濾波器。語音解密實驗系統采用IIR無限脈沖響應濾波器[11],主要分為高通濾波器、低通濾波器、帶通濾波器、帶阻濾波器[12]:a.高通濾波器。允許高于高截止頻率的信號通過,減弱低于高截止頻率通過。b.低通濾波器。允許低于低截止頻率的信號通過,減弱高于高截止頻率通過。c.帶通濾波器。允許一定頻率范圍的信號通過,減弱低于低截止頻率和高于高截止頻率的信號通過。d.帶阻濾波器。減弱一定頻率范圍的信號,但是允許低于低截止頻率和高于高截止頻率的信號通過[13]。語音解密系統UI界面提供了8個IIR無限脈沖響應濾波器選用口,選用8個IIR無限脈沖響應濾波器分別設置高截止頻率、低截止頻率對音頻信號進行濾波處理,實現音頻信號不失真處理,達到輸出音頻信號清晰可靠。用戶根據對比加密前后頻域圖的差異,選用不同的濾波器,并輸入低截止頻率和高截止頻率完成濾波處理。濾波器的設計如圖2所示。

圖2 濾波器的設計
音頻信號是帶有語音、音樂等有規律的聲波信號,是一種連續變化的模擬信號,具有頻率和幅值2個基本參數,頻率決定聲音的音調高低、幅值決定聲音的響度大小。音頻頻率范圍分為低頻段、中低頻段、中高頻段、高頻段,根據音頻頻率的頻段不同,聲音能表達出有力、厚實、清晰、明亮等效果。
信號發生模塊通過計算機生成連續的正弦信號、余弦信號、方波信號的等連續變化的模擬信號[14],模擬信號設置采樣信息:每秒采樣率、波形的采樣數控制模擬信號的長短。計算方法如下式(正弦信號):

式中:a為幅值;n為采樣數;f為頻率;Fs為每秒采樣率。
信號發生模塊采用每秒采樣率為22 050 Hz、采樣數為60 000,實現模擬信號能夠清晰簡短地通過語音播放模塊以聲音形式的播放出來。
信號發生模塊提供音頻信號合成功能,用戶選擇低頻段和中低頻段作為聲音的基頻信號,選用中高頻段和高頻段的作為聲音的輔音信號,通過基頻信號和輔音信號的合成,實現信號發生的多樣性。信號發生模塊如圖3所示。

圖3 信號發生模塊
隨著語音解密實驗系統應用于不同的教學環境中和根據用戶使用反饋,濾波器模塊和信號發生模塊的功能會隨時增加或者減少。采用傳統的面向過程編程會給程序增加新功能帶來極大的不便。因此,本語音解密實驗系統對濾波器、信號發生采用面向對象的編程方式(工廠模式)[15],首先分別創建濾波器、信號發生模塊的父類,父類里分別包含濾波器、信號發生器的通用特征。通過繼承子類,并增加工廠模式的子類,便可實現濾波器、信號發生模塊功能的增加,并且不會對原來的系統造成影響,最終達到語音解密實驗系統快速擴展和便捷維護。
本語音解密實驗系統采用的聲音格式為wav格式,wav格式是Windows下通用數字音頻文件標準,其數據格式為2進制,編碼方式為PCM(脈沖編碼調制)。通常使用量化位數、采樣頻率和采樣點振幅表示聲音,采樣率范圍為8~48 kHz,采樣標準為44.1、22.05、11.025 kHz,量化等級有8位、16位、24位。語音播放模塊采用采樣頻率為22 050 Hz、量化等級為16位、通道數為2。
語音播放功能通過語音播放模塊將加密后的音頻信號、信號發生模塊、輔音、噪聲模擬模塊產生的模擬信號轉換為聲音播放。與傳統的數字信號處理實驗相比,本實驗系統將傳統的數據圖表信號轉變成易于理解的聲音信息。
傳統實驗的實驗數據用筆和紙記錄,效率不高又容易出現錯誤。本語音解密實驗系統采用的是語音解密實驗后的數據通過報表模塊生成word報表。報表模塊通過引用聲音濾波后波形圖、聲音濾波前波形圖的屬性,即獲取波形圖里的數據和外觀,并將其轉換為圖片的格式插入Word報表上。報表上有A~H組IIR無限脈沖響應濾波器的選用情況、高、低頻截止頻率參數,聲音濾波前、后的頻域圖。報表模塊如圖4所示。

圖4 報表模塊
本語音解密實驗系統在數字信號處理課堂實驗方面有廣泛的應用,并且具有很強的可拓展性,可根據使用過程中的實際實驗需求,快速添加實驗所需的功能。本語音解密實驗系統用圖像化的表現方式加深了學生對數字信號處理的理解,用與實際生活緊密相關的實驗內容提高了學生的學習興趣。