Matlab filter2函数一维信号滤波C语言

filter2,二维数字滤波器。

用法:Y = filter( X , H ) 根据矩阵 H 中的系数,对数据矩阵 X 应用有限脉冲响应滤波器。

 一、生成fir滤波器

fs = 600000;
f1 = 37.2;
f2 = 37.8;
wn = [f1 f2]*1000*2/fs;
b_BPF = fir1(32,wn);

二、生成信号

fs = 600000;
T = 2*10^-3;
N = round(T*fs);
t = (0:N-1)/fs;
sig = cos(2*pi*f0*1000*t);

三、MATLAB处理滤波

sig_filted = filter2(b_BPF,sig);

四、C语言处理滤波

int_sig = zeros(1,multi*N);
trans_sig = zeros(1,(multi*N+32));
for i = 1:N
   trans_sig((i-1)*multi+17) = sig(i);
end
for i = 17:N_N+16
    for j = 1:33
        int_sig(i-16) = int_sig(i-16) + trans_sig(i+j-17)*b_BPF(j);
    end
end

五、结果对比

  

PS:这两天做插值的时候被filter2用C实现困扰了,所以写一点经验,C语言是按照MATLAB写出来的,结果一致,但是跟C写差不多,等有时间再改。图和代码不对应,但结果是验证过了,最近实在太忙了~~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值