《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 任意波形編輯軟件中手動任意繪制功能的設計
任意波形編輯軟件中手動任意繪制功能的設計
摘要: 作為一種特殊的信號源,任意波形發生器越來越廣泛地應用于各個領域。它不僅具有產生常規波形的能力,而且可以仿真實際測試中需要的任意波形。手動繪制是任意波形發生器的一項特殊功能,它是在給定的電腦屏幕上,按照用戶的需求,拖動鼠標繪制需要的波形形狀。這里介紹了一種采用虛擬儀器進行任意波形手動繪制功能軟件的設計方法。
Abstract:
Key words :

 作為一種特殊的信號源,任意波形發生器" title="任意波形發生器" target="_blank">任意波形發生器越來越廣泛地應用于各個領域。它不僅具有產生常規波形的能力,而且可以仿真實際測試中需要的任意波形。手動繪制是任意波形發生器的一項特殊功能,它是在給定的電腦屏幕上,按照用戶的需求,拖動鼠標繪制需要的波形形狀。這里介紹了一種采用虛擬儀器進行任意波形手動繪制功能軟件的設計方法。


l 手動任意繪制功能描述及難點分析
    手動任意繪制功能包括波形參數信息、波形示意圖、狀態信息以及系統設置信息等。手動任意繪制波形功能也包括使用鼠標繪制波形,以及在此基礎上對波形進行各種修改,包括替代、翻轉、重新繪制、插入等。此外波形的顏色和點數可以根據用戶的需求進行設置,同時要求波形能夠實時顯示。該軟件的邏輯關系和數據結構較為復雜,設計中需要考慮以下幾方面的問題:
    (1)由于是手動任意繪制,在繪制波形的過程中可能發生很多情況,因此需要包括對各種情況的處理。例如來回拖動鼠標,鼠標拖動越界等。在繪制好波形后,對波形進行各樣的修改也是設計的一個難點。
    (2)如何獲取離散點的坐標值,采用何種插值處理計算離散點之間的坐標值使得波形更加平滑也成為設計需要重點考慮的一個方面。
    (3)由于波形的點數可以很大,在波形的修改過程中可能要對數據進行備份,因此也需要考慮到數據的存儲結構,保障整個軟件的速度和效率。
    (4)軟件應具有良好的移植性,應考慮用對象編程的思想對軟件進行整體的一個架構設計。


2 總體設計流程圖
    手動繪制是波形生成方法中最直觀、最方便的方法。它同時也體現了任意波形編輯過程中的“任意性”。在設計中,選用LabWindows/CVI做為軟件開發平臺。具體操作時,用戶將鼠標移動到需要的起始位置,然后按下鼠標不放,根據需要的波形形狀拖動鼠標在波形顯示區移動,當到達合適的位置時,放開鼠標,則一次繪制過程完成。在整個過程中首先需要確定接收什么樣的信號觸發繪制波形事件發生,繪制波形也必須被限制在特定的區域內,如若超出繪圖區域需做出相應處理;波形的點數可以根據用戶的需要自行選擇,如若不選擇則默認為65 536個點,這也是設計的最大波形點數。手動任意繪制可能發生各種各樣的情況,比如鼠標可以前后拖動,因此需要對這樣的情況做出相應的處理,即對鼠標拖動過程中的有效值進行存儲。由于涉及到波形的修改,也需要對波形的部分存儲值進行更新。在整個繪制過程中鼠標連續操作,需要采集到各個離散的點,然后進行插值處理,做到整個波形比較平滑。
    整個設計主要由監測模塊、處理模塊和顯示模塊3部分組成。監測模塊主要完成對鼠標左鍵的監測,設定波形數據的初始值,對其他模塊進行初始化,并啟動采集離散點時鐘,每隔2 ms進行一次采點;處理數據主要包括4個步驟:獲取當前數據并查看是否有效;根據有效值做線性插值處理使得波形平滑;存儲當前數據;實時顯示鼠標的當前坐標。顯示模塊主要完成波形顏色和顯示點數的設置,并對波形做實時顯示。圖1即為總體設計流程圖。

3 具體實現
3.1 手動任意繪制波形具體實現
    (1)在手動繪制時,鼠標左鍵一直按下可以有兩個操作,一是繪制任意波形;二是拉動滑塊,此時要判斷是拉動滑塊還是繪波形,這時筆者采用判斷標志變量的方法解決此問題。
    (2)由于鼠標是連續操作,因此根據需要使用筆者選用定時函數,每隔一定的時間(2 ms)被觸發1次,每次執行函數采集1個離散的點,即獲取當前光標處的橫縱坐標,這樣就得到了一系列的離散點,相鄰離散點之前的間隔是不等的,這與用戶拖動鼠標的速度有關。于是還有許多波形點數沒有賦值,這樣就要在相鄰的離散點之間插值計算出那些空缺的幅值??紤]到兩個相鄰點之間的距離比較小,于是可以采用線性插值,插值計算出來的波形是比較光滑的。
    (3)正如難點分析中講到,手動任意繪制可能發生的情況很多,用戶可以從前向后繪制波形也可以從后向前繪制波形,甚至可以重復繪制。而且,在繪制過程中還可能超出當前的繪圖范圍,因此采用只有當鼠標位置在波形內部時才采集當前坐標點,超出波形范圍則取最大值的方法。再者,對于繪制中的方向及重復繪制問題,采用取兩點之間的絕對值解決,然后再進行線性插值并計算兩點之間的其他各點的幅值,最后對波形各點相應值進行存儲更新和坐標映射。

 

    (4)波形的處理也是手動繪制功能的一個亮點,其中包括剪切、插入、翻轉、粘貼等,用到的原理是一樣的,即是對波形處理前和處理后的數據都進行存儲,然后進行一對一的更新。在設計過程中,使用鏈表完成。這樣既保證了數據的實時更新,也可以不浪費內存來管理數據。圖2即為手動繪制的一個任意波形。

 

3.2 任意波形編輯軟件中拖動放大功能的實現
    在波形顯示區域內移動鼠標,當放到了合適的位置,然后按下鼠標左鍵,開始拖動鼠標。拖動過程中按住鼠標左鍵不放,這時會出現一個矩形,矩形的左上角即是鼠標開始按下的位置,矩形的右下角是當前鼠標的位置。
    因此,矩形的大小隨鼠標的移動而更新。直到拖動到需要的位置,放開左鍵,至此放大操作完成??梢钥吹奖痪匦伟鼑牡牟ㄐ尾糠直蝗溜@示。
    此功能的設計中,需用到函數SetAxisRange()改變顯示區的橫縱向范圍,還用到“手動繪制波形”設計中使用的時鐘控件。于是在整個軟件的設計中用到兩個時鐘控件:
    第一個時鐘在手動繪制波形時用來采集離散的波形點.另外還負責實時顯示鼠標坐標的功能;
    第二個時鐘就是現在為了繪制不斷更新的矩形而設的。需要注意的是:兩個時鐘控件不能同時處于激活狀態,即時鐘1初始為非激活狀態(unenable),當選中了“鼠標拖動放大波形”菜單項時,先停止時鐘1,再將時鐘2激活(enable)。除了控件時鐘控件的使用,在鼠標拖動過程中還需執行不斷刷新波形的操作。
    因為,當生成矩形時,該矩形有填充色,會覆蓋顯示區的波形,為了使矩形看起來是只有邊框而沒有填充色的效果,需要不斷地刷新波形。因此,操作過程中會看到波形有輕微的抖動現象。其實現的原理和波形擴展的原理是一致的,將當前區域內的波形參數存儲,并將其復制一份,然后對其進行插值處理。如果需要也可以對波形進行平滑處理,平滑處理的方法是求平均值。
    先選定一個要進行平滑處理的波形點,然后將它左面幾個點和右面幾個點的幅度值相加,再除以相加的總波形點數。這樣平滑處理后的波形將有一定程度的失真,因每個點的幅值是其左邊和右邊各8個點的幅值的平均值,因此更新后的幅值將有所減小。但平滑效果較好,對于比較不規則的波形,連續進行多次平滑處理之后,波形將變得較為光滑平坦。圖2即為鼠標拖動放大波形操作過程示意圖。

4 結 語
    基于LabWindows,/CVI的任意波形編輯軟件中手動任意繪制軟件成本低、效率高、移植性好,無論是采用何種發送數據的方式,都比較容易進行接口操作,在虛擬儀器的圖形界面編程領域有著良好的發展前景。與此同時,手動任意繪制波形軟件不必受到具體儀器的功能限制,這給設計帶來了很大的靈活性。目前,筆者開發的任意波形發生器手動任意繪制軟件可以選用串口和USB接口發送數據,也可以實現和VXI通信。已經應用到100 MSPS任意波形發生器上。經過各種測試,性能穩定,操作簡單,使用方便。以后還可以根據不同的儀器要求,進一步增加具有其他功能的虛擬儀器,做進一步的擴展,使得系統更加完善。

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线啊v| 亚洲精品综合久久中文字幕| 国产一区二区三区四区在线观看| 欧美高清视频| 久久精品伊人| 亚洲一区二区三区视频播放| 亚洲黄色在线视频| 亚洲午夜精品视频| 亚洲精品一二三区| 在线播放精品| 国产一区二区三区四区hd| 国产精品久99| 欧美国产另类| 老牛影视一区二区三区| 欧美一区二区私人影院日本| 亚洲视频在线观看视频| 亚洲精品国产精品乱码不99| 欧美伊人久久| 欧美一级成年大片在线观看| 一本色道久久综合亚洲精品按摩| 亚洲福利一区| 亚洲高清毛片| 亚洲高清不卡av| 18成人免费观看视频| 国产一区二区三区免费观看| 国产精品女主播一区二区三区| 欧美视频精品一区| 欧美日韩午夜剧场| 亚洲欧美激情视频| 亚洲一区欧美激情| 中国日韩欧美久久久久久久久| 日韩一级在线| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品小视频在线观看| 亚洲国产欧美久久| 亚洲国产一二三| 亚洲国产日韩在线一区模特| 久久av免费一区| 欧美中在线观看| 亚洲高清影视| 亚洲精品免费在线观看| 日韩天堂在线观看| 亚洲社区在线观看| 亚洲小说春色综合另类电影| 亚洲自拍偷拍网址| 在线亚洲一区| 午夜欧美不卡精品aaaaa| 性色av香蕉一区二区| 久久成人精品| 久热精品视频在线观看| 免费视频一区| 欧美精品尤物在线| 欧美日韩另类字幕中文| 国产精品www网站| 国产精品一级二级三级| 国产亚洲免费的视频看| 国产一区二区三区四区五区美女| 激情欧美丁香| 亚洲三级电影全部在线观看高清| 日韩一级黄色av| 亚洲免费视频成人| 亚洲高清资源综合久久精品| 日韩视频在线观看一区二区| 亚洲视频免费| 性欧美精品高清| 亚洲国产一区二区三区青草影视| aaa亚洲精品一二三区| 亚洲欧美一区二区三区极速播放| 欧美一区二区三区在| 久久亚洲综合| 欧美日韩国产天堂| 国产欧美日韩精品专区| 影音先锋亚洲视频| 日韩一区二区福利| 午夜在线不卡| 亚洲美女在线看| 小处雏高清一区二区三区| 久久精品人人做人人爽| 欧美精品高清视频| 国产欧美va欧美va香蕉在| 在线观看日韩欧美| 日韩视频一区二区在线观看 | 亚洲黄色大片| 中文久久精品| 久久精品一区| 亚洲一区二区三区乱码aⅴ蜜桃女| 午夜精品一区二区三区四区| 久久亚洲春色中文字幕| 欧美日韩亚洲另类| 国产亚洲免费的视频看| 亚洲久久视频| 久久激情五月丁香伊人| 亚洲午夜电影网| 久久久久久**毛片大全| 欧美日韩国产黄| 狠狠狠色丁香婷婷综合久久五月| 日韩视频一区二区三区在线播放免费观看 | 韩国v欧美v日本v亚洲v| 亚洲麻豆国产自偷在线| 久久丁香综合五月国产三级网站| 中国成人黄色视屏| 嫩草国产精品入口| 国产精品资源| 日韩亚洲视频在线| 亚洲国产精品一区在线观看不卡 | 亚洲激精日韩激精欧美精品| 亚洲一级黄色av| 你懂的网址国产 欧美| 国产伦精品一区二区三区照片91| 亚洲人屁股眼子交8| 久久精品国产欧美激情| 午夜精品福利视频| 欧美美女福利视频| 在线欧美小视频| 久久电影一区| 欧美呦呦网站| 国产精品高潮在线| 日韩视频二区| 日韩视频中午一区| 欧美日韩成人激情| 日韩一二三在线视频播| 宅男噜噜噜66国产日韩在线观看| 欧美日韩国产精品专区| 亚洲美女av在线播放| 亚洲视频久久| 国产精品欧美一区二区三区奶水| 亚洲午夜视频在线观看| 亚洲欧美日韩国产一区| 国产精品亚洲一区二区三区在线| 亚洲欧美日韩国产另类专区| 久久精品视频一| 在线成人激情黄色| 亚洲精品视频一区二区三区| 欧美另类亚洲| 亚洲午夜精品视频| 久久精品国产精品亚洲精品| 国内精品伊人久久久久av一坑| 亚洲二区精品| 欧美久久99| 亚洲一区二区三| 久久久久久网址| 亚洲国产欧美另类丝袜| 亚洲深夜福利| 国产亚洲欧美aaaa| 亚洲精品小视频| 国产精品久久久久久久浪潮网站 | 韩国av一区二区三区| 亚洲精品国产精品国自产在线| 欧美精品v日韩精品v国产精品 | 国产亚洲精品自拍| 亚洲欧洲日本mm| 国产精品porn| 欧美一区二区视频在线| 欧美成人首页| 亚洲在线不卡| 欧美成人激情视频免费观看| 99热免费精品在线观看| 欧美一区二区视频在线观看| 激情综合亚洲| 亚洲一区二区黄色| 国内外成人在线视频| 一本色道久久综合亚洲二区三区| 国产精品欧美风情| 亚洲黄色精品| 国产精品啊啊啊| 亚洲国产精品小视频| 欧美午夜精品一区二区三区| 久久超碰97中文字幕| 欧美日韩国产成人在线观看| 欧美一区二区三区免费观看 | 亚洲午夜成aⅴ人片| 久久永久免费| 中文亚洲欧美| 免费短视频成人日韩| 亚洲视频在线一区观看| 另类av导航| 亚洲影院在线| 欧美剧在线观看| 欧美在线播放| 国产精品国产成人国产三级| 亚洲黄色性网站| 国产精品亚洲综合色区韩国| 亚洲每日更新| 韩国av一区二区三区| 亚洲天堂男人| 亚洲国产高清在线| 久久爱91午夜羞羞| 99国产精品久久久久老师| 美日韩在线观看| 香蕉乱码成人久久天堂爱免费 | 日韩视频一区二区三区| 国产亚洲成精品久久| 亚洲视频精选| 亚洲国产91精品在线观看| 久久高清福利视频| 在线一区欧美| 欧美激情综合色| 亚洲电影成人| 国内精品久久久| 西西裸体人体做爰大胆久久久|