это всего лишь дополнение к ответу Джохека, которое является более общим и совершенно хорошим, когда используется математика двойной точности. когда точность меньше, возникает «проблема косинуса», которая возникает, когда либо частота в частотной характеристике очень низкая (намного ниже, чем Найквист), а также когда резонансные частоты фильтра очень низкие.
| ЧАС( еJ ω) |2| ЧАС( е- J ω) | = | ЧАС( еJ ω) |
рассмотрим этот триг личности:
соз( ω ) = 1 - 2 греха 2( ω2)
грех2( ω2)ω → 0
грех2( ω2)
ЧАС( з) = b0+ б1Z- 1+ б2Z- 2a0+ а1Z- 1+ а2Z- 2
который имеет сложную частотную характеристику
ЧАС( еJ ω) = b0+ б1е- J ω+ б2е- j 2 ωa0+ а1е- J ω+ а2е- j 2 ω
который имеет величину в квадрате:
| ЧАС( еJ ω) |2= | б0+ б1е- J ω+ б2е- j 2 ω|2| 0+ а1е- J ω+ а2е- j 2 ω|2= ( б0+ б1соз( ω ) + б2соз( 2 ω ) )2+ ( б1грех( ω ) + б2грех( 2 ω ) )2( а0+ а1соз( ω ) + а2соз( 2 ω ) )2+ ( а1грех( ω ) + а2грех( 2 ω ) )2= б20+ б21+ б22+ 2 б1( б0+ б2) потому что( ω ) + 2 б0б2соз( 2 ω )a20+ а21+ а22+ 2 а1( а0+ а2) потому что( ω ) + 2а0a2соз( 2 ω )
|ЧАС( еJ ω) |соз( ω )соз( 2 ω )ω11
используя приведенную выше идентичность триггера, вы получаете для квадрата величины:
| ЧАС( еJ ω) |2= б20+ б21+ б22+ 2 б1( б0+ б2) потому что( ω ) + 2 б0б2соз( 2 ω )a20+ а21+ а22+ 2 а1( а0+ а2) потому что( ω ) + 2 а0a2соз( 2 ω )= б20+ б21+ б22+ 2 б1( б0+ б2) ( 1 - 2 греха2( ω2) ) +2 б0б2( 1 - 2 греха2( ω ) )a20+ а21+ а22+ 2 а1( а0+ а2) ( 1 - 2 греха2( ω2) ) +20a2( 1 - 2 греха2( ω ) )= б20+ б21+ б22+ 2 б1( б0+ б2) ( 1 - 2 греха2( ω2) ) +2 б0б2( 2 cos2( ω ) - 1 )a20+ а21+ а22+ 2 а1( а0+ а2) ( 1 - 2 греха2( ω2) ) +20a2( 2 cos2( ω ) - 1 )= б20+ б21+ б22+ 2 б1( б0+ б2) ( 1 - 2 греха2( ω2) ) +2 б0б2( 2 ( 1 - 2 греха2( ω2) )2- 1 )a20+ а21+ а22+ 2 а1( а0+ а2) ( 1 - 2 греха2( ω2) ) +20a2( 2 ( 1 - 2 греха2( ω2) )2- 1 )= б20+ б21+ б22+2b1(b0+b2)(1−2ϕ)+2b0b2(2(1−2ϕ)2−1)a20+a21+a22+2a1(a0+a2)(1−2ϕ)+2a0a2(2(1−2ϕ)2−1)=b20+b21+b22+2b1(b0+b2)(1−2ϕ)+2b0b2(1−8ϕ+8ϕ2)a20+a21+a22+2a1(a0+a2)(1−2ϕ)+2a0a2(1−8ϕ+8ϕ2)=b20+b21+b22+2b1b0+2b1b2−4(b1b0+b1b2)ϕ+2b0b2−16b0b2ϕ+16b0b2ϕ2a20+a21+a22+2a1a0+2a1a2−4(a1a0+a1a2)ϕ+2a0a2−16a0a2ϕ+16a0a2ϕ2=(b20+b21+b22+2b1b0+2b1b2+2b0b2)−4(b1b0+b1b2−4b0b2)ϕ+16b0b2ϕ2(a20+a21+a22+2a1a0+2a1a2+2a0a2)−4(a1a0+a1a2−4a0a2)ϕ+16a0a2ϕ2=14(b20+b21+b22+2b1b0+2b1b2+2b0b2)−(b1b0+b1b2−4b0b2)ϕ+4b0b2ϕ214(a20+a21+a22+2a1a0+2a1a2+2a0a2)−(a1a0+a1a2−4a0a2)ϕ+4a0a2ϕ2=(b0+b1+b22)2−ϕ(4b0b2(1−ϕ)+b1(b0+b2))(a0+a1+a22)2−ϕ(4a0a2(1−ϕ)+a1(a0+a2))
where ϕ≜sin2(ω2)
if your gear is intending to plot this as dB, it comes out as
20log10|H(ejω)| = 10log10((b0+b1+b22)2−ϕ(4b0b2(1−ϕ)+b1(b0+b2)))−10log10((a0+a1+a22)2−ϕ(4a0a2(1−ϕ)+a1(a0+a2)))
so your division turns into subtraction, but you have to be able to compute logarithms to some base or another. numerically, you will have much less trouble with this for low frequencies than doing it the apparent way.