基於MATLAB的資料採集與分析系統設計

才智咖 人氣:1.49W

  論文關鍵詞:音效卡  資料採集  MATLAB  訊號處理

基於MATLAB的資料採集與分析系統設計
  論文摘要:利用資料採集卡構建的資料採集系統一般價格昂貴且難以與實際需求完全匹配。音效卡作為資料採集卡具有價格低廉、開發容易和系統靈活等優點。本文詳細介紹了系統的開發背景,軟體結構和特點,系統地分析了資料採集硬體和軟體設計技術,在此基礎上以音效卡為資料採集卡,以MATLAB為開發平臺設計了資料採集與分析系統。

本文介紹了MATLAB及其資料採集工具箱, 利用音效卡的A/ D、D/ A 技術和MATLAB 的方便程式設計及視覺化功能,提出了一種基於音效卡的資料採集與分析方案,該方案具有實現簡單、價效比和靈活度高的優點。用MATLAB 編制了相應軟體,實現了該系統。該軟體有著簡潔的人機互動工作介面,操作方便,並且可以根據使用者的需求進行功能擴充。最後給出了應用該系統採集資料的應用例項。

1緒論

1.1 課題背景

資料也稱觀測值,是實驗、測量、觀察、等的結果,常以數量的形式給出。資料採集,又稱資料獲取,就是將系統需要的所有物件的原始資料收集、歸類、整理、錄入到系統當中去。資料採集是管理系統使用前的一個數據初始化過程。資料採集技術廣泛引用在各個領域。比如攝像頭,麥克風,都是資料採集工具。

資料採集(Data Acquisition)是將被測物件(外部世界、現場)的各種參量(可以是量,也可以是化學量、生物量等)通過各種感測元件作適當轉換後,再經訊號調理、取樣、量化、編碼、傳輸等步驟,最後送到控制器進行資料處理或儲存記錄的過程。

被採集資料是已被轉換為電訊號的各種物理量,如溫度、水位、風速、壓力等,可以是模擬量,也可以是數字量。採集一般是取樣方式,即隔一定時間(稱取樣週期)對同一點資料重複採集。採集的資料大多是瞬時值,也可是某段時間內的一個特徵值。準確的資料測量是資料採集的基礎。資料測量方法有接觸式和非接觸式,檢測元件多種多樣。不論哪種方法和元件,都以不影響被測物件狀態和測量為前提,以保證資料的正確性。資料採集含義很廣,包括對連續物理量的採集。在計算機輔助製圖、測圖、設計中,對圖形或影象數字化過程也可稱為資料採集,此時被採集的是幾何量資料。

在智慧儀器、訊號處理以及自動控制等領域,都存在著資料的測量與控制問題,常常需要對外部的溫度、壓力、流量、位移等模擬量進行採集。資料採集技術是一種流行且實用的技術。它廣泛應用於訊號檢測、訊號處理、儀器儀表等領域。近年來,隨著數字化技術的不斷髮展,資料採集技術也呈現出速度更高、通道更多、資料量更大的發展態勢。

資料採集系統是一種應用極為廣泛的模擬量測量裝置,其基本任務是把訊號送入計算機或相應的訊號處理系統,根據不同的需要進行相應的計算和處理。它將模擬量採集、轉換成數字量後,再經過計算機處理得出所需的資料。同時,還可以用計算機將得到的資料進行儲存、顯示和列印,以實現對某些物理量的監視,其中一部分資料還將被用作生產過程中的反饋控制量。

資料採集系統是計算機測控系統中非常重要的環節,目前,有各種資料採集卡或採集系統可供選擇,以滿足生產和科研試驗等各方面的不同需要,但由於資料來源以及使用者需求的多樣性,有時並不能滿足要求。特別是在某些應用中,需要同時高速採集多個通道的資料,而且為了分析比較各通道訊號間的相互關係,常常要求所有通道的採集必須同步。現有的資料採集系統能夠滿足上述要求的比較少,且價格十分昂貴,體積較大,分量較重,使用十分不方便。

一般模擬量是通過各種資料採集卡進行資料採集。目前常用的是具有 ISA 匯流排、PCI 匯流排等介面形式的 A/D 採集卡,雖然資料傳輸率很高,但是還存在整個系統笨重,缺乏靈活性,不能實現即插即用,不適合小型、便攜裝置採用等缺點。另外這些型別的採集卡在計算機上安裝比較麻煩,而且由於受計算機插槽數量、地址、中斷資源的限制不可能掛接很多裝置。因此,工程師們往往需要花費大量的時間和資源用於系統搭建。

隨著現代工業技術的迅猛發展,生產規模的不斷壯大,生產過程和製作工藝的日趨複雜,對自動測試和各種資訊整合的要求也就越來越高。資料採集系統的好壞將直接影響自動測試系統的可靠性和穩定性,為了滿足不同的測試需求,以及減少對資源的浪費,在系統的設計上應該儘量滿足通用性和可擴充套件性。在高度發展的當今中,科學技術的突飛猛進和生產過程的高度自動化已成為人所共知的必然趨勢,而它們的共同要求是必須建立在有著不斷髮展與提高的資訊工業基礎上。人們只有從外界獲取大量準確、可靠的資訊經過一系列的科學分析、處理、加工與判斷,進而認識和掌握自然界與科學技術中的各種現象與其相關的變化規律,並通過相應的系統和方法實現科學實驗研究與生產過程的高度自動化。換言之,生產過程的自動化面臨的第一個問題就是必須根據從各種感測器得到的資料來檢測、監視現場,以保證現場裝置的正常工作。所以對現場進行資料採集是重要的前期基礎工作,然後再對現場資料進行傳輸和相應的處理工作,以滿足不同的需要。

  資料採集卡是中低端資料採集系統設計的必選產品。基於 ISA、PCI 的插卡式資料採集裝置存在以下缺陷:安裝麻煩;價格昂貴;受計算機插槽數量、地址、中斷資源限制,可擴充套件性差;在一些電磁干擾性強的測試現場,無法專門對其做電磁遮蔽,導致採集的資料失真。而現代工業生產和科學研究的發展要求資料採集卡具有更好的資料採集、處理能力,傳統的 CPU 已經不能滿足這一要求。針對以上要求,本文將論述一種基於PC機的音效卡技術,它安裝容易,較低。只需利用計算機本身的軟硬體資源,而不需新增其他任何裝置即可構成資料採集與分析系統,使用MATIAB語言編制簡潔的圖形使用者介面,該介面操作方便,並且可以根據使用者的需求進行功能擴充。

硬體驅動程式介面卡在硬體驅動程式和資料採集引擎之間交換屬性數值、資料和事件;資料採集引擎用來儲存各個裝置物件,以及每個裝置物件的屬性值;對採集到的資料進行儲存並且使不同事件同步;M-檔案用來建立裝置物件、採集或輸出資料、配置屬性值和檢測資料採集狀態和資料採集裝置。

  2.2 系統的特點和效能指標

現代資料採集系統發展到今天,一般來說具有如下主要特點:

(1)現代採集系統一般都由控制,使得資料採集的質量和效率等大為提高,也節省了硬體。

(2)軟體在資料採集系統中的作用越來越大,增加了系統設計的靈活性。

(3)資料採集與資料處理相互結合的日益緊密,形成資料採集與處理系統,可實現從資料採集、處理到控制的全部工作。

(4)資料採集過程一般都具有“實時”特性,實時的標準是能滿足實際需要;對於通用採集系統一般希望有儘可能高的速度,以滿足更多的應用。

(5)隨著技術的發展,電路整合度的提高,資料採集系統的體積越來越小,可靠性越來越高,甚至出現了單片資料採集系統。

(6)匯流排在資料採集系統中有著廣泛的應用,匯流排技術它對資料採集系統結構的發展起著重要作用。

評價一個數據採集系統的效能有很多指標,但是一般採用以下幾個比較常用的指標進行評價。

(1)系統解析度

系統解析度是指資料採集系統可以分辨的輸入訊號的最小變化量。通常可以用如下幾種方法表示系統解析度:

使用系統所採用的 A/D 轉換器的位數表示系統解析度;

使用最低有效位值(LSB)佔系統滿度值的百分比表示系統解析度;

使用系統可分辨的實際電壓數值表示系統解析度;

使用滿度值可以分的級數表示系統解析度。

(2)系統精度

系統精度是指當系統工作在額定採集速率下,整個資料採集系統所能達到的轉換精度。A/D 轉換器的精度是系統精度的極限值。實際上,系統精度往往達不到A/D 轉換器的精度。因為系統精度取決於系統的各個環節(子系統)的精度,如前置放大器、濾波器、模擬多路開關等。只有當這些子系統的精度都明顯優於 A/D 轉換器的精度時,系統精度才有可能達到 A/D 轉換器的精度。系統精度是系統的實際輸出值與理論輸出值之差,它是系統各種誤差的總和,通常表示為滿度值的百分數。

(3)採集速率

採集速率又稱為系統通過速率或吞吐率,是指在滿足系統精度指標的前提下,系統對輸入的模擬訊號在單位時間內所能完成的採集次數,或者說是系統每個通道、每秒鐘可採集的有效資料的數量。這裡說的“採集”包括對被測量進行取樣、量化、編碼、傳輸和儲存的全部過程。

(4)動態範圍

動態範圍是指某個確定的物理量的變化範圍。訊號的動態範圍是指訊號的最大幅度和最小幅度之比的分貝數。

  2.3 系統常見的幾種結構形式

(1)多通道共享取樣/保持器和 A/D 轉換器資料採集系統

這種系統構成如下圖所示,這種結構形式採用分時轉換工作的方式,多路被測訊號共用一個取樣/保持器和一個 A/D 轉換器。當取樣保持器的輸出已充分逼近輸入訊號(按給定精度)時,在控制命令的作用下,取樣保持器由取樣狀態進入保持狀態,A/D 轉換器開始進行轉換,轉換完畢後輸出數字訊號。在轉換期間,多路開關將下一路訊號切換到取樣/保持器的輸入端,系統不斷重複以上的操作,可以實現對多通道模擬訊號的資料採集。取樣方式可以按順序或隨機進行。

 

 

 

 

 

 

 

多通道共享取樣保持器和 AD 轉換器資料採集系統圖

這種採集系統結構形式最簡單,所用晶片數量少,適用於訊號變化率不高、對取樣訊號不要求同步的場合。如果被測訊號變化速率較慢,可以不用取樣保持器,直接進行 A/D 轉換。如果訊號很弱而干擾噪聲強,需要在系統電路中增加訊號放大電路和濾波環節。

(2)多通道同步資料採集系統

多通道同步型資料採集系統圖

其結構如上圖所示,也屬於分時轉換系統。

多路模擬輸入訊號共用一個 A/D 轉換器,但是每個通道各有一個取樣/保持器,在同一取樣指令控制下對各路訊號同步進行訊號取樣,得到各路訊號在同一時刻的瞬時值。模擬開關分時將各路取樣/保持器切換到 A/D 轉換器上,進行模數轉換。這些同步資料可以描述各路訊號的相位關係,所以這種結構被稱為同步型資料採集系統。

由於各路訊號必須序列的在共用的 A/D 轉換器中進行轉換和計算,若取樣訊號迴路過多時,這種採集結構的速度仍然較慢。

(3)多通道並行資料採集系統

 

多通道並行資料採集系統框圖如上圖所示。這種結構形式中,每個通道都有自己的取樣保持器和A/D轉換器,經過A/D轉換的資料經過介面電路送到中。相對於前兩種資料採集系統,這種結構形式的資料採集速度最快,但所用的硬體電路複雜,較高。

通用型模擬量資料採集模組則屬於這一類的資料採集子系統。資料採集模組是屬於微控制器的智慧器件,在整個資料採集系統中,每個模組可以認為是實時、並行地工作,每個模組僅完成幾路訊號的檢測和採集,實時響應效能優。

(4)分散式資料採集系統

以上介紹的三種結構形式中,系統各部件之間的空間距離很近,上耦合程度緊密,都可以稱之為資料採集系統。這種系統的優點是:結構簡單,容易實現,能滿足中小規模的集中資料採集的要求。在市面上均有成熟產品可供選用。系統的體積和裝置量小,造價低。

由於工作原理、結構形式和效能設計等原因,這類系統也存在不少缺點:

因為系統結構不靈活,不易擴充套件,所以不適合大規模的資料採集應用場合。抗干擾能力差,尤其對於被測物件位置分散、感測器輸出的微弱訊號需要長距離傳輸時,所受的干擾不容忽視的。可靠性差。系統結構中某一部件出現故障會導致整個系統工作崩潰。由於各部件之間緊密耦合,導致系統的可擴充套件性和靈活性差。分散式資料採集系統是資料採集技術、計算機技術和技術綜合和發展的產物,基於“分散採集、集中”的思想設計的系統結構形式,由若干個“資料採集點”和上位機以及通訊介面組成。分散式資料採集系統結構如下圖所示:

 

 

 

 

 

 

 

        分散式資料採集系統圖

處於分散部位的資料採集點相當於小型的集中資料採集系統,位於被測物件的附近,可獨立完成資料採集和預處理任務,並將採集的資料轉換為數字訊號的形式傳送給上位機,採用資料傳輸的方法可以克服模擬訊號傳輸的固有缺陷。分散式資料採集系統的主要特點是:

(1)系統適應能力強。因為可以通過選用適當數量的資料採集點來構成相應規模的系統,所以無論是大規模的系統,還是中小規模的系統,分散式結構都能夠適應。

(2)系統可靠性高。由於採用了多個數據採集點,若某個資料採集點出現故障,只會影響某項資料的採集,而不會對系統的其他部分造成任何影響。

(3)系統實時相應性好。由於系統各個資料採集點之間是真正“並行”工作的,所以系統的實時相應性較好。

(4)另外,這種資料採集系統是用數字訊號傳輸代替模擬訊號傳輸,有利於克服常模干擾和共模干擾。因此,這種系統特別適合於在惡劣的下工作。目前對於大規模的資料採集場合一般都採用分散式結構,根據不同的資料採集工作原理、結構形式和效能特點,在本系統中採用集中式的資料採集器件作為資料採集終端,採用上下位的連線方式,最終組成整個資料採集系統。

3 MATLAB軟體

3.1 MATLAB 簡介

MATLAB 是美國MathWorks 公司開發的一種功能極其強大的高技術計算機和內容極其豐富的軟體庫,它適合於工程各領域的分析設計與複雜計算的軟體,該軟體包括基本部分和專業擴充套件兩大部分.擴充套件部分稱為工具箱,用於解決某一方面的專業問題.它以矩陣和向量的運算以及運算結果的視覺化為基礎,把廣泛應用於各個學科領域的數值分析、矩陣計算、函式生成、訊號處理、圖形及影象處理、建模與模擬等諸多強大功能整合在一個便於使用者使用的互動式環境中,為使用者提供了一個高效的程式設計工具及豐富的演算法資源。對於訊號處理和影象處理等數字處理領域,MATLAB 更是得天獨厚,它豐富的M檔案和強大的繪圖可視功能為使用者帶來了極大的方便, 被廣泛的應用於訊號與影象處理、控制系統設計、通訊、系統模擬等諸多領域,尤其對初學者可起到事半功倍之效。

MATLAB是一種解釋語言,所有的程式和指令都必須在MATLAB直譯器中讀入後才能執行,因而極大地限制了程式碼執行速度。MATLAB強大的計算功能只能在其平臺上才能使用,也就是說,必需在安裝了其直譯器的機器上才能使用MATLAB的M檔案,這樣就給工程應用帶來了很大不便。對於一般使用者來講,MATLAB只能作為離線的計算和分析工具,而不能作為實時的工程工具。幸運的是,開發MATLAB的MathWorks公司為廣大的應用者提供了應用程式介面(API,ApplicationProgram Interface)和編譯器(Compiler)。利用MATLAB和C語言互動,也可以開發基於MATLAB的資料採集系統。如果配上資料採集線路,該系統就可以作為一個虛擬儀器來使用。

  3.2 資料採集工具箱及音效卡簡介

MATLAB 自帶的資料採集工具箱(Data Acquisitiontoolbox, DAQ) 能更容易地將實驗測得的資料進行分析和視覺化操作。資料採集裝置包括: 多媒體音效卡、美國國家儀器E系列和1200 系列介面板、Hewlett-Packard-VXIE1432- 系列介面板及其他各種資料採集硬體裝置。資料採集硬體裝置的內部特性對MATLAB 的介面完全透明, 無論是使用一個或幾個硬體裝置, 資料採集工具箱都會向所有硬體裝置提供單一和統一的介面。通過呼叫MATLAB 命令和函式可對與計算機相容的資料採集硬體裝置進行訪問並對其屬性進行視覺化監控。

資料採集工具箱是一種建立在MATLAB環境下的M函式檔案和MEX動態連結庫檔案的集合,包含3大區域的元件:M檔案函式、資料採集引擎及硬體驅動介面卡。它具有如下特點:是一種通過使用與PC機相容的、即插即用的資料採集裝置在MATLAB環境中的架構;支援模擬訊號的輸入輸出以及數字訊號的輸入、輸出,子系統還包括同步模擬輸入輸出的轉換;支援音效卡;事件驅動採集。

  在MATLAB資料採集工具箱裡集成了資料採集的M 檔案格式的函式和MEX檔案格式的動態連結庫。其主要特徵如下:

  (1)提供了將實時測量資料從資料採集硬體採集到MATLAB中的框架。

  (2)支援模擬量輸入(AI)、模擬量輸出(A0)以及數字量I/0子系統,包括模擬量I/O實時變換。

  (3)支援PC音效卡和業界非常流行的資料採集裝置如NI卡、並行口(LPT1-LPT3)、Keithley卡等。

(4)採用事件驅動模式進行資料採集。資料採集工具箱由3部分組成:M檔案格式的函式、資料採集引擎和硬體驅動,如圖3-1所示。這些組成部分使得MATLAB與資料採集硬體之間的資訊傳遞成為可能。

 

 

 

 

 

      圖3-1 資料採集引擎與硬體驅動

目前市面上的資料採集卡一般都包含了完整的資料採集電路和與的介面電路,如NI公司的E系列資料採集卡、研華的資料採集卡等, 其價格是與效能成正比的,可以說比較昂貴。在取樣頻率要求不高的情況下,可以利用計算機的音效卡作為資料採集的輸入和輸出。而如今音效卡技術已經成熟,越來越低。一般的音效卡都可以實現雙通道、16 位、高保真的資料採集,取樣率甚至可以達到48KHz。對於許多科學試驗和工程測量來說,其樣本量化精度和取樣率是足夠高的,甚至優於目前常用資料採集卡的效能。將其用於資料採集,價效比相當高。

音效卡是一個非常優秀的音訊訊號採集系統,其數字訊號處理器包括模數轉換器(ADC) 和數模轉換器(DAC) ,ADC 用於採集音訊訊號,DAC用於重現這些數字聲音,轉換率達到44.1KHz。音效卡已成為多媒體計算機的一個標準配置,利用音效卡進行取樣與輸出,就不需要購買專門的採集卡可以降低虛擬儀器的開發成本,且在音訊範圍內可以完全滿足實驗要求。

  3.3 MATLAB在資料採集中的應用

資料採集工具箱集成於MATLAB中,所以在進行資料採集的同時,可以對採集的資料進行實時分析,或者儲存後再進行處理,或者針對資料分析的需要對測試條件的設立進行不斷的更新。應用資料採集工具箱提供的命令和函式可以控制任何型別的資料採集。例如,在硬體裝置執行時,可以獲取事件資訊,評估採集狀態,定義觸發器和回訪狀態,預覽資料以及進行實時分析,可以設定和顯示所有的硬體特性以滿足使用者的技術指標。

  4系統設計方案

聲音訊號的採集與分析處理在工程應用中是經常需要解決的問題,如何實時採集聲音訊號並對其分析處理,從而找出聲音訊號的特徵在科學研究中是一項非常有意義的工作。

音效卡是多媒體計算機系統中最基本、最常用的硬體之一,其技術發展已經成熟,它具有AD/DA轉換功能,現已被廣泛應用於聲音訊號採集和虛擬儀器系統的設計。MATLAB則是一種功能強大、計算效率高、互動性好的計算和視覺化計算機高階,它將數值分析、訊號採集與處理和圖形顯示有機地融為一體,形成了一個極其方便、使用者介面友好的操作。本文所設計的聲音訊號採集與分析系統就是充分利用了音效卡的AD/DA轉換功能和MATLAB強大的資料處理功能,同時,該系統還是建立在MATLAB軟體的圖形介面實現的,因而使系統具有良好的互動性。

基於計算機音效卡的資料採集系統有以下特點:

(1)價格低廉。在資料採集時,所要採用的是模數轉換晶片,對於某些應用場合,可以利用計算機上所附帶的音效卡實現資料採集任務。

(2)靈活性強。使用者不僅可以進行實時監視和控制操作,還可以把資料儲存到硬碟,供以後分析使用。在CPU足夠快的條件下,還可以實時處理資料,動態顯示波形的頻譜、功率譜。另外在一臺計算機上,可以插若干塊音效卡,組成多通道資料採集系統。

(3)頻率範圍較窄,不能測直流。由於受音效卡的硬體限制,要得到較好的波形,輸入訊號的頻率最好在100Hz~15kHz範圍內。

    總之,運用廉價的音效卡,構成一個較高的取樣精度,中等取樣頻率,且具有很大靈活性的資料採集系統,對於一些應用領域是一種很好的選擇。

  4.1 系統結構設計

MATLAB提供了一個數據採集工具箱(Data Acquisition Toolbox),在該資料採集工具箱中,有一整套的命令和函式,可用來直接控制與PC機相容的資料採集裝置進行資料採集,因此,利用MATLAB的這一工具箱便可進行聲音訊號的採集。然後在MATLAB中直接呼叫頻譜分析函式、功率譜分析函式或數值分析函式等,就可以將採集到的聲音訊號分別進行頻譜、功率譜分析等多種譜分析。因此,在MATLAB中可以很容易地實現訊號採集與分析處理工作。

 

 

             圖4-1系統實現的總體框圖                                     

從系統框圖上看,整個系統結構簡單,而且資料的後續分析方便,不需要再進行資料轉移,而直接在MATLAB軟體中完成分析處理工作。在該系統中,從硬體上來講,只需必要的訊號預處理電路和一臺普通的多媒體計算機(或膝上型電腦)即可;從軟體上來講,則只需使用本文中所編制的程式,便可從音效卡獲取資料並儲存為檔案,然後再可根據實際需要進行資料分析處理。

  4.2 系統功能設計

本系統由資料採集和資料分析兩大部分組成,資料採集部分是實現訊號採集功能,根據使用者選擇的取樣頻率和預設的取樣樣本數從音效卡獲得使用者需要的資料。資料分析部分主要實現以下功能:(1)從訊號採集部分獲取資料,或者從資料檔案讀取資料;(2)實現將採集到的聲音訊號資料進行頻譜分析,畫出頻譜圖以圖形方式很直觀地反映出訊號特徵;(3)儲存資料,包括儲存所有資料和部分資料的功能,同時儲存對應的頻譜資料;(4)顯示聲音訊號資料的時域圖和頻譜圖;(5)其他功能。根據不同的需要,還可以進行修改,以選擇合適的實驗方案。

  4.3 系統設計實現

聲音訊號採集功能的實現是由MATLAB控制計算機音效卡將感測器得到的模擬訊號轉換為數字訊號並存儲在計算機中;而訊號分析功能是將採集得到的資料進行時、頻域分析和各項數值分析等。整個系統設計主要包括系統的硬體配置、編制程式實現資料採集、編制程式實現資料分析及系統的介面設計四部分。

  4.3.1 聲音訊號採集的硬體配置

將音效卡插入計算機的PCI插槽,安裝好相應的驅動程式後,將聲音感測器裝置與音效卡的模擬輸入端連線起來,這就構建了聲音採集的硬體裝置,需要注意的是對聲音感測器的選擇,應選擇音訊專用電纜或遮蔽電纜以減小噪聲訊號的引入,最好能選擇單向性聲音感測器。在MATLAB的訊號採集工具箱中有專門為音效卡生成一個操作物件的函式,初始化該操作物件即能建立MATLAB與音效卡的,併為已建立的音效卡裝置物件增加資料採集通道和觸發方式。若預設設定則系統採用一個數據通道、手動觸發方式啟動工作。進行資料採集時,根據所配置的音效卡的工作特性和訊號分析的設計要求,可設定相應的引數來控制音效卡在資料採集時的行為,如取樣頻率、取樣時間、預計模擬訊號的輸入/輸出範圍、取樣的出發方式,取樣點資料的儲存等。另外需要注意的一點是取樣頻率是由音效卡的特性決定的,實際應用中可以根據情況選擇一個音效卡支援的取樣頻率AB支援電平觸發、事件觸發和手動觸發三種方式來啟動資料採集工作。聲音訊號採集硬體配置的具體實現過程:

  sound=analoginput(‘winsound’);% ‘winsound’為音效卡的驅動程式

  channel=addchannel(sound,1);% 新增通道為單聲道

  set(sound, ‘SampleRate’,44100);% 設定取樣頻率為44100Hz

  set(sound, ‘SamplesPerTrigger’,22050);% 設定取樣時間為0.5s

  set(sound, ‘TriggerType’, ‘manual’);% 設定觸發方式為手工觸發

  ...% 其它的相關設定

  結果分析:圖5-1是在取樣過程中開啟麥克風,但是沒有對麥克風講話的結果(對不同品牌、質量的音效卡,結果可能有所不同),圖5-2是在取樣的過程中對麥克風講話的結果.可以看出,講話與否(感測器感受端的變化)改變了所採集到的資料的結果.

  二、 直接利用MATLAB資料採集箱中提供的函式命令進行採集

一般的取樣過程是對音效卡產生的模擬輸入物件(AI) 進行操作的,由於配置和模擬通道的運用使得資料採集過程顯得煩瑣難以理解,有時還不易獲得取樣資料。實驗過程發現一種更為簡單實用的方法可以進行資料採集。在闡述之前,首先介紹一下MATLAB資料採集箱中的幾條有關命令:

wavrecord : wavrecord 利用Windows 音訊輸入裝置記錄聲音,其呼叫形式為:wavrecord (n ,fs ,ch) 。利用Windows音訊輸入裝置記錄n個音訊取樣, 頻率為fs Hz ,通道數為ch。取樣值返回到一個大小為n*ch 的矩陣中。預設時,fs = 11025 ,ch = 1。

waveplay: waveplay 利用Windows音訊輸出裝置播放聲音,其呼叫形為:waveplay(y ,fs) 。以取樣頻率fs向Windows 音訊裝置傳送向量訊號。標準的音訊取樣率有:8000、11025、22050 和44100Hz。

wavread :wavread 用於讀取Microsoft 的副檔名為“”的聲音檔案。其呼叫形式為: y = wavread (file) 。其作用是從字串file 所指的檔案路徑讀取wave 檔案,將讀取的取樣資料送到y 中。Y的取值範圍: [ -1 ,1 ] 。

sound:音訊訊號是以向量的形式表示聲音取樣的。sound 函式用於將向量轉換為聲音,其呼叫形式為:sound (y ,fs) ,作用是向揚聲器送出向量y 中的音訊訊號(取樣頻率為fs) 。

應用上述所講到的MATLAB資料採集箱提供的函式進行一次簡單的語音訊號的採集實驗。記錄5 秒鐘的8 位音訊語音訊號並回放之, 取樣頻率設為11025Hz。

﹥﹥fs = 11025 ; 設定取樣頻率

﹥﹥y1 = wavrecord (5*fs ,fs ,‘uint8’) ; 進行無語音採集

﹥﹥plot (y1) ;

﹥﹥y2 =wavrecord (5*fs ,fs ,‘uint8’) ; 開始採集8位語音訊號,時間為5s

﹥﹥plot (y2) ;

﹥﹥wavplay(y2 ,fs) ; 回放所採集的語音

﹥﹥sound (y2 ,fs) ;

﹥﹥y1 =fft (y2) ; 做訊號的fft 變換

﹥﹥plot (y2) ;

                        圖5-3 無聲音訊號輸入波形

               

            圖5-4  有聲音訊號輸入波形

               

                       圖5-5 聲音訊號傅立葉變換

圖形分析:使用者可以變換取樣頻率及取樣時間,也可以不同的頻率回放語音。感受不同函式在相同的頻率下回放的語音訊號是否一致。此例進行的是實時回放,若要事後回放則可用wavread 函式。從程式及實現上可看出此方法簡便了許多,而且實驗結果與傳統方法得到的實驗結果完全一致。圖5-3為在取樣過程中開啟麥克風,但是沒有對麥克風講話的結果(對不同品牌、質量的音效卡,結果可能不同) ,從圖上可以看到除開始取樣的極短一段時間內有個訊號接收過程產生階躍外,其餘時間內波形都在很小的範圍內平穩的波動。圖5-4是取樣過程中對麥克風講話的結果,可以看出,講話(感測器端接收到訊號)改變了採集的資料的結果。從圖5-4中看出波形發生了很大的變化,波形隨聲音訊號的高低強弱而發生變化,可知計算機已經通過麥克風接收到了語音訊號,說明訊號採集工作成功。圖5-5為對採集到的訊號進行的快速傅立葉變換所得到的圖形。

上面介紹的基於音效卡和MATLAB的語音資料採集系統,具有實現簡單、價效比和靈活度高的特點。經例項分析證明,利用該系統可實現線上連續採集語音訊號並進行分析和處理。

應用前文所述的MATLAB 資料採集工具箱提供的命令函式和系統為Windows98 的上的板載音效卡進行簡單資料採集。記錄5s的16 bit音訊語音訊號並回放, 取樣頻率設為11025 Hz。

fs=11025       %設定取樣頻率

y1=wavrecord( 5*fs, fs, ‘unit16’)     %進行無語音採集

plot( y1)           %畫出所採集到的訊號的波形

y2=wavrecord( 5*fs, fs, ‘unit16’)     %進行語音採集

wavplay( y1, fs)

sound( y2, fs)      %回放所採集的語音

  圖5-6是用MATLAB的DAQ工具箱中的命令函式的方法採集資料, 取樣過程中傳聲器無語音輸入;圖5-7是用建立音效卡裝置物件的方法採集資料, 取樣過程中傳聲器有語音輸入。

圖5-6 傳聲器無語音輸入

圖5-7 傳聲器有語音輸入

TAGS:matlab 系統