肌电信号基于matlab低通滤波肌电信号处理含Matlab源码 964期
Posted 紫极神光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了肌电信号基于matlab低通滤波肌电信号处理含Matlab源码 964期相关的知识,希望对你有一定的参考价值。
一、简介
滤波器的用途:滤波器主要用来滤除信号中的无用频率成分,让符合频率要求的信号通过,抑制不需要的信号。
滤波器的分类:低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BEF)。下边介绍的滤波器均为无源的。
1 无源低通滤波器
允许信号中较低频率成分通过滤波器时,这种滤波器叫做低通滤波器。
2 二阶低通滤波
下图为二阶低通滤波器电路和具体bode图,可以发现其下降部分相较于一阶低通滤波更加陡峭。
3 RL电感低通滤波电路
RL电感低通滤波电路和RC低通滤波电路的功能基本一致,通低频,阻高频,此外还能实现积分电路。
二、源代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%设定初始参数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs=2048; %采样频率
N=512; %采样点数
n=0:N-1;
t=n/fs; %时间
f1=100;
f2=300; %低频
f3=800; %高频
s=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);%假定信号
subplot(121);plot(t,s);
title(\'输入信号\');xlabel(\'t/s\');ylabel(\'幅度\');%未滤波时 时域波形
sfft=fft(s); %傅里叶变换
subplot(122);
plot((1:length(sfft)/2)*fs/length(sfft),2*abs(sfft(1:length(sfft)/2))/length(sfft));
title(\'信号频谱\');xlabel(\'频率/Hz\');ylabel(\'幅度\'); %未滤波时 频域波形
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%设计巴特沃斯低通滤波器%%%%%%%%%%%%%%%%%%%%%%%%
Wp=900/fs;Ws=1000/fs;
[n,Wn]=buttord(Wp,Ws,1,50); %阻带衰减大于50db,通带纹波小于1db
%估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wn
[a,b]=butter(n,Wn);
[h,f]=freqz(a,b,\'whole\',fs); %求数字低通滤波器的频率响应
f=(0:length(f)-1)*fs/length(f); %进行对应的频率转换
figure(2);
plot(f(1:length(f)/2),abs(h(1:length(f)/2))); %绘制巴特沃斯幅频响应图
title(\'巴特沃斯低通滤波器\');xlabel(\'频率/Hz\');ylabel(\'幅度\');
grid;
sF=filter(a,b,s); %叠加函数s经过低通滤波器以后的新函数
figure(3);
subplot(121);
plot(t,sF); %绘制叠加函数s经过低通后时域图形
title(\'输出信号\');xlabel(\'t/s\');ylabel(\'幅度\');
SF=fft(sF);
subplot(122);
plot((1:length(SF)/2)*fs/length(SF),2*abs(SF(1:length(SF)/2))/length(SF));
title(\'低通滤波后频谱\');xlabel(\'频率/Hz\');ylabel(\'幅度\');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%时域特征值计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
iemg1=sum(abs(sF))/length(sF);
rms1=sqrt(sum(sF.^2)/length(sF));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%频域特征值计算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
L1=length(sF);
cx1=xcorr(sF,\'unbiased\');
cxk1=fft(cx1,L1);
px1=abs(cxk1); %求功率谱密度
pxx1=10*log10(px1);
figure(4)
f1=(0:L1-1)*fs/L1;
plot(f1(1:L1/2),pxx1(1:L1/2))
figure(4)
三、运行结果
四、备注
版本:2014a
完整代码或代写加1564658423
以上是关于肌电信号基于matlab低通滤波肌电信号处理含Matlab源码 964期的主要内容,如果未能解决你的问题,请参考以下文章
肌电信号基于matlab GUI脉搏信号处理系统含Matlab源码 1062期
语音处理基于matlab音频信号FIR+IIR(高通+低通+带通)滤波器频谱分析含Matlab源码 1732期