2017-06-14 50 views
2

私はPythonのnumpyのftt.ftt()メソッドを使用して信号のフーリエ変換を生成しています。しかし、私は周波数の範囲でバンドパワーを計算したいと思います。 MATLABには、bandpower(x、fs、freqrange)というメソッドがあります。この関数の構文を具体的にシミュレートしようとしています。出典:https://www.mathworks.com/help/signal/ref/bandpower.htmlMATLABからのbandpower()のPython numpy相当

numpyには同等の機能がありますが、誰かがbandpower(x、fs、freqrange)を模倣するために使用できるコードスニペットを知っていますか?関数の中で何が起こっているのかが私には分かりません。

注:Matlab関数を実現する非Pythonの擬似コードがいくつか分かっている場合は、それも役立ちます。

+1

あなたはすべての機能をシミュレートしようとしているか、単に1つの入力引数の構文を使用していますか? – Divakar

+0

バンドパワー(x、fs、freqrange)の構文 – HexTree

答えて

3

バンドでパワーを計算するための次のスニペット[FMIN、Fmaxが]私の仕事:

import scipy 

def bandpower(x, fs, fmin, fmax): 
    f, Pxx = scipy.signal.periodogram(x, fs=fs) 
    ind_min = scipy.argmax(f > fmin) - 1 
    ind_max = scipy.argmax(f > fmax) - 1 
    return scipy.trapz(Pxx[ind_min: ind_max], f[ind_min: ind_max]) 
関連する問題