LabVIEW編程實例:如何產生仿真信號數據

2021-01-11 編碼那些事

問題引出

在LabVIEW中編寫測試軟體特別是做算法分析時肯定離不開測試數據,而測試數據的來源無外乎下面兩個主要渠道:

1. 從硬體採集得到

2. 從軟體仿真得到

但一般情況下對於整個系統(如數據採集分析系統)的設計,硬體部分工作往往要落後於軟體部分的工作,但軟體部分也不可能等硬體平臺調試完成後才動工,這時候用於前期算法驗證的數據來源就要依靠於軟體仿真了。

在LabVIEW中表示測試信號的數據類型有數組、波形數據和動態數據三種,針對不同的數據形式,LabVIEW中也有三個不同層次的信號發生器函數,如下圖所示:

這三種層次的函數都能產生基本測試信號,但其使用的難易程度和靈活性不同。其中,ExpressⅥ仿真信號發生器產生動態數據類型的信號,使用起來最簡單,但限制比較多,如一些參數不能在程序中動態設置;普通信號發生器VI產生數組類型的信號,使用起來比較複雜,但更靈活,更接近於其它如C語言的編程方式;波形發生器VI產生波形數據,使用的複雜程度介於兩者之間。

相對來說,波形數據是LabVIEW中最常用的一種方式。波形數據在本質上是由時間起始值t0、dt值(兩個採樣點的時間間隔)以及一維數組Y組合成的一個簇(對應於C語言中的結構體)類型,其物理意義是,對一個模擬信號x(t),從時間t0開始進行採樣和A/D轉換,採樣率為fs,對應採樣時間間隔dt=1/fs,數組Y為各個時刻的採樣值。

對于波形數據的產生,LabVIEW中提供了非常方便的函數,在函數面板中位於「信號處理」-->「波形生成」子選板中,如下圖所示:

下面通過一個簡單的例子演示LabVIEW中仿真波形數據的產生方法。

實例說明

該例要求設計一個簡易的仿真多波形發生器,能夠產生常用的波形數據,包括正弦波、三角波、方波及鋸齒波等常用信號,且可疊加均勻白噪聲,在軟體界面上可設置信號類型、頻率、幅值、偏移量、採樣信息等常用參數。軟體運行主界面如下圖所示:

程序框圖實現

該例程序框圖代碼如下圖所示:

程序代碼較為簡單,主框架採用while循環結構,每隔100ms刷新一次波形。主要調用了「基本函數發生器」及「均勻白噪聲波形」函數,兩者疊加實現,將前面板上對應的參數直接連接到函數中對應的參數即可。

其中,兩個主要函數的參數說明如下圖所示:

本例在前面板上僅設置了幾個主要參數,對於其它的參數採用了默認值。另外,需要注意的是,兩個函數的「採樣信息」參數必須設置完全一樣,才能保證信號疊加的正確性。

總結

這兒介紹了LabVIEW中如何產生常用波形測試數據的方法,對於其它複雜的波形,甚至自定義波形,LabVIEW中也提供了相關的函數,在程序中直接調用即可,大家可以查閱相關的幫助文檔及參考示例。

如果這篇文章對你有用的話,請關注+轉發+收藏+點讚吧。

相關焦點

  • LabVIEW實例,如何編程實現一個虛擬FFT分析儀
    LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。因此,LabVIEW軟體在數據仿真、信號分析處理方面有著得天獨厚的優勢。本文以一個具體實例,演示在LabVIEW中如何實現一個虛擬的FFT分析儀設計,包括採樣信號的仿真、頻域的FFT分析及數據結果的圖形顯示等功能。
  • 基於labview的示波器控制設計
    我們知道,現在的數字示波器可以準確捕獲各種周期信號、非周期信號,數字示波器已成為科研實驗和工程項目中各類信號採集、記錄和分析的最主要設備之一。
  • LabVIEW編程實例:如何實現右鍵快捷菜單功能
    右鍵快捷菜單是軟體界面中常用的一種功能,下面通過例子演示在LabVIEW中如何實現右鍵菜單的功能。實例說明軟體運行界面如下圖所示:在軟體界面上放置一波形圖控制項,在該控制項上點擊滑鼠右鍵彈出快捷菜單,通過該菜單實現如下功能:更新波形:產生新波形數據並在波形圖控制項上顯示;清除波形:清空波形圖控制項上的波形;遊標設置:顯示或隱藏波形圖控制項上的遊標;退出程序:選擇該菜單項時退出當前程序的運行
  • labview介紹和書籍推薦
    labview包含兩部分:1是前面板,2是圖形化原始碼  LabVIEW擁有一整套工具用於數據採集、分析、顯示和存儲數據,以及解決用戶編寫代碼中可能出現的問題。LabVIEW提供眾多輸入控制項和顯示控制項用於創建用戶界面,即前面板。
  • LabVIEW編程實例:電子表格文件的讀寫操作方法
    下面通過一個例子演示如何在LabVIEW中讀寫電子表格文件。示例說明該例功能是,在LabVIEW中產生兩路仿真信號,分別為包含1000個採樣點的正弦波信號和餘弦波信號,將這兩路信號在硬碟上存儲為電子表格文件,隨後讀取該電子表格文件中的這兩路信號數據,最後將這兩路信號在波形圖控制項上進行顯示,前面板如下圖所示: 在前面板上放置了兩個控制項,一個是文件路徑輸入控制項,用於設置數據的保存/讀取路徑,一個是波形圖顯示控制項,用於顯示兩路波形信號
  • LabVIEW編程實例:如何通過TCP協議進行數據通信
    下面通過一個簡單的例子,演示在LabVIEW中如何通過TCP協議實現兩個程序之間的數據通信功能。實例說明編寫兩個程序,分別為伺服器端程序和客戶端程序。其中,伺服器端程序開始運行時,處於等待客戶端連接的狀態中,一旦有客戶端成功連接,則向客戶端發送帶有時間信息的字符串「I`m sever!」
  • 高速差分過孔產生的串擾情況仿真分析
    圖3:差分對間的串擾仿真結果也許讀到這裡您會產生疑問:如何判定是差分過孔引起的串擾而不是差分走線引起的串擾呢?為了說明這個問題,我們將上述的實例分成BGA扇出區域和差分走線兩部分分別進行仿真。而BGA扇出區域的串擾和原來整體仿真的串擾數值比較接近。從圖4中的仿真結果我們可以得出在上述實例中差分過孔間的串擾起主要作用。差分過孔間串擾的優化了解了此類問題產生串擾的根源,優化差分過孔之間串擾的方法就比較明確了。增加差分過孔之間的間距是簡單易行並且十分有效的方法。
  • 計算機labview對示波器的遠程控制技術介紹
    我們知道,現在的數字示波器可以準確捕獲各種周期信號、非周期信號,數字示波器已成為科研實驗和工程項目中各類信號採集、記錄和分析的最主要設備之一。由於很多情況下,需要把數字示波器採集到的數據進行數據處理和分析,最終完成遠程的自動測試和分析的需求。
  • LabVIEW編程基礎:以實例學編程之循環結構
    LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。在前面兩篇文章(請參考:LabVIEW編程基礎:以實例學編程之條件結構精講,LabVIEW編程基礎:以實例學編程之順序結構)中分別講了順序結構與條件結構的編程方法,下面通過具體例子演示循環結構的編程使用方法。
  • LabVIEW編程實例:如何使用UDP協議進行數據通信
    UDP協議UDP(User Datagram Protocol,用戶數據報協議)同TCP協議類似,它也是LabVIEW編程中一種常用的數據通信方式。與TCP不同的是,它是一種無連接模式協議,當數據內容發送之後,自己是無法得知對方是否已經安全完整的接收到了所有的數據信息。
  • Modelsim軟體如何仿真,怎麼能添加輸入信號?
    打開APP Modelsim軟體如何仿真,怎麼能添加輸入信號?asyn_fifo.v 是該核的行為模型,主要調用了 xilinx 行為模型庫的模塊,仿真時該文件也要加入工程。   調試方便。在 ISE/Quartus 中調用 modelsim仿真只能看到輸入輸出信 號,而對於設計的中間信號/變量,特別是ip核的內部信號/變量無法觀測。
  • LabVIEW編程實例:如何求解自然常數e
    實例說明自然常數e,是數學中最重要的常數之一,是一個無限不循環小數,也是自然對數函數的底數,其值約為2.71828。它的一個經典的數學定義公式是:使用計算機計算e的值時,可以使用下面的公式近似計算:那麼在LabVIEW中如何編程實現求解這個公式即e的值呢?編程思路從上面的近似公式可以看出,e的值與n的階乘有關,可將上式分解為兩個步驟:求解n的階乘:n!=1×2×3×......
  • PLC一鍵啟停編程梯形圖實例
    打開APP PLC一鍵啟停編程梯形圖實例 發表於 2020-03-18 09:15:07 分享臺達PLC的常見一鍵啟停編程梯形圖 根據最近網友向我我請教的一個PLC單鍵啟停如何編寫程序,PLC外部接線,一個輸入信號,外部一個按鈕可以控制啟停的案例,,分享一些我用臺達PLC 做到一個按鈕按一次啟動,再按一次停止,依次循環。
  • 如何學習LabVIEW
    還記得當初是因為一個項目才與labview結緣的,使用圖像化的編程方式操作外設,通過NI和研華的板卡採集和控制外設的數據,一直對自己很大的吸引力。
  • 分析基於計算機labview的示波器遠程控制架構步驟與方法
    我們知道,現在的數字示波器可以準確捕獲各種周期信號、非周期信號,數字示波器已成為科研實驗和工程項目中各類信號採集、記錄和分析的最主要設備之一。由於很多情況下,需要把數字示波器採集到的數據進行數據處理和分析,最終完成遠程的自動測試和分析的需求。
  • LabVIEW中圖片下拉列表的妙用
    )是美國ni公司(national instrument company)推出的一種基於g語言(graphics language,圖形化程式語言)的虛擬儀器開發平臺。labview以其在數據採集、信號處理等方面的突出優勢已經在測控領域獲得了廣泛應用。虛擬儀器系統的硬體平臺由i/o接口設備和計算機構成(如圖1所示),i/o接口設備是對外獲取信號的通道,為了能使計算機能夠對i/o接口設備有效地進行控制,就要考慮系統中i/o接口設備的驅動問題。
  • LabVIEW 調用 C/C++ Dll 詳解
    這樣你可以比較集中精力的專注於數據處理了,就不用學習麻煩的Win32的GUI編程, 也不用關注和你自己搞的採集板之間的通信了。對於每一個測控行業的程序來說,基本上都是:初始化-->數據採集-->數據處理-->數據顯示-->數據保存-->結束  的一個過程。
  • LabVIEW編程實例:如何創建並使用多態VI程序
    LabVIEW中的多態VI程序是指:該VI程序作為子程序被調用時,可以自動適應所連線的輸入數據類型,自動選擇實際的處理VI程序並得到正確的運算結果。可以簡單的理解為,多態VI程序本質上只是具有相同輸入輸出參數模式的不同VI程序的集合,LabVIEW平臺本身可以根據連線的數據類型自動選擇相應的VI程序。下面通過一個具體實例演示LabVIEW中多態VI程序的創建及使用方法。例子說明編程實現一個多態VI程序——MyAdd.vi,實現兩個數據x、y的相加運算,得到運算結果z。
  • LabVIEW視頻教程
    導讀:labview視頻教程labview也是一種程式語言,可能很多人並沒有聽說過它。LabVIEW是由美國國家儀器公司所開發的圖形化程序編譯平臺,發明者為傑夫·考度斯基,程序最初於1986年在蘋果電腦上發表。目前可支持Windows,UNIX,Linux,Mac OS等作業系統。
  • 如何安裝LabVIEW?
    沛華LabVIEW基礎課程|第1講『如何安裝LabVIEW?』俗話說:「工欲善其事,必先利其器。」連工具都沒有,怎麼幹活呢?所以第一期課程我們來講一講怎麼安裝LabVIEW。LabVIEW再如何高大上也只是款普通軟體,安裝起來超級簡單,主要還是給你們貼NI所有軟體與工具包的下載地址,是不是超級貼心?