前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >带通滤波器的matlab程序设计

带通滤波器的matlab程序设计

作者头像
全栈程序员站长
发布2022-08-26 14:29:07
6620
发布2022-08-26 14:29:07
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

最近初入信号处理,对带通滤波器的资料进行总结。

  1. 如何在matlab用带通滤波器进行滤波?
  2. matlab中fdatool使用说明
  3. Matlab fir滤波(conv)

以上链接详细记录了带通滤波器的设计及matlab自带fdatool的使用步骤。

自己编的一个带通滤波器的程序及解释

代码语言:javascript
复制
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表示。

有需要可以自行修改,不保证正确。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144159.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自己编的一个带通滤波器的程序及解释
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档