logo
ТеорИнфМетоды / metod_1

5. Алгоритмы нелинейной обработки сигналов

Ранее рассматривались алгоритмы, относящиеся к типу линейных преобразований. Характерная черта этих преобразований состоит в том, что они могут быть описаны в терминах матричной алгебры. При этом, если Y=BNX и BN является невыраженной, т.е. det[BN]0, (замети, что такое требование всегда соблюдается для ортогональной матрицы BN ), то .

Это позволяет однозначно перейти от вектора Y, являющегося результатом преобразования, к вектору X . Поэтому, если результат обработки сигнала не удовлетворяет по тем или иным соображениям пользования, вновь можно получить исходный сигнал X и выбрать другое ядро преобразования BN или заменить алгоритм.

Базовые операции любых линейных преобразований требуют выполнения операций умножения (деления) и сложения (вычитания) чисел. При выполнении линейных преобразований данные и результаты могут быть как в формате с фиксированной точкой, так и в формате с плавающей точкой. Однако при использовании формата с фиксированной точкой возникает необходимость увеличения разрядности данных в ходе обработки. Поясним это на примере.

Пусть вычисляется апериодическая свертка с ядром размером М=9 элементов при разрядности исходных данных и коэффициентов ядра, равной 8 бит (причем исходные данные – положительные числа, а коэффициенты ядра знакопеременны):

q{X}=8; (x>=0) q{G}=8 (включая знак)

Вычисление свертки производится по прямому алгоритму:

В этом случая разрядность любого частичного произведения составляет q{MPL}=15, а с учетом вычисления суммы таких произведений разрядность конечного результата равна q{Yn}=15+4=19=20 бит.

Еще сложнее обстоит дело с увеличением разрядности при использовании формата с фиксированной точкой при выполнении быстрых ортогональных преобразований Фурье и Хартли. Это связано с необходимостью последовательного выполнения операции умножения формируемого результата на различные поворачивающие множители. Поэтому при большой длине вектора разрядность результата становится недопустимо большой. Усечение же его может внести недопустимо большие погрешности или потерять значимость части спектральных коэффициентов при большем динамическом диапазоне сигнала.

Поэтому формат чисел с фиксированной точкой целесообразно использовать для вычисления свертки с малым ядром или для ортогональных преобразований Уолша-Адамара. Для циклической свертки при большом N и для реализации алгоритмов БПФ и БПХ целесообразно использование формата чисел с плавающей точкой. Однако такой формат существенно усложняет выполнение арифметических операций.

Помимо линейных преобразований для обработки сигналов в настоящее время используются так называемые нелинейные преобразования. К числу нелинейных преобразований в частности, относится [5,16]:

Указанные преобразования не могут быть описаны в терминах операций матричной алгебры, хотя, как и операции алгебраической свертки, рекурсивной и не рекурсивной фильтрации, они относятся к группе локальных преобразований и выполняются в “скользящем” режиме при последовательном перемещении окна сканирования размером М элементов вдоль вектора из N элементов (M<<N, M - нечетное).

Вторая характерная особенность указанных нелинейных алгоритмов состоит в том, что они могут быть применены к исходным данным только формата с фиксированной точкой при ограниченной разрядности операндов. Увеличения разрядности результатов при выполнении подобных преобразований не происходит, что существенно упрощает вычисления.

Кроме указанных особенностей, нелинейные преобразования обладают, к сожалению, негативным свойством – они необратимы, т.е. от результата обработки невозможно вернуться к исходным данным. Поэтому при выполнении нелинейной обработки приходится сохранять исходный сигнал во избежание риска его потери до получения удовлетворяющих пользователя результатов.