Matlab fir滤波(conv)

在做数字信号处理的时候我们经常需要处理各种各样的波形,特别是混合波形的提取。在混合波形中提取目标波形,会经常使用到滤波器,这里通过matlab中的conv函数(向量卷积运算)实现滤波输出。

一:设置滤波器参数

在MATLAB中输入fdatool(Filer Dsign and analysis tool)即可调出滤波器设置界面窗口
里面可以设置滤波器的类型,采样频率,截止频率等。本设计设置的参数如下图所示。

注意:截止频率<采样频率。Fstop<Fs

在这里插入图片描述

二、导出设置好的滤波器参数

完成滤波器设计之后,点击file-Export(导出),在出来的对话框中直接Export即可。
之后输入Num即可看到滤波器的参数
在这里插入图片描述

三、滤波前后对比

matlab 代码如下

Fs = 10000;  % 采样频率决定了两个正弦波点之间的间隔
N = 4096;    % 采样点数
N1 = 0:1/Fs:N/Fs-1/Fs;

normal = sin(1000*2*pi*N1);
in = sin(1000*2*pi*N1) + sin(3000*2*pi*N1) + sin(4000*2*pi*N1);  % 混合正弦波形

% 滤波器参数
coeff = [-0.0325,-0.0384,0.0784,0.2874,0.3984,0.2874,0.0784,-0.0384,-0.0325];
% 滤波器输出
out = conv(in,coeff);

% 画图
subplot(3,1,1);
plot(in);
xlabel('滤波前');
axis([0 200 -3 3]);

subplot(3,1,2);
plot(out);
xlabel('滤波后');
axis([100 200 -2 2])

subplot(3,1,3);
plot(normal);
xlabel('原始波形');
axis([100 200 -2 2])

运行后的输出波形
在这里插入图片描述

可以看出滤波后的波形和原来的波形相比还是不错的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值