构造一个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