Part Number: TMS320F280049C
Other Parts Discussed in Thread: PMP23338
TI专家您好!
在示例项目PMP23338中关于自适应陷波滤波器的离散形式系数的计算有疑问要请教下:
在函数SPLL_1PH_NOTCH_coeff_calc中关于A0, A1, A2, B0, B1, B2的表达方式不理解,temp1和temp2的值是如何得到的?
我看了SPRABT3A–July 2013–Revised July 2017这篇文章,但里面关于使用ZOH对陷波滤波器离散化后,没有进一步的各个系数表示方法,只有如下的形式,麻烦帮空解答下,谢谢了!

//! \brief Calculates the coefficients for SPLL_1PH_NOTCH filter
//! \param *spll_obj The SPLL_1PH_NOTCH structure pointer
//! \param c1 c1 Notch paramater
//! \param c2 c2 Notch Parameter
//! \return None
//!
static inline void SPLL_1PH_NOTCH_coeff_calc(SPLL_1PH_NOTCH *spll_obj,
float32_t c1, float32_t c2)
{
float32_t notch_freq;
float32_t temp1,temp2;
float32_t wn2;
float32_t Ts, Fs;
notch_freq=2*3.14159265f*spll_obj->fn;
Ts = spll_obj->delta_t;
Fs=1/Ts;
//
// pre warp the notch frequency
//
wn2=2*Fs*tanf(notch_freq* ((float32_t)3.141592653589)*Ts);
//下面这些行的系数计算是如何得到的?
temp1= 4*Fs*Fs + 4* wn2 * c2 * Fs + wn2*wn2;
temp2= 1/ ( 4*Fs*Fs + 4* wn2 * c1 * Fs + wn2*wn2);
spll_obj->notch_coeff.b0 = temp1* temp2;
spll_obj->notch_coeff.b1 = (-8*Fs*Fs + 2* wn2* wn2)* temp2;
spll_obj->notch_coeff.b2 = (4*Fs*Fs-4*wn2*c2*Fs+wn2*wn2)*temp2;
spll_obj->notch_coeff.a1 = (-8*Fs*Fs + 2* wn2* wn2)*temp2;
spll_obj->notch_coeff.a2 = (4*Fs*Fs-4*wn2*c1*Fs+wn2*wn2)*temp2;
}