Исследование цифровых фильтров

Лабораторная работа №3 по курсу «компьютерное моделирование технических систем автоматического управления»

Цели работы:

Задачи работы:

Объект исследования

Как известно, квантование по времени – это получение выборки значений аналогового сигнала в фиксированные моменты времени с некоторым периодом Т. Например, квантование синусоидального сигнала

x = Asin(ωt+φ)

с периодом T состоит в том, что из него выбираются значения

x[k] = x(kТ)Asin(ωkТ+φ)

при целых значениях k. Дискретная последовательность значений

{x[k]} = {x[0], x[1],…}

представляет собой оцифрованный сигнал.

Информация о значениях сигнала между моментами квантования в дискретной последовательности отсутствует. Однако согласно теореме Котельникова-Шеннона сигнал можно точно восстановить, если частота квантования ωкв по крайней мере в 2 раза превышает максимальную частоту в спектре сигнала:

ωкв ≥ 2ωmax или T = 2π/ωкв ≤ π/ωmax

Объектом исследования в данной работе является цифровой фильтр. Цифровой фильтр – это программа обработки оцифрованного сигнала. Цифровой фильтр реализуется контроллером или процессором управляющего компьютера и из входной последовательности значений – дискретного сигнала {x[k]} строит на выходе новую последовательность – дискретный сигнал {u[k]}:

Рисунок 1. Схематическое изображение фильтра.

Например, линейный фильтр второго порядка вычисляет очередное значение сигнала выхода u[k] по формуле

u[k] = a2·x[k] + a1·x[k–1] + a0·x[k–2] – b1·u[k–1] – b0·u[k–2].

Здесь a2, a1, a0, b1 и b0 – коэффициенты фильтра; x[k] – текущее (только что полученное) значение входного сигнала; x[k–1] и x[k–2] – два предыдущих значения входного сигнала, полученные соответственно в моменты k–1 и k–2; u[k–1] и u[k–2] – два предыдущих значения выходного сигнала.

Уравнение можно использовать, чтобы вычислить реакцию такого фильтра на единичный ступенчатый входной сигнал x[k], который равен 0 при всех k < 0 и равен 1 при всех k3 0:

… = x[–2] = x[–1] = 0

x[0] = x[1] = x[2] = … = 1

Подставляя эти значения в , получаем

u[0] = a2·u[0] = a2

u[1] = a2·x[1] + a1·x[0] – b1·u[0] = a2 + a1 – b1·u[0]

u[2] = a2 + a1 + a0 – b1·u[1] – b0·u[0]

Так последовательно можно найти значения u[k] при всех k.

В общем случае фильтр может быть представлен более сложным разностным уравнением или алгоритмическим блоком (АБ).

У дискретных систем переходный процесс может заканчиваться за конечное число шагов. Фильтры с конечной импульсной характеристикой (КИХ-фильтры) описываются моделью типа «скользящее среднее»:

u[k] = aN x[k] + aN-1x[k -1] +…+ a0 x[k - N].

Фильтры с бесконечной импульсной характеристикой (БИХ-фильтры) описываются так называемой авторегрессионной моделью со скользящим средним:

u[k ] + bN-1u[k -1] +…+ b0 u[k - N] = aN x[k] + aN-1 x[k -1] +…+ a0 x[k - N].

C использованием оператора запаздывания z-1, такого что

z-1u[k] = u[k–1], z-2u[k] = u[k–2], … z-mu[k] = u[k–m],

уравнение можно записать в операторном виде:

u[k]+b1∙z-1u[k]+b0∙z-2u[k] = a2∙x[k]+a1∙z-1x[k]+a0∙z-2x[k]

откуда

Умножая числитель и знаменатель на z2, получим

Функция

называется передаточной функцией цифрового фильтра второго порядка. Для фильтра с конечной импульсной характеристикой (КИХ-фильтра) знаменатель передаточной функции имеет вид zN, т.е. b1 = b2 = … = bN = 0; например, при N = 2

Напомним, что установившееся значение на выходе фильтра при единичном ступенчатом входе можно найти, подставив в передаточную функцию C(z) вместо z единицу:

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

