2012-09-11 43 views
0

我有一個信號,並希望用MATLAB找到它的局部最大值,找到它們的幅度,從小到大排序,然後選擇第75個百分位。找到信號的局部最大值及其百分位數

我該怎麼做?

**第75百分位數:表示75%的數據等於或小於該數值的特定元素。例如:如果我們有從0到100的值,則75是第75百分位。

+0

你有沒有嘗試過一些東西,你有作爲輸入給出的例子和你期望的輸出? – Etienne

+1

是你的信號1D(矢量)還是2D(陣列)?另外,如果你想要「局部最大值的幅度」,你很可能有複雜的值條目? PS。歡迎來到SO。有時答案就像閱讀文檔一樣簡單。 – gevang

回答

0

對於真實的矢量(1D)信號,您可以使用信號處理工具箱中的findpeaks來查找局部最大值,並指定參數(如峯值距離或最大值閾值)。

對於複數值信號,您可以通過abs()findpeaks()應用於信號的大小。

如果您需要對值進行排序,則可以使用sortprctile從值向量計算百分比。

+0

謝謝親愛的,我用pks = findpeaks(yy,'sortstr','ascend')來排序它們。 – jasmin

+0

@ Etienne我有一個信號,我想找到局部最大的幅度,而不是他們的索引 – jasmin

+0

親愛的感謝您的歡迎:)在MATLAB的初學者,需要有助於瞭解MATLAB的世界 – jasmin

相關問題