赞
踩
我已经从我的TI AFE4490获得了10秒的原始PPG(光体积图)信号。我的硬件被校准了,我每秒使用250个样本来记录这些信号。最后我获得了2500分。
我使用巴特沃斯带通滤波器,低截=0.5,高截=15,阶数=2。你可以看到我的原始和过滤信号如下:
我还尝试用巴特沃斯低通滤波器来过滤这个,低通滤波器为15,阶数为2。如你所见,我的原始和过滤信号如下:
我在一些文章中读到,对于这种类型的信号,0.5Hz和15Hz是良好的低截和高截频率。
在应用过滤器之前,我使用了scipy-butterworth(来自scipy docs)算法来显示过滤器响应,结果很好。
我的过滤信号在“开始”之后似乎很好(在开始时提升),但我不知道为什么要开始。有人能告诉我“开始”在巴特沃斯过滤器是不是正常?如果是,有什么方法可以解决?
感谢您的帮助。
red,ir,nsamples,srate=getafesignal()。
周期=1/srate信号周期。
#所需的截止频率(赫兹)和滤波器顺序。
低割=0.5
高割=15
订单=2
PLT .图(1)
x=np.linspace(0,nsamples*句点,nsamples,endpoint=true)
PLT.子批次(2、1、1)
Y=IR
plt.xlabel('时间)
plt.ylabel(“电压(V)”)
plt.plot(x,y,label='噪声信号')
PLT.子批次(2、1、2)
yf=黄油带通滤波器(IR、低截、高截、N示例、订单=订单)
plt.xlabel('时间)
plt.ylabel(“电压(V)”)
plt.plot(x,yf,label='滤波信号')
GLID()
显示()
< /代码>
函数getafesignal()is just a function to read a.txt file and put all into two numpy array.
我使用巴特沃斯带通滤波器,低截=0.5,高截=15,阶数=2。您可以看到我的原始和过滤信号如下:
我还尝试用巴特沃斯低通滤波器来过滤这个,低截滤波器为15,阶数为2。如您所见,我的原始和过滤信号如下:
我在一些文章中读到,对于这种类型的信号,0.5Hz和15Hz是良好的低截和高截频率。
在应用过滤器之前,我使用了scipy-butterworth(来自scipy-docs)算法来显示过滤器的响应,结果很好。
我的过滤信号在“开始”之后似乎很好(在开始时提升),但我不知道为什么要开始。有人能告诉我“开始”在巴特沃斯过滤器是不是正常?如果是,有什么方法可以解决?
谢谢你的帮助。
我的代码:
RED, IR, nSamples, sRate = getAFESignal()
period = 1/sRate # Signal period.
# Desired cutoff frequency (in Hz) and filter order.
lowcut = 0.5
highcut = 15
orders = 2
plt.figure(1)
x = np.linspace(0, nSamples*period, nSamples, endpoint=True)
plt.subplot(2,1,1)
y = IR
plt.xlabel('Time (s)')
plt.ylabel('Voltage (V)')
plt.plot(x,y, label='Noisy signal')
plt.subplot(2,1,2)
yf = butter_bandpass_filter(IR, lowcut, highcut, nSamples, order=orders)
plt.xlabel('Time (s)')
plt.ylabel('Voltage (V)')
plt.plot(x, yf, label='Filtered signal')
plt.grid()
plt.show()
函数getAFEsignal()只是一个读取.txt文件并将其全部放入两个numpy数组的函数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。