問題引出 在LabVIEW中編寫測試軟件特別是做算法分析時肯定離不開測試數(shù)據(jù),而測試數(shù)據(jù)的來源無外乎下面兩個主要渠道: 1. 從硬件采集得到 2. 從軟件仿真得到 但一般情況下對于整個系統(tǒng)(如數(shù)據(jù)采集分析系統(tǒng))的設計,硬件部分工作往往要落后于軟件部分的工作,但軟件部分也不可能等硬件平臺調試完成后才動工,這時候用于前期算法驗證的數(shù)據(jù)來源就要依靠于軟件仿真了。 在LabVIEW中表示測試信號的數(shù)據(jù)類型有數(shù)組、波形數(shù)據(jù)和動態(tài)數(shù)據(jù)三種,針對不同的數(shù)據(jù)形式,LabVIEW中也有三個不同層次的信號發(fā)生器函數(shù),如下圖所示: 這三種層次的函數(shù)都能產(chǎn)生基本測試信號,但其使用的難易程度和靈活性不同。其中,ExpressⅥ仿真信號發(fā)生器產(chǎn)生動態(tài)數(shù)據(jù)類型的信號,使用起來最簡單,但限制比較多,如一些參數(shù)不能在程序中動態(tài)設置;普通信號發(fā)生器VI產(chǎn)生數(shù)組類型的信號,使用起來比較復雜,但更靈活,更接近于其它如C語言的編程方式;波形發(fā)生器VI產(chǎn)生波形數(shù)據(jù),使用的復雜程度介于兩者之間。 相對來說,波形數(shù)據(jù)是LabVIEW中最常用的一種方式。波形數(shù)據(jù)在本質上是由時間起始值t0、dt值(兩個采樣點的時間間隔)以及一維數(shù)組Y組合成的一個簇(對應于C語言中的結構體)類型,其物理意義是,對一個模擬信號x(t),從時間t0開始進行采樣和A/D轉換,采樣率為fs,對應采樣時間間隔dt=1/fs,數(shù)組Y為各個時刻的采樣值。 對于波形數(shù)據(jù)的產(chǎn)生,LabVIEW中提供了非常方便的函數(shù),在函數(shù)面板中位于“信號處理”-->“波形生成”子選板中,如下圖所示: 下面通過一個簡單的例子演示LabVIEW中仿真波形數(shù)據(jù)的產(chǎn)生方法。 實例說明 該例要求設計一個簡易的仿真多波形發(fā)生器,能夠產(chǎn)生常用的波形數(shù)據(jù),包括正弦波、三角波、方波及鋸齒波等常用信號,且可疊加均勻白噪聲,在軟件界面上可設置信號類型、頻率、幅值、偏移量、采樣信息等常用參數(shù)。軟件運行主界面如下圖所示: 程序框圖實現(xiàn) 該例程序框圖代碼如下圖所示: 程序代碼較為簡單,主框架采用while循環(huán)結構,每隔100ms刷新一次波形。主要調用了“基本函數(shù)發(fā)生器”及“均勻白噪聲波形”函數(shù),兩者疊加實現(xiàn),將前面板上對應的參數(shù)直接連接到函數(shù)中對應的參數(shù)即可。 其中,兩個主要函數(shù)的參數(shù)說明如下圖所示: 本例在前面板上僅設置了幾個主要參數(shù),對于其它的參數(shù)采用了默認值。另外,需要注意的是,兩個函數(shù)的“采樣信息”參數(shù)必須設置完全一樣,才能保證信號疊加的正確性。 總結 這兒介紹了LabVIEW中如何產(chǎn)生常用波形測試數(shù)據(jù)的方法,對于其它復雜的波形,甚至自定義波形,LabVIEW中也提供了相關的函數(shù),在程序中直接調用即可,大家可以查閱相關的幫助文檔及參考示例。 如果這篇文章對你有用的話,請關注+轉發(fā)+收藏+點贊吧。 本文由編碼那些事原創(chuàng),歡迎關注,帶你一起長知識! |
|
來自: lgk88888 > 《原創(chuàng)》