DSP中对一些采样变量要用到各种滤波器,特别是三相逆变系统。
在此记录下数字滤波器设计过程。
z数值滤波器设计分为几个步骤:
1先确定滤波器阶数和带宽
2使用 Matlab 中的filterDesigneer 设计数字滤波器。
例如设计截止频率为50Hz 采样频率为16000Hz的低通滤波器。
选择Lowpass IIR Butterworth Specify order 选择1阶,设置截止
和采样频率,点Design Filter ,滤波器设计ok,
点Analysis中的filter coefficients 导出滤波器参数:
Numerator 分子: 1 1 0
Denominator 分母: 1 -0.98055531890995351 0
Gain: 0.0097223405450232395
可以用matlab验证下参数
>> sys1=tf([0.0097223405450232395 0.0097223405450232395 0],[1 -0.98055531890995351 0],6.25e-5);
>> bode(sys1)
把获得的参数直接可用在DSP中。
FilteredValue = LOW_PASS_NUM1_16K_50 * (Value + ValueLastInput);
FilteredValue -= LOW_PASS_DEN2_16K_50 * ValueLastOutput;
ValueLastInput = Value ;
ValueLastOutput= FilteredValue ;
同理,谐振滤波器和陷波器都可以用该方法得到,根据需求,可选择不同滤波器类型。