<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 聲卡和Matlab的虛擬信號發(fā)生器的工作原理

          聲卡和Matlab的虛擬信號發(fā)生器的工作原理

          作者: 時(shí)間:2016-12-27 來源:網(wǎng)絡(luò) 收藏
          聲卡從話筒中獲取聲音模擬信號,通過模數(shù)轉(zhuǎn)換器(ADC),將聲波振幅信號采樣轉(zhuǎn)換成一串?dāng)?shù)字信號,存儲到計(jì)算機(jī)中。重放時(shí),這些數(shù)字信號送到數(shù)模轉(zhuǎn)換器(DAC),以同樣的采樣速度還原為模擬波形,放大后送到揚(yáng)聲器發(fā)聲,這一技術(shù)稱為脈沖編碼調(diào)制技術(shù)(PCM)。作為多媒體計(jì)算機(jī)系統(tǒng)中最基本最常用的硬件之一,其技術(shù)已經(jīng)發(fā)展成熟,他同時(shí)具有A/D和D/A轉(zhuǎn)換功能,經(jīng)濟(jì)方便,目前已經(jīng)被廣泛應(yīng)用于數(shù)據(jù)采集和虛擬儀器系統(tǒng)的設(shè)計(jì)[1,2]。Matlab是一個(gè)數(shù)據(jù)分析和處理功能十分強(qiáng)大的工程實(shí)用軟件,他的數(shù)據(jù)采集工具箱(dataacquisitiontoolbox)為實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出提供了十分方便的函數(shù)和命令,利用這些函數(shù)和命令可以很容易地實(shí)現(xiàn)對外部物理世界的信號輸出和輸入。根據(jù)聲卡輸出信號的原理,采用Matlab軟件編程,可以方便地利用聲卡輸出所需要的三角波、正弦波、方波等多種信號,有效地實(shí)現(xiàn)信號發(fā)生器的基本功能。

          本文引用地址:http://www.ex-cimer.com/article/201612/334349.htm

          1基于Matlab和聲卡的虛擬信號發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)

          1.1系統(tǒng)實(shí)現(xiàn)原理

          通常PC機(jī)配置的聲卡提供了麥克風(fēng)輸入和揚(yáng)聲器輸出2個(gè)接口,他集成了信號輸入/輸出需要的模/數(shù)轉(zhuǎn)換器(ADC)和數(shù)/模轉(zhuǎn)換器(DAC),因此,利用Matlab軟件產(chǎn)生的各種虛擬信號通過聲卡的DAC單元就可以直接輸出。

          只需要用音頻線將軟件系統(tǒng)產(chǎn)生的信號由線性輸出(lineout)接口引出,就可以通過聲卡直接作為信號源輸出,顯然,在這種虛擬信號發(fā)生器系統(tǒng)中,只需要一臺帶有普通多媒體聲卡并安裝了Matlab軟件的PC機(jī)就可以滿足要求實(shí)現(xiàn)虛擬信號的輸出,系統(tǒng)結(jié)構(gòu)簡單方便。

          1.2基于Matlab的信號發(fā)生器的實(shí)現(xiàn)方法

          Matlab的數(shù)據(jù)采集工具箱(DAT)提供了一系列的函數(shù)和命令來實(shí)現(xiàn)實(shí)時(shí)模擬信號的輸出,通過調(diào)用這些函數(shù)和命令可以直接控制聲卡輸出虛擬信號,在Matlab中用聲卡產(chǎn)生虛擬信號的過程.

          Matlab的數(shù)據(jù)采集工具箱提供的控制聲卡輸出模擬信號的主要函數(shù)和命令如下:

          (1)初始化操作

          Matlab將聲卡等設(shè)備都作為對象處理,其后的一切操作都不與硬件直接相關(guān),而是通過對該對象的操作來作用對象,所以,首先要為聲卡建立一個(gè)設(shè)備對象。

          ao=analogouput(winsound)

          analogouput()為模擬輸出設(shè)備對象建立函數(shù),通過該函數(shù)將聲卡映射為Matlab環(huán)境中的一個(gè)模擬輸出設(shè)備對象句柄。winsound為聲卡設(shè)備驅(qū)動(dòng)程序。

          (2)添加數(shù)據(jù)輸出通道操作

          Matlab中用于添加數(shù)據(jù)輸出通道操作的函數(shù)為addchannel,其函數(shù)格式如下:

          chan=addchanel(ao,ch)

          其中:ao為聲卡對象的句柄(下同),ch為聲卡通道號,最大為2通道。

          (3)輸出數(shù)據(jù)操作

          Matlab中用于輸出數(shù)據(jù)操作的函數(shù)為putdata,其函數(shù)格式如下:

          putudata(ao,data)

          其中:data為所需要輸出的數(shù)據(jù)。

          (4)啟動(dòng)并觸發(fā)聲卡設(shè)備操作

          當(dāng)完成輸出數(shù)據(jù)操作后,并沒有真正輸出數(shù)據(jù),必須啟動(dòng)聲卡,才能對外輸出信號,啟動(dòng)并觸發(fā)聲卡設(shè)備操作的命令如下:

          start(ao)

          (5)停止并刪除聲卡設(shè)備操作

          Matlab的數(shù)據(jù)采集工具箱和圖形用戶接口提供了十分簡便的實(shí)現(xiàn)聲卡輸出功能的命令和函數(shù),利用Matlab和聲卡設(shè)計(jì)虛擬信號發(fā)生器十分方便,而在硬件上只需要一塊聲卡,無需添加任何其他設(shè)備,價(jià)格十分便宜。雖然聲卡的設(shè)計(jì)是以產(chǎn)生聲音為目的,有效的音頻范圍和輸出電壓的幅度在一定程度上限制了他的使用,但這已完全能滿足產(chǎn)生基本信號源的要求。在本設(shè)計(jì)的基礎(chǔ)上,通過進(jìn)一步的Matlab編程或硬件上的改進(jìn)和擴(kuò)展,可以實(shí)現(xiàn)一些常規(guī)儀器設(shè)備不能產(chǎn)生的信號,這在實(shí)際應(yīng)用中具有廣泛的推廣應(yīng)用前景。

          信號輸出完成后,聲卡設(shè)備仍然保留在計(jì)算機(jī)系統(tǒng)中,若不將聲卡設(shè)備停止并刪除,計(jì)算機(jī)系統(tǒng)中仍會(huì)保留該設(shè)備,在下次啟動(dòng)虛擬信號發(fā)生器系統(tǒng)時(shí)將會(huì)發(fā)出聲卡設(shè)備仍然在使用的錯(cuò)誤信息。



          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();