Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Глава 19 - Рекурсивные фильтры 10
Рекурсивные фильтры
Рекурсивные фильтры являются эффективным способом получения длинного импульсного отклика без выполнения длинной свертки. Они исключительно быстрые, но имеют худшие характеристиками и точности, чем другие цифровые фильтры. Рекурсивные фильтры называются так же фильтрами с бесконечным импульсным откликом (Infinite Impulse Response IIR), так как их импульсные отклики состоят из затухающих экспонент. Это отличает их от цифровых фильтров, выполненных с помощью свертки, которые называются фильтры с конечным импульсным откликом (Finite Impulse Response FIR). Эта глава является введением в работу рекурсивных фильтров и в проектирование простых членов этого семейства. Главы 20, 26 и 33 представляют более изощренные методы проектирования.
Рекурсивный метод
Для начала дискуссии о рекурсивных фильтров представьте, что вам необходимо извлечь информацию из некоторого сигнала x[ ]. Ваша нужда так велика, что вы наняли старого профессора математики для обработки нужных вам данных. Задача профессора отфильтровать x[ ], что бы получить сигнал y[ ], который удачно содержит интересующую вас информацию. Профессор начал свою работу с вычисления каждой точки в y[ ], согласно некоторому алгоритму, который запрятан в его переразвитом мозгу. В процессе решения задачи случилось большое несчастье. Профессор начал лепетать об аналитической сингулярности и дробном преобразовании и других демонах из математического кошмара. Ясно, профессор сошел с ума. Вы с беспокойством наблюдаете, как профессора и ваш алгоритм забирают люди в белых халатах.
Вы неистово просматриваете записки профессора и находите алгоритм, который он использовал. Вы обнаруживаете, что он закончил вычисление точек y[0]…y[27], и начал вычислять y[28]. Как показано на рисунке 19-1, мы возьмем переменную n для представления вычисляемых точек. Это означает, что y[n] есть 28-ой отсчет выходного сигнала, y[n-1] 27, y[n-2] 26 и т.д. Аналогичным образом, x[n] есть 28 отсчет входного сигнала, x[n-1] 27 и т.д. Для понимания используемого алгоритма, спросим сами себя: «Какая информация была доступна профессору для вычисления текущего отсчета y[n]?»
Наиболее очевидный источник информации это входной сигнал, то есть величины: x[n], x[n-1], x[n-2], … Профессор мог перемножить каждую точку входного сигнала на коэффициент и сложить результаты вместе:
y[n] = a0x[n] + a1x[n-1] + a2x[n-2] + a3x[n-3] + …
Вы, наверное, уже догадались, что это ничего больше, чем простая свертка с коэффициентами a0, a1, a2, …, которые формируют ядро свертки. Если это было все, что сделал профессор, то это мало подходит для нашей истории или для этой главы. Однако имелся еще другой источник информации, к которому профессор имел доступ: предыдущие вычисленные величины выходного сигнала: y[n-1], y[n2], y[n-3], … Используя эту добавочную информацию, алгоритм можно представить в виде:
y[n] = a0x[n] + a1x[n-1] + a2x[n-2] + a3x[n-3] + …
+ b1y[n-1] + b2y[n-2] + b3y[n-3] + …
ФОРМУЛА 19-1
Рекурсивная формула. В этой формуле x[ ] входной сигнал, y[ ] выходной сигнал, a и b коэффициенты.
То есть, каждая точка выходного сигнала находится перемножением величин входного сигнала на коэффициент «а», перемножаются ранее вычисленные величины выходного сигнала на коэффициент «b», и складываются результаты. Заметьте. Здесь нет величины b0, так как она соответствует вычисляемому отсчету. Формула 19-1 называется рекурсивной формулой, и фильтр, который использует ее, называется рекурсивным фильтром. Величины «а» и «b», которые определяют фильтр, называются рекурсивными коэффициентами. На практике не используется более дюжины рекурсивных коэффициентов, иначе фильтр становится неустойчивым (выход непрерывно увеличивается или колеблется). Таблица 19-1 показывает пример программы рекурсивного фильтра.
Рекурсивные фильтры полезны, так как они позволяют обойтись без длинной свертки. Например, рассмотрим, что случится, когда дельта функция пройдет через рекурсивный фильтр. Выход в этом случае является импульсным откликом и будет типичными синусоидальными колебаниями экспоненциально затухающими. Поскольку этот импульсный отклик бесконечно длинный, то рекурсивные фильтры часто называются фильтрами с бесконечным импульсным откликом (IIR). В действительности, рекурсивные фильтры свертывают входной сигнал с очень длинным ядром фильтра, хотя используется только несколько коэффициентов.
РИСУНОК 19-1
Запись рекурсивного фильтра. Выходной вычисляемый сигнал y[n] определяется величинами входного сигнала x[n], x[n-1], x[n-2], …, так же как и ранее вычисленными величинами выходного сигнала y[n-1], y[n-2], y[n-3], … Эти рисунки показаны для n = 28.
Соотношение между рекурсивными коэффициентами и откликом фильтра даются математической областью, называемой z-преобразованием, темой главы 33. Например, z-преобразование может быть использовано для таких задач: преобразование между рекурсивными коэффициентами и частотным откликом, создание одного фильтра путем последовательного и параллельного включения каскадов, создание рекурсивных систем, которые похожи на аналоговые фильтры и т.д. К несчастью, z-преобразование очень насыщено математикой и достаточно сложно, чтобы большинство пользователей ЦОС способно было иметь с ним дело. Это область тех, кто специализируется в ЦОС.
Имеется три способа нахождения рекурсивных коэффициентов без знания z-преобразования. Первый, эта глава представляет формулы их нахождения для простых рекурсивных фильтров. Второй, глава 20 дает «рецепт» компьютерной программы для создания более изощренного низкочастотного и высокочастотного фильтра Чебышева. Третий, глава 26 описывает итеративный метод для создания рекурсивных фильтров с произвольным частотным откликом.
100 'РЕКУРСИВНЫЙ ФИЛЬТР
110 '
120 DIM X[499] 'хранение входного сигнала
130 DIM Y[499] 'хранение отфильтрованного выходного сигнала
140 '
150 GOSUB XXXX 'воображаемая п/п для вычисления рекурсивных
160 ' 'коэффициентов: A0, A1, A2, B1, B2
170 '
180 GOSUB XXXX 'воображаемая п/п для загрузки X[ ] с входными данными
190 '
200 FOR I% = 2 TO 499
210 Y[I%] = A0*X[I%] + A1*X[I%-1] + A2*X[I%-2] + B1*Y[I%-1] + B2*Y[I%-2]
220 NEXT I%
230 '
240 END
ТАБЛИЦА 19-1
РИСУНОК 19-2
Однополюсный низкочастотный фильтр. Цифровой рекурсивный фильтр может походить на аналоговый фильтр, состоящий из резисторов и емкостей. Как показано в этом примере, однополюсный низкочастотный рекурсивный фильтр сглаживает входной скачок также, как электронный RC фильтр.
Однополюсные рекурсивные фильтры
Рисунок 19-2 показывает пример, который называется однополюсный низкочастотный фильтр. Этот рекурсивный фильтр использует только два коэффициента а0 = 0,15 и b1 = 0,85. Для этого примера входной сигнал является ступенчатой функцией. Как и следовало ожидать для низкочастотного фильтра, выходной сигнал будет постепенно возрастать до устойчивого уровня. Рисунок показывает также то, что вам известно из электроники. Этот низкочастотный рекурсивный фильтр совершенно аналогичен электронному низкочастотному фильтру, состоящему из резистора и емкости.
Прелесть рекурсивного метода заключается в его способности создавать широкие вариации откликов, изменяя только несколько параметров. Например, рисунок 19-3 показывает фильтр с тремя коэффициентами: а0 = 0,93, а1 = -0,93 и b1 = 0,86. Как показывает ступенчатый отклик, этот цифровой фильтр имитирует электронный высокочастотный RC фильтр.
Этот однополюсный рекурсивный фильтр есть то, что вы хотели бы иметь в своем справочнике. Вы можете использовать его для обработки цифровых сигналов так же, как вы используете RC цепочку для обработки аналоговых электронных сигналов. Он включает все, что вы ожидаете: удаляет постоянный ток, подавляет высокочастотный шум, придает форму сигналу, сглаживает и т.д. Они легко программируются, быстро вычисляются, и дают немного неожиданностей. Коэффициенты находятся из этих простых формул:
а0 = 1-х
b1 = x
а0 = (1-х)/2
a1 = -(1-x)/2
b1 = x
РИСУНОК 19-3
Однополюсный высокочастотный фильтр. Правильный выбор коэффициентов может так же сделать рекурсивный фильтр похожим на электронный высокочастотный RC фильтр. Это однополюсный высокочастотный фильтр вы можете использовать так же, как вы используете аналоговую RC цепочку.
Характеристики этих фильтров контролируются параметром х, величина которого лежит между 0 и 1. Физически, х суммарное затухание между соседними отсчетами. Например, х = 0,86 на рисунке 19-3, это означает, что величина каждого отсчета в выходном сигнале составляет 0,86 предыдущего отсчета. Чем больше величина х, тем медленнее затухание. Заметьте, что фильтр становится нестабильным, если х больше единицы. То есть, любая ненулевая величина на входе приведет к переполнению на выходе.
РИСУНОК 19-4
Пример однополюсного рекурсивного фильтра. В (а) высокочастотный всплеск наложен на медленно меняющийся сигнал. В (b) однополюсные низкочастотный и высокочастотный фильтры используются для разделения сигналов. В низкочастотном фильтре х равен 0,95, в высокочастотном 0,86.
Величина х может быть либо прямо выбрана, либо найдена из требуемой постоянной времени фильтра. Так как RC есть число секунд, за которые сигнал в RC цепи затухает на 36,8%, то d это число отсчетов, за которые сигнал в рекурсивном фильтре затухает на ту же величину.
x = e-1/d
Например, затухание от отсчета к отсчету х = 0,86 соответствует постоянной времени d = 6,63 отсчета (как показано на рисунке 19-3). Имеется также четкое соотношение между х и 3 дБ уровнем частоты отсечки, fC, цифрового фильтра:
x = e-2πfc
Это обеспечивает три способа нахождения коэффициентов «а» и «b», начиная с постоянной времени, частоты отсечки или с прямого выбора х.
Рисунок 19-4 показывает пример использования однополюсных рекурсивных фильтров. В (а) показан исходный сигнал - сглаженная кривая с высокочастотным всплеском синусоидальной формы. Рисунок (b) показывает сигнал после того, как он прошел через низкочастотный и высокочастотный фильтр. Сигнал разделен достаточно хорошо, но не совершенно, также как и при использовании простой RC цепочки.
РИСУНОК 19-5
Однополюсный частотный отклик. Рисунки (а) и (b) показывают частотный отклик высокочастотного и низкочастотного однополюсного рекурсивного фильтра, соответственно. Рисунок (с) показывает частотный отклик последовательно включенных четырех низкочастотных фильтров. Частотный отклик рекурсивного фильтра не всегда тот, который вы хотите, особенно если требуются предельные характеристики. Например, кривая (с) для fC = 0,25 вполне бесполезна. Многие факторы виновны в этом, включая наложение, шум округления и нелинейность фазового отклика.
Рисунок 19-5 показывает частотный отклик различных однополюсных рекурсивных фильтров. Эти кривые получены путем пропускания дельта функции через фильтр для нахождения импульсного отклика, и затем использования БПФ для преобразования импульсного отклика в частотный отклик. В принципе, импульсный отклик бесконечный, но через 15-20 постоянных времени он уменьшается ниже уровня одинарной точности шумов округления. Например, когда постоянная фильтра d = 6,63 отсчета, импульсный отклик может состоять из 128 отсчетов.
Основной вывод из рисунка 19-5 заключается в том, что однополюсные рекурсивные фильтры имеют слабую способность разделения одной полосы частот от другой. Другими словами они хороши во временной области, но плохи в частотной. Частотный отклик может быть немного улучшен последовательным включением нескольких фильтров. Это может быть выполнено двумя способами. Первый, пропустить сигнал через фильтр несколько раз. Второй, использовать zпреобразование для нахождения коэффициентов фильтра эквивалентного комбинации каскадов. Оба способа хорошо работают и широко используются. Рисунок (с) показывает частотный отклик последовательно включенных четырех низкочастотных фильтров. Хотя подавление в полосе блокировки улучшилось, крутизна спада все еще отвратительна. Если вам требуются лучшие характеристики, смотрите фильтр Чебышева в следующей главе.
Четырех каскадный низкочастотный фильтр сравним с фильтрами Блэкмана и Гаусса (родственники скользящего усредняющего из главы 15), но со значительно большей скоростью вычисления. Формула для 4-х каскадного н/ч фильтра:
a0 = (1-x)4
b1 = 4x
b2 = -6x2
b3 = 4x3
b4 = -x4
Узкополосные фильтры
Типичной задачей в электронике и ЦОС является задача изолирования узкой полосы частот из широкополосного сигнала. Например, вы можете захотеть удалить 60 Гц помеху в инструментальной системе, или изолировать сигнальный тон в телефонных цепях. Два типа частотных характеристик возможны: узкополосная пропускающая (band-pass) и режекторная (band-reject) [также называемая вырезающий фильтр notch filter]. Рисунок 19-6 показывает частотный отклик этих фильтров с рекурсивными коэффициентами, определяемыми следующими формулами:
a0 = 1 - K
a1 = 2(K R) cos(2πf)
a2 = R2 K
b1 = 2R cos(2πf)
b2 = -R2
a0 = K
a1 = -2K cos(2πf)
a2 = K
b1 = 2R cos(2πf)
b2 = -R2
R = 1 3BW
РИСУНОК 19-6
Характеристики узкополосных фильтров. Рисунки (а) и (b) показывают частотные характеристики узкополосного и режекторного фильтра. Ступенчатый отклик показан режекторного фильтра показан в (с). режекторный (вырезающий) фильтр используется для удаления 60 Гц и подобных помех из сигнала с кодировкой во временной области.
Два параметра должны быть выбраны перед использованием этих формул: центральная частота f и ширина полосы BW (измеряемая по уровню 0,707 амплитуды). Обе величины выражаются в долях частоты дискретизации, и поэтому должны лежать в пределах от 0 до 0,5. По этим двум величинам вычисляется промежуточные величины R и K, и, затем, рекурсивные коэффициенты.
Как показано в (а), узкополосный фильтр имеет относительно большие хвосты вокруг главного пика. Это можно улучшить последовательным включением каскадов. Поскольку формулы вполне длинные, проще сигнал профильтровать несколько раз, чем искать коэффициенты для одного фильтра.
Рисунок (b) показывает пример режекторного фильтра. Самая узкая полоса, которая может быть получена для одинарной точности, равна 0,0003 частоты дискретизации. При превышении этого предела, подавление вырезаемых частот будет падать. Рисунок показывает ступенчатый отклик режекторного фильтра. Имеются заметные выбросы и звон, но достаточно маленькие. Это позволяет вырезать частоты (подобные 60Гц) с незначительными нарушениями формы сигнала во временной области.
Фазовый отклик
Имеется три типа фазового отклика, которые может иметь фильтр: с нулевой фазой, с линейной фазой и с нелинейной фазой. Пример каждого типа показан на рисунке 19-7. Как показано в (а), фильтр с нулевой фазой характеризуется импульсным откликом симметричным относительно нулевого отсчета. Реальная форма не имеет значения, только отсчеты с отрицательными номерами должны быть зеркальным отражением отсчетов с положительными номерами. Когда берется преобразование Фурье от этой симметричной формы, то получается целиком нулевая фаза, как показано в (b).
Недостаток фильтра с нулевой фазой заключается в необходимости использования отсчетов с отрицательной индексацией, что может быть неудобно при работе. Фильтр с линейной фазой позволяет это обойти. Его импульсный отклик (d) идентичен (а) за исключением сдвига, который позволяет использовать только положительную индексацию отсчетов. Импульсный отклик имеет лево-правую симметрию, но положение симметрии сдвинуто из нуля. Это сдвиг приводит к появлению фазы (е) в виде прямой линии, согласно своему наименованию линейная фаза. Наклон этой прямой линии прямо пропорционален величине сдвига. Поскольку сдвиг импульсного отклика ничего более, как идентичный сдвиг выходного сигнала, фильтр с линейной фазой эквивалентен фильтру с нулевой фазой для большинства целей.
Рисунок (g) показывает импульсный отклик, который не имеет лево-правую симметрию. Соответственно фаза (h) не прямая линия. Другими словами, он имеет нелинейную фазу. Не путайте термины «нелинейная и линейная фаза» с концепцией «линейная система», которая обсуждалась в главе 5. Хотя и там и там используется слово «линейный», они не связаны между собой.
Почему следует заботиться линейная или нелинейная фаза? Рисунки (с), (f) и (i) дают на этот вопрос ответ. Каждый из трех фильтров имеет импульсный отклик. Импульсный отклик это положительный ступенчатый отклик с последующим отрицательным ступенчатым откликом. Импульсный отклик используется потому, что он отображает и подъем, и падение краев сигнала. Здесь важный момент: фильтры с нулевой и линейной фазой имеют левый и правый край, которые выглядят похоже друг на друга, а фильтр с нелинейной фазой имеет левый и правый край, которые выглядят различно. Одним из примеров является отображение сигнала на осциллографе, которое может быть неверно истолковано как характеристика измеряемого сигнала. Другой пример это видео обработка. Вы можете себе представить, что, включив телевизор, вы видите любимого актера, у которого левый глаз отличается от правого?
Легко выполнить FIR (бесконечный импульсный отклик finite impulse response) фильтр, имеющий линейную фазу, так как его импульсный отклик прямо определяется в процессе создания. Все, что требуется, это сделать ядро фильтра с лево-правой симметрией. Совсем другой случай IIR (рекурсивный) фильтр, поскольку его рекурсивные коэффициенты, которые вычисляются, не являются импульсным откликом. Импульсный отклик рекурсивного фильтра не имеет лево-правую симметрию, и поэтому имеет нелинейную фазу.
РИСУНОК 19-7
Нулевая, линейная и нелинейная фаза фильтра. Фильтр с нулевой фазой имеет импульсный отклик с лево-правой симметрией вокруг отсчета с нулевым номером, как показано в (а). Это дает частотный отклик, который имеет фазу, состоящую из одних нулей, как в (b). Импульсный отклик с нулевой фазой желателен, так как его ступенчатый отклик симметричен между верхом и низом, что делает левый и правый край прямоугольного сигнала похожими, как показано в (с). Фильтр с линейной фазой имеет лево-правую симметрию, но не относительно отсчета с нулевым номером, как показано в (d). Это дает линейную фазу, т.е. прямую линию, как показано в (е). Импульсный отклик с линейной фазой показан в (f), он имеет все преимущества импульсного отклика с нулевой фазой. Для сравнения, импульсный отклик фильтра с ненулевой фазой не имеет лево-правую симметрию (g) и его фаза не является прямой линией (h). Самое неприятное то, что края прямоугольного сигнала не те же самые, как показано в (i).
Аналоговая электрическая цепь имеет те же самые проблемы с фазовым откликом. Представьте цепь, состоящую из резисторов и конденсаторов, расположенных на вашем столе. Если вход всегда равен нулю, выход будет также всегда равен нулю. Когда импульс появится на входе, емкость быстро зарядится до некоторой величины и, затем, начнет экспоненциально разряжаться через резистор. Импульсный отклик, т.е. выходной сигнал, есть комбинация этих различных затухающих экспонент. Импульсный отклик не может быть симметричным, так как выходной сигнал был равен нулю до поступления входного импульса, и экспоненциально затухает, никогда не достигая снова нулевой величины. В схемах аналоговых фильтров эта проблема решается фильтром Бесселя, представленного в главе 3. Фильтр Бесселя создан, что бы иметь как можно более линейную фазу, однако, его характеристики много ниже характеристик цифровых фильтров. Способность обеспечивать точно линейную фазу есть явное преимущество цифровых фильтров.
К счастью, имеется простой способ модификации рекурсивного фильтра для получения нулевой фазы. Рисунок 19-8 показывает пример этого. Входной сигнал до фильтрации показан в (а). Рисунок (b) показывает сигнал после его фильтрации однополюсным низкочастотным фильтром. Поскольку это фильтр с нелинейной фазой, то левый и правый край не выглядят похожими; они перевернутая версия друг друга. Как обсуждалось ранее, этот рекурсивный фильтр выполняется, начиная с отчета номер 0 по направлению к отсчету номер 150, вычисляя по пути каждый отсчет.
Теперь предположим, что вместо движения от отсчета 0 к отсчету150, мы начнем с отсчета 150, и будем двигаться к отсчету 0. Другими словами, каждый отсчет в выходном сигнале будет вычисляться из входного и выходного сигналов справа. Это означает, что рекурсивная формула изменится следующим образом:
y[n] = a0x[n] + a1x[n+1] + a2x[n+2] + a3x[n+3] + …
+ b1y[n+1] + b2y[n+2] + b3y[n+3] + …
ФОРМУЛА 19-9
Реверс рекурсивной формулы. Это та же самая формула 19-1, за исключением фильтрации сигнала слева направо, вместо справа налево.
Фигура (с) показывает результат этой реверсивной фильтрации. Это аналогично пропускания аналогового сигнала через электронную RC цепь со временем бегущим назад.
Реверсивная фильтрация не дает выгоды сама по себе; отфильтрованный сигнал еще имеет непохожие левые и правые края. Волшебство происходит, когда прямая и обратная фильтрация комбинируются. Рисунок (d) показывает результат фильтрации сигнала в прямом направлении и, затем, в обратном направлении. Победа! Получился рекурсивный фильтр с нулевой фазой. Действительно, любой рекурсивный фильтр может быть преобразован в фильтр с нулевой фазой с помощью двунаправленной фильтрации. Плата за это улучшение в два раза большее время вычисления и усложнение программы.
РИСУНОК 19-8
Двунаправленная рекурсивная фильтрация. Прямоугольный входной сигнал показан в (а). Рисунок (b) показывает сигнал после фильтрации однополюсным низкочастотным фильтром, при его прохождении слева направо. В (с) сигнал пропущен также, но справа налево. Рисунок (d) показывает сигнал после фильтрации слева направо и, затем, справа налево. Любой рекурсивный фильтр может быть сделан с нулевой фазой, используя эту технику.
Как вы найдете импульсный и частотный отклик всего фильтра? Амплитуда частотного отклика одинакова для каждого направления, а фаза противоположна по знаку. Когда два направления комбинируются, амплитуда возводится в квадрат, а фазы компенсируются до нуля. Во временной области это соответствует свертки исходного импульсного отклика с переброшенной слева направо версией его самого. Например, импульсный отклик однополюсного низкочастотного фильтра есть односторонняя экспонента. Импульсный отклик соответствующего двунаправленного фильтра есть свертка односторонней экспоненты, которая затухает справа, с односторонней экспонентой, которая затухает слева. Пройдя через эту математику, мы получим двустороннюю экспоненту, которая затухает и слева и справа с той же самой постоянной, как и у оригинального фильтра.
Некоторые приложения имеют только часть сигнала в компьютере в конкретный момент времени, как в системах, которые непрерывно чередуют входные и выходные данные. Двунаправленная фильтрация может использоваться в этом случае, комбинируясь с методом обработки сигнала по сегментам, который был описан в предыдущей главе. Когда вы подходите к вопросу о длине импульсного отклика, не говорите «бесконечный». Если вы это сделаете, то вы будете вынуждены добавить к каждому сегменту сигнала бесконечное число нулей. Помните, импульсный отклик может быть урезан, когда он уменьшается до уровня ниже шума округления, т.е. при 15-20 постоянных времени. Каждому сегменту необходимо добавить нули и справа, и слева для его расширения при двунаправленной фильтрации.
Использование целых чисел
Одинарная точность чисел с плавающей запятой идеальна для этих простых рекурсивных фильтров. Использование целых чисел возможно, но более трудно. Имеются две главные проблемы. Первая, шум округления из-за ограниченного числа бит может ухудшить отклик фильтра или даже сделать его нестабильным. Вторая, дробные величины рекурсивных коэффициентов должны управляться целыми числами. Один из способов решения той проблемы заключается в выражении каждого коэффициента в виде дроби. Например, 0,15 становится 19/128. Вместо умножения на 0,15, вы должны умножить на 19 и, затем, разделить на 128. Другой способ заключается в замене умножения справочной таблицей. Например, 12 битовый АЦП дает отсчеты с величиной между 0 и 4095. вместо умножения каждого отсчета на 0,15 вы пропускаете отсчеты через таблицу длиной в 4095 входов. Величина на выходе таблицы равна 0,15 величине на входе таблицы. Этот метод очень быстрый, но он требует очень большой памяти; отдельные таблицы необходимы для каждого коэффициента. Перед вашей попыткой использования одного из этих целочисленных методов, убедитесь, что рекурсивный алгоритм для скользящего усредняющего фильтра вам не подойдет. Он любит целые числа.