Сергиенко А.Б. Цифровая обработка сигналов (2002) (1095939), страница 73
Текст из файла (страница 73)
ац); Ж ЧХ округленного фильтра » 0101(т/рт. аьв(Ь). 1/рт. аьв(пц). '--') 1,6 1.4 1,2 о.б 0.6 од о.г 0 0.2 0.4 0.6 0.8 Рис. 7.4. АЧХ рекурсивного фильтра до (сплошная линия) и тесле (пунктирная линия) округления коэффициентов В данном случае АЧХ изменилась просто катастрофически: в несколько раз увеличилась амплитуда пульсаций коэффициента передачи в полосе пропускания, скат АЧХ стал заметно более пологим, в полосе задерживания исчезли две точки с нулевым коэффициентом передачи.
Теперь посмотрим, что изменится, если мы представим исходный фильтр подругому — в виде трех последовательно включенных секций второго порядка. В данном случае разница между АЧХ исходного н квантованного фильтра настолько мала, что визуально она не проявляется. Поэтому вместо графиков самих АЧХ построим график их разноппи (рис. 7.5); » воз - 112вов(Ь, а): Ж секции 2-го порЯдка » воз ц = гоцп(((воз*256)/256: Ж округление коэффициентов 386 Глава 7. Эффекты квантования в цифровых системах » [Ь зов О, а зов 03 - зоз21т(зов); » [Ь, т) - Ггесх(Ь. э): Ь воз 0 = Ггесх(Ь воз ((.
а зов 0); » р)01(т(р1. аЬз(Ь)-аЬз(Ь зов 0)) Зх 10 0.8 0 02 ОЛ 06 Рис. 7.6. Разность двух АЧХ, полученных до и после округления коэффициентов рекурсивного фильтра, представленного в виде секций 2-го порядка Рисунок 7.5 показывает, что отклонение АЧХ квантованного фильтра от исходной не превосходит 3.10 '~, то есть весьма невелико. Таким образом, при представлении фильтра в виде последовательно включенных секций второго порядка округление коэффициентов влияет на характеристики фильтра значительно слабее, чем прн прямой форме реализации. Данный пример демонстрирует общую закономерность, впервые установленную Кайзером [81; параметры любого фильтра с резким изменением частотной характеристики в переходной полосе, реализованного в прямой форме, крайне чувствительны к значениям коэффициентов фильтра.
Сушествует два основных подхода к анализу и синтезу фильтров с квантованными коэффициентами. Можно рассматривать погрешности представления коэффициентов как случайные величины и, задав статистическое описание этих погрешностей, оценить среднеквадратическое отклонение частотной характеристики от исходной. Второй подход заключается в использовании прямой оптимизации квантованных коэффициентов с целью достижения минимального (в смысле средпеквадратической ошибки илп максимального модуля .разности) отклонения АЧХ от заданной. Более подробную информацию об этом можно найти в [8]. Масштабирование коэффициентов цифровых фильтров При разработке систем, работающих в реальном масштабе времени, для ускорения вычислений часто используется формат с фиксированной запятой.
В этом ЭфФекты квантования в цифровых фильтрах ЗВТ случае может оказаться, что значения некоторых коэффициентов фильтров выходят за пределы диапазона, представимого в выбранном формате. Для решения данной проблемы прибегают к масштабированию фильтров. Наиболее часто коэффициенты приводят к диапазону (-1, 11. Рассмотрим сущность масштабирования на несложном примере. Рассчитаем эллиптический ФНЧ 4-го порядка с частотой среза, равной 20% от частоты Найк- виста, пульсациями в полосе пропускания 1 дБ и подавлением сигнала в полосе задержнвания 60 дБ; » (Ь.
а) = е111р(4, 1. 60, 0.2) Ь 0.0059 0.0053 0.0096 0.0053 0.0059 а- 1.0000 -3.0477 3.8240 -2.2925 0.5523 Как видите, максимальное (по модулю) значение коэффициентов фильтра составляет 3,824. Запишем для данного фильтра алгоритм фильтрации (см. формулу (4.1) в разделе «Сущность линейной дискретной обработки» главы 4), а затем разделим и умножим правую часть формулы на 4 (в качестве коэффициента масштабирования удобно выбирать степень двойки): у(7т) = 00059хЯ) + 00053х(в -1)» 00096 х(7т -2) + 00053х(7т — 3) + + 00059х(4 — 4) + 30477 у(7т — 1) -38240 у(7т -2) + +22926у(7т — 3) — 05523у(7т — 4) = = 4(0 0015 х(7т) + 00013х(7т — 1) + 0 0024 х(7т -2) + + 00013х(7т — 3)+ 00015 х(7т — 4)+ 07619у(7т — 1)— — 0 9560 у(7т -2) + 0 5731у(7т — 3) -0,138177(7т — 4)).
В полученной формуле алгоритма фильтрации значения коэффициентов по модулю не превышают единицы, а для сохранейня результата неизменным понадобилось умножение выходного сигнала на коэффициент масштабирования. Исходный и масштабированный варианты структурной схемгв показаны на рис. 7.6. Итак, при масштабировании цифрового фильтра все его коэффициенты делятся на одну и ту же константу, и на нее же умвохсаешся рассчитанный выходной сигнал.
В качестве масштабирующего множителя удобно выбирать степень двойки, поскольку умножение на степень двойки в формате с фиксированной запятой сводится к поразрядному сдвигу двоичного представления числа влево. Если фильтр высокого порядка реализуется «целиком» (без разделения его на последовательно включенные секции), диапазон абсолютных значений коэффициентов фильтра может быть весьма широк. При представлении коэффициентов в формате с фиксированной запятой оказывается, что самые маленькие (по модулю) коэффициенты могут из-за округления потерять несколько значащих цифр.
Зто приводит к искажению характеристик фильтра, порой весьма существенному, особенно в рекурсивных фильтрах. Данный эффект мы уже обсуждали в предыдущем разделе. Там же мы видели, что реализация фильтра в виде последовательно включенных секций второго порядка значительно ослабляет эти искажения. Это происходит из-за того, что в каждой отдельно взятой секции второго порядка разброс абсолютных значений коэффициентов оказывается значитель- 388 Глава т. Эффекты квантования в цифровых системах ио меиьшс, чем у фильтра в целом, особенно если при разбиении иа секции группировать ближайшие друг к другу пары нулей и полюсов. 0,0059 0,0015 Рис.
7.0. Фильтр 4-го порядка (сверху) подвергается масштабированию с коэФфициентам 4 (снизу) Переполнение разрядной сетки в процессе вычислений В процессе вычисления выходного сигнала фильтра производится множество операций умножения и сложения. При этом промежуточные результаты вычис- ЭФфекты квантования в цифровых фильтрах ЗВ9 лений могут значительно превосходить окончательное значение н вызвать переполнение разрядной сетки вычислительного устройства.
В качестве примера посмотрим, каких значений достигают промежуточные результаты вычислений при обработке сннусоилального сигнала фильтром нижних частот Баттерворта 4-го порядка, реализованным в прямой форме (см. рнс. 4А в главе 4). Чтобы получить доступ к промежуточным результаталг вычислений, нам прилетел вместо использования функции Ст)сег реализовать фильтр вручную.
Приведенная ниже МАТ[.АВ-програмлга рассчитывает фильтр методом билинейного с-преобразования, а затем пропускает через него синусоидальный сигнал, сохраняя прн этом в массиве вСасе всю исторшо работы единственного сумматора, имеющегося в данной схеме фильтра: Гз " ОеЗ: Ж частота дискретизации С = 0:1/гз:0.01: Ж дискретное вреиЯ РО = 1еЗ: Ж частота сигнала в = зтп(2*рт*ГОлС ), Ж входной сигнал Я=4; Ж порЯдок фильтра [Ь, а) = Ьцссег(Н, ГОг'Ев*2): Ж частота среза равна частоте сигнала Ох = тесов(1, Иь1); Ж линиЯ задержки длЯ входного сигнала Оу = гегоз( 1, Яь1): Ж пиниЯ задержки длЯ выходного сигнала в=1; всате = зегов( 1, 2*Я*)епОСЬ(в)); у - тегов(1.
)епОСЬ(С)); Гог К - 1:)епОСЬ(С) Ж цикл по отсчетаи входного сигнала у(к) = 0; Ж начальное состоЯние суииатора дх - [в(к) Ох(1:Я)3; Ж новое состоЯние пинии задержки Гог и - 1:и'+1 Ж цикл по нерекурсивной ветви у(к) = у('к) + Ь(п) * ох(п); зсасе(щ) = у(С); Ж текущее состоЯние суниатора щ=щ .1; епо тог п = 2:Нч-1 Ж цикл по рекурсивной ветви у(К) = уФ) - а(п) * сну(п); всасе(ж) - у(К); Ж текущее состоЯние суииатора щ = щ+ 1; епо Оу(2:Я+1) = [у(С) ду(2:)()1; Ж новое состоЯние линии задержки епг) р)оС(С, з, С, у. '--') Ж входной и выходной сигналы Стццге р)оС(зСасе) Ж проиежуточные состоЯниЯ суинатора Входной и выходной сигналы фильтра показаны на рис.
7.7 сверху, а промежуточные результаты суммирования — снизу. Из графиков видно, что промежуточные значения достигают ч-1,3 и превосходят амплитуду как входного, так и выходного сигналов, Это может привести к переполнениям в арифметическом устройстве и искажениям в выходном сигнале. При реализации фильтра в канонической форме (см, рис.
4.6 в главе 4) вычисления выполняются сначала в рекурсивной ветви, а затем в нсрекурсивной. ЭОО Глава 7. Эффекты квантования в цифровых системах При этом уровень сигнала, отсчеты которого хранятся в единственной линни задержки фильтра, может значительно превышать амплитуды входного и выходного сигналов. 0.8 0.8 0.2 -0.4 -0.8 -0.8 0 0.002 0.004 0.006 0.008 0.01 0,8 0 100 200 300 400 600 800 700 800 Рис. 7.7, Входной и выходной сигналы ФНЧ Баттерворта (сверху) и промежуточные результаты суммирования (снизу) Продемонстрируем это, рассмотрев тот же фильтр Баттерворта 4-го порядка, который использовался в предыдущем примере. Сигнал, хранящийся в линии задержки при канонической реализации фильтра, получается в результате обработки входного сигнала «чисто рекурсивнымь фильтром, в нерекурсивной ветви которого не используется задержанных отсчетов. Для оценки уровня этого сигнала достаточно рассчитать АЧХ рекурсивной части фильтра (рис.
7.8); » [Ь. а] - Ьиьсег(4. 1!4); Ж расчет фильтра » (Ь. Г) - Ггеоа(1. а. (). 2); Ж ЛЧХ рекурсивной ветви 391 Эффекты квантования в цифровых фильтрах Ж график АЧХ » Р10Г1т, аЬзФ>) ь> 9гтз Оп О.В 0.8 0 0.2 0.4 Рис. 7.8. АЧХ рекурсивной части ФНЧ Баттерворта 4-го порядка В данном случае для возникновения переполнений оказывается еше больше возможностей, чем в предыдушем, — как видно из графика, коэффициент передачи рекурсивной части фильтра может достигать семи.
Это означает, что промежуточные результаты вычислений для канонической формы реализации фильтра могут в семь раз превосходить амплитуду входного сигнала! Приведенные примеры показывают, что переполнения в процессе вычислений могут стать серьезной проблемой при реализации алгоритмов цифровой обработки сигналов. Уменьшить вероятность переполнений можно, используя для хранения чисел формат с плаваюшей запятой, обладающий большим динамическим диапазоном, однако в этом случае возрастает сложность реализации арифметических операций. В любом случае разработанная система обработки сигналов должна тщательно тестироваться для обнаружения потенцнальных проблем, связанных с конечной точностью вычислений, Такое тестирование можно реализовать, например, с помощью средств пакета Иьег Оезтйп, рассматриваемых далее в этой главе.