Моделирование систем ЦОС
Моделирование дискретных динамических систем
Математическое описание дискретных систем
Основные определения
Система – это некий объект, который преобразует входной сигнал и порождает выходной сигнал, или отклик системы.
Линейная дискретная стационарная система (ЛДСС) – система, которая обладает свойствами линейности и стационарности. Система называется линейной, если выход системы есть линейная комбинация отсчетов входного и выходного сигналов, в том числе задержанных во времени. Система называется стационарной, если отклик системы не зависит от времени.
Разностное уравнение
Разностное уравнение показывает, как из текущих и задержанных отсчетов входного сигнала, а также задержанных отсчетов выходного сигнала найти текущее значение выходного сигнала:
где – входной сигнал, – выходной сигнал, , – весовые коэффициенты.
Коэффициенты ЛДСС записываются в виде векторов:
Пример разностного уравнения:
Выразим отсюда текущие значения выходного сигнала:
Векторы коэффициентов здесь имеют вид:
Разностное уравнение можно представить схематически:
Здесь символ обозначает задержку сигнала на один отсчет (на один такт), треугольники с числами обозначают умножение отсчетов на соответствующие коэффициенты, знаком в круге обозначен сумматор.
По разностным уравнениям можно составлять схемы ЛДСС и реализовывать их в «железе».
Импульсная характеристика
Импульсная характеристика ЛДСС – это реакция системы на единичный дискретный импульс.
Единичный дискретный импульс – аналог дельта-функции Дирака для дискретных сигналов, у него есть всего один отсчет, равный 1 в момент времени .
Отклик системы y(n) вычисляется с помощью дискретной свертки входного сигнала и импульсной характеристики :
Z-преобразование. Передаточная функция
Z-преобразование ставит в соответствие значениям сигнала во временной области отсчеты в комплексной частотной области:
В Z-области вычисления становятся гораздо проще и эффективнее. Поэтому часто анализ сложных систем осуществляют в Z-области, а затем производят обратное преобразование во временную область.
Z-форма выходного сигнала системы вычисляется как перемножение Z-форм входного сигнала и импульсной характеристики:
Отношение выхода и входа в Z-области называется передаточной функцией системы:
Это дробно-рациональная функция с полиномами в числителе и знаменателе:
Эти полиномы полностью определяются коэффициентами разностного уравнения.
Линейная стационарная система как фильтр
Задача линейных стационарных систем – изменять амплитуду и/или фазу входных сигналов. Этот процесс называется фильтрацией.
Например, одна из типичных задач для линейной стационарной системы – удаление нежелательных высокочастотных составляющих в сигнале и усиление полезной низкочастотной составляющей.
В дальнейшем такие системы мы будем называть фильтрами.
Для описания любого фильтра достаточно знать два вектора его коэффициентов:
Дискретные модели в Engee
Основным блоком при моделировании дискретных систем является блок Запаздывание на шаг. Он находится в библиотеке Базовые -> Дискретные.
Этот блок задерживает сигнал на один шаг дискретизации. Другими словами, на -м временном шаге он выводит предыдущее значение сигнала .
Блок характеризуется двумя параметрами:
- Начальное значение – задает выходное значение блока на первом временном шаге симуляции, поскольку при значение состояния еще не существует.
- Период дискретизации – время, на которое будет задерживаться входной сигнал. По умолчанию задано значение
-1(период дискретизации наследуется из входного сигнала).
С помощью блока Запаздывание на шаг можно моделировать многие системы с дискретными состояниями, например, цифровые фильтры, контроллеры и другие алгоритмы обработки сигналов.
Моделирование дискретной системы с помощью базовых блоков
В этом разделе вы смоделируете дискретную систему, которая описывается следующим разностным уравнением:
Передаточная функция системы, полученная с помощью Z-преобразования, равна:
Эта линейная система представляет собой фильтр нижних частот.
В качестве входного сигнала вы будете использовать синусоиду с линейно меняющейся во времени частотой (она моделируется с помощью блока Chirp).
Для входного сигнала наибольшая задержка равна , а для выходного сигнала она равна . Значит, необходимое число блоков Запаздывание на шаг равно .
✏️Задание 1
Смоделируйте входной сигнал линейной системы и его задержанные копии:
- Создайте новую модель. Добавьте в модель блок Chirp. Он находится в библиотеке Обработка сигналов -> Источники.
- В окне настроек блока задайте значения параметров, как показано на рисунке:
- Добавьте в модель три блока задержки – Запаздывание на шаг. Поверните эти блоки на вправо. Соедините выход блока Chirp со входом первого блока задержки, остальные блоки соедините последовательно друг с другом.
Решение
✏️Задание 2
Теперь исходный сигнал и его задержанные копии нужно умножить на соответствующие коэффициенты:
- Добавьте в модель четыре блока Коэффициент усиления. Этот блок находится в библиотеке Базовые -> Математика. Расположите блоки друг под другом.
- В окнах настройки блоков задайте значения параметра Коэффициент усиления равным
0.16,0.38,0.38и0.16соответственно. - Вход первого блока Коэффициент усиления соедините с выходом блока Chirp, вход второго блока – с выходом первого блока задержки, вход третьего блока – с выходом второго блока задержки, вход четвертого блока – с выходом третьего блока задержки (сделав необходимые ответвления от существующих линий).
Решение
✏️Задание 3
Согласно разностному уравнению, выходной сигнал представляет собой сумму исходного сигнала и его задержанных копий, умноженных на соответствующие коэффициенты. Следовательно, все выходные сигналы блоков Коэффициент усиления нужно сложить.
Завершите построение модели:
- Добавьте в модель блок Сложение. Он находится в библиотеке Базовые -> Математика.
- В окне настроек блока задайте значение параметра Порядок знаков равным
++++. У блока появится 4 входных порта, сигналы с которых будут складываться. - Соедините четыре выходных порта блоков Коэффициент усиления со входными портами блока Сложение.
- Добавьте в модель блок Заглушка и соедините его с выходом блока Сложение.
- Залогируйте выходы блоков Chirp (входной сигнал линейной системы) и Сложение (выходной сигнал линейной системы).
- В окне настроек модели задайте время моделирования равным
8с, а размер шага –1/8000. - Запустите модель. Постройте на одном полотне графики входного и выходного сигналов линейной системы сначала во временной области, а затем в частотной области.
Решение
Модель:
Графики входного и выходного сигналов во временной области:
Спектры входного и выходного сигналов:
Из графиков видно, что амплитуда выходного сигнала уменьшается с увеличением частоты. Значит, система работает как фильтр нижних частот, понижая мощность высокочастотных составляющих сигнала.
✏️Задание 4
С помощью функции freqresp из библиотеки DSP рассчитайте частотную характеристику построенной вами линейной системы и изобразите ее на графике. Для этого запустите следующий скрипт:
Pkg.add("DSP")
using DSP, Plots
H, f = freqresp(PolynomialRatio([0.16, 0.38, 0.38, 0.16], [1]))
plot(f[1:end-1], 20*log10.(abs.(H[1:end-1])))
Решение
Отображение частоты дискретизации блоков
В блоках Запаздывание на шаг, Коэффициент усиления и Сложение частота дискретизации наследуется из входных сигналов этих блоков, т.е. они равны частоте дискретизации блока Chirp.
Частоту дискретизации блоков можно отобразить непосредственно в модели.
✏️Задание 5
Отобразите частоту дискретизации в модели, построенной в предыдущем Задании:
- В окне настроек модели во вкладке Отладка в разделе Отображение информации выберите Частота дискретизации сигналов и Выделение цветом.
- Наведите курсор мыши на символ D1 на линии любого сигнала в модели. Во всплывающем окне отобразится значение частоты дискретизации (
1.2500e-4).
Решение
Обработка многоканальных сигналов
Engee позволяет проводить цифровую обработку многоканальных сигналов. Многоканальный сигнал представляет собой матрицу, столбцы которой являются независимыми сигналами. Это могут быть данные, полученные из различных источников информации, или каналов (например, температура, давление, скорость ветра в разные моменты времени).
В следующем Задании вы одновременно обработаете фильтром нижних частот три независимых сигнала: чирп, синусоиду и речевой сигнал.
✏️Задание 6
Модифицируйте модель, построенную в предыдущем Задании:
-
Удалите линию, соединяющую блок Chirp с остальной моделью.
-
Добавьте в модель блоки Генератор синусоиды (ЦОС), From Multimedia File и Объединение матриц.
-
В окнах настроек блоков задайте значения параметров, как показано на рисунках ниже.
Блок Генератор синусоиды (ЦОС):
Блок Объединение матриц:
Блок From Multimedia File: значение параметра File name (имя файла) задайте равным Signal3.wav.
- Соедините блоки так, как показано на рисунке ниже:
Выходной сигнал блока Объединение матриц соедините со входом линейной системы и залогируйте его.
- Запустите модель. Постройте графики входного многоканального сигнала во временной и в частотной области, а также график выходного сигнала линейной системы в частотной области.
Решение
Модель:
Графики входных сигналов во временной области:
Спектры входных сигналов:
Спектры выходных сигналов: