Anonymous
Anonymous asked in 電腦與網際網路程式設計 · 9 years ago

LabVIEW之peak detector及矩陣問題

我想詢問有關使用peak detector這個工具使用方式,我有參考過範例並嘗試撰寫程式,可是執行結果有問題...我這就放上介面程式圖檔請各位協助點出問題所在。

圖片參考:http://www.labviewpro.net/upfiles/30001.jpg

[+]放大圖片 透過 peak detector 所擷取到的三組Peak time矩陣,當我再計算Peak time1與Peak time2的時間差1時,同時我會有個機制是時間差再0.2秒內時即做運算而獲得時間差,如果時間差大於0.2秒時此數據忽略並使用下一個數據與之做運算,可以看到圖形所示a~d矩陣所得的時間差都在0.2秒以內,到e矩陣時,Peak time1與Peak time2和Peak time3的時間差超過0.2秒因此...e矩陣的Peak time1數據被忽略不採用,改由下一個f矩陣Peak time1與e矩陣的Peak time2和Peak time3做運算時間差,這就是我的程式圖形所構想的執行方式,這裡...我想問有沒有甚麼工具真對此類做運算?麻煩各位給予協助指點,謝謝!!!

2 Answers

Rating
  • 9 years ago
    Favorite Answer

    daq不是擷取外部訊號?

    怎麼會是peak time?

    如果是計算時間差的話 ,你可以用

    Tick Count (ms),

    在外面放個for or while loop,並執行一次停止,並加暫存位移器,作Tick Count (ms)的相減,就可以得知 你幾時擷取資料 並幾時結束。

    2011-05-04 13:25:27 補充:

    意思是說

    取得的data,

    時間

    data1 5 5.2 1

    x scale(sec) 0.1 0.2 0.3

    data2 2 2.5 0.8

    x scale(sec) 0.12 0.22 0.32

    1.如何正確畫出時間軸,在同一張Waveform Chart?

    2.還是說 你要得到time的data?

    反駁一下你所說的

    2011-05-04 13:25:31 補充:

    首先peak detector他是跟waveform graph對應...

    非跟waveform chart對應...(將data轉置 即可用chart)

    但無法將waveform chart的時間記錄下來...(利用

    multiplier,設定取樣頻率,即可獲得正確時間,取樣頻率你必須知道的,接著要獲取時間的data,利用for loop並加上暫存位移器作++Ts,迴圈次數請判別你所獲得的data 的size 即可)

    因為我不了解peak detector.vi 的功用,所以不清處他的用途 ,只能大約以你所寫的文字 作猜測

    2011-05-04 13:29:41 補充:

    本來以為抓取出來的Locations值就是X軸上的數值...

    可以將時間顯示出來...

    LABVIEW獲得一陣列,你沒給他設字Ts,也就是一個data就是1scale,除了我上面所使用的方法,你也可以用Build Waveform作時間軸的設定。

    2011-05-11 22:26:46 補充:

    來賺個點數

    陣列a[1][100]-a[2][100]是吧~

    你可以利用Replace Array Subset在a陣列前方補個0,不就決解了

    然後二個陣列作相前

    (以原a陣列,指引出 二個相同陣列,並對其中一個陣列作前方補0)

    2011-05-11 22:28:40 補充:

    原陣列a[]={1,2,3,4,5,6,7};

    改後

    a[]={0,1,2,3,4,5,6,7};

    a[]={1,2,3,4,5,6,7,0};

    不就解決了

  • DAQ是擷取外部訊號沒錯...

    但我要的不是從開始擷取data到結束這段時間...

    而是要利用peak detector擷取data中的Locations值...

    本來以為抓取出來的Locations值就是X軸上的數值...

    可以將時間顯示出來...

    但是發現LabVIEW沒那麼聰明囧~~

    首先peak detector他是跟waveform graph對應...

    非跟waveform chart對應...

    因此Locations值雖然是顯示X軸值...

    但無法將waveform chart的時間記錄下來...

    只可將waveform graph的X軸數值紀錄下來...

    2011-05-04 00:51:32 補充:

    恐怕我要先將DAQ所擷取到的data資料存取到Excel...

    利用獲得的Locations值對應到Excel的data...

    把第n行資料抓取出來與我所給定的頻率週期做換算成時間...

    這是這兩天跟朋友討論的想法!!!

    只是不太好寫就是了XDD

    還是這位大哥有沒有其他方法可以將我想要的"peak time"求出來...?!

    麻煩這位大哥給予指教~~謝謝!!!

    2011-05-05 19:41:15 補充:

    這幾天與同學間討論後,關於時間的問題我已獲得解決方法,我先令DAQ的Rate(Hz)設定1K Hz,Samples to read 設定1K,所以waveform graph圖形中的X軸會顯示0~1秒的擷取1千個點所組成的訊號,因此我可以將X軸每一個點視為0.001秒,至於peak detector這功用是擷取上下限波峰的data,可以將waveform graph所顯示0~1秒時間內(因為我將DAQ的Rate(Hz)設定1K Hz,Samples to read 設定1K)所擷取到的peak抓出來。

    2011-05-05 19:44:58 補充:

    在此,小的還有其他疑問,礙於這裡無法將圖片上傳,如果這位大大願意給予指教的話,我在另一個LabVIEW論壇有發表文章,請這位大大到以下網址觀看文章回覆2F我所提到的新的問題,謝謝。

    http://www.labviewpro.net/forum_post_detail.php?po...

    這網址是NI美商公司所贊助的LabVIEWPro專業論壇,麻煩你了!!!

Still have questions? Get your answers by asking now.