MATLAB实现巴特沃斯数字滤波器
前因:因为要准备保研面试,今年暑假就重新把烂尾的项目捡起来了。
为了提取采集到的脑电信号中有用的部分,想用数字带通滤波器实现,浏览了很多帖子。要不是只有代码,没有注释;要不就是只有理论,没有代码。索性自己写一篇,方便回顾。
1. 用↓观察频谱
f=fftshift(fft(b)); %b表示信号值data
w=linspace(-512/2,512/2,length(b)); %根据奈奎斯特采样定理,512/2为最大频率
plot(w,abs(f)); %Hz为单位
- k、Hz等纵坐标如何判断(5.同理)
2. 频率转化
Fs=512
fp=0.5Hz - 50Hz
fs=0.25Hz - 55Hz
///
*Q:↑为何如此取值
A:为防止频谱泄露,滤波器并非完全垂直截止,需过渡衰减