Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Эрни Каспер Программирование на языке Ассемблер...doc
Скачиваний:
118
Добавлен:
09.11.2019
Размер:
954.88 Кб
Скачать

Глава 6

6.Программирование фильтрации сигналов

6.1.Особенности цифровой фильтрации сигналов

Фильтрацией сигналов называется такая их обработка, в результате которой полностью или частично устраняется влияние шумов и помех на полезный сигнал. С самого начала напомним читателям о двух сущест­венных отличиях цифровой обработки сигнала от аналоговой. Эти отличия связаны с дискретизацией обрабатываемых сигналов по уровню и во времени.

Вследствие дискретизации сигналов во времени, то есть использова­ния конечного количества выборок сигнала на заданном интервале времени, может возникнуть погрешность, обусловленная переносом высокочастотных составляющих сигнала в область низких частот. Ярким примером этой погрешности является стробоскопический эффект, встре­чающийся в некоторых сценах кинофильмов. Особенно режет глаз такая несообразность, как движение какого-либо экипажа в одну сторону с вращением колес, отвечающим его движению в противоположную сторону. Чтобы при цифровой обработке сигналов не возникали анало­гичные эффекты, ширина спектра частот обрабатываемого сигнала не должна превышать половины частоты дискретизации. Поэтому до преоб­разования входного сигнала в цифровую форму необходимо сначала с помощью аналогового фильтра убрать из сигнала высокочастотные составляющие, не несущие полезной информации.

Преобразование значений аналогового сигнала в цифровые является источником погрешности, зачастую называемой "шумом квантования". Ее влияние особенно существенно при малых амплитудах сигнала. При больших амплитудах эта погрешность может быть оценена на основе следующих допущений относительно ее статистических свойств. Пред­полагается, что погрешность равномерно распределена на интервале, равном шагу квантования сигнала, и выборки погрешности квантования для всех моментов времени независимы. При этом можно считать, что среднее значение шума квантования равно нулю, а среднеквадратичное отклонение примерно в 3,5 раза меньше шага квантования.

В классической теории фильтров спектр сигнала на выходе фильтра получается умножением спектра входного сигнала на частотную ампли­тудно-фазовую характеристику фильтра. Преобразования сигнала из временного представления в частотное и обратно даже после изобретения алгоритма быстрого преобразования Фурье (БПФ) требуют больших ресурсов и доступны только специализированным цифровым процессо­рам сигнала (Digital Signal Processor). Разумеется, в части фильтрации сигналов микроконтроллеры семейства i8051 не могут идти ни в какое сравнение с ними. Но часто возникающие на практике простейшие задачи фильтрации им вполне по силам, если не пользоваться спектральным представлением сигналов. В этом случае вычисление выходного сигнала по значениям входного осуществляется преобразованием, называемым в математике сверткой. Это преобразование известно изучавшим теорети­ческую электротехнику как интеграл Дюамеля.

Для вычисления интеграла необходимо использовать не только те­кущее значение сигнала, но и информацию о предыдущих его значениях. Интегрирование обычно производится по формуле прямоугольников. Для линейной фильтрации удается подобрать коэффициенты таким образом, чтобы это упрощение вычислений не вносило методической погрешно­сти. При программирования фильтров обычно используются рекуррент­ные формулы, позволяющие вычислять выходной сигнал как функцию от текущего входного сигнала и некоторого набора предыдущих входных или выходных сигналов. В общем случае цифровой фильтр должен содержать программно реализованную линию задержки, в которой хра­нится некоторое количество значений сигналов, предшествующих теку­щему значению. В зависимости от требуемых характеристик эти значения могут непосредственно пересчитываться в выходной сигнал и/или влиять на значения, записываемые в линию задержки.

В отличие от рассмотренных ранее вычислений, которые должны выполняться как можно быстрее, вычисления при фильтрации должны выполняться со строго заданным периодом Т, значение которого вкупе с параметрами расчетной формулы влияет на характеристики фильтра. Далее будут приведены примеры программирования линейных фильтров и нелинейного (медианного) фильтра.