999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

曹 琳 彭 圓 張風(fēng)珍 陳軍鋒 韓 輝 吳鳳艷

(水下測(cè)控技術(shù)重點(diǎn)實(shí)驗(yàn)室 大連 116013)

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

曹琳彭圓張風(fēng)珍陳軍鋒韓輝吳鳳艷

(水下測(cè)控技術(shù)重點(diǎn)實(shí)驗(yàn)室大連116013)

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

關(guān)鍵詞雙緩沖; Visual C++; 閃爍

Class NumberTP391

1引言

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

2圖形閃爍問(wèn)題分析及解決方法

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

圖1 雙緩沖繪圖實(shí)現(xiàn)流程

圖2 沒(méi)有使用雙緩沖技術(shù)繪圖的效果

圖3 使用雙緩沖技術(shù)繪圖的效果

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

3.1實(shí)時(shí)曲線顯示

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

圖4 實(shí)時(shí)曲線

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

圖5 不同繪圖方式的比較

數(shù)據(jù)長(zhǎng)度直接算法/ms新方法/ms數(shù)據(jù)長(zhǎng)度直接算法/ms新方法/ms7000.10.17K100.170K10010700K1092505M9000284

3.2聲譜圖實(shí)時(shí)顯示

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

圖6 Jet 色彩過(guò)渡模型

圖7 聲譜圖

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

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

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

圖9 改進(jìn)后1/3倍頻程圖

4結(jié)論

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

參 考 文 獻(xiàn)

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

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

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

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

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

[6] 曹李秋,楊福寶.基于聲卡的音頻信號(hào)采集和處理系統(tǒng)設(shè)計(jì)[J].中國(guó)水運(yùn),2006,4(2):27-28.

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

[8] 孔令德.計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2008:21-51.

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

[10] 高宏亮,王淑娟,翟國(guó)富,等.采用Visual C++實(shí)現(xiàn)的函數(shù)波形顯示控件[J].電測(cè)與儀表,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日

作者簡(jiǎn)介:曹琳,女,碩士研究生,助理工程師,研究方向:水聲信號(hào)與信息處理。

中圖分類(lèi)號(hào)TP391

DOI:10.3969/j.issn.1672-9730.2016.06.021

主站蜘蛛池模板: 亚洲第一区欧美国产综合| 人人艹人人爽| 精品日韩亚洲欧美高清a| 99久久精品国产精品亚洲| 人人澡人人爽欧美一区| 蜜桃视频一区| 国产成人综合日韩精品无码首页| 美女无遮挡拍拍拍免费视频| 欧美日韩国产成人高清视频| 成人免费黄色小视频| 国产亚洲欧美在线专区| 亚洲国产理论片在线播放| 午夜不卡视频| 日本www在线视频| 亚洲制服丝袜第一页| igao国产精品| 思思热精品在线8| 久久中文字幕不卡一二区| 老司机久久精品视频| 91色爱欧美精品www| 久久精品丝袜高跟鞋| 久久青草热| 亚洲成人动漫在线观看| 一级一毛片a级毛片| 亚洲欧美日韩久久精品| 不卡无码h在线观看| 小蝌蚪亚洲精品国产| 成人午夜网址| 一区二区三区国产| 国产乱子伦手机在线| 色网站在线免费观看| 国产欧美精品午夜在线播放| 婷婷丁香在线观看| 正在播放久久| 综合色区亚洲熟妇在线| 性69交片免费看| 欧美国产在线一区| 久久人人爽人人爽人人片aV东京热| 国产成人AV男人的天堂| 亚洲国产成熟视频在线多多| 国产成人无码综合亚洲日韩不卡| 色婷婷久久| a毛片免费在线观看| 尤物精品视频一区二区三区| av大片在线无码免费| 91成人在线免费视频| 日本在线欧美在线| 国产成人艳妇AA视频在线| 青青青国产视频| 在线欧美一区| 99精品在线看| 在线无码av一区二区三区| 国产精品女同一区三区五区| 一本大道无码日韩精品影视| 亚洲黄网视频| 亚洲视频四区| a级毛片在线免费观看| 无码一区18禁| 国产女同自拍视频| 精品欧美一区二区三区在线| 精品午夜国产福利观看| 91毛片网| 成人午夜免费视频| 26uuu国产精品视频| 国产精品hd在线播放| 第一页亚洲| av一区二区无码在线| 亚洲第一中文字幕| 欧美精品亚洲精品日韩专区va| 亚洲国产清纯| 国产网友愉拍精品视频| www.99在线观看| 国产美女在线免费观看| 色香蕉影院| 亚洲人成日本在线观看| 久久99蜜桃精品久久久久小说| 国产精品精品视频| 天堂av高清一区二区三区| 性色一区| 国产一二三区视频| 日韩成人午夜| 国产成人av一区二区三区|