Моделирование систем ЦОС
Аналого-цифровое преобразование
Модели Engee со смешанными сигналами
Модель со смешанными сигналами (или гибридная модель) – это модель взаимосвязанных подсистем с непрерывным и дискретным временем. Сигналы передаются из подсистемы с непрерывным временем в подсистему с дискретным временем с помощью процесса дискретизации.
Когда модель обрабатывает сигнал с дискретным временем с последующим квантованием, сигнал становится цифровым. Этот процесс называется аналого-цифровым преобразованием. Аналогично, процесс, называемый цифро-аналоговым преобразованием, генерирует аналоговый сигнал из цифрового.
В предыдущих разделах вы моделировали системы с дискретным временем, в которых выходные данные блоков вычислялись в дискретные моменты времени, разделенные периодом дискретизации блока. Для вычисления выходных данных блоков используются только разностные уравнения (линейные комбинации состояний, входов и выходов).
Системы с непрерывным временем имеют непрерывные состояния и, следовательно, описываются дифференциальными уравнениями. Engee решает эти уравнения для расчета состояний и выходных данных модели в любой момент времени.
Аналого-цифровой преобразователь (АЦП)
Аналого-цифровой преобразователь – устройство, преобразующее входной аналоговый сигнал в дискретный цифровой код. АЦП осуществляет операции дискретизации и квантования.
Устройство АЦП:
Устройство выборки и хранения фиксирует и сохраняет значение напряжения на своем входе в моменты замыкания ключа. Моменты замыкания ключа определяются задающим генератором. Его частота определяет частоту дискретизации выходного сигнала. Сигнал на выходе округляется до одного из уровней квантования.
Компаратор – простейший одноразрядный АЦП. На вход он принимает два значения напряжения. Если напряжение на первом входе больше, чем на втором, то он выдает логическую единицу, в противном случае – логический ноль. Если компараторов несколько, то когда входной сигнал превышает определенный уровень, срабатывает соответствующий компаратор. Выходы всех компараторов преобразуются в двоичное представление.
Характеристики АЦП
- Частота дискретизации (например, 128 кГц, 10 МГц, 250 МГц, 1 ГГц);
- Разрядность – число бит (8–32 бит). От количества бит зависит число уровней квантования ();
- Диапазон входного сигнала;
- Отношение сигнал/шум (дБ);
- Передаточная характеристика – зависимость числового эквивалента выходного двоичного кода от величины входного аналогового сигнала;
- Нелинейность АЦП – отличие реальной передаточной характеристики от линейной.
Шум квантования
Источник шума квантования – ограничение разрядности АЦП. Абсолютная величина ошибки округления зависит от разрядности АЦП и диапазона входного сигнала. Для уменьшения шума квантования надо повышать разрядность АЦП.
Джиттер
Джиттер – фазовый шум, вызванный нестабильностью задающего генератора АЦП при дискретизации. Производительность высокоскоростных АЦП часто ограничена именно джиттером.
Модель идеального АЦП
В следующем упражнении вы построите модель идеального АЦП (без учета искажений), имеющего частоту дискретизации 100 МГц. Входной сигнал будет представлять собой сумму двух аналоговых синусоид с частотами 20 МГц и 22 МГц.
✏️Задание 1
Сгенерируйте сигнал в виде суммы двух синусоид:
- Создайте новую модель. Добавьте в модель блок Генератор синусоиды.
- В окне настроек блока задайте значение параметра Амплитуда равным
0.25, а Угловая частота –2*pi*[20 22]*1e6(рад/c). На каждом шаге симуляции блок генерирует вектор из двух значений синусоиды с частотами 20 МГц и 22 МГц. Остальные параметры оставьте заданными по умолчанию. - Добавьте в модель блок Сумма элементов. Он находится в библиотеке Базовые -> Математика. Соедините вход этого блока с выходом блока Генератор синусоиды. Блок складывает элементы вектора, поступающего на его вход, и в результате формирует сумму двух синусоидальных сигналов.
Решение
Блок Analog Filter Design
Теперь нужно ограничить полосу пропускания АЦП частотой 50 МГц с помощью аналогового фильтра нижних частот.
Для реализации фильтра вы воспользуетесь блоком Analog Filter Design (Проектирование и реализация аналоговых фильтров). Этот блок находится в библиотеке Обработка сигналов -> Фильтры -> Расчет фильтров.
Блок Analog Filter Design проектирует и реализует фильтры Баттерворта, Чебышева I рода, Чебышева II рода, Бесселя или эллиптический фильтр для разных типов частотной характеристики:
- фильтры высоких частот,
- фильтры низких частот,
- полосовой фильтр,
- режекторный фильтр.
С помощью параметров Design method и Filter type необходимо задать конструкцию фильтра и тип частотной характеристики. Для каждой комбинации из конструкции фильтра и типа частотной характеристики отображается соответствующая группа параметров. В частности, для фильтра Баттерворта нижних частот необходимо задать два параметра:
- Filter order – порядок фильтра,
- Passband edge frequency, rad/s – частота среза, определяющая полосу пропускания (рад/с).
✏️Задание 2
Добавьте аналоговый фильтр нижних частот:
- Добавьте в модель блок Analog Filter Design. Соедините вход этого блока с выходом блока Сумма элементов.
- В окне настроек блока задайте значение параметра Passband edge frequency, rad/s (частота среза) равным
2*pi*50e6(т.е. 50 МГц). Остальные параметры блока оставьте заданными по умолчанию: Design method (конструкция фильтра) –Butterworth(фильтр Баттерворта), Filter type (тип частотной характеристики) –Lowpass(фильтр нижних частот), Filter order (порядок фильтра) –8. - Добавьте в модель блок Удержание нулевого порядка. Он находится в библиотеке Базовые -> Дискретные. Этот блок сохраняет значение на входе в течение указанного шага расчета. Соедините вход этого блока с выходом блока Analog Filter Design.
- В окне настроек блока задайте значение параметра Период дискретизации равным
1/100e6(величина, обратная к частоте дискретизации АПЦ).
Решение
Блок Квантование сигнала
Блок Квантование сигнала дискретизирует входной сигнал, используя алгоритм квантования. Он находится в библиотеке Базовые -> Нелинейные.
Блок использует метод округления до ближайшего для сопоставления значений сигнала с квантованными значениями на выходе, которые определяются параметром Шаг квантования. Плавный входной сигнал может принять форму ступеньки после квантования.
Следующее уравнение описывает метод округления до ближайшего:
где — квантованный выходной сигнал, — входной сигнал, — шаг квантования.
✏️Задание 3
Добавьте квантователь и завершите построение модели:
- Добавьте в модель блок Квантование сигнала. Соедините вход этого блока с выходом блока Удержание нулевого порядка.
- В окне настроек блока задайте значение параметра Шаг квантования равным
2^-8(т.е. ). - Добавьте в модель блок Заглушка. Соедините его вход с выходом блока Квантование сигнала.
- Залогируйте выходной сигнал модели.
- В окне настроек модели задайте время моделирования равным
10e-05с, а размер шага –1/1e9(т.е. с, что соответствует частоте дискретизации 100 МГц). - В окне настроек модели во вкладке Отладка в разделе Отображение информации выберите Частота дискретизации сигналов и Выделение цветом.
- Запустите модель. Постройте график выходного сигнала в частотной области.
Решение
Модель:
Символом Cont обозначены непрерывные (аналоговые) сигналы, символом D1 – дискретные.
Спектр выходного сигнала:
На спектре выделяются два пика на частотах 20 МГц и 22 МГц.
Модель АЦП с искажениями
Далее вы добавите три искажения в модель идеального АЦП:
- Апертурный джиттер.
- Нелинейность зависимости между входным и выходным сигналом.
- Насыщение выходного сигнала квантователя. Блок Квантование сигнала определяет только размер шага квантования и не ограничивает диапазон сигналов. На практике АЦП достигают насыщения, когда их входные сигналы превышают определенные верхний и нижний пределы.
Добавление апертурного джиттера
Поскольку блок Удержание нулевого порядка всегда производит выборку входных данных в определенный момент, апертурный джиттер моделируется путем сдвига входных данных с помощью блока Переменное временное запаздывание. Этот блок выполняет задержку входного сигнала на варьируемый промежуток времени. Выходные данные на текущем временном шаге равны значению его входных данных на предыдущем временном шаге. Этот шаг представляет собой текущее время симуляции минус время задержки , заданное с помощью входного порта временной задержки.
На входной порт временной задержки подается случайный сигнал, генерируемый блоком Равномерное случайное число. Максимальная частота джиттера ограничивается с помощью аналогового фильтра нижних частот, реализуемого блоком Analog Filter Design.
✏️Задание 4
Добавьте апертурный джиттер:
- Откройте модель
Модель АЦП_ Начало.engee.
-
Добавьте в модель следующие блоки:
- Равномерное случайное число (библиотека Базовые -> Источники),
- Analog Filter Design (библиотека Обработка сигналов -> Фильтры -> Расчет фильтров),
- Переменное временное запаздывание (библиотека Базовые -> Непрерывные).
-
Соедините эти блоки так, как показано на рисунке:
- В окнах настроек блока Равномерное случайное число задайте следующие значения параметров:
Таким образом, диапазон джиттера составляет от до с.
- В окне настроек добавленного вами блока Analog Filter Design задайте следующие значения параметров:
С помощью этого блока частота изменения джиттера ограничивается значением 20 МГц.
Параметры блока Переменное временное запаздывание оставьте заданными по умолчанию.
Решение
Добавление нелинейности
Нелинейность можно моделировать различными способами. Один из способов – использовать функцию tanh (гиперболический тангенс), которая обладает рядом желательных характеристик:
- она проста в реализации,
- проходит через начало координат,
- почти линейна вблизи начала координат.
Эти свойства позволяют управлять степенью нелинейности (с точки зрения максимального отклонения от прямой ).
На рисунке приведен график функции , показывающий малые отклонения от линейности вблизи начала координат.
Сначала входной сигнал нужно ослабить для ограничения диапазона, затем применить к нему функцию гиперболический тангенс и, наконец, усилить для компенсации примененного ранее ослабления.
✏️Задание 5
Добавьте нелинейность:
- Добавьте в модель следующие блоки, находящиеся в библиотеке Базовые -> Математика:
- Коэффициент усиления,
- Тригонометрическая функция,
- еще один блок Коэффициент усиления.
- Соедините эти блоки так, как показано на рисунке:
-
Чтобы уровень сигнала оставался неизменным, коэффициенты усиления двух блоков Коэффициент усиления должны быть обратны друг другу. Поэтому в окне настроек первого блока Коэффициент усиления задайте значение параметра Коэффициент усиления равным
0.2, а для второго блока Коэффициент усиления –1/0.2. -
В окне настроек блока Тригонометрическая функция задайте значение параметра Функция равным
tanh(гиперболический тангенс).
Решение
Насыщение выходного сигнала квантователя
Чтобы смоделировать реальный АЦП, нужно задать насыщение выходного сигнала квантователя. Для этого вам понадобится блок Насыщение, который находится в библиотеке Базовые -> Нелинейные.
Этот блок выдает выходной сигнал, который представляет собой входной сигнал, ограниченный сверху и снизу. Верхний и нижний пределы задаются параметрами Верхняя граница и Нижняя граница. Если значения входного сигнала превышают значение верхнего предела, то выходной сигнал принимает значение верхнего предела. Если значения входного сигнала меньше значения нижнего предела, то выходной сигнал принимает значение нижнего предела.
Чтобы ограничить выходной сигнал диапазоном, равным , нужно добавить блок Насыщение после блока Квантование сигнала.
✏️Задание 6
Добавьте насыщение выходного сигнала квантователя:
- Добавьте в модель блок Насыщение. Подсоедините его к модели между блоками Квантование сигнала и Заглушка.
- В окне настроек блока задайте значение параметра Обнаружение пересечения нуля равным
Включить. Остальные параметры блока оставьте равными по умолчанию: Верхняя граница –0.5, Нижняя граница –-0.5. - Залогируйте выходной сигнал модели.
- Запустите модель. Постройте график выходного сигнала в частотной области.
Решение
Модель:
Спектр выходного сигнала: