带通滤波器的matlab程序设计
最近初入信号处理,对带通滤波器的资料进行总结。转载自:如何在matlab用带通滤波器进行滤波?matlab中fdatool使用说明Matlab fir滤波(conv)以上链接详细记录了带通滤波器的设计及matlab自带fdatool的使用步骤。自己编的一个带通滤波器的程序及解释fs=500;% 采样率n=length(data);
·
最近初入信号处理,对带通滤波器的资料进行总结。
转载自:
以上链接详细记录了带通滤波器的设计及matlab自带fdatool的使用步骤。
自己编的一个带通滤波器的程序及解释
fs=500; % 采样率
n=length(data); % 滤波数据长度
t = 0:1/fs:(n-1)/fs; % 横坐标刻度值
lpass=100;
hpass=200; % 带通滤波的带宽
filterorder =2; % 滤波器阶数
filtercutoff = [2*lpass/fs 2*hpass/fs]; % 频率归一化 对应频率/nyquist频率,nyquist频率是采样率的一半
[f_b, f_a] = butter(filterorder,filtercutoff); % 调用butter()函数返回巴特沃斯滤波器传递函数的零极点系数和增益
sig= filtfilt(f_b,f_a,data); % 零相位数字滤波 通过x在正向和反向两个方向上处理输入数据来执行零相位数字滤波 。在向前过滤数据后,反转过滤后的序列,然后将其运回过滤器。
noise=data-sig; % 噪声为原始信号减去滤波后信号的剩余信号
SNR=10*log((sig.^2)/(noise.^2)); % 10lg(Ps/Pn),其中Ps和Pn分别代表信号和噪声的有效功率,也可以换算成电压幅值的比率关系:20Lg(Vs/Vn),Vs和Vn分别代表信号和噪声电压的“有效值”。用dB表示。
有需要可以自行修改,不保证正确。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)