LabVIEW實例,如何編程實現一個虛擬FFT分析儀

2021-01-10 編碼那些事

LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。因此,LabVIEW軟體在數據仿真、信號分析處理方面有著得天獨厚的優勢。

本文以一個具體實例,演示在LabVIEW中如何實現一個虛擬的FFT分析儀設計,包括採樣信號的仿真、頻域的FFT分析及數據結果的圖形顯示等功能。

這個例子也剛好對應了一個虛擬儀器所具有的三個基本組成環節的實現,即在軟體中如何實現數據採集、分析處理及圖形顯示的功能。

實例說明

虛擬FFT分析儀前面板軟體界面如下圖所示:

虛擬FFT分析儀軟體中包含的功能如下:

仿真信號產生功能,可產生能夠疊加均勻白噪聲的正弦波、三角波、方波及鋸齒波等常用信號,對信號的頻率、幅值等參數能夠進行設置;FFT頻譜分析功能,可進行平均參數設置(如平均模式、加權模式及平均次數等)、窗函數設置、重新開始平均設置等,同時也給出了平均是否完成的指示信息;圖形顯示功能,包括原始時域仿真信號波形圖及FFT頻譜的幅度譜顯示,且FFT幅度譜可設置是否為對數顯示,在這個例子的基礎上也可擴展為顯示頻譜的相位譜信息;程序能夠連續運行,仿真真實頻譜儀的連續採集、分析及顯示功能;可設置全局的採樣頻率、採樣點數等參數信息。程序框圖實現

本例軟體界面包含的功能看上去雖然很複雜,但由於LabVIEW中函數的高度集成性,在框圖程序中的實現代碼並不複雜,如下圖所示:

主程序使用一個While循環結構,每隔100ms執行一次循環。在循環內部主要調用了兩個函數即「Basic Function Gernerator.vi」和「FFT Spectrum(Mag-Phase).vi」,分別實現仿真信號的產生和實現FFT頻譜分析(得到幅值譜和相位譜)功能。在軟體前面板上的參數控制項幾乎都是作為這兩個函數的必要參數而存在的。

下面對這兩個關鍵函數作一個簡單的說明。

(1) 「Basic Function Gernerator.vi」

該函數為LabVIEW中提供的基本函數發生器函數,調用該函數可產生正弦波、三角波、方波及鋸齒波等常用信號,其輸入輸出參數如下圖所示:

通過該函數產生的信號與均勻白噪聲信號進行疊加後,即可得到本例所要求的仿真信號了。

(2) 「FFT Spectrum(Mag-Phase).vi」

該函數功能是計算時域信號的平均FFT頻譜。該VI通過幅度和相位返回FFT值。其輸入輸出參數如下圖所示:

主要參數說明如下:

「重新開始平均」參數:指定VI是否重新啟動所選平均過程。如重新開始平均的值為TRUE,VI重新啟動所選平均過程。如重新開始平均的值為FALSE,VI不會重新啟動所選平均過程。默認值為FALSE。 第一次調用該VI時,平均過程會自動開始。典型情況為:在平均過程中,主輸入發生改變時,則會重新啟動平均過程。

「窗」參數:用於設置時域信號的加窗函數。默認值為Hanning窗。其支持的窗函數類型包括矩形窗、三角窗、高斯窗、Hanning (默認)、Hamming、Blackman-Harris、Exact Blackman、Blackman、Flat Top、4階/7階Blackman-Harris、Low Sidelobe、Blackman Nuttall、Bartlett-Hanning、Bohman、Parzen、Welch、Kaiser、Dolph-Chebyshev等。

「平均參數」參數:該簇用於定義如何進行平均值計算。包括平均類型、加權類型和平均次數的設置,詳細說明如下圖所示:

「查看」參數:指定用於返回VI不同結果的方式,分別指定是否以分貝形式顯示結果,是否展開相位,相位結果是否需要由弧度轉換為度等。

「幅度」參數:返回平均FFT譜的幅度和頻率範圍。其中,f0返回譜的起始頻率,以赫茲為單位;df返回譜的頻率解析度,以赫茲為單位;幅度是平均FFT譜的幅度(如輸入信號以伏特為單位(V),幅度的單位為伏特-rms(Vrms)。如輸入信號不是以伏特為單位,幅度的單位為輸入信號單位-rms)。

運行上面的程序,即可在軟體前面板中看到,程序能夠連續不斷產生時域仿真信號,並實時計算其FFT頻譜信息,將結果在波形圖控制項上進行顯示。同時,在程序運行過程中可修改仿真信號的參數以產生新的波形,也可以修改FFT分析中的如平均參數等信息,修改後也會得到正確的頻譜信息。

總結

從這個例子中可以看出,在LabVIEW中實現信號的仿真、分析處理及圖形顯示功能,相對於其它程式語言如C語言,由於LabVIEW中函數功能的高度封裝性以及控制項的豐富多樣性,其編程難度大大降低了,對於複雜信號處理算法的驗證及結果的圖形顯示提供了極大的便利性。

本文由編碼那些事原創,請關注+轉發+收藏+點讚,帶你一起長知識!

相關焦點

  • LabVIEW編程實例:如何求解自然常數e
    實例說明自然常數e,是數學中最重要的常數之一,是一個無限不循環小數,也是自然對數函數的底數,其值約為2.71828。它的一個經典的數學定義公式是:使用計算機計算e的值時,可以使用下面的公式近似計算:那麼在LabVIEW中如何編程實現求解這個公式即e的值呢?編程思路從上面的近似公式可以看出,e的值與n的階乘有關,可將上式分解為兩個步驟:求解n的階乘:n!=1×2×3×......
  • LabVIEW編程實例:如何求解1000以內的所有素數
    實例說明先看一下什麼是素數:素數也叫質數(primer number),是指一個大於1的自然數,除了1和它自身外,不通整除其它自然數的數,符合這種規律的數就叫素數。素數有無窮多個,那麼在LabVIEW中如何編程實現求解1000以內的所有素數呢?
  • LabVIEW串口通信的一個例子-串口"示波器"
    最後,用一個狀態機來實現相鄰兩個字符串的判斷。如果串口在相鄰兩個字符串之間接收時間大於50ms,則判斷為兩個獨立的字符串;如果小於50ms,則自動拼接前後兩個字符串。例如LabVIEW調用了一個VI,如毫秒倍數為10毫秒,毫秒計時值為112毫秒。
  • DSP集成開發環境中的混合編程及FFT算法的實現
    它提供了環境配置、源文件編輯、程序調試、跟蹤和分析等工具,幫助用戶在一個軟體環境下完成編輯、編譯連結、調試和數據分析等工作。與TI提供的早期軟體開發工具相比,利用CCS能夠加快軟體開發進程,提高工作效率。CCS一般工作在兩種模式下:軟體仿真器和與硬體開發板相結合的在線編程。前者可以脫離DSP晶片,在PC機上模擬DSP指令集與工作機制,主要用於前期算法實現和調試。
  • 用FPGA實現FFT算法(圖)
    快速傅立葉變換(fast fourier transformation,簡稱fft)使dft運算效率提高1~2個數量級。其原因是當n較大時,對dft進行了基4和基2分解運算。fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。
  • 射頻信號分析儀的應用案例簡介
    解決方案:應用虛擬儀器和軟體無線電技術,使用通用化的射頻硬體模塊進行數據採集,依託PXI總線的高速數據吞吐能力,對射頻基帶信號進行軟體數據處理,實現各種調製方式的解調,和任意參數的測量。 軟體無線電 軟體無線電(Software Defined Radio,簡稱 SDR),就是採用數位訊號處理技術,在可編程控制的通用硬體平臺上,利用軟體來定義實現無線電臺的各部分功能:包括前端接收、中頻處理以及信號的基帶處理等等。即整個無線電臺從高頻、中頻、基帶直到控制協議部分全部由軟體編程來完成。
  • 一種新型霍爾傳感器信號檢測分析儀的設計與實現
    安裝工藝上的缺陷,設計實現了一個基於虛擬儀器架構的邏輯信號檢測分析儀對電機霍爾傳感器採用AT89S52單片機作為信號採集器,通過RS232串口實現單片機與PC通信,應用VB 設計圖形化的界面對採集的數據進行分析。本文引用地址:http://www.eepw.com.cn/article/162401.htm  無刷直流電機(BLDC) 應用中,常採用霍爾傳感器
  • 基於虛擬儀器LabVIEW的虛擬相位差計的設計
    它與傳統程式語言有著 諸多相似之處,如相似的數據類型、數據流控制結構、程序調試工具,以及層次化、模塊化 的編程特點等。但二者最大的區別在於:傳統程式語言用文本語言編程;而LabVIEW使用圖 形語言(即各種圖標、圖形符號、連線等),以框圖的形式編寫程序。[2]  一個LabVIEW程序包括三個主要部分:前面板、框圖程序、圖標路線埠。
  • LabVIEW編程技巧:如何實現子程序動態加載、運行、顯示及值交互
    那麼,如何在LabVIEW平臺中實現這種目的呢?實際上,這兒可以分解為下面兩個問題:1. 如何在主程序中動態加載調用子程序面板?2. 如何動態設置(修改)或獲取子程序面板中控制項的值?對於上面兩個問題,下面通過一個簡單的例子給出LabVIEW中的解決方法。
  • 每日函數——fft
    fft快速傅立葉變換語法Y  = fft(X)Y  = fft(X
  • 通俗易懂的講解FFT的讓你快速了解FFT
    在基本上的研究FFT,並且通過編程的形式實現之後。我決定寫一篇通俗易懂的關於FFT的講解。因此我在接下來的敘述中儘量非常通俗細緻的講解。 本人最早知道傅立葉變換的時候是沉迷於音樂的頻譜跳動無法自拔,當時就很想做一個音樂頻譜顯示器。搜閱了很多資料之後,才了解到傅立葉變換,和FFT。
  • 基於LabVIEW和Matlab混合編程的小波降噪方法
    但是,由於小波變換數學理論較深,對於初學者而言,使用傳統的C語言等編程方法,編程難度很大。本文採用LabVIEW 和Matlab 混合編程的方法,將LabVIEW 完美的圖形編程技術和Matlab強大的數學解算功能結合起來,實現了小波降噪的數學建模和信號圖像顯示。
  • LabVIEW編程實例:計算階乘,學習for循環+移位寄存器+遞歸調用
    =1根據這兩種定義方式,下面給出在LabVIEW中編程實現求解n!的兩種方法。階乘求解方法1:使用for循環+移位寄存器實現這種方法實現相對來說比較簡單,程序框圖如下圖所示:在上圖中,直接根據階乘定義使用for循環與移位寄存器的思路實現n!的計算,for循環的次數為n次,移位寄存器的初始值為1,作n次乘法運算即可計算出n的階乘。
  • 基於LabVIEW和Matlab混合編程的小波去噪方法
    但是,由於小波變換數學理論較深,對於初學者而言,使用傳統的C語言等編程方法,編程難度很大。本文採用LabVIEW 和Matlab 混合編程的方法,將LabVIEW 完美的圖形編程技術和Matlab強大的數學解算功能結合起來,實現了小波降噪的數學建模和信號圖像顯示。
  • 基於MSP430系列微控制器的FFT算法實現
    摘要:傅立葉變換算法在供電質量監測系統中被用來進行諧波分析,如何加快分析速度和降低系統成本是當前這種監測系統設計關注的主要問題。
  • Labview實現幅度信號調製(AM)
    本文引用地址:http://www.eepw.com.cn/article/201612/334162.htm其中,m(t)是交流信號分量,均值為0,需要被調製的信號,此處選擇一個正弦信號,正好滿足要求。
  • 基於FFT的分析儀解決RF功率和寄生噪聲輻射問題
    另一方面,根據頻率範圍的大小不同,FFT信號分析儀有兩個截然不同的採集模式。 儀器中高達RBW的頻率範圍的實現方式是:對一段頻率進行下變頻,然後對下變頻信號進行數位化。而對於超出RBW的頻率範圍,按順序對頻譜段進行變頻和數位化。RBW控制頻率軸上的頻率解析度。在傳統的分析儀中,利用一個窄帶濾波器來掃描頻率範圍來實現頻譜顯示。濾波器帶寬決定了頻率軸上的解析度,因此也是控制的標誌。
  • matlab下實現FFT信號分析
    奈奎斯特定理:對於信號分析,我們需要掌握一個定理
  • 實例,PHP計算一個圓的面積
    實例說明常量是PHP編程基礎的重要組成部分,其作用是定義一個不會改變的值。本例通過計算圓的面積說明常量是如何定義和使用的,運行結果如下圖所示。實現過程創建腳本 index.php 文件,首先,通過 drfine()函數定義常量。
  • 虛擬示波器 頻譜分析儀F-24U結構及原理簡介
    本期中介紹的USB接口的數字存儲示波器/頻譜分析儀F-24U是一種新型、微型化、可攜式的虛擬儀器,集數字存儲示波器(DSO)、頻譜分析儀(SA)於一身,包含視頻、音頻信號範圍,配備了強大的數位訊號處理軟體,可以用來測量各種類型電信號