我正在尝试用滑动窗口从python上的EMG数据中提取频率特性。我没有太多的频率分析知识,所以如果我有一些错误的概念,我会提前道歉。
我试图遵循这个网站的定义:
我的问题是我是否正确地进行了计算,如果没有,我如何进行计算?
Windows_Size = 0.125
Overlap = 0.5
Bins = 256
START, END = df_filtered['Time'].min(), df_filtered['Time'].max()
Fs = 2000 #EMG Sampling Frequency
P = 1.0 / Fs
Windows = np.arange(START + Windows_Size, END, Windows_Size * (1 - Overlap))
FREQ = []
for w in WINDOWS:
win_start, win_end = w - Windows_Size, w
for var in ['Biceps_Femoris_Sq_Correct']:
value = df_filtered.loc[(win_start <= df_filtered['Time']) & (df_filtered['Time'] < win_end), var].values
fft = np.fft.fft(value * np.hamming(value.shape[0]), n=Bins)[1:Bins//2]
freq = np.fft.fftfreq(Bins, P)[1:Bins//2]
amp = np.abs(fft)
energy = amp ** 2 # Is this the right way to calculate power spectrum?
median_freq = energy/2
#mean_freq = EMG power spectrum is divided into two regions with equal
#amplitude... is this right?
mean_freq = np.sum(energy * freq) / np.sum(energy) 平均频率作为肌电图功率谱的乘积之和计算,频率除以功率谱的总和。这是计算平均频率的正确方法吗?
发布于 2022-07-08 10:06:51
MDF应该类似于
energy_cumsum = np.cumsum(energy)
MDF = freq[np.where(energy_cumsum>np.max(energy_cumsum)/2)[0][0]] https://stackoverflow.com/questions/61746606
复制相似问题