matlab和c语言结果不同,求助:MATLAB filter函数结果与C程序结果不一致。

博主对比了使用MATLAB和C语言实现的5阶butterworth高通滤波器,发现两者输出结果存在差异。MATLAB的滤波输出在所有样本上都与C程序不完全匹配,特别是在高频率部分。文章寻求了解决该问题的建议和可能的原因。
摘要由CSDN通过智能技术生成

构造一个5阶butterworth高通滤波器,Matlab程序如下;

clear all;

clc;

T = 1/ (66.6666666667/2);

[b, a] = butter(5, (0.8*T), 'high');

x  = [1:2:100];

y  = filter(b, a, x);

y的输出结果如下;

0.8851    2.4394    3.5884    4.3831    4.8708    5.0947    5.0946    4.9067

4.5642    4.0970    3.5322    2.8943    2.2050    1.4837    0.7475    0.0116

-0.7111   -1.4093   -2.0735   -2.6959   -3.2698   -3.7902   -4.2531   -4.6558

-4.9965   -5.2743   -5.4892   -5.6418   -5.7336   -5.7664   -5.7427   -5.6653

-5.5373   -5.3623   -5.1440   -4.8863   -4.5932   -4.2688   -3.9173   -3.5428

-3.1494   -2.7412   -2.3222   -1.8960   -1.4665   -1.0372   -0.6112   -0.1919

0.2179    0.6156

然后用相同的滤波器系数b, a在C程序里算了一下,相同的输入x,但滤波器输出不同;

void _butt_filt(void)

{

#define   SAMPLE_L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值