Задание 3.1. Квантование и восстановление сигналов

Содержание задания:

С помощью структурной схемы, составленной по образцу, промоделировать преобразование гармонического сигнала и исследовать влияние периода квантования Т на точность представления непрерывного гармонического сигнала x(t) = Asin(ωt+φ) его импульсным приближением.

Порядок выполнения задания

Для выполнения задания необходимо выполнить следующие шаги.

  1. Сформировать и оформить структурную схему модели по аналогии с рисунком (Рисунок 2). При сборке нужно учесть, что блок «Синусоида» находится на вкладке «Источники», блок «Ключ перекидной» на вкладке «Ключи», блок «Экстраполятор» на вкладке «Дискретные». Полученную схему сохранить в отчет.
  2. Настроить блоки структурной схемы: блок «Синусоида» – с учетом данных из таблицы (Таблица 1), блок с подписью «Фиксатор 0-го порядка» – с учетом соображения, вытекающего из условия, т.е. что частота квантования должна быть по крайней мере вдвое больше частоты задающего гармонического сигнала.

    Рисунок 2. Схема для изучения квантования аналогового сигнала и его восстановления фиксатором нулевого порядка.

  3. Задать параметры расчета, назначая, в частности, конечное время моделирования примерно в 3-4 раза больше периода гармонического сигнала. Провести моделирование трижды, задавая значение периода квантования Т с учетом условия. Полученные графики поместить в отчет и сделать вывод о влиянии периода квантования на точность представления аналогового синусоидального сигнала импульсным.
    Таблица 1. Параметры структурных схем для моделирования.
    Вариант Амплитуда А Угловая частота ω, рад/с Фаза φ, рад a1 a0 b0
    1 3 2.0 0.2 2.0 -3.8 -0.1
    2 7 5.0 0.4 2.2 -3.6 -0.2
    3 5 10.0 0.6 1.2 -1.7 -0.3
    4 9 20.0 0.8 1.3 -1.5 -0.4
    5 15 30.0 1.0 2.8 -3.1 -0.5
    6 3 40.0 1.2 3 -2.8 -0.6
    7 7 50.0 1.4 1.6 -1.3 -0.7
    8 5 60.0 1.6 1.7 -1.2 -0.8
    9 9 1.6 1.8 3.6 -2.2 -0.9
    10 15 1.2 2.0 3.8 -2.1 -0.3

Задание 3.2. Исследование простых цифровых фильтров

Содержание задания:

С помощью структурной схемы, составленной по рисунку (Рисунок 2), исследовать переходные характеристики простых цифровых фильтров первого порядка, заданных разностными уравнениями или передаточными функциями.

Порядок выполнения задания

Для выполнения задания необходимо выполнить следующие шаги.

  1. Построить передаточную функцию для программы обработки данных, которая соответствует разностному уравнению

    u[k] = a1·x[k] + a0·x[k–1] – b0·u[k–1]

    Значения коэффициентов a0, a1 и b0 в таблице (Таблица 1) для вашего варианта.
  2. Добавить в структурную схему блок «Дискретная передаточная функция общего вида» с вкладки «Дискретные» и установить связи (Рисунок 3). Задать для этого блока обработки сигнала подпись «АБ» (Алгоритмический блок). Подключить блок «Ключ перекидной» к выходу блока «Ступенька». Вставить полученную схему в отчет.

    Рисунок 3. Схема модели с алгоритмическим блоком.

  3. Настроить блок с подписью «АБ» в соответствии с передаточной функцией, найденной на шаге 1. Чтобы задать коэффициенты числителя и знаменателя передаточной функции (двойное нажатие левой кнопкой мыши по блоку «АБ»), можно, как и ранее, вписать значения коэффициентов в виде констант в окне «Свойства». Однако, при выполнении данного задания удобнее использовать имена переменных (Рисунок 4), вписав нужные значения переменных в скрипт страницы (Рисунок 6), открывающийся по нажатию кнопки «Скрипт» в меню окна проекта.

    Рисунок 4. Окно «Свойства» блока «Дискретная передаточная функция общего вида».

    Рисунок 5. Окно «Скрипт страницы».

  4. Задать параметры расчета (метод, минимальный и максимальный шаг и конечное время интегрирования) и провести моделирование. Полученный график переходного процесса поместить в отчет.
  5. Используя уравнение с коэффициентами вашего варианта, вычислить значения u[0], u[1], u[2] и u[3] для единичного скачка на входе. По аналогии с уравнением вычислить установившееся значение выходного сигнала . Сравнить значения, найденные теоретически, с результатами моделирования. Сделать выводы и поместить их в отчет.
  6. Задать в скрипте страницы значение переменной «b0» равным «0». Провести моделирование и поместить график в отчет. Написать разностное уравнение, которое в данном случае реализует блок с подписью «АБ» и с его помощью вычислить значения u[0], u[1], u[2] и u[3] для единичного скачка на входе. Вычислить установившееся значение выходного сигнала . Сравнить значения, найденные теоретически, с результатами моделирования. Сделать выводы и поместить их в отчет.
  7. Задать в скрипте страницы значение переменной «b0» равным «1». Провести моделирование и поместить график в отчет. Написать разностное уравнение, которое в данном случае реализует блок с подписью «АБ» и с его помощью необходимо вычислить значения u[0], u[1], u[2] и u[3] для единичного скачка на входе. Вычислить установившееся значение выходного сигнала . Сравнить значения, найденные теоретически, с результатами моделирования. Сделать выводы и поместите их в отчет.
  8. Задать в скрипте страницы значение переменной «b0» равным «1.1». Провести моделирование и поместить график в отчет. Написать разностное уравнение, которое в данном случае реализует блок с подписью «АБ» и с его помощью вычислить значения u[0], u[1], u[2] и u[3] для единичного скачка на входе. Вычислить установившееся значение выходного сигнала . Сравнить значения, найденные теоретически, с результатами моделирования. Сделать выводы и поместить их в отчет.
  9. Восстановить в модели параметры передаточной функции блока обработки данных (Таблица 1).
  10. Добавить в схему блок «Запаздывания на период квантования» с вкладки «Дискретные» и установить связи как на рисунке (Рисунок 6).

    Рисунок 6. Схема модели с блоком «Запаздывания на период квантования».

  11. Установить у блока запаздывания период квантования, равный, меньше и больше периода квантования в блоке с подписью «АБ», и провести моделирование. Поместить графики в отчет. Сделать вывод о влиянии блока запаздывания на характер переходного процесса.

Контрольные вопросы к заданиям 3.1 и 3.2

Содержание задания:

  1. Что такое цифровой фильтр?
  2. Каков характер входного и выходного сигнала цифрового фильтра: дискретный, аналоговый или импульсный?
  3. Что такое КИХ-фильтр? В чем его отличие от БИХ-фильтра?
  4. Что такое фиксатор нулевого порядка? Что такое экстраполятор?
  5. Каков характер входного и выходного сигнала экстраполятора: дискретный, аналоговый или импульсный?
  6. Как выбрать время моделирования при исследовании гармонического сигнала?
  7. Как меняется квантованный и восстановленный сигнал при увеличении периода квантования?
  8. Из каких соображений следует выбирать период квантования гармонического сигнала?
  9. Как построить передаточную функцию, соответствующую разностному уравнению?
  10. Как вычислить значения выхода в разные моменты времени при заданном входном сигнале и известном разностном уравнении обработки?
  11. Как вычислить установившееся значение выхода при заданном входном сигнале и известном разностном уравнении обработки?
  12. Может ли случиться так, что установившегося значения не существует? Если да, в каком случае?
  13. Может ли установившееся значение выхода быть бесконечным? Если да, в каком случае?
  14. Как изменить цвет линии на графике?
  15. Как посмотреть расчетное значение сигнала, отображенного на графике?
  16. Как запустить редактор скриптов?
  17. Как изменять переменные при запуске модели?
  18. Как отобразить два графика в одном окне?
  19. Чем принципиально отличаются реакции на единичный скачок в системе с законом обработки «скользящее среднее» от аналогичной системы с законом «авторегрессия со скользящим средним»?
  20. Как изменится выходной сигнал, если на выходе установить еще один блок запаздывания?