Исходные данные: MSL := 40 PRW := 3 дБ дБ Найдем коэффициенты по таблице для эллиптического фильтра 2 порядка PRW, MSL в справочнике: K := 1 A := 50.616359 fc := 45 Гц B := 0.640274 C := 0.714975 ωc := fc 2 π = 282.743 s( ω) := iω ω := 0 .. 10000 Запишем передаточную функцию фильтра-прототипа: K C A H( ω) := 2 s( ω) + A ωc 2 2 s( ω) + B ωc s( ω) + C ωc 2 1 H( ω) 0.5 0 0 50 100 150 ω 2π АЧХ фильтра-прототипа 200 50 0 arg( H( ω) ) 180 π - 50 - 100 - 150 - 200 0 50 100 ω 2π ФЧХ фильтра-прототипа fd := 450 T := 1 fd Применим z-преобразование: 150 200 Найденные коэффициенты передаточной функции: b 0 := K C 4 + A ωc T 2 2 a0 := A 4 + 2 T B ωc + C ωc T = 17.147 2 2 = 257.478 b 1 := K C 2A ωc T - 8 = 22.854 a1 := A 2C ωc T - 8 = -376.357 b 2 := K C A ωc T + 4 = 17.147 a2 := A C ωc T - 2 T B ωc + 4 = 176.027 2 2 2 2 2 2 2 2 Запишем передаточную функцию цифрового фильтра: b 0 + b 1 z K( z) := a0 + a1 z -1 -1 + b 2 z + a2 z -2 -2 1 i ω T) K( e H( ω) 0.5 0 0 50 100 ω 150 200 ω , 2π 2π АЧХ фильтра-прототипа и цифрового фильтра Y( z) := b 0 + b 1 z X( z) := a0 + a1 z m := 0 .. 1000 ( x := sin ωc T m m m := 2 .. 1000 y := 0 m -1 + b2 z + a2 z -2 -2 ) y := 0 0 y := -1 1 1 a0 ( ) b 0 x + b 1 x + b2 x - a1 y - a2 y m m- 1 m- 2 m- 1 m- 2 Разностное уравнение 1 xm 0 ym -1 0 20 40 60 80 m Δt := 2 Разрешение по времени Δφ := 2 π fc Δt = 565.487 Зададим график по точкам, чтобы сравнить. Выведем все графики на одной координатной плоскости: i := 0 .. 200 f := A := i i 5 25 35 50 75 100 125 150 175 200 1.013 1.326 1.391 0.781 0.288 0.143 0.084 0.053 0.034 0.02 1.5 A 1 ( iωT) K e H( ω) 0.5 0 0 50 100 f, ω , 150 ω 2π 2π Графики совпадают c - максимальный из модулей коэффициентов: c := a1 = 376.357 200 АЦП 12-разрядный N := 16 2 m16 := N- 1 5 c 2 -3 12 = 4.251 10 m16 := 4 m16 N := 24 2 m24 := N- 1 5 c 2 12 = 1.088 m24 := 4 m24 N := 32 m32 := 2 N- 1 5 c 2 12 = 278.612 m32 := m32 4 ( ) a0_24 := floor a 0 m24 = 1.12 a0_32 10 := floor a 0 m32 = 2.869 10 a1_16 := floor a 1 m16 = -7 ( ) a1_24 := floor a 1 m24 = -1.639 a1_32 10:= floor a 1 m32 = -4.194 10 ( ) a2_24 := floor a 2 m24 = 766 a2_32 := floor a 2 m32 = 1.962 10 ( ) b 0_24 := floor b 0 m24 = 74 b 0_32 := floor b 0 m32 = 1.911 10 ( ) b 1_24 := floor b 1 m24 = 99 b 1_32 := floor b 1 m32 = 2.547 10 ( ) b 2_24 := floor b 2 m24 = 74 b 2_32 := floor b 2 m32 = 1.911 10 a0_16 := floor a 0 m16 = 4 a2_16 := floor a 2 m16 = 2 b 0_16 := floor b 0 m16 = 0 b 1_16 := floor b 1 m16 = 0 b 2_16 := floor b 2 m16 = 0 ( ) ( ) ( ) ( ) ( ) ( ) 5 ( ) ( ) 4 ( ) ( ) 4 ( ) ( ) 4 3 3 Исследуем на частоте из полосы пропускания и заграждения: r := 1000 i := 0 .. r - 1 f := 40 σ := 0.1 M := 2 fd := 1000 x := i M 2 sin 2π f 1 fd i + M 2 12 Для АЦП 5 5 3 5 10 3 4 10 xi 2π f 1 12 fd = 3.016 3 3 10 π 512 1023 4 3 2 10 = 0.785 j := 0 .. 4 f1 := j 10 15 20 25 30 3 1 10 0 0 200 400 600 800 3 1 10 i y := 0 i := 2 .. r - 1 y := m 1 a0 0 y := 0 1 ( ) b 0 x + b 1 x + b2 x - a1 y - a2 y m m- 1 m- 2 m- 1 m- 2 3 6 10 3 4 10 yi 0 3 2 10 0 3 - 2 10 0 0.2 0.4 0.6 i fd GMAX := 2 15 0.8 1 F( x1 , x2 , x3 , b2 , b1 , b0 , y1 , y2 , a1 , a2) := res 0 R1 x1 b2 return -GMAX if R1 GMAX R2 x2 b1 return -GMAX if R2 GMAX R3 x3 b0 return -GMAX if R3 GMAX R4 -y2 a1 return -GMAX if R4 GMAX R5 -y1 a2 return -GMAX if R5 GMAX res res + R1 return -GMAX if res GMAX res res + R2 return -GMAX if res GMAX res res + R3 return -GMAX if res GMAX res res + R4 return -GMAX if res GMAX res res + R5 return -GMAX if res GMAX res ( i-2 , xi-1 , xi, b2_16 , b1_16 , b0_16, yi-2 , yi-1 , a1_16 , a2_16) G := F x i 4 4 10 4 2 10 Gi 0 yi 4 - 2 10 4 - 4 10 0 100 200 i 1. На частоте среза f = 40 Гц m16 График дает искажения между m = 4*m16 и m = 5*m16. m = 4*m16 уменьшаем в два раза. m = 2*m16 m24 График дает искажения между m = 4*m24 и m = 5*m24. m = 4*m24 уменьшаем в два раза. m = 2*m24 m32 График дает искажения между m = 4*m32 и m = 5*m32. m = 4*m32 уменьшаем в два раза. m = 2*m32 2. На частоте среза f = 60 Гц m16 График дает искажения между m = 4*m16 и m = 5*m16. m = 4*m16 уменьшаем в два раза. m = 2*m16 m24 График дает искажения между m = 4*m24 и m = 5*m24. m = 4*m24 уменьшаем в два раза. m = 2*m24 m32 График дает искажения между m = 4*m32 и m = 5*m32. m = 4*m32 уменьшаем в два раза. m = 2*m32 m16 := 0.043 m24 := 8.707 Построим зависимость СКО от разрядности m32 := 2.229 10 3 m16 := 0.043 Запишем новые значения коэффициентов с посчитанным m ( ) ( ) ( ) ( ) ( ) ( ) a0_16 := floor a 0 m16 = 11 a1_16 := floor a 1 m16 = -17 a2_16 := floor a 2 m16 = 7 b 0_16 := floor b 0 m16 = 0 b 1_16 := floor b 1 m16 = 0 b 2_16 := floor b 2 m16 = 0 K16 ( z) := b 0_16 + b 1_16 z a0_16 + a1_16 z -1 -1 + b 2_16 z + a2_16 z -2 -2 1.5 ( ) 1 i ω T K e ( iωT) K16 e 0.5 0 0 50 100 ω , 150 ω 2 π 2π Запишем новые значения коэффициентов с посчитанным m m24 := 8.707 200 ( ) ( ) ( ) ( ) ( ) ( ) 3 a0_24 := floor a 0 m24 = 2.241 10 3 a1_24 := floor a 1 m24 = -3.277 10 3 a2_24 := floor a 2 m24 = 1.532 10 b 0_24 := floor b 0 m24 = 149 b 1_24 := floor b 1 m24 = 198 b 2_24 := floor b 2 m24 = 149 K24 ( z) := b 0_24 + b 1_24 z a0_24 + a1_24 z -1 -1 + b 2_24 z + a2_24 z -2 -2 1.5 ( iωT) i ω T ) K24( e 1 K e 0.5 0 0 50 100 ω , 150 200 ω 2 π 2π Запишем новые значения коэффициентов с посчитанным m ( ) 5 a0_32 := floor a 0 m32 = 5.739 10 m32 := 2.229 10 3 ( ) ( ) 5 ( ) 4 ( ) 4 ( ) 4 5 a1_32 := floor a 1 m32 = -8.389 10 a2_32 := floor a 2 m32 = 3.924 10 b 0_32 := floor b 0 m32 = 3.822 10 b 1_32 := floor b 1 m32 = 5.094 10 b 2_32 := floor b 2 m32 = 3.822 10 K32 ( z) := b 0_32 + b 1_32 z a0_32 + a1_32 z -1 -1 + b 2_32 z + a2_32 z -2 -2 1.5 ( 1 ) i ω T K e ( iωT) K32 e 0.5 0 0 50 100 150 ω ω , 2 π 2π N i ω T ( K(e ) SKO16 := ( i ω T) ) ω=1 i ω T ( K(e ) ( i ω T) ) 2 - K24 e ω=1 -5 = 1.005 10 N N i ω T ( K(e ) SKO32 := = 1.004 N N SKO24 := 2 - K16 e ( i ω T) ) 2 - K32 e ω=1 -8 N = 4.227 10 200 s := 1 .. 3 SKO := R := 1.004 16 24 32 s s -5 1.005 10 -8 4.227 10 1 SKO 0.5 0 0 10 20 30 40 R Зависимость СКО от разрядности системы