Board logo

標題: 訊號處理的方式討論 [打印本頁]

作者: acdx    時間: 2015-5-21 16:08     標題: 訊號處理的方式討論

作為訊號處理的程式,如圖想要抓取每一根的peak值,附件為raw data 包含每一個頻率對應的值
需求為抓取第一,第二,及第三大(Top1~Top3)的peak值,原使用larger(Range,1),larger(Range,2),larger(Range,3)的指令來做卻會抓到錯誤的值
如範例中,
正確值應為:
Top1=真1
Top2=真2
Top3=真3
卻會出現以下錯誤結果:
Top1=真1
Top2=假1
Top3=真2
想請教版上高手對於這樣的問題有怎樣的方法可以讓程式正確判別不會抓到錯誤的值
[attach]21006[/attach]
[attach]21007[/attach]
作者: bobomi    時間: 2015-5-22 10:57

[attach]21014[/attach]
濾掉它
作者: acdx    時間: 2015-5-25 16:32

回復 2# bobomi
請問該如何濾掉? 可否進一步說明? 謝謝
作者: GBKEE    時間: 2015-5-26 09:28

回復 3# acdx
是這樣嗎?
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, AR(), i As Integer, xTop(1 To 3)
  4.     Set Rng = Range("a15").CurrentRegion.Rows  '訊號位置

  5.     ReDim Preserve AR(1 To Rng.Count)
  6.     For i = 1 To Rng.Count
  7.         AR(i) = Application.Max(Rng.Rows(i))
  8.     Next
  9.     For i = 1 To 3
  10.         xTop(i) = Application.WorksheetFunction.Large(AR, i)
  11.     Next
  12. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)