《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于生產者/消費者設計模式的連續音頻信號采集系統
基于生產者/消費者設計模式的連續音頻信號采集系統
摘要: 本文以LabVIEW為平臺,著重介紹了生產者/消費者模式的實現,以及在實時控制的連續音頻采集系統中的應用。
Abstract:
Key words :

0 引 言

  LabVIEW 是美國NI公司1986年推出的一種圖形化的編程語言和開發環境。作為虛擬儀器開發平臺,由于其圖形化的編程方式具有簡單易學、直觀方便、功能強大等特點,是很多工程設計人員進行虛擬儀器開發的首選。生產者/消費者設計模式是NI公司最新推出的程序設計概念,它從主/從設計模式發展而來,生產者/消費者設計模式將生產和消費數據速度不同的任務分開處理,大大提高了不同速率的多個循環之間數據共享的能力,對于多任務處理和實時性、連續性要求嚴格的程序設計,生產者/消費者設計模式是較好的選擇。在虛擬儀器系統中,硬件解決信號的輸入和輸出,軟件可以方便地更新儀器系統的功能,以適應不同使用者的需要。其中信號的輸入部分一般使用數據采集卡實現,商用的數據采集卡具有較大的逋用性。普通聲卡具有16位的量化精度、數據采集頻率是44 kHz,完全可以滿足特定音頻信號范圍內數據采集的需要,個別性能指標還優于商用數據采集卡,而價格卻為商用數據采集卡的十幾分之一甚至幾十分之一。若保證信號采集的逼真性,在采集過程中的連續性和實時控制顯得尤為重要。

  本文以LabVIEW為平臺,著重介紹了生產者/消費者模式的實現,以及在實時控制的連續音頻采集系統中的應用。

  1 生產者/消費者設計模式概念及其實現

  1.1 生產者/消費者設計模式概念


  生產者/消費者設計模式包括多個并行循環,每個循環以不同的速率執行任務。一個循環作為生產數據的循環,其他循環作為消費數據的循環。生產數據的循環控制所有消費數據的循環,并且使用通信技術與它們進行通信。

  1.2 生產者循環與消費者循環之間的通信

  在LabVIEW程序設計過程中,變量(局部變量和全局變量)、通知器、隊列常用于多個循環之間傳遞數據。

  LabVIEW中的變量是程序框圖中的元素,通過它可以在另一位置訪問或存儲數據。根據不同的變量類型,數據的實際位置也不一樣。局部變量將數據存儲在前面板的輸入控件和顯示控件中,全局變量和單進程共享變量將數據存儲在特殊的通過多個VI可以訪問的倉庫中。不管變量將數據存儲在何處,所有的變量都可以在不使用連線連接兩個地方的條件下把數據從一個地方傳遞到另一個地方,而不必使用正常的數據流。但是變量的使用有著其自身的缺點,變量不僅不能保證各個循環之間的同步,而且使用變量會破壞LabVIEW的數據流模式,在對變量進行讀寫操作時容易產生內存拷貝,浪費內存資源,影響系統運行效率。

  變量還允許競爭狀態的出現,競爭狀態不容易識別和調試,因為輸出取決于操作系統執行排定的任務和外部時間定時的順序。任務之間和任務同計算機之間的交互方式,以及外部時間的任意定時都使這種順序變得隨機。很多情況下,帶有競爭狀態的代碼會在數千次測試中返回相同的結果,但仍然可能會在運行時返回一個不同的結果。

  對生產者/消費者設計模式的一個更有效的實現是使用通知器和隊列使數據傳輸保持同步。通知器在發出數據可用的通知時,將同時發送數據。使用通知器將數據從主循環傳送到從循環消除了和競爭狀態相關的問題。使用通知器還有同步的好處,因為數據可用時,主從循環都已完成定時,并準備實現一個良好的生產者/消費者設計模式。但是通知器不會緩沖數據,如果主循環在從循環讀取第一份數據之前發送另一份數據,那么原來那份數據就會被覆蓋并丟失。隊列類似于通知器。但它可以存儲多份數據,默認情況下,隊列按照FIFO(先進先出)的方式執行。因此,第一份插入隊列的數據,也是第一份從隊列中刪除的數據。在實時控制的連續音頻信號采集過程中,由于需要處理許多用戶界面的事件,為了不造成數據丟失,選擇隊列在各個循環之間傳遞數據,實現過程如圖1所示。

  如圖1所示,在循環開始使用“獲取隊列引用”函數之前,隊列就已經創建完畢。生產者循環使用“元素入隊列”函數向隊列中添加數據。消費者循環使用“元素出隊列”函數從隊列中移除數據。消費者循環一直到隊列中的數據可用時才執行。

  可見,在此生產者/消費者設計模式中,兩個循環均被同步為與生產者循環一致。消費者循環只在隊列中的數據可用時才執行。這樣就保證了消費者循環執行任務的連續性和高效性。并且,隊列用于循環之間的數據傳遞,創建全局可用的位于隊列中的數據,而且在添加新的數據到隊列時,避免了丟失數據的可能性。

  2 實時控制的連續音頻信號采集系統

  2.1 聲卡簡介


  從數據采集的角度看,聲卡是一種音頻范圍內的數據采集卡,是計算機與外部模擬量環境聯系的重要途徑。一般聲卡都是由以下幾部分組成:聲音控制/處理芯片,功放芯片,聲音輸入/輸出端口等。

  聲音控制/處理芯片是聲卡的核心,集成了采樣保持、A/D轉換、D/A轉換、音效處理等電路,它決定了聲卡的性能和檔次,基本功能包括對聲波采樣和回放控制、處理MIDI指令等,有的廠家還加進了混響、合聲、音場調整等功能。

  功放芯片完成信號的功率放大以推動喇叭發聲工作。聲音輸入/輸出端口是音頻信號的輸入和輸出,它主要有外接端口和內接端口。外接端口有“SPK Out”喇叭輸出端口,“Wave Out(或Line Out)”線性輸出端口,“Line In"線性輸入端口,“MIC”麥克風輸入端口,還有MIDI端口,連接電子樂器以及連接游戲控制器。內接端口是內置的輸入/輸出端口,是CD音頻接口,通過3~4針的音頻線直接連接。Line In接口和MIC都可以用于外部音頻信號的輸入,只不過后者可接入較弱的信號,幅值大約為0.02~O.2 V,顯然這個信號較易受到干擾,因而常使用Line In,它可接入幅值約不超過1 V的信號。

  市面上的聲卡主流都是16位的,聲卡的最高采樣頻率是44.1 kHz,民用的聲卡一般將采樣頻率設為4檔,分別為44.1 kHz,22.05 kHz,11.025 kHz和8 kH。與一般的數據采集卡不同,聲卡的D/A和A/D功能都是連續狀態的。

  2.2 具體設計

  根據聲卡的性能指標,將聲卡初始設置為雙聲遣、44 100 Hz采樣頻率、16位采樣精度。要使采集到的音頻信號達到逼真的效果,要求信號的采集過程保持連續,但實時控制要求程序對用戶界面的控件做出響立,這就在采集的連續性和對用戶的響應方面產生了矛盾。本音頻信號采集系統,運用生產者/消費者程序設計模式,很好地解決了這一矛盾,使生產者循環完成對用戶界面的響應,消費者循環完成音頻信號的采集任務,從而不僅提高了整個信號采集過程的效率,而且使采集的語音信號效果逼真。圖2是實際音頻信號采集系統前面板。

  主要程序框圖如圖3所示,在循環開始前,使用“獲取隊列引用”函數創建消息隊列。生產者循環使用“元素入隊列”函數向隊列中添加數據。消費者循環使用“元素出隊列”函數從隊列中獲取消息并移除數據。

  該設計模式允許消費者循環以固有速度采集信號的同時,生產者循環完成對用戶界面的響應,生產者循環中采用事件結構,事件結構的延時時間為100 ms,采用輪詢操作,處理用戶界面各個控件的響應,對信號采集進行實時控制,同時為了不影響消費者循環中信號采集的連續性,并不是每一個用戶事件都通過隊列產生消息,通知消費者循環重新配置信號采集,只有在聲卡配置參數(采樣點數、采樣率)發生改變時,生產者循環使用“發送通知”函數產生消息,以便通過“ 等待通知”函數通知消費者循環。

  消費者循環內部是狀態機結構,在第一次循環時進入“SetUp”分支,進行聲卡的初始化配置,從下次循環開始,在其他控件發生改變而有關聲卡配置的參數不發生變化時,生產者循環不會產生消息隊列,消費者循環中在“daq”分支和“Wait”分支間進行,“Wait”分支僅檢查消息隊列中是否有消息,如果沒有轉“daq”分支進行數據采集,而不會進入聲卡配置的“SetUp”分支,這樣不僅保證了獨立的采集過程不受影響,而且由用戶界面引起的任何延時(如顯示對話框)都不會導致采集過程的循環操作產生延時,從而保證采集音頻信號的連續性。

  在用戶改變聲卡配置參數發生時,生產者循環響應該事件,“元素入隊列”函數向隊列中添加消息,消費者循環“Wait”分支中的“元素出隊列”函數從隊列中移出消息,在下次循環時進入“Setup”分支進行聲卡參數配置,然后轉入“daq”分支繼續進行信號采集。在“daq”分支中除進行數據采集外,還對信號進行功率譜分析,并將信號保存在一個硬盤文件中。

  通過大量實驗發現采用生產者/消費者設計模式設計的音頻信號采集系統能夠有效避免在采集過程中出現的聲音中斷和失真現象,較之以前基于其他模式的設計有一定的優勢。

  3 結 語

  在LabVIEW程序設計過程中,并行循環之問的數據傳遞必須進行妥善處理,否則就會出現死循環等預想不到的錯誤。該文介紹的生產者/消費者設計模式不僅使并行循環間傳遞數據的邏輯關系更加簡潔明了,使得程序的修改維護更加方便,而且大大提高了程序運行的效率。本文只是利用一個簡單的實時控制的連續音頻信號采集系統介紹了此模式的應用,闡明了這種設計模式的思想,在用LabVIEW設計如網絡通信程序等要求準確且響應速度快的實時控制程序時,生產者/消費者模式有很好的借鑒意義。
 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美大片免费久久精品三p| 亚洲狠狠丁香婷婷综合久久久| 蜜桃av久久久亚洲精品| 欧美日韩免费视频| 欧美精品亚洲二区| 黄色小说综合网站| 在线日本欧美| 亚洲精选大片| 国产精品私拍pans大尺度在线| 欧美日韩中文字幕综合视频| 欧美另类在线观看| 亚洲欧美日韩一区二区在线| 欧美视频中文字幕在线| 国产亚洲成年网址在线观看| 久久精品在线播放| 在线播放一区| 亚洲成色999久久网站| 久久久久一本一区二区青青蜜月| 国产欧美日韩一区二区三区| 中文亚洲免费| 欧美日韩一区二区在线观看视频| 亚洲尤物在线| 久久精品国产亚洲一区二区三区| 欧美视频国产精品| 亚洲性感激情| 在线成人av网站| 久久国产精品一区二区| 国产精品久久一区二区三区| 麻豆freexxxx性91精品| 亚洲国产三级在线| 欧美激情一区二区三区在线| 欧美aⅴ一区二区三区视频| 韩国在线一区| 欧美日韩亚洲精品内裤| 韩国成人理伦片免费播放| 国产一区二区剧情av在线| 亚洲欧美在线aaa| 亚洲一区二区三区三| 久久超碰97人人做人人爱| 一区二区三区欧美成人| 99精品视频免费在线观看| 欧美美女视频| 欧美在线观看一区二区| 女主播福利一区| 久久国产日韩欧美| 老色鬼久久亚洲一区二区| 亚洲成色精品| 欧美精品在线观看一区二区| 欧美网站大全在线观看| 欧美激情性爽国产精品17p| 亚洲一区二区三区免费在线观看| 日韩亚洲欧美成人一区| 欧美视频在线观看免费网址| 亚洲免费在线看| 日韩视频在线观看国产| 日韩一区二区精品在线观看| 亚洲欧洲在线观看| 亚洲欧美日韩国产一区二区三区| 亚洲一级黄色av| 亚洲国产高清在线观看视频| 国产精品理论片| 亚洲一区二区影院| 欧美精品一区二区在线播放| 久色婷婷小香蕉久久| 国产亚洲精品bt天堂精选| 亚洲欧美日韩第一区| 午夜精品久久99蜜桃的功能介绍| 欧美人交a欧美精品| 欧美黄污视频| 怡红院精品视频在线观看极品| 亚洲欧美综合精品久久成人| 亚洲欧美国产高清va在线播| 久久久不卡网国产精品一区| 1769国内精品视频在线播放| 亚洲国产91精品在线观看| 蜜臀久久久99精品久久久久久| 亚洲女女做受ⅹxx高潮| 一本色道综合亚洲| 一区二区不卡在线视频 午夜欧美不卡'| 欧美成人一区二免费视频软件| 国产精品jizz在线观看美国| 亚洲无亚洲人成网站77777| 欧美一区二区三区日韩视频| 久久成人精品视频| 亚洲视频在线观看视频| 中文在线资源观看网站视频免费不卡| 嫩模写真一区二区三区三州| 一区二区三区视频在线播放| 99在线观看免费视频精品观看| 亚洲视频电影图片偷拍一区| 久久在精品线影院精品国产| 亚洲人成毛片在线播放女女| 久久中文字幕一区| 国产一区99| 欧美在线观看一区| 欧美日韩中文字幕在线| 国产美女精品一区二区三区| 亚洲精品一区二区在线观看| 久色成人在线| 欧美在线视频在线播放完整版免费观看| 欧美精品一区二区三区在线播放| 99亚洲精品| 国产欧美日韩精品丝袜高跟鞋| 黄色免费成人| 久久久精品午夜少妇| 激情久久综合| 亚洲一区二区三区在线播放| 欧美日韩成人网| 欧美日本精品一区二区三区| 国产精品高清在线| 亚洲自拍三区| aa级大片欧美三级| 在线欧美影院| 亚洲一区二区免费视频| 欧美日韩一区二| 久久久久久久波多野高潮日日| 亚洲精品乱码视频| 99亚洲视频| 激情久久综艺| 欧美日韩在线精品一区二区三区| 国产精品白丝黑袜喷水久久久| 欧美夜福利tv在线| 99在线热播精品免费99热| 欧美高清在线视频观看不卡| 亚洲一区二区三区777| 欧美性事在线| 老司机凹凸av亚洲导航| 欧美精品一区二区三| 国产精品腿扒开做爽爽爽挤奶网站| 99精品国产一区二区青青牛奶| 欧美激情精品久久久久久免费印度| 国产精品久久久久9999| 欧美日韩在线播放一区二区| 免费一区视频| 欧美顶级艳妇交换群宴| 欧美日韩亚洲一区二区| 亚洲视频一区在线| 久久精品在线| 久久一区二区精品| 国产日韩欧美一区二区| 欧美在线观看一区二区| 亚洲裸体俱乐部裸体舞表演av| 国产精品欧美激情| 欧美色图天堂网| 亚洲在线黄色| 一本在线高清不卡dvd| 欧美一区精品| 国产丝袜一区二区| av成人黄色| 久久视频这里只有精品| 久久九九全国免费精品观看| 国产精品久久午夜夜伦鲁鲁| 亚洲国产精品福利| 国产视频在线一区二区| 久久久久久久波多野高潮日日| 在线观看一区二区视频| 午夜国产精品视频免费体验区| 黄色精品免费| 亚洲片在线观看| 国产一区二区无遮挡| 国产精品久久久久永久免费观看| 亚洲砖区区免费| 1769国内精品视频在线播放| 国产一区二区三区在线观看免费| 欧美另类变人与禽xxxxx| 免费在线一区二区| 亚洲欧美激情诱惑| 亚洲成人资源| 亚洲女性喷水在线观看一区| 国产日本欧美视频| 日韩亚洲一区二区| 亚洲另类在线一区| 91久久久国产精品| 欧美一级视频免费在线观看| 久久成人精品视频| 在线观看日产精品| 亚洲精品日韩激情在线电影| 免费成人黄色av| 亚洲国产精品va在线观看黑人| 国产精品盗摄一区二区三区| 国产精品免费网站| 亚洲女与黑人做爰| 国产在线一区二区三区四区| 夜夜狂射影院欧美极品| 在线视频成人| 欧美激情视频在线播放| 欧美激情综合色| 中文在线资源观看视频网站免费不卡| 久久午夜av| 国产日韩精品综合网站| 亚洲高清在线播放| 毛片av中文字幕一区二区| 国产精品伦子伦免费视频| 性欧美1819性猛交| 欧美视频日韩视频在线观看| 亚洲永久免费视频| 亚洲午夜精品久久| 中文网丁香综合网| 亚洲一本大道在线| 欧美日韩国产限制| 国产精品日日做人人爱| 欧美jizzhd精品欧美喷水| 久久久天天操| 久久精品日韩欧美| 国内精品久久久久国产盗摄免费观看完整版| 亚洲精品一区在线观看香蕉| 国产毛片一区二区| 亚洲一区二区三区中文字幕在线| 国产精品久久91| 国产精品久久久久久影院8一贰佰| 欧美日韩mp4| 日韩天堂在线观看| 欧美肉体xxxx裸体137大胆| 国产精品嫩草影院一区二区| 亚洲欧美日韩区| 久久精品成人一区二区三区| 亚洲欧美日韩国产一区| 国产一区自拍视频| 国产九九精品| 久久国产精品久久久| 亚洲精品之草原avav久久| 欧美激情精品久久久久久免费印度| 国产日韩一区二区三区在线| 国产乱肥老妇国产一区二| 亚洲在线国产日韩欧美| 在线视频免费在线观看一区二区| 一区二区三区国产在线观看| 夜久久久久久| 欧美日韩国产区一| 最新日韩av| 久久国产福利国产秒拍| 久久高清国产| 欧美激情a∨在线视频播放| 欧美成人精品不卡视频在线观看| 极品av少妇一区二区| 性色一区二区三区| 国产色综合网| 欧美亚洲视频在线看网址| 小辣椒精品导航| 国产在线观看一区| 亚洲福利小视频| 亚洲人成在线影院| 亚洲国产精品视频一区| 国内精品99| 亚洲国产精品一区二区尤物区| 激情视频一区| 国产精品久久久久三级| 国产精品看片资源| 亚洲国产精品一区二区www| 欧美在线视频观看免费网站| 亚洲综合欧美| 欧美日韩亚洲不卡| 狠狠色丁香久久婷婷综合丁香| 欧美日韩一区成人| 欧美伦理91| 欧美大片一区二区| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美精品激情在线观看| 国产精品v片在线观看不卡| 亚洲一区中文| 日韩写真在线| 日韩一区二区免费高清| 亚洲国产女人aaa毛片在线| 欧美激情自拍| 蜜臀久久99精品久久久久久9| 免费影视亚洲| 激情视频一区| 亚洲国产毛片完整版| 欧美激情一区二区三区全黄| 久久精品国产一区二区电影| 亚洲国产欧美国产综合一区| 亚洲综合国产| 香蕉视频成人在线观看| 欧美精品日韩精品| 在线视频免费在线观看一区二区| 久久精品亚洲精品国产欧美kt∨| 国产精品乱码妇女bbbb| 亚洲综合视频1区| 国产性猛交xxxx免费看久久| 亚洲欧美成人精品| 黄色成人在线网站| 国产夜色精品一区二区av| 欧美大片在线观看| 亚洲视频在线观看视频| 亚洲日本一区二区| 亚洲在线一区二区三区| 激情综合电影网| 欧美日韩第一页| 国产精品欧美一区二区三区奶水| 亚洲国产精品久久91精品| 激情懂色av一区av二区av| 国产九九精品| 亚洲欧美久久| 一区二区三区在线高清| 亚洲日本无吗高清不卡| 欧美视频手机在线| 国产精品日韩二区| 99视频精品在线| 久久综合999| 国产午夜精品全部视频播放| 在线成人中文字幕| 国产伦理精品不卡| 国语精品一区| 国内精品国语自产拍在线观看| 亚洲一本视频| 欧美日韩免费一区二区三区视频| 亚洲一区二区在线免费观看| 一本色道久久综合狠狠躁篇怎么玩| 久久人体大胆视频| 欧美69视频| 亚洲一区国产一区| 亚洲三级电影全部在线观看高清| 快射av在线播放一区| 欧美在线视频不卡| 亚洲国产精品一区| 久久精品综合一区| 欧美aaaaaaaa牛牛影院| 亚洲精品在线一区二区| 欧美理论电影在线播放| 一区二区三区国产精品| 国产精品视频xxx| 亚洲小说春色综合另类电影| 亚洲激情精品| 国内精品伊人久久久久av影院| 国产综合色产在线精品| 国产一区二区精品久久99| 1000部国产精品成人观看| 亚洲国产中文字幕在线观看|