Сергиенко А.Б. Цифровая обработка сигналов (2002) (1095939), страница 38
Текст из файла (страница 38)
Если первый элемент вектора а не равен 1, значения векторов Ь и а нормируются — делятся на а(1). Между функциями тт11ег и сопч есть два основных различия. Во-первых, функция сопч требует задания импульсной характеристики фильтра в виде вектора, поэтому данная импульсная характеристика должна иметь конечную длину. Фактически это означает, что с помощью функции сопч можно реализовать только нерекурсивный фильтр. Функция й11ег позволяет задавать как нерекурсивные, так и рекурсивные фильтры, реализуя в том числе и бесконечные импульсные характеристики. Во-вторых, функция 011ег возвращает результат, длина которого равна длине входного сигнала: это, как мы увидим чуть ниже, позволяет организовать блочную обработку сигнала.
Повторим пример, рассмотренный выше при описании функции сапч, на сей раз реализовав расчеты с помощью функции й11ег. Поскольку мы используем непосредственно импульсную характеристику фильтра, она должна быть передана функции в качестве вектора Ь коэффициентов нерекурсивной части фильтра. Вектор а рекурсивной части фильтра в этом случае представляет собой скаляр, равный единице: » у = 11)Пег(П.
1, к) У = 1 5 11 Как видите, результат фильтрации совпадает с полученными в предыдущем разделе значениями. Однако теперь вектор г не содержит затухающего «хвоста». Дело в том, что функция сопч предполагала завершенность входного сигнала, а функция т111ег позволяет при необходимости продолжить его обработку, подавая на вход фильтра новые отсчеты (см.
далее раздел «Доступ к внутреннему состоянию фильтра»). 214 Глава 4. Дискретные системы Чтобы получить результат, полностью совпадающий с тем, что дает функция сопк, можно дополнить вектор х соответствующим количеством нулей: » у = 11)Сег(Ь, 1, (х 0 0 О]) у = 1 5 П 17 18 8 Входной сигнал х может быть матрицей. При этом ее столбцы фильтруются независимо. Доступ к внутреннему состоянию фильтра Функция Г111ег позволяет задавать и считывать внутреннее состояние дискретного фильтра.
Для этого используются дополнительные входной и выходной параметры: (у, г23 = Г1)гег(Ь, а, х, г1); Здесь х1 — начальное внутреннее состояние фильтра (входиой параметр), и†конечное внутреннее состояние фильтра (выходиой параметр). По умолчанию предполагается нулевое внутреннее состояние фильтра. Чтобы понимать, что именно представляет собой вектор внутреннего состояния фильтра, нужно знать, как организованы вычисления в функции Гт'1Ьег. Данная функция реализует рекурсивный дискретный фильтр в траиспонироваииой форме (йгесг ггапзрозе(( Еопп П, см.
рис. 4.8). Возможность доступа к внутреннему состоянию фильтра позволяет при необходимости реализовать обработку сигнала по частям: Ж 1-й блок данных (у(1:И). х) = Г111ег(Ь, а, х(1:И)); Ж 2-й блон данных (у(И+1:2*И). г) = Й )1ег(Ь. а, х(И+1:2*И), г); Если текущее виутреииее состояние фильтра ие известно, ио известны предыдущие отсчеты входного и выходного сигналов, состояние фильтра можно получить с помощью функции Г1)С1с («(с» обозначает начальное состояние — ш(йа) сопйоопз): г Г1111с(Ь, д.
у. х); Здесь Ь и а — параметры фильтра, у — предыдущие значения выходного сигнала, х — предыдущие значения входного сигнала. Предыдущие значения сигналов задаются в обратном порядке: первые элементы векторов х и у — это последние значения входного и выходного сигналов, вторые элементы — предпоследние значения и т. д. Число элементов векторов х и у, необходимое для расчетов, иа единицу меньше длин векторов Ь и а соответственно. При недостаточной длине векторов х и/или у оии дополняются нулями, при чрезмерной длине лишние элементы игнорируются.
Вектор х может ие задаваться, тогда ои считается заполненным нулями. Возвращаемый функцией результат — вектор-столбец внутреннего состояния фильтра. г15 дискретная фильтрация в МАТ(АВ Компенсация фазового сдвига При фильтрации сигналов в ряде случаев возникает требование сохранения фазовых соотношений в исходом сигнале. Для этого требуется фильтр с линейной ФЧХ или, что то же самое, с постоянной (не зависящей от частоты) фазовой задержкой. Как говорилось в разделе «Симметричные фильтры», для получения линейной ФЧХ фильтр должен иметь симметричную импульсную характеристику.
Поэтому линейную ФЧХ несложно реализовать в нерекурсивном фильтре — для этого нужна только симметрия набора коэффициентов фильтра: Ь; " Ь, или Ь; - -Ь Из симметрии импульсной характеристики фильтра и соображений его физической реализуемости следует конечность импульсной характеристики. Поэтому рекурсивные фильтры, обладающие бесконечной импульсной характеристикой, принципиально не могут иметь линейную ФЧХ. l Однако при обработке сигнала не в реальном масштабе времени можно обойти ограничение физической реализуемости и использовать фильтр, для которого не вглполняется условие причинности. ЗАМЕЧАНИЕ Еще один, менее шокирующий подход к данной ситуации можно сформулировать так. Нам известен весь входной сигнал, и мы знаем, что оц уже закончился, то есть на вход фильтра в дальнейшем будут поступать только нулевые значения.
Поэтому можно считать, что условие причинности по-прежнему соблюдается, по фильтр вносит очень большую задержку, превышающую длительность всего входного сигнала. Для реализации фильтрации с нулевым фазовым сдвигом в МАТ[.АВ предназначена функция г)1тт)11. Ее название символизирует смысл выполняемых ею действии: сначала входной сигнал фильтруется как обычно, а затем производится второй проход фильтрации, при котором сигнал обрабатывается от конца к началу. Если заданный в качестве параметров функции фильтр имеет функцию передачи Н(-), импульсную характеристику Ь(Ь) и АЧХ К(ю), то фильтр, эквивалентный двум проходам обработки сигнала, будет иметь функцию передачи Н(-)Н(- '), АЧХ )К(со)~' и нулевую ФЧХ.
Импульсная характеристика представляет собой корреляционную функцию исходной импульсной характеристики: Ь'(Й) = ~ Ь(т)Ь(т — Ь), -сс < Ь < со. и=— Синтаксис вызова функции г))тй11 такой же, как для функции г)11ег: у = [11(т)11(о. а. х) Приведем пример, демонстрирующий компенсацию фазового сдвига с помощью функции с11сс111. Создадим сигнал в виле прямоугольного импульса, дополненного с обеих сторон пулями: » з = [пегое(50. 1); опезП00, 1); гэгов(50. 1)); В качестве фильтра используем ФНЧ Чебышева первого рода с достаточно сильными пульсациями АЧХ в полосе пропускания (3 дБ) и низкой часто- г1В Глава 4. Дискретные системы той среза (0,05 частоты Найквиста), чтобы выходной импульс был заметно искажен: » [Ь, а) = сйеЬу)(5.
3. 0.05); Обрабатываем сигнал с помощью функций Г(1тег и 111ст(11 и строим графики входного и выходных сигналов (рис. 4.12): » 51 = 111тег(Ь. а, 5): 52 = Гт111115(Ь, а. 5); » р105(5) » Ьо)0 оп » р10С(51, .- ) » р10С(52, '-.') » Ьо10 011 1,2 0.8 0.6 0.4 0.2 0 бо 100 160 200 Рис. 4.12. Входной сигнал (сплошная линия), результат обычной фильтрации (пунктирная линия) и фильтрации с компенсацией фазового сдвига (штрихпунктирнаялиния) На рисунке хорошо видно, что при фильтрации обычным ФНЧ сигнал приобретает существенную задержку по времени.
После повторной фильтрации в обратном направлении эта задержка компенсируется. Форма сигнала при втором проходе фильтрации также несколько изменяется, поскольку суммарное действие двух ФНЧ зквивалентно двукратному увеличению порядка фильтра. Расчет импульсной характеристики Чтобы получить импульсную характеристику, необходимо подать на вход фильтра единичный отсчет, дополненный некоторым количеством нулей: 111тег(Ь, а. П тего5Н, й))) Для удобства такой расчет реализован в функции терт, которая к тому же обладает рядом дополнительных возможностей. 217 Дискретная фильтрация е МАТ(АВ В простейшем виде синтаксис вызова функции 1врх следующий: Ь - !врг(Ь. а): Входные параметры Ь и а — коэффициенты полиномов числителя и знаменателя функции передачи соответственно.
Возвращаемое значение Ь вЂ” вектор отсчетов импульсной характеристики. Число рассчитываемых отсчетов выбирается автоматически и зависит от поведения импульсной характеристики. Более подробную информацию об этом можно найти в документации пакета 5!дна! Ргосезз(ия. Чтобы явно задать число рассчитываемых отсчетов импульсной характеристики, следует использовать третий входной параметр и; Ь = 1нра(Ь. а. и): Теперь обратимся к выходным параметрам функции. В приведенных выше вариантах использовался один выходной параметр — вектор отсчетов импульсной характеристики.
Если выходные параметры отсутствуют, функция !вра строит график импульсной характеристики с использованием графической функции задев. Построим график импульсной характеристики фильтра Баттерворта 5-го порядка с частотой среза, равной 0,1 частоты дискретизации (рис. 4.13): » (Ь, а3 = Ьиттег(5, 0.2); » !602(Ь, д) 0.25 0.2 0.15 0.1 0.05 -0.05 -0.1 0 10 20 30 40 50 Рис.
4.13. График импульсной характеристики, построенный функцией дирк Расчет частотной характеристики Частотная характеристика дискретного фильтра рассчитывается с помощью функции Ггег(2, которая очень похожа на функцию 1геоз, выполняющую аналогичные расчеты для аналоговых цепей. В простейшем виде функция 1ге02 используется следующим образом: 1ге02(Ь, а) 218 Глава 4.