2013-08-04 62 views
1

我正在爲我的Signal Processing課程學習Android項目。我的目標是在給定用戶輸入函數的情況下查找信號屬性,例如週期性,偶數/因果關係等。現在,我一直試圖弄清楚如何以編程方式計算給定函數的週期性。我知道週期背後的基本知識:f(t + T)= f(t)以編程方式查找給定函數的週期性

我現在唯一的想法是廣泛計算函數的值,然後檢查值的重複。我知道這個方法很愚蠢,因爲我不知道需要計算多少這樣的值來確定它是否是週期性的。

我知道這可以在Matlab中輕鬆完成,但是再次很難將Matlab移植到Java。有什麼我失蹤?我一直在尋找很多,但沒有發現任何有用的東西。

感謝您的任何幫助,提前!

+0

你看過FFT嗎?如果你的數據很好,只有一個(或幾個)頻率應該支配頻譜,並且很容易在fft上看到,也就是你的函數的頻率。 – arynaq

+0

您是否在問如何計算Java中的週期性或一般的算法?無論哪種情況,你在Matlab或Java中都嘗試過什麼? –

+0

@arynaq也許我有點懶惰,但不,我沒有查過FFT。但我猜測沒有更簡單的方法來做到這一點。是否有某種程序算法可能指的是?我可能不得不使用Java編寫代碼..非常感謝您的幫助。 – ndhaijaan

回答

0

如果功能f是作爲符號表達式給出的,那麼您聲明的等式在某些情況下可以象徵性地解決。這需要的工作量取決於你的功能如何描述,你允許什麼類型的功能,你使用的是什麼庫等等。

如果您與該功能的唯一交互作用是對其進行評估,即如果您將函數描述視爲黑盒子或從某個傳感器獲取其值,那麼您最好的選擇是將數據轉換爲Fourier transformation時域轉換到頻域。尤其是,您可能希望選擇您的樣本數作爲2的冪分析,然後使用FFT快速獲得各種頻率的強度。

+0

我的應用程序需要用戶輸入函數,如y(x)='sin(x)* cos(x)'。基於這一點,我告訴它是否是週期性的,甚至/奇怪等 我覺得評估功能將是一個更好的方法,因爲我的許多未來的功能取決於它。考慮到這一點,我一直在嘗試使用Math Expression Evaluator(https://github.com/darius/expr)。 當然,這只是我的項目的開始,我願意接受任何建議。我將在此期間查看FFT。謝謝你的提示! – ndhaijaan

相關問題