日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

matlab+信号+mpf,Python和Matlab中平均频率的差异

發布時間:2025/3/12 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab+信号+mpf,Python和Matlab中平均频率的差异 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我有這個EMG signal,我想根據這個article繪制平均功率頻率。我使用以下代碼在Matlab中實現它:clear all;

close all;

EMG=load('EMG.txt');

N=1000; %my window

z=1;

fs=200 %sampling rate

for i=1:length(EMG)-N

DUM=0;

NUM=0;

FT=fft(EMG(i:i+N-1));

psd=FT.*conj(FT);

NFFT=length(fft2);

f = [1:NFFT/2]*fs/N;

for j=1:NFFT/2

NUM=NUM+f(j)*psd(j);

DUM=DUM+psd(j);

end

MPF(z)=NUM/DUM;

z=z+1;

end

強積金的情節是:

下面我嘗試在Python中做同樣的事情。代碼是:

^{pr2}$

強積金的地塊是:

為什么不同?在

更新

根據Dan在評論部分的建議,我修改了Python代碼如下,結果大致相同,只是Matlab代碼比Python快得多,在我的例子中,Python內存不足:sampling_rate=200

N=1000

MPF=[]

for i in range(0,len(EMG)-N):

signal=EMG[i:(i+N)]

FT=np.fft.fft(signal, axis=0)

psd=FT*np.conj(FT)

NFFT=len(FT)

f =(np.arange(0,NFFT/2)*sampling_rate)/N

D_1=0

N_1=0

for j in np.arange(1,NFFT/2):

D_1=D_1+f[j]*psd[j]

N_1=N_1+psd[j]

MPF.append(D_1/N_1)

plt.plot(MPF)

plt.show()

選擇前22000個樣本,結果如下:

總結

以上是生活随笔為你收集整理的matlab+信号+mpf,Python和Matlab中平均频率的差异的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。