亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Visual C++的聲信號分析系統(tǒng)圖形顯示界面問題的研究*

        2016-06-30 07:06:47張風珍陳軍鋒吳鳳艷
        艦船電子工程 2016年6期

        曹 琳 彭 圓 張風珍 陳軍鋒 韓 輝 吳鳳艷

        (水下測控技術重點實驗室 大連 116013)

        基于Visual C++的聲信號分析系統(tǒng)圖形顯示界面問題的研究*

        曹琳彭圓張風珍陳軍鋒韓輝吳鳳艷

        (水下測控技術重點實驗室大連116013)

        摘要論文介紹了在Visual C++平臺下的聲信號分析系統(tǒng)實時波形圖、聲譜圖和直方圖的快速繪制方法。采用雙緩沖顯示技術解決了大數據量繪圖時界面響應速度慢和刷新時出現閃爍現象的問題。通過雙緩沖技術等措施,提高了顯示速度,克服了界面閃爍。

        關鍵詞雙緩沖; Visual C++; 閃爍

        Class NumberTP391

        1引言

        一個聲信號分析系統(tǒng)的編制過程整體分為:聲音采集錄制、數據的分析處理、聲音的圖形顯示、聲音播放。其中聲音的圖形顯示是該系統(tǒng)的關鍵技術。目前,市面上及網絡上有很多可供Visual C++調用的曲線顯示類或控件,如圖表類控件MSChart等。但這些類或控件要么由于針對性不強,要么功能較簡單,難以滿足本軟件的需求,如大數據量波形的快速實時顯示、聲譜圖實時顯示、1/3倍頻程直方圖。由于數據采集器的數據量大,其接收、處理、存儲和實時波形顯示都很費時,如果直接在屏幕上動態(tài)繪圖的話,會出現閃爍現象。而圖形顯示的閃爍問題容易給操作人員帶來讀數的不準確和判斷失誤。因此研究圖形刷新帶來屏幕閃爍問題對聲信號分析系統(tǒng)的研發(fā)有著一定的必要性。針對上述情況,本文通過查閱相關資料進行了聲信號分析系統(tǒng)圖形顯示界面的設計。

        2圖形閃爍問題分析及解決方法

        在圖形連續(xù)動態(tài)變化過程中,當屏幕由一個畫面變化為另一個畫面時,首先將原來的背景擦除,接著將新的圖形繪制在顯示區(qū)域。由于顯示背景不斷擦除和繪制圖形所用的時間較長,導致屏幕出現閃爍。為解決這個問題,本文采用雙緩沖顯示技術[2]?;静襟E為:定義CBitmap對象;獲得設備環(huán)境DC;創(chuàng)建與指定的DC兼容的內存設備環(huán)境;初始化位圖對象,使其與指定的設備環(huán)境兼容;將位圖選入設備,并繪制到窗口上。這樣就不必擦除背景,并且在圖形繪制在屏幕之前,已經將圖形繪制在位圖中,然后直接復制到屏幕上,跳過了在屏幕上直接繪圖時間和背景擦除。圖1為雙緩沖顯示技術的實現過程。圖2為沒有使用雙緩沖技術的波形圖,系統(tǒng)繪圖過程非常緩慢,且圖形會閃爍,整個窗口繪圖過程時間為21s。圖3為使用雙緩沖技術繪制的波形圖,可以看到繪圖時間為7s,速度提高了三倍。實踐證明,這樣繪制出來的圖形更流暢,可以有效解決圖形繪制時的屏幕閃爍問題。

        圖1 雙緩沖繪圖實現流程

        圖2 沒有使用雙緩沖技術繪圖的效果

        圖3 使用雙緩沖技術繪圖的效果

        3動態(tài)圖形繪制方法

        3.1實時曲線顯示

        在計算機上像示波器那樣連續(xù)動態(tài)地顯示曲線是比較復雜和困難的,由于計算機不斷地接收來自聲卡的數據,所以曲線不可能在有限的顯示屏中一次性地全部顯示出來,曲線只能以動態(tài)的形式顯示,而且每一時刻可以看到的都應該是最近剛接收到的n個數據所畫出來的曲線。本系統(tǒng)使用MoveTo、LineTo繪圖指令,采用滾動顯示的方法實現了曲線的動態(tài)顯示。首先信號自左向右顯示,當顯示數據的點數等于窗口的寬度時,顯示的信號開始向左移動,最左端的點消失,最新的采樣點顯示在窗口的最右端,從而實現信號的連續(xù)顯示,圖4為某一段時間的實時曲線圖。

        圖4 實時曲線

        由于顯示控件的分辨率是有限的,這就決定對大量數據顯示時,會存在重疊和視覺無法分辨的情況。此外,繪圖指令MoveTo和LineTo所消耗的時間遠大于計算機運算速度。如果不加處理直接調用繪圖指令MoveTo、LineTo進行繪制,當顯示數據量較大時,顯示器的顯示速度就會變得越來越慢,這是難以忍受的。為了加速大數據量圖形實時顯示的速度,就必然要減少繪圖指令的調用次數。通過仔細分析可以看出,當數據量遠大于顯示控件窗口的寬度時,控件窗口每一個橫坐標像素位置上有許多數據點的重疊繪制過程,這些重復的繪制過程對波形顯示效果影響不大,曲線的外形主要由同一個橫坐標像素位置重疊點的最大值和最小值決定。 如圖5所示,對于500*320的區(qū)域,顯示波形數據長度為3000,那么如圖5(a)所示的六點顯示的實際效果如圖5(b),它和圖5(c)是一致的。但圖5(b)卻畫了五條線,而圖5(c)只畫了一條線,只是將最大值和最小值連接起來。繪圖指令變?yōu)榱松倭康谋容^運算,從而可以成倍提高繪圖速度。通過表1不同數據長度的兩種方法所需時間的比較,說明在繪制過程中,多點構成的多條線段,由最小值-最大值線段代替的方法優(yōu)化了軟件,減少了不必要的運算處理,提高了顯示速度[1]。

        圖5 不同繪圖方式的比較

        數據長度直接算法/ms新方法/ms數據長度直接算法/ms新方法/ms7000.10.17K100.170K10010700K1092505M9000284

        3.2聲譜圖實時顯示

        通過查閱資料并在SourceForge網站下載了有關繪制聲譜圖的源代碼進行研究,發(fā)現聲譜圖繪制的關鍵是顏色過渡映射表的實現[1],可以參考Matlab中colormap的原理建立顏色過渡映射表:顏色由弱到強進行量化,每一個顏色對應一個強度的數值。這樣每個點的顏色都確定了,就能得到聲譜圖。圖6是Jet色彩過渡模型。其整個色彩過渡由五段線性過渡組合而成。圖7是通過麥克風采集的數據繪制的實時聲譜圖。

        圖6 Jet 色彩過渡模型

        圖7 聲譜圖

        3.3直方圖動態(tài)顯示

        直方圖的圖形基元為長方形??梢悦枥L一個條形圖,每一個條表示不同的頻帶,而條的高度代表能量。本系統(tǒng)最初使用Rectangle函數[8]實現直方圖的繪制,效果如圖8所示。雖然達到了動態(tài)顯示效果,但是圖形顯示不夠清晰、直觀。通過仔細研究后,采用如下方案對程序進行調整。首先,根據1/3倍頻程數據計算每個條形的高度,然后設置紅色、藍色、綠色三種顏色畫刷。最后,定義m_nHighLevel=80和m_nMediumLevel=60兩個整形變量。將頻帶能量與m_nHighLevel和m_nMediumLevel進行比較,當能量高于80分貝時,使用紅色畫刷來填充條形圖,當能量高于60分貝時使用綠色畫刷來填充,否則使用藍色畫刷來填充。如圖9所示,紅色、藍色、綠色三種色條的動態(tài)變化反映不同頻帶能量的變化情況。實際應用表明此種繪制方法可令用戶迅速地做出判斷,視覺效果好。

        圖8 修改前1/3倍頻程圖

        圖9 改進后1/3倍頻程圖

        4結論

        本文以Visual C++為平臺,根據專業(yè)需求實現了波形圖、聲譜圖、1/3倍頻程圖的繪制。采用位圖雙緩沖技術消除了屏幕閃爍和提高了顯示速度,圓滿完成圖形的動態(tài)顯示任務,并在工程應用中實現了較好的顯示效果。

        參 考 文 獻

        [1] 周傳德,秦樹人,尹愛軍.科學可視化理論及智能虛擬顯示系統(tǒng)[M].北京:科學出版社,2006:45-131.

        [2] 胡星星,騰云田.地震波形數據實時監(jiān)控軟件的實現[J].地震地磁觀測與研究,2008,29(1):105-107.

        [3] 劉偉寧,陳耀武,張磊.海底聲納實時可視化顯示系統(tǒng)設計[J].計算機工程,2010,36(23):249-251.

        [4] 朱慶生.游戲音效編程[M].重慶:重慶大學出版社,2005:265-275.

        [5] 趙力.語音信號處理[M].北京:機械工業(yè)出版社,2003:26-29.

        [6] 曹李秋,楊福寶.基于聲卡的音頻信號采集和處理系統(tǒng)設計[J].中國水運,2006,4(2):27-28.

        [7] 周傳德,秦樹人.虛擬儀器中的科學計算可視化系統(tǒng)[J].中國機械工程,2004,15(8):735-738.

        [8] 孔令德.計算機圖形學基礎教程[M].北京:清華大學出版社,2008:21-51.

        [9] 陳喜陽,張克危,彭玉成.VC在監(jiān)測系統(tǒng)中圖形刷新問題的研究[J].工業(yè)控制計算機,2004,17(4):27-29.

        [10] 高宏亮,王淑娟,翟國富,等.采用Visual C++實現的函數波形顯示控件[J].電測與儀表,2006,43(492):62-65.

        Problem of Graphic Display Interface in Acoustic Data-sampling System Based on Visual C++

        CAO LinPENG YuanZHANG FengzhenCHEN JunfengHUA HuiWU Fengyan

        (Science and Technology on Underwater Test and Control Laboratory, Dalian116013)

        AbstractFast mapping methods of real-time oscillogram, spectrogram and histogram of acoustic data-sampling system in Visual C++ is introduced in this paper. Slow interface response speed and flashing screen and the display speed increasement and interface flash avoiding are achieved by double buffering technology.

        Key Wordsdouble-buffering, Visual C++, flashing

        *收稿日期:2015年12月11日,修回日期:2016年1月27日

        作者簡介:曹琳,女,碩士研究生,助理工程師,研究方向:水聲信號與信息處理。

        中圖分類號TP391

        DOI:10.3969/j.issn.1672-9730.2016.06.021

        国产高清在线精品一区αpp| 国产三级国产精品国产专区50| 国产av激情舒服刺激| 亚洲va中文字幕| 精品人妻系列无码人妻免费视频| 国产美女白浆| 人妻精品一区二区三区视频| 久久婷婷国产色一区二区三区| 蜜桃视频在线免费视频| 欧美性猛交xxxx乱大交极品| 野外亲子乱子伦视频丶| 无遮无挡爽爽免费视频| 国产国语对白一区二区三区| 国产美女黄性色av网站| 亚洲hd高清在线一区二区| 久久天堂精品一区二区三区四区 | 在线一区二区三区视频观看| 久久精品蜜桃美女av| 奇米影视色777四色在线首页| 国产亚洲日韩在线一区二区三区| 午夜福利电影| 视频二区精品中文字幕| 男性av天堂一区二区| 久久久久亚洲av无码麻豆| 精品十八禁免费观看| 午夜无码国产18禁| 日韩精品一区二区亚洲专区| 凹凸国产熟女精品视频app| 强行无套内谢大学生初次| 日韩毛片在线看| 永久免费在线观看蜜桃视频| 黄色影院不卡一区二区| 久久久久99精品成人片| 日本老熟妇毛茸茸| 久久久久久人妻精品一区百度网盘| 中文字幕久久熟女人妻av免费| 国产精品一区二区三久久不卡| 国产丝袜无码一区二区三区视频| 国产高潮流白浆免费观看不卡| 男女啪啪免费视频网址| 日本真人添下面视频免费|