Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Меркутов литература / Курушин-Мельников-Моделирование-цифровых-потоков-радиосвязи-PTOLEMY-ADS.pdf
Скачиваний:
263
Добавлен:
07.03.2016
Размер:
14.14 Mб
Скачать

25

Глава 2. Основы работы Ptolemy

Ptolemy является частью пакета ADS. Основное назначение Ptolemy

– моделирование с применением методов цифровой обработки сигналов (Digital System Processing, DSP). Для моделирования реальных процессов и устройств в Ptolemy/ADS предусмотрена возможность смешанного моделирования цифровых и аналоговых компонент (здесь и далее под смешанным моделированием подразумевается не просто совместное решение дифференциальных и разностных уравнений, а использование различных способов представления сигнала и алгоритмическая поддержка этих способов).

В соответствии с принятой терминологией в Ptolemy для различения принципиально отличающихся методов моделирования используется термин «домен», который можно перевести как «область анализа».

Область

Метод

Контроллер

Область применения

анализа (Domain)

моделирования

 

 

Синхронный

Числовые

Data Flow

Синхронизация

поток данных

потоки данных

 

численных расчетов

(Synchronous

(Numeric

 

потока данных

Dataflow , SDF)

dataflow)

 

 

Временной поток

Потоки

Data Flow

Функциональное

данных

данных,

 

моделирование в

(Time

синхронизиро-

 

базовой полосе и RF

Synchronous

ванные по

 

(времязависимые

Dataflow,TSDF)

времени

 

источники данных,

 

(Timed

 

мобильные антенны

 

dataflow)

 

и модели

 

 

 

распространения)

Огибающая

Аналоговый в

Envelope

Моделирование

радиосигнала

частотной и

 

нелинейных схем

(Circuit Envelope)

временной

 

методом огибающей

 

области

 

 

Переходной

Аналоговый во

Transient

Аналоговое

процесс

временной

 

моделирование в

(Transient)

области

 

базовой полосе во

 

 

 

временной области

В программе Ptolemy вся анализируемая система описывается как иерархическое объединение более простых схем. Существенно, что каждая подсхема может моделироваться в своем домене (например, в частотной области или в цифровой области). Подсхема может использовать свой внутренний домен (область моделирования), а не домен схемы верхнего уровня. При смешивании или связи доменов необходимо установить ключ, который должен гарантировать, что дочерняя подсхема удовлетворяет условиям семантики коренного домена.

25

26

Рассмотрим некоторые домены подробнее.

2.1. Синхронный поток данных/ Synchronous Data Flow (SDF)

Понятие синхронного потока данных SDF была впервые предложена Деннисом[3]. При описании потока данных используется свойства направленного графа. Этот способ представления хорошо подходит для моделирования систем, которые содержат синхронные потоки данных со скоростями выборок, которые соотносятся друг с другом как рациональные числа. Особенность этого метода заключается в том, что цифровой расчет выполняется в последовательных выборках, и никак не связан с реальным временем. Поэтому абстракция этого метода состоит еще и в том, что реакция в конце схемы появляется одновременно с сигналом на входе, даже если эта схема имеет многие ступени преобразования.

Метод домена SDF подходит для анализа адаптивных цифровых фильтров (FIR) во временной и частотной областях. Он естественным образом подходит для приложений с мультиплексными скоростями, и его большая библиотека компонентов включает полифазные FIR фильтры.

В ADS имеется несколько примеров в которых применяется семантика

SDF (например, пример DSP/dsp_demos_prj, рис. 2.1).

Рис. 2.1. Просмотр на глазковой диаграмме суммы цифрового потока и Гауссового шума

Генератор потока случайных чисел «Random bitstream» и преобразователь «Lookup Table Matrix» формируют исходный цифровой поток, состоящий из символов {–1,1}. Спектр сигнала, содержащего скачки, медленно затухает с ростом частоты — пропорционально 1/ω. Чтобы рассчитать спектр более точно, необходимо обеспечить гладкость сигнала (то есть непрерывность сигнала и, возможно, некоторого количества его производных), а это, в свою очередь, означает гладкость модулирующей функции. Следовательно, вместо скачкообразного изменения параметров модуляции необходимо выполнить интерполяцию между передаваемыми символами.

26

27

Согласно теореме Котельникова, мы можем соединить отсчеты, следующие с символьной скоростью Fd, плавной функцией, занимающей полосу частот от нуля до Fd/2. Однако медленное затухание функций sin(x)/x, составляющих базис Котельникова, делает неудобной интерполяцию на их основе. Наибольшее распространение при интерполяции отсчетов для цифровой модуляции получил вариант фильтра с приподнятым косинусом (square root raised-cosine filter). Идеальная импульсная характеристика фильтра h(n) с косинусоидальным сглаживанием АЧХ представляется в виде [8]:

 

 

 

 

 

n

 

 

 

 

 

n

 

 

sin

π

 

 

 

 

cos απ

 

 

 

 

 

 

 

 

 

 

 

h(n)=

 

 

 

T

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

π n

 

 

 

 

 

 

 

 

n

 

,

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

2α

 

 

 

 

 

 

 

 

 

T

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

T

 

(2.1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где

T – длительность между отсчетами, n – номер численной выборки,

α - коэффициент амплитудной коррекции.

После прохождения через сглаживающий фильтр (рис. 2.1) сигнал складывается с шумовой составляющей, и результат визуализируется с помощью глазковой диаграммы.

Глазковая диаграмма (рис.2.2, 2.3) позволяет контролировать «качество» модулированного сигнала. Принцип построения этой диаграммы прост, и заключается в циклической перерисовке отрезка сигнала длины L без предварительного стирания предыдущего. Длина L выбирается большей или равной длине информационного символа. По глазковой диаграмме можно определить вертикальное раскрытие глазка и связанное с ним максимальное отклонение значений принятого сигнала в моменты отсчета от идеального сигнала. Горизонтальное раскрытие глазка определяет краевые искажения.

27

28

Рис. 2.2. Глазковая диаграмма для примера на рис.2.1. Уровень шума равен нулю

Рис. 2.3. Глазковая диаграмма для примера на рис. 2.1. Уровень шума равен 0.21

Синхронизированный поток данных (SDF) представляет собой, по сути, алгоритм расчета статического распределения (Statically scheduled) данных (Data-driven). Этот подход был развит в [3,4]. Термин Statically scheduled означает, что запуск компонентов происходит периодически и поcледовательность запусков определяется один раз во время начальной фазы запуска. Термин Data-driven означает, что компонента активируется (возбуждается) только в момент поступления данных на ее входы.

На рис. 2.4 показано окно контроллера потока данных, в котором устанавливается ряд параметров расчета, в закладках Control (управление) и Option (режимы).

Рис. 2.4. Окно параметров контролера расчета потока данных

Закладка Controls включает следующие параметры:

Start - начальное время сбора данных (по умолчанию 0.0).

28

29

Stop – время остановки сбора данных (100.0).

Отметим, что контроллер метода огибающей (ENVELOPE) может управлять моделированием в конкретной подсхеме через его собственное начальное время, время остановки, единицы времени, отменяя Start, Stop, и Time Unit контроллера Data Flow. Значения по умолчанию метода огибающей, однако, должно принимать значения из Data Flow.

Time Unit – единицы времени из раскрывающегося списка: - наносекунды, микросекунды (значение по умолчанию), миллисекунды, или секунды. Этот параметр игнорируется, когда используются числовые сборщики Sink.

Random SEED - целое число, используемое для запуска генератора случайных чисел. Значение по умолчанию 1234567. Чтобы генерировать повторяемую «случайную» последовательность от моделирования к моделированию, используйте любое положительное значение начального числа. Если Вы хотите, чтобы выход был действительно случайным, введите значение начального числа 0.

Установка режимов работы Options

Закладка контроллера DF Options (рис. 2.5) имеет следующие параметры:

Рис. 2.5. Закладка выбора режимов работы контроллера DF

SchedulerType – это тип планировщика расчета из списка. Можно выбрать слеующие планировщики:

Cluster Loop Scheduler (устанавливаемый по умолчанию) — Оптимизированный для разветвленной схемы со многими скоростями передачи данных и с петлями обратной связью.

29

30

Classical Scheduler - классический планировщик — лучший для равномерной скорости передачи данных в структурах с петлями обратной связи.

Assiclic Loop schedule - нециклический планировщик контура

— лучший для многоскоростного случая для схемы без контуров обратной связи.

Разница в выборе планировщика состоит только во времени счета и требуемой ОЗУ (RAM). Лучше использовать планировщик по умолчанию, а потом экспериментировать с другими.

DeadlockManagement позволяет Вам управлять взаимоблокировками (тупиковыми ситуациями) в проектах. Режим Deadlock Management выбирается из следующего списка:

Report Deadlock (значение по умолчанию)

Identify deadlock loops описание петлей блокирования

Resolve deadlock by insetion tokens – разрешение блокировки,

вставляя маркеры.

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

По умолчанию, если сообщается о взаимоблокировках:

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

то это значит, что они существуют.

Третий режим должен разрешить взаимоблокировки автоматически, где моделирующее устройство вставляет маркеры как необходимо.

Моделирование потока данных SDF эквивалентно моделированию расчетного графа (computation graph) [4]. В этой терминологии реакции компоненты называются акторами (actors). Обращение к компоненте называется запуск (firing). Сигналы, действующие вдоль ветви присоединенной к блокам и собранные в пакеты данных, называются tokens (токены, пачки, символы). В цифровой системе, последовательность токенов может представлять собой последовательность выборок голосового сигнала или последовательность видео кадров.

Предполагается, что во время активации (firing) актор производит некоторое количество выходных символов. В синхронизированном потоке

30

31

данных это количество остается постоянными во время работы системы. Очевидно, что эта модель расчета хорошо подходит для синхронного моделирования DSP, но не годится для асинхронных систем. Статическое распределение последовательности активации акторов позволяет достигать высокой достоверности при длительном моделировании. Однако при использовании подобной модели невозможно представить мгновенный поток данных.

Каждый порт каждой компоненты SDF имеет атрибуту, который задает число принятых символов (для входа) или число произведенных символов (для выхода). При соединении выхода и входа, количество генерируемых и принимаемых символов может не совпадать. Поэтому для сохранения баланса данных планировщик должен запускать источник и приемник с различными частотами.

Рис. 2.6. Соединение компонентов SDF, иллюстрирующее принцип составления уравнений баланса планировщиком

Рассмотрим соединение трех компонент, как показано на рис. 2.6. Символы

согласованы с портами, так что NA1 равно числу символов, пришедшим

или произведенным портом A в момент возбуждения компоненты. Для многих компонентов DSP, эти числа просто единицы, показывающие, что только простые состояния принимаются или передаются с этого порта. Но имеется три случая, когда эти числа отличаются от единицы:

Векторные операции могут объединять несколько пришедших или сгенерированных символов. Например, компонента, которая рассчитывает быстрое преобразование Фурье (FFT), производит

2M выборок, где M есть некоторое целое число. Существуют и другие компоненты, требующие векторных операций, выполняемых, например, компонентами FFT_Cx, Average и FIR. Не следует путать векторные и матричные компоненты, где каждый отдельный символ представляет из себя матрицу.

В системе многоскоростного сигнального моделирования, некоторая компонента может использовать M выборок и произвести N, таким образом, обеспечивая преобразование скорости выборок N/M. Например, цифровой фильтр FIR можно считать преобразователем скорости выборок. Другие компоненты, которые выполняют преобразование скоростей выборки, включают

31

32

компоненты UpSample (преобразователь вверх), DownSample (преобразователь вниз) и Chop.

Несколько сигналов можно объединить в один, используя такие компоненты, как коммутатор Commutator или один сигнал может быть разделен на подсигналы на самой низкой скорости (lower sample rate), используя компоненту Distributor (распределитель).

Чтобы обеспечить такие требования, для каждого соединения в графе цепи, планировщик вначале составляет простые уравнения баланса. Для графа на рис. 2.6, балансные уравнения имеют вид:

rA N A1 = rC NC1 rA N A2 = rB NB1 rB NB2 = rC NC 2

Это система из трех уравнений с тремя неизвестными. Эти

неизвестные, rA , rB и rC являются коэффициентами повторения

(repetitions) каждого актора. Выполнение этих трех условий позволяет сохранить баланс в каждой ветви. Первая задача планировщика состоит в том, чтобы найти наименьшие, не равные нулю целые числа, удовлетворяющие этой системе. Существует строгое доказательство того, что решение существует и единственно для любого графа SDF.

Работа планировщика в Ptolemy

SDF - это упрощенное моделирование потока данных, в котором заранее известно, сколько символов принимает и генерирует каждый порт каждой компоненты. Этот подход позволяет моделировать системы, для которых скорости потоков соотносятся как целое число.

Планировщик SDF использует схематическое представление модели для определения порядка активации компонентов. Ptolemy предоставляет пользователю на выбор три различных планировщика:

классический планировщик (Classical Scheduler);

кластерный циклический планировщик (Cluster Loop Scheduler);

циклический планировщик без петель на графе (Acyclic Loop Scheduler);

Различие между ними заключается в большинстве случаев во времени моделирования и требованиях к объему памяти для хранения структур данных планировщика и самой модели.

Классический планировщик заимствован из первой версии UC Berkeley Ptolemy. Основной задачей данного планировщика является минимизация размера требуемой памяти. С этой целью планировщик старается отложить момент активации компоненты на как можно более

32

33

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

Кластерный циклический планировщик создает список активации компонентов. В этом случае можно существенно сократить время моделирования и длину списка вызовов. Достигается это за счет того, что каждая компонента модели появляется в списке лишь один раз, но одна активация может содержать несколько циклов обращения к компоненте. К сожалению, размер требуемой памяти для каждой компоненты возрастает в соответствии с требуемым количеством циклов. Основным способом решения данной проблемы является кластеризация (объединение) схемы и использование циклов только при работе с полученными кластерами. Этот планировщик хорошо подходит для моделирования многоскоростных систем, в том числе устройств доступа в мобильной связи третьего поколения.

Циклический планировщик без петель на графе использует эвристический алгоритм «рекурсивного разбиения на наименьшие отрезки». Этот алгоритм применяется главным образом для многоскоростных моделей без обратной связи и петель в графе.

Итерации в режиме SDF

На каждой SDF итерации каждая компонента возбуждается минимальное количество раз, необходимое для обеспечения баланса уравнений. Предположим, например, что компонента B на рис. 2.6 имеет тип FFT_Cx с параметрами, установленными так, что она будет принимать 128 выборок и производить 128 выборок. Предположим также, что компонента A производит точно одну выборку на каждом выходе, а компонента C принимает одну выборку из каждого входа. В итоге,

NA1 = NA2 = NC1 = NC 2 =1

NB1 = NB 2 =128

Тогда уравнения баланса скоростей приобретают вид:

rA = rC rA =128rB

128rB = rC

Решением этой системы с минимальными целыми числами будет:

rA = rC =128

33

34

rB =1.

Итак, каждая итерация системы включает одну активацию компоненты B (FFT_Cx) и 128 активаций (возбуждений) каждой из компонент A и C.

Несовместимость (Inconsistency)

Уравнения баланса удается решить не всегда. Предположим, что на рис. 2.6 мы имеем:

N A1 = N A2 = NC1 = NC 2 = NB1 =1

NB2 =1 .

В этом случае уравнения баланса имеют только тривиальное решение. Проблема состоит в том, что для такой схемы не существует последовательности активаций, которые могли бы повторяться бесконечно с ограниченной памятью. Если мы последовательно активируем A, B, C, то один символ останется между B и C. Если повторить эту последовательность вызовов, то между B и C останется два символа. Говорят, что такая система несовместна (inconsistent). Планировщик SDF в этом случае выдает ошибку и останавливает процесс моделирования.

Тупики (Deadlocks) и разрешение тупиковых ситуаций

Рис. 2.7. Тупиковая система SDF

Возможна ситуация, когда граф моделируемой системы нельзя адекватно описать конечной повторяющейся последовательностью активаций. Про такую систему говорят, что она имеет тупик (Deadlock). На рис. 2.7 представлен пример такой системы. Список вызовов (активаций) для этой системы имеет вид:

rA =1 rB =1

Эта система совместна, однако активация элемента невозможна до получения символа. Оба элемента (A и B) ожидают символа друг от друга. Для разрешения этой ситуации необходимо лишь поместить начальный

34

35

символ на одной из двух ветвей на этом рисунке. Этот начальный символ можно сгенерировать, поместив в одну из ветвей элемент задержки.

Задержка (Delay) обозначается символом ромбика. Этот элемент имеет один параметр – количество отсчетов, на которое надо задержать сигнал. В режиме SDF задержка, равная 1, эквивалентна одному инициирующему символу в ветви. Для предотвращения тупиков, в петлях обратной связи необходимо поместить элемент задержки. Планировщик SDF будет завершать выполнение с ошибкой при обнаружении петли обратной связи без элемента задержки. Для большинства используемых типов данных значение инициирующего символа равно 0. В соответствии с этим, значением по умолчанию для элемента Delay является 0. Для указания отличного от нуля значения, необходимо использовать символ

InitDelay.

Существует несколько специальных компонентов в Ptolemy для внесения задержки: DelayRF, VcDelayRF, ShiftRegPPSyn, ShiftRegPSSyn, ShiftRegSPSyn и CounterSyn. Для матричных символов используется элемент Delay_M.

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

Вконтроллере Data Flow имеется опция Deadlock Management.

Имеется три режима:

Report deadlock. Ptolemy будет просто сообщать о тупиковой ситуации.

Identify deadlocked loops. При использовании этого алгоритма Ptolemy выделяет цветом каждую петлю, которая дает тупиковую ситуацию.

Resolve deadlock by inserting tokens. Ptolemy будет автоматически вставлять задержки там, где это необходимо. Этот режим надо использовать осторожно, так как в общем случае существует более одного места, куда можно вставить элемент задержки для предотвращения тупиковой ситуации. Для каждого случая результат моделирования будет различным.

2.2. Синхронизированный по времени поток данных

(Timed Synchronous Dataflow, TSDF)

TSDF это расширение потока SDF, рассмотренного в главе 2.1. TSDF вводит тип данных Timed data type. Этот тип данных является производным от комплексного типа и содержит дополнительные компоненты. Каждый пакет TSDF это пять функций:

{i(t),q(t), flavor, Fc,t}

(2.2)

35

36

где i(t) и q(t) - комплексное (квадратурное) представление сигнала.

flavor - способ представления сигнала (комплексная огибающая

(complex envelope) или действительный сигнал в базовой полосе baseband).

Fc - несущая частота в случае complex envelope или частота дискретизации в случае действительного сигнала.

t - время.

ВЧ сигналы, которые обычно представляются в виде комплексной экспоненты, могут быть легко преобразованы к действительному полосовому сигналу:

V (t )= Re{v(t )e j 2πFc t }

(2.3)

В общем случае для перехода от действительного сигнала обратно к комплексной огибающей необходимо воспользоваться преобразованием

Гильберта. По имеющейся функции V (t) находим сопряженную по Гильберту функцию S(t):

S(t)= −

1

V (t)

dτ = G[V (t)]

(2.4)

 

 

 

π −∞τ t

 

Вновь получаем комплексное описание сигнала в виде огибающей:

v(t)=V (t)+ jS(t)

(2.5)

Рассмотрим пример, использующий семантику метода анализа TSDF

(пример DSP/ModemTimed_prj).

36

37

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TimedToFloat

 

 

DownSample

TkPlot

 

 

 

T4

 

 

D4

T5

 

 

 

 

 

Factor=10

Label="Input Bits (Q)"

DF

 

 

 

 

Phase=5

Geometry="600x350+0+0"

DF1

 

 

 

 

 

 

xTitle="n"

DefaultNumericStart=0.0

 

 

 

 

 

 

yTitle="y"

DefaultNumericStop=100.0

 

 

 

 

 

 

xRange="0.0 100.0 "

DefaultTimeStart=0.0 usec

 

 

 

 

 

 

yRange="-1.5 1.5 "

DefaultTimeStop=100.0 usec

 

 

 

 

 

 

Persistence=100

DefaultSeed=1234567

 

 

 

 

 

 

Style=connect

OutVar=""

 

 

 

 

 

 

UpdateSize=10

SchedulerType=Classical

 

 

 

 

 

 

RepeatBorderPoints=YES

DeadlockManager=ReportDeadlock

Data

LPF_RaisedCosineTimed

LPF_RaisedCosineTimed

TimedToFloat

DownSample

Quant

TkPlot

D1

L1

L6

T1

D7

Q4

T7

TStep=0.0001 sec

RIn=50.0 Ohm

 

 

 

 

 

RIn=50.0 Ohm

Factor=10

Thresholds="0.0 "

Label="Output Bits (Q)"

BitTime=0.001 sec

ROut=50.0 Ohm

 

 

 

 

 

ROut=50.0 Ohm

Phase=5

Levels="-1 1"

Geometry="600x350+0+480"

UserPattern=""

RTemp=-274.0

 

 

RTemp=-274.0

 

 

 

xTitle="n"

Type=Prbs

Loss=0.0

 

 

Loss=0.0

 

 

 

yTitle="y"

SequencePattern=8

CornerFreq=500.0 Hz

 

 

CornerFreq=500.0 Hz

 

 

 

xRange="0.0 100.0 "

Repeat=Yes

ExcessBw=0.25

 

 

ExcessBw=0.25

 

 

 

yRange="-1.5 1.5 "

ROut=50.0 Ohm

Type=Model with pulse equalization

 

 

Type=Impulse model

 

 

 

Persistence=100

RTemp=-274.0

SquareRoot=Yes

QAM_Mod

QAM_Demod

SquareRoot=Yes

 

 

 

Style=connect

 

Delay=0.004 sec

Q1

Q2

Delay=0.004 sec

 

 

 

UpdateSize=10

 

WindowType=Rectangular

RIn=50.0 Ohm

RIn=50.0 Ohm

WindowType=Rectangular

 

 

 

RepeatBorderPoints=YES

 

 

ROut=50.0 Ohm

ROut=50.0 Ohm

 

 

 

 

 

 

 

RTemp=-274.0

RTemp=-274.0

 

 

 

 

 

 

 

FCarrier=1000000.0 Hz

RefFreq=1000000.0 Hz

 

 

 

 

 

 

 

Power=0.01 W

Sensitivity=1.0

 

 

 

 

 

 

 

VRef=1.0 V

Phase=0.0

 

 

 

 

 

 

 

Phase=0.0

GainImbalance=0.0

 

 

 

 

 

 

 

GainImbalance=0.0

PhaseImbalance=0.0

 

 

 

 

 

Data

LPF_RaisedCosineTimed

PhaseImbalance=0.0

 

LPF_RaisedCosineTimed

TimedToFloat

DownSample

Quant

TkPlot

D2

L2

 

 

L5

T2

D6

Q3

T8

TStep=0.0001 sec

RIn=50.0 Ohm

 

 

RIn=50.0 Ohm

 

Factor=10

Thresholds="0.0 "

Label="Output Bits (I)"

BitTime=0.001 sec

ROut=50.0 Ohm

 

 

ROut=50.0 Ohm

 

Phase=5

Levels="-1 1"

Geometry="600x350+750+480"

UserPattern=""

RTemp=-274.0

 

 

RTemp=-274.0

 

 

 

xTitle="n"

Type=Prbs

Loss=0.0

 

 

Loss=0.0

 

 

 

yTitle="y"

SequencePattern=8

CornerFreq=500.0 Hz

 

 

CornerFreq=500.0 Hz

 

 

 

xRange="0.0 100.0 "

Repeat=Yes

ExcessBw=0.25

 

 

ExcessBw=0.25

 

 

 

yRange="-1.5 1.5 "

ROut=50.0 Ohm

Type=Model with pulse equalization

 

 

Type=Impulse model

 

 

 

Persistence=100

RTemp=-274.0

SquareRoot=Yes

 

 

SquareRoot=Yes

 

 

 

Style=connect

 

Delay=0.004 sec

 

 

Delay=0.004 sec

 

 

 

UpdateSize=10

 

WindowType=Rectangular

 

 

WindowType=Rectangular

 

 

 

RepeatBorderPoints=YES

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TimedToFloat

 

 

DownSample

TkPlot

 

T3

 

 

D3

T6

 

 

 

 

Factor=10

Label="Input Bits (I)"

 

 

 

 

Phase=5

Geometry="600x350+750+0"

 

 

 

 

 

 

xTitle="n"

 

 

 

 

 

 

yTitle="y"

 

 

 

 

 

 

xRange="0.0 100.0 "

 

 

 

 

 

 

yRange="-1.5 1.5 "

 

 

 

 

 

 

Persistence=100

 

 

 

 

 

 

Style=connect

 

 

 

 

 

 

UpdateSize=10

 

 

 

 

 

 

RepeatBorderPoints=YES

Рис. 2.8. Использование домена TSDF для моделирования QAM модема, используя временные компоненты. 4 компоненты TKPlots выводят результаты моделирования в

интерактивном режиме на экран

В этой схеме включены как компоненты для работы с времязависимыми данными, так и знакомые по прошлым примерам компоненты для работы в SDF домене. При переходе от TSDF к SDF домену используются блоки явного преобразования типов.

При использовании TSDF необходимо, чтобы для каждой ветви схемы был определен шаг по времени и частота несущей.

Шаг по времени или эквивалентная ему величина – частота выборки распространяются на весь граф схемы, включая времязависимые и численные компоненты. Для вычисления шага по времени используются атрибуты портов (например компоненты Data), определяющие количество получаемых или генерируемых символов (рис. 2.9).

Tstep –шаг моделирования

BitTime – интервал времени между битами 0.001 сек

UserPattern –определяемая пользователем битовая диаграмма в бинарном представлении (prefix %), октальном

(prefix 0), или hex (prefix 0x)

Type – случайная последовательность данных или prbs

SequencePattern - вид последовательности

Repeat -Yes или No для определения последовательности периодического сигнала

Rout –Выходное сопротивление

Rtemp –физическая температура в градусах C

Рис. 2.9. В источнике данных явно указан шаг моделирования (Tstep)

37

38

Для каждой компоненты SDF или TSDF частота выборки определяется как частота на входе (или на выходе) поделенная на количество получаемых (или генерируемых) символов на данном порту. После того как частота определена для выходного порта, можно определить частоты для всех присоединенных к нему входных портов как произведение этой частоты на соответствующий параметр приемного порта.

Определение частоты несущей.

Каждой ветви схемы внутри TSDF домена сопоставлена несущая частота FC . Ее значение используется при преобразовании типов и при

моделировании. Частота FC может принимать численные неотрицательные

значения или значение Undefined. Все порты TSDF должны иметь значение FC 0 . Не времязависимые порты используют значение Undefined в

качестве FC .

Значения FC для всех времязависимых портов определяются во время моделирования. Алгоритм определения FC использует в качестве

исходных данных значение несущей (рис. 2.10) для времязависимых компонентов (timed sources).

Рис. 2.10. Явное указание значения несущей частоты FC =500 Гц

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

в ветвях обратных связей используется некоторое не уникальное значение, принимаемое по умолчанию. Для задания уникального FC в этом

случае используется компонента SetFc Timed.

В домене TSDF можно использовать компоненту «сопротивление» (resistor) для моделирования аналоговых/RF трактов. Этот элемент необходим также при учете внутренних сопротивлений (импедансов) портов и добавления теплового шума резисторов (рис. 2.11).

38

39

Рис. 2.11. Компоненты TSDF с резисторами на выходе R1 и на входе R2

На рис 2.8 показаны две компоненты TSDF , T1 и T2, связанные последовательным резистором R1 и параллельным резистором R2.

Такие резисторы добавляют в модель масштабирование сигнала и аддитивный тепловой шум.

Резисторы добавляют тепловой шум (kTB), только когда температура сопротивления (RTemp) превышает абсолютный нуль (-273.15 ° С)

Pnoise = kTB

где: k = постоянная Больцмана T = температура в Кельвинах

B = ширина полосы частот моделирования, равная 1/(2*Tstep): если сигнал – времязависимый модулирующий сигнал, 1/TStep: если сигнал - времязависимый комплексный сигнал в форме огибающей.

39

40

Глава 3. Типы данных и обработка их в Ptolemy.

Рассмотрим основные правила создания схем DSP. Для этого надо познакомиться с типами данных о сигналах для обмена между компонентами, основными типами компонентов (их число доходит до 1000) а также с контроллерами, управляющими процессом моделирования.

3.1. Представление типов данных

Каждому типу данных о сигнале в схеме Ptolemy соответствует линия определенной толщины и цвета. Для уточнения направления передачи и количества сигналов используются стрелки. Следующая таблица определяет соответствие между типом данных, цветом и толщиной линии на схеме.

Табл.3-1. Типы данных, передаваемые между компонентами Ptolemy

 

Тип данных

Цвет соединительной

Толщина

 

 

линии

 

соединительной

 

 

 

 

линии

1

Скалярные данные с

Фиолетовый

Тонкая

 

фиксированной

___________

 

 

точкой

 

 

 

2

Скалярные данные с

Голубой

 

Тонкая

 

плавающей точкой

____________

 

3

Скалярные

Оранжевый

Тонкая

 

целочисленные

____________

 

 

данные

 

 

 

4

Скалярные данные в

Зеленый

 

Тонкая

 

комплексной форме

____________

 

5

Скалярные данные

Черный

 

Тонкая

 

типа «Timed»

_____________

 

6

Матричные данные с

Фиолетовый__

Толстая

 

фиксированной

 

 

точкой

 

 

 

7

Матричные данные с

Голубой

____

Толстая

 

плавающей точкой

 

 

 

8

Матричные

Оранжевый

Толстая

 

данные

______

 

 

целочисленные

 

 

 

9

Матричные данные в

Зеленый

____

Толстая

 

комплексной форме

 

10

Другие типы данных

Красный

_________

Тонкая

40

41

Рис. 3.1. Обозначение различных типов данных на схеме. Суммирование (AddCx_M) и умножение (GainCx_M) матриц и скалярных величин

На рис. 3.1 на верхней схеме данные имеют матричный комплексный формат. На этой схеме выполняется суммирование двух матриц и умножение их на коэффициент Gain. На нижней схеме правый элемент Mpy (Multiple input multiplier) имеет возможность принимать несколько сигналов по одной шине (две стрелки на входном порте Mpy). Объединять сигналы в шины и разделять их позволяют различные компоненты Ptolemy, в том числе BusMerge, BusSplit.

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

В ходе расчета пакеты данных передаются от одной компоненты к другой. Если Вы соединяете компоненты с различными типами данных (например, комплексный скалярный тип присоединяете к реальному типу с плавающей запятой или скалярный целый к матричному целому), то следует ответить на два важных вопроса:

Нужно ли помещать конвертор в схему или позволить программе автоматически делать преобразование?

Что случится с этими данными?

На эти вопросы ответим ниже.

Примеры некоторых преобразователей данных

 

 

 

 

CxToFix

 

Пребразователь

от

 

 

комплексного числа в число с

 

 

фиксированной точкой

 

 

 

 

 

41

 

 

 

42

CxToFix_M

 

Преобразователь

 

от

 

 

комплексного

числа

в

 

 

элемент

матрицы

с

 

 

фиксированной точкой

 

 

 

 

 

 

CxToFloat

 

Преобразователь

 

от

 

 

комплексного числа в число с

 

 

плавающей запятой

 

 

 

 

 

 

CxToInt

 

Преобразователь

 

от

 

 

комплексного числа в

целое

 

 

число

 

 

 

 

 

 

 

 

CxToPolar

 

Преобразователь

 

от

 

 

комплексного числа в модуль

 

 

и фазу

 

 

 

 

 

 

 

 

CxToTimed

 

Преобразователь

 

от

 

 

комплексного

числа

во

 

 

временной сигнал

 

 

 

 

 

NRZToLogic

 

Преобразование

сигнала

 

 

невозвращаемого к нулю, в

 

 

логический сигнал

 

 

 

 

PolarToRect

 

Сигнал в виде модуля и фазы

 

 

в виде Re-Im

 

 

 

 

 

VltoPower

 

Ток и напряжение в базовой

 

 

полосе в мощность

 

 

 

 

 

 

 

Автоматическое или физическое преобразование типа данных?

Хотя программа Ptolemy автоматически конвертирует несходные типы данных, рекомендуется помещать соответствующие преобразователи (из библиотеки Signal Converters) в схему. Это напоминает о том, что преобразование имеет место, а также помогает получить сообщения об ошибках, которые могут возникать в процессе построения схемы.

42

43

Автоматические преобразователи, находятся как бы за схемой и не отображаются на схеме. Автоматическое преобразование выполняется между скалярными типами данных и между матричными типами данных. Но автоматическое преобразование не выполняется между скалярными и матричными типами.

Правила связи компонентов

Для времязависимых входов/выходов имеются два случая, когда попытка автоматического преобразования приводит к ошибке:

Когда в проект помещены преобразователи Float to Timed, Fixed to Timed, Integer to Timed, или преобразователь Complex to Timed, но не задан шаг времени (в источниках или других временных преобразователях). Временной шаг должен быть определен, по крайней мере, один раз в проекте.

Когда комплексный порт связан с временным портом. Автоматическое преобразование от комплексного к временному сигналу не осуществляется автоматически. Вы должны явно поместить преобразователь Complex to Timed между портами и ввести соответствующие параметры.

Преобразование между скалярными и матричными типами данных

Когда скалярный выход непосредственно связан с матричным входом без преобразователя Pack или Unpack, генерируется сообщение об ошибке. В составе «Numeric Matrix Library» имеются четыре преобразователя, используемые для «упаковки» скалярных данных в матрицы (например, Pack_M и PackCx_M). Аналогично этому имеются четыре преобразователя, которые «разделяют» данные (назад к скаляру), типа UnPk_M и UnPkCx_M. В системе не предусмотрено автоматического преобразования между скалярными и матричными данными (или наоборот). Вы должны поместить преобразователи явно в тех местах схемы, где это необходимо.

Что происходит во время преобразования?

Большинство преобразователей делает то, что Вы и ожидаете. Например, при преобразовании от более низкой точности к более высокой данные не теряются, меняется только формат (например, при преобразования числа 2.0 к числу 2.00000) .

При преобразовании от более высокой точности к более низкой, например, от формата с плавающей точкой к целому числу, результат определяется правилами округления вашего компьютера, со следующими исключениями:

Преобразование комплексных данных

• Преобразование ComplexÆFloat — вычисляет модуль и игнорирует фазу.

43

44

Преобразование ComplexÆFixed — после вычисления модуля в формате с плавающей точкой, Ptolemy конвертирует формат с плавающей точкой к формату с фиксированной точкой.

Преобразование Complex to Integer — после вычисления модуля в формате с плавающей точкой, Ptolemy конвертирует формат с плавающей точкой к целочисленному формату.

Преобразование времязависимых данных (Timed Data)

Допустимы следующие преобразования над времязависимыми данными:

Timed к Complex (комплексный тип) или Complex к Timed

Timed к Float (с плавающей точкой) или Float к Timed

Timed к Fixed (с фиксированной точкой) или Fixed к Timed

Timed к Integer (целочисленный тип) или Integer к Timed

Вкачестве иллюстрации работы этих преобразователей рассмотрим, например, преобразователь TimedToFloat (тип Timed Data преобразуется к численному формату с плавающей точкой).

Для случая комплексной огибающей

 

y[n]= i(t)cos(2πFct)q(t)sin(2πFct)

(3.1)

Для огибающей в базовой полосе (baseband)

 

y[n]= i(t)

(3.2)

Здесь n означает индекс или номер отсчета.

Чтобы пояснить разницу между времязависимыми и численными генераторами и сборниками данных создадим 3 схемы (рис. 3.2), соединяющие генераторы и сборники данных.

Рис. 3.2. Cхемы с разными сборниками данных

44

45

Все три схемы управляются одним контроллером DF, причем этот контроллер имеет как временной диапазон оперирования (от 0 до 100 usec) так и диапазон оперирования в диапазоне выборок (от 0 до 100 выборок). Фиолетовая тонкая линия между компонентами означает, что в виде типа данных везде использованы скалярные данные с фиксированной точкой. Верхний левый график собирает цифровые данные в 20 точках-выборках (рис. 3.3 слева).

Рис. 3.3. Результаты расчета цифрового сборника данных (слева) и времязависимого сборника данных (справа) схем рис. 3.2

3.2. Контроллеры

Контроллеры используются для управления процессом моделирования. Они обозначаются на схеме в виде блоков без входов и выходов и могут быть добавлены из библиотеки «Controllers».

Основным контроллером ADS/Ptolemy является DF (Data Flow Controller), который необходим для анализа любой схемы. Этот контроллер в совокупности с источниками и сборщиками данных на схеме позволяет устанавливать параметры, например, время моделирования.

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

Чтобы установить параметры контроллера, дважды щелкните на его обозначении в схеме или выберите меню Edit > Component > Edit Component Parameters. Диалог настройки контроллер DF имеет пять закладок (рис. 3.4).

45

46

Рис. 3.4. Параметры контроллера Data Flow

Закладка Controls определяет глобальные значения параметров начала и конца процесса моделирования по умолчанию: DefaultNumericStart и DefaultNumericStop для численных данных. DefaultTimeStart и DefaultTimeStop для времязависимых данных.

Приемники данных Ptolemy (Sinks) имеют параметры Start и Stop, которые определяют время начала и окончания накопления данных. В накопителях цифрового типа (Numeric) эти параметры безразмерны и определяют номер элемента данных. Первый элемент приходит под номером 0, второй под номером 1 и т.д. Например, цифровой приемник данных с параметрами Start=3 и Stop=4 пропустит первые три отсчета и примет следующие два.

Во времязависимых приемниках данных Sink параметры Start и Stop измеряются в единицах времени. Количество собранных данных зависит в этом случае от параметров Start, Stop и от интервала дискретизации (time base). Например, если Start=0ms, Stop=1ms, time base=2 usec (микросекунд), приемник накопит 501 отсчет.

46

47

Рис. 3.5. Закладка Options контроллера DF

В закладке Options (рис. 3.5) устанавливаются следующие параметры численного анализа.

DefaultSeed. Этот параметр задает стартовое значение по умолчанию для генерации псевдослучайных последовательностей. Одно и то же стартовое значение генерирует одну и ту же реализацию псевдослучайной последовательности. Для генерации уникальной последовательности необходимо установить параметр DefaultSeed = 0.

В поле OutVar (выводимые переменные) указываются переменные для окно вывода данных Data Display. Разделителем служит пробел. Для вывода переменных из схемной иерархии используется полный путь к переменной, разделителем является точка.

Например, запись в этом поле:

OutVar=”freq1 freq2 X1.amplitude X2.X4.temp” – будет означать,

что в окне вывода будут отображены переменные freq1 и freq2 из верхнего уровня иерархии, переменная amplitude из подсхемы X1 и переменная temp из подсхемы X4 схемы X2.

В поле SchedulerType выбирается тип планировщика, работа которого обсуждалась в предыдущей главе.

DeadlockManager определяет действия системы в случае обнаружения тупиковых ситуаций, которые также рассматривались в главе 2.

47

48

Рис. 3.6. Закладка Resistors

Все поля закладки Resistors (рис. 3.6) определяют значения сопротивлений портов компонент. Эти параметры имеют глобальное значение и могут быть перекрыты значением в схеме. Например, путем добавления компоненты VAR с параметром DefaultRTemp, отличным от абсолютного нуля (-273.15°С) можно имитировать тепловой шум только для выбранной подсхемы.

Поле DefaultRIn определяет входное сопротивление портов по умолчанию, DefaultROut – внутреннее сопротивление выходных портов, DefaultRLoad – импеданс накопителей данных и отдельных резисторов (компонент resistor). По умолчанию оно равно 1.0E18, близким к бесконечному значению.

DefaultRTemp определяет температуру резисторов. Значение –273° C обозначает абсолютный ноль и соответствует отсутствию теплового шума в резисторах.

Рис. 3.7. Закладка Debug

48

49

Закладка Debug (рис. 3.7) позволяет указать имя файла для работы планировщика (ScheduleLogFile). Этот текстовый файл отладки будет доступен для просмотра после окончания моделирования в директории …/Data/. По содержимому этого файла можно определить последовательность активации компонент.

Существует также возможность задания другого файла (в поле Profile Times File). В этом файле сохраняется информация о количестве обращений к каждой компоненте и среднее время обработки данных этой компонентой.

Рис. 3.8. Закладка Display контроллера DF

Закладка Display (рис. 3.8) позволяет указать, какие из параметров DF контроллера будут отображаться на схеме.

Предыдущие версии Ptolemy допускали использование нескольких DF контроллеров для изменения различных параметров. В новых версиях (после версии 1.5) использование нескольких DF в одной схеме не допускается. Вместо этого следует использовать операцию sweep для изменения конкретного параметра моделирования.

3.3. Использование различных типов данных на примере моделирования работы ADC/DAC

Рассмотрим пример использования Ptolemy для моделирования процесса преобразования аналогового сигнала в цифровой и наоборот (рис. 3.7). Этот пример можно найти в каталоге examples\DSP\AtoDDtoA_prj. Пример показывает времязависи-мый аналогово-цифровой АЦП и цифро-аналоговый преобразователь ЦАП в ADS. Эти модели подходят для моделирования идеального или неидеального преобразования в приложениях обработки сигналов, причем:

49

50

1)ADC_Timed имеет внутренний вход синхронизации, который использует сигнал "clock" из ВЧ источника, который может включать фазовые шумы. Фазовые шумы задаются двумя параметрами {сдвигом частоты, dBc} которые можно ввести в синхронизирующем источнике

"N_Tones".

2)Параметры ADC_Timed и DAC_Timed имеют параметры INL и DNL для интегрирования и дифференцирования нелинейности в соответствии с методом Least Significant Bit (LSB).

Проект ADC_DAC_Demo (рис. 3.9) показывает основное применение кодека имеющего частоту дискретизации 10 МГЦ. Битовое разрешение может быть отрегулировано, используя переменную «Numbits» из блока VAR. Чертежи Tk используются, чтобы показать входные, синхронизирующие, дискретный вход, выходной АЦП, фильтруемый ЦАП и спектр, рассчитанный с помощью быстрого преобразования Фурье с 256-точками ЦАП.

Рис. 3.9. Схема исследования процесса оцифровки и восстановления аналогового сигнала

Основными компонентами схемы являются аналогово-цифровой преобразователь (ADC_Timed) из класса TSDF и модуль цифроаналогового преобразования (DAC_Timed). Оба модуля входят в состав библиотеки Timed, Data Processing.

50

51

Рис. 3.10. Аналогово-цифровой преобразователь с синхронизирующим ВЧ сигналом на входе RF Clk

Рис. 3.11. Цифро-аналоговый преобразователь без синхронизирующего сигнала

Сигнал генератора в виде гармонического воздействия с частотой 1Мгц формируется модулем Sinusoid. Очевидно, что входной сигнал ADC и выходной сигнал DAC должны интерпретироваться системой как аналоговые. Для этого удобно воспользоваться рассмотренным ранее типом Timed. На схеме факт выбора Timed типа отображается в виде черной стрелки на входе ADC и на выходе DAC.

При моделировании аналоговых сигналов программа Ptolemy учитывает внутреннее сопротивление входов и выходов элементов. Эти параметры явно или неявно присутствуют в схеме. Увидеть, каким образом заданы эти параметры, можно, заглянув внутрь любого компонента из библиотеки Timed.

На схеме рис. 3.12 находится модуль ADC, состав которого отображается после нажатия на кнопку Push Into Hierarchy. Как видно из рис. 3.12, все порты схемы имеют нагрузочные резисторы с параметрами, заданными по умолчанию.

51

52

Рис. 3.12. Внутреннее представление АЦП модуля ADC

Вновь обратимся к общей схеме. Работа ADC и DAC тактируется модулем N_Tones. На схеме присутствуют два таких модуля, один из которых генерирует сигнал с фазовыми флуктуациями, другой – идеальный сигнал в виде импульсов с частотой Fclock=10e6*NumBits. (Все параметры модели собраны внутри блока VAR).

С целью проведения Фурье-анализа восстановленного аналогового сигнала, выход DAC «оцифровывается» с помощью операции приведения типа TimedToFloat, после чего производится прореживание данных (модуль DownSample). Для выполнения быстрого преобразования Фурье используется модуль FFT (рис. 3.13).

Рис. 3.13. Использование явного преобразования типов

В качестве входного и выходного сигналов FFT используются скалярные данные комплексного типа (тонкие зеленые стрелки на

52

53

схеме рис. 3.13). Операция приведения типа от плавающей точки к комплексному формату задана явно (модуль FloatToCx).

Рис. 3.14. Спектр на выходе преобразователя ЦАП

Рассмотрим теперь, как Ptolemy использует типизацию данных во время моделирования. Как уже упоминалось, все исходные данные для моделирования собраны в блоке переменных VAR. Для первого запуска вполне подойдут значения по умолчанию. Также можно выбрать один из двух синхронизирующих генераторов тактов: N_Tones и N_Tones с фазовыми шумами.

Рис. 3.15. Тактовые генераторы для ЦАП

Выбрать конкретный генератор можно, воспользовавшись командой

Component->Activate/Deactivate контекстного меню (вызывается щелчком правой кнопки мыши) или кнопками на панели.

53

54

Теперь запустим процесс моделирования (SimulateÆSimulate (F7)). Система открывает несколько окон с результатами моделирования в реальном времени.

Наиболее интересным с точки зрения использования различных типов данных является окно совмещенного изображения трех графиков: входа цифро-аналогового преобразователя (красный график), оцифрованного потока (голубая линия) и восстановленного с помощью ЦАП аналогового сигнала (черный график), пропущенного через эллиптический фильтр (рис. 3.16). Как видно, графические представления данных разных типов качественно отличаются.

Хотя рассмотренный пример относительно прост, он демонстрирует наглядность внутренних механизмов представления данных в Ptolemy.

Рис. 3.16. Результаты моделирования: входной сигнал, оцифрованный сигнал и выходной, прошедший через фильтр

Нетрудно заметить, что при разработке Ptolemy было уделено особое внимание типизации данных и их визуальному представлению. Такой подход неслучаен и объясняется в первую очередь тем, что Ptolemy предназначена для совместного моделирования (косимуляции) разнотипных объектов. Точность расчета сигналов в цифровом представлении значительно зависит от цифровой арифметики. О совместном моделировании разнородных блоков пойдет речь в следующей главе.

54

Глава 4. Смешанное моделирование цифровых и аналоговых схем.

На протяжении нескольких последних лет цифровые технологии проникали даже в такие традиционно «аналоговые» области как формирование и прием ВЧ сигналов (пример – анонсированный фирмой Intel полностью цифровой трансивер для устройств Bluetooth с поддержкой технологии direct data synthesis/DDS). Однако применение мощных и дорогостоящих процессоров для обработки ВЧ и СВЧ сигналов остается на сегодняшний день экономически нерентабельным. В тоже время цифровые методы прочно закрепились в базовой полосе частот (под базовой полосой частот понимается полоса модулируемого сигнала). Таким образом, проектировщикам аппаратуры передачи данных часто приходится иметь дело с гибридными аналогово-цифровыми устройствами. Построению моделей таких систем и посвящена эта глава.

Казалось бы, при использовании цифровой ЭВМ для моделирования аналоговых систем сигнал в любом случае представляется в виде цифрового (дискретного) массива. Пусть, например, некоторая аналоговая система адекватно представима дифференциальным уравнением соответствующего вида. Если сложность уравнения заставляет нас прибегнуть к численному методу решения, то внешне процесс моделирования сводится к дискретизации входного сигнала с некоторым шагом и реализации процедуры поиска решения в виде сеточной функции. В чем же заключается отличие «цифрового» и «аналогового» моделирования?

Несмотря на внешнее сходство, эти два подхода в корне различны. Так, в случае аналоговой модели шаг дискретизации выбирается исходя из необходимой точности представления операторов непрерывного дифференцирования и интегрирования. При использовании цифровой модели шаг выбирается исходя из спектральных характеристик сигнала или системы. Обычно его значение гораздо больше, чем при численном интегрировании непрерывной функции.

С другой стороны, при использовании аналогового метода комплексной огибающей (ENV) сигнал представляется в виде набора (потока) значений огибающей сигнала и значения несущей частоты. Все операции при этом выполняются с использованием эквивалентных низкочастотных схем, что значительно снижает как вычислительные, так и емкостные затраты.

Одна из сильных возможностей Ptolemy – это возможность моделирования разнородных схем и блоков (косимуляции) радиосхем, которые включают как аналоговые системы, так и системы, требующие цифрового моделирования. Другой тип косимуляции предполагает включение компоненты MATLAB в моделирование обработки сигналов.

4.1. Необходимые условия выполнения косимуляции

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

Косимуляция – это анализ, в котором различные части проекта моделируются различными методами. Программа Ptolemy, используя методы расчета во временной области Transient и Envelope(рис. 4.1), а также методы синхронного расчета данных чисто цифрового сигнала, позволяет выполнить анализ современных систем, и получить в результате статические

характеристики систем. Поскольку результирующие характеристики относятся к характеристикам системы, и как бы поглощают характеристики аналоговых узлов и компонентов, такое моделирование относится к моделированию на верхнем (системном) уровне. Любой анализ, выполненный для заданной структуры можно положить в основу синтеза системы.

Рис

. 4.1. Составные части процесса косимуляции и инструменты его реализации

Еще раз: с помощью косимуляции можно выполнить моделирование всего радиотракта так, что разные узлы тракта моделируются разными методами. Сила такого подхода состоит в том, что цифровые части моделируются методами цифровой обработки в Ptolemy, что позволяет получить статистические характеристики, которые и интересуют разработчиков системы, например BER (вероятность получения битовой ошибки), FER (вероятность получения ошибки пачки сигналов) и др. Получение в результате расчета характеристик, обобщающие свойства системы (BER, FER, ACPR) позволяет назвать такой анализ системным.

Создав проект с использованием косимуляции, мы получаем аналогичные результаты для смешанного аналогово-цифрового тракта (рис. 4.2). Поскольку результатом моделирования являются характеристики всей системы, часто косимуляция относится к моделированию системы. Однако каждый из составляющих системы, например цифровой передатчик, преобразователь вверх (рис. 4.2) в свою очередь описывается на схемном уровне. На этом уровне можно учитывать, например, нелинейные искажения. Таким образом, косимуляция позволяет выполнить нелинейное моделирование радиосистемы.

Рис. 4.2. Косимуляция: различные части проекта моделируются различными программами и различными методами в одной и той же схеме

Чаще всего схема начинается с генератора численных данных, и заканчивается компонентами, рассчитывающими цифровые характеристики. Между цифровыми и аналоговыми частями стоят модуляторы и демодуляторы, АЦП и ЦАП, в качестве которых могут выступать электронные схемы, реализованные, например, в виде диодных выпрямителей.

Отметим, что аналоговые подсхемы во временной области моделируются только методами комплексной огибающей Circuit Envelope или High-Frequency SPICE (Simulation Program with Integrated Circuit Emphasis). Эти методы поддерживаются контроллерами ENV(метод огибающей) и TRANS (расчет с помощью анализа переходных процессов во временной области). Далее рассмотрим эти два метода подробнее.

Метод комплексной огибающей (ENV)

Метод комплексной огибающей использует временной и частотный домены для представления ВЧ сигналов. Контроллер ENV представляет сигнал в виде ВЧ несущей в частотном домене и комплексной огибающей в виде временного сигнала. Выражаясь более строго, сигнал в этом случае представляется в виде разложения Фурье, коэффициенты которого являются функциями времени. Набор спектральных составляющих определяется пользователем. Так как амплитуда и фаза каждой гармоники могут изменяться во времени, то каждая такая гармоника образует свой амплитудно-фазовый модулированный спектр с

диапазоном частот fi ±

0.5

.

T

Рис. 4.1. Спектр сигнала в контроллере ENV

Спектр сигнала вида, подобного рис. 4.3. может соответствовать, вообще говоря, периодическому, импульсному или случайному сигналу. Полный сигнал во временной области образуется путем сложения всех спектральных составляющих:

 

N

 

 

 

v(t ) = Re

Vk (t )e j 2πf k t

 

(4.1)

k =

0

 

 

Рис. 4.2. Представление сигнала с помощью метода комплексной огибающей

В общем случае отдельные спектры (рис. 4.4) не обязательно должны быть

центрированы относительно fk . Примеры представления сигналов с помощью комплексной огибающей собраны в следующей таблице.

Представление с помощью

Сигнал как функция времени

реализ

комплексной огибающей.

 

ации

 

 

 

 

 

 

1

Vk

=1

 

 

 

cos(2πfk t)

 

 

 

 

2

Vk

= e

j

π

 

sin(2πfk t)

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

3

V k

=

 

Ae

j 2 πf m t + B

Acos(2π(fk + fm )t + B)

 

 

 

Контроллер Envelope можно добавить из инструментальной панели Simulation-Envelope (рис. 4.5).

Рис. 4.1. Контроллер Envelope (ENV) и его параметры

Этот контроллер управляется с помощью списка параметров. Параметры контроллера можно изменить правым щелчком мыши и выбором пункта

Component->Edit Component Properties или двойным щелчком левой кнопки мыши. Появляется диалог рис. 4.6, в котором можно установить необходимые параметры анализа методом огибающей. На странице Env Setup существенные следующие параметры:

Stop Time

Общее время анализа.

Time step

Фиксированный шаг по времени. Этот параметр определяет максимальную ширину полосы одной

спектральной составляющей ( 0.T5 ).

Maximum order

Максимальное количество интермодуляционных компонент, участвующих в построении решения. Например, для компонент, которые по частоте имеют индекс 0 или 1, результаты взаимного умножения гармонических сигналов не учитываются. Для получения решения используются только гармоники, порожденные основными тонами.

Рис. 4.6. Диалоговое окно установок параметров метода огибающей

Контроллер расчета переходного процесса Transient/Convolution построен по тем же принципам, которые лежат в основе широко распространенного метода SPICE. В качестве математического аппарата этот метод использует решение системы нелинейных интегродифференциальных уравнений в частных производных, определяющих зависимости между токами и напряжениями в схеме.

Рис. 4.7.

Основное отличие между методами Transient и Convolution заключается в том, каким образом моделируются распределенные и частотно-зависимые компоненты.

Метод Transient оперирует данными только во временном домене, и в этом режиме невозможно применение компонентов с распределенными параметрами, таких как микрополосковые линии, или S-параметры.

Анализ методом Convolution использует частотное представление распределенных и частотнозависимых объектов. Этот подход значительно расширяет возможности контроллера в части представления распределенных СВЧ устройств, тогда как их точное представление во временном домене не всегда допустимо. Элементы, допускающие представление в виде линейной модели используют свертку для получения выхода, остальные элементы, включая нелинейные, рассчитываются во временной области с привлечением соответствующих методов.

Кратко процесс моделирования методом Transient/Convolution можно описать следующим образом:

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

2.Производится расчет постоянных токов и напряжений.

3.Создается таблица точек останова (breakpoint table). Эта таблица содержит упорядоченный список особых точек системы и точек разрыва независимых

входных сигналов. При приближении к такой точке контроллер уменьшает значение шага таким образом, чтобы достичь заданной точности моделирования.

4.Внутренние переменные принимают текущие на данном шаге значения.

5.Производится попытка получить решение на следующем шаге сетки с помощью численного интегрирования и конечного набора итераций методом НьютонаРафсона. Если количество итераций превышает некоторое наперед заданное число, то итерации прекращаются, шаг сетки уменьшается, и вычисления повторяются с пункта 4. Если коэффициент интегрирования уже достиг значения 0 в результате уменьшения шага, то используется метод Эйлера для интеграции уравнений, иначе используется формула трапеций для вычисления интеграла.

6.Определяется локальная ошибка вычислений.

7.Определяется шаг по времени.

8.Локальная ошибка сравнивается с допустимым уровнем. Если ошибка превышает допустимый уровень, то вычисления повторяются с уменьшенным шагом.

9.Шаги с 3 по 9 повторяются до тех пор, пока не будет пройден заданный пользователем интервал.

Оценка производной в методе Transient/Convolution

 

Для численной оценки производной используются следующие формулы:

 

формула трапеций:

 

xn+1 =

2

(xn+1 xn )xn

(4.1)

t

или формула Гира:

 

xn+1 =α0 xn+1 +α1 xn +α2 xn1 +... +αk xn+1k .

(4.2)

Вконтроллере Transient/Convolution (рис. 4.7) имеется возможность использования измеренных или полученных в ходе моделирования S- параметры блоков системы. Набор данных (dataset) или файл, содержащий S-параметры может быть использован в качестве частотной характеристики.

Вэтом случае очень важно соблюдать пределы частотного диапазона, внутри которого осуществлялось измерение S-параметров.

Рис. 4.8. Контроллер TRANS: настройка временного интервала

Для задания начальных условий решения систем интегро-дифференциальных уравнений в программе Ptolemy предусмотрены две компоненты: InitCond и InitCondByName. InitCond

имеет один порт, подключая который к выбранной цепи можно определить начальные условия в этой точке. Вторая компонента позволяет задавать начальные условия только для именованных цепей.

4.2. Пример косимуляции нелинейного усилителя

Рассмотрим схему, анализируемую Ptolemy, в которую входят как цифровые, так и аналоговые компоненты. Этот пример можно найти в каталоге …Examples/Com_Sys/ CoSym_prj.

Рис. 4.9. Практическая схема усилителя подготовленная для косимуляции

Синусоидальное напряжение цифрового генератора преобразуется во временную область и, смешиваясь в белым шумом, подается на однокаскадный аналоговый усилитель (рис. 4.9). Усилитель построен на биполярном транзисторе. Косимуляция потока данных выполняется с помощью контроллера DF, и расчета переходного процесса с помощью контроллера Transient (или контроллера ENVELOPE), который находится в анализируемой аналоговой подсхеме усилителя (рис. 4.10). Вывод системных характеристик, рассчитываемых цифровой схемой рис. 4.9 выполняется компонентами интерактивного вывода данных компонентами TclTk.

Слева от анализируемой аналоговой схемы усилителя на рис. 4.9 создана схема DSP, рассчитывающая выборки синусоидального колебания со случайной составляющей, регулируемой интерактивными компонентами: амплитуда, частота, уровень добавляемого шума.

Рис. 4.10. Схема аналогового усилителя используемая в косимуляции

Результаты анализа представлены на рис. 4.11.

Рис. 4.11. Результаты косимуляции: временной процесс на входе, на выходе, и выходной спектр, с учетом добавляемого шума на входе

4.3. Косимуляции аналоговой подсхемы выпрямителя

В качестве следующего примера рассмотрим аналоговую схему выпрямителя. Функционально её можно считать демодулятором, поскольку процесс переноса сигнала на низкую частоту есть процесс демодуляции. Для подготовки этой аналоговой схемы для косимуляции (пример

Com_Sys/RectifierCosim_prj) выполняются следующие шаги.

1. В схемном окне ADS создается аналоговая подсхема, которая анализируется либо методом огибающей (контролер ENVELOPE) или High-Frequency SPICE (контроллер TRANSIENT). На рис. 4.12 диодный выпрямитель моделируется методом огибающей.

Рис. 4.12. Диодный выпрямитель—схема используемая в косимуляции. Max Order – максимальный порядок учета гармоник фундаментальной частоты 11 МГц

Для моделирования схем в области ВЧ рекомендуется использовать метод огибающей Circuit Envelope, а для моделирования в базовой полосе, т.е. в полосе модулирующих сигналов High-Frequency SPICE.

2. Добавьте порты в подсхему

Теперь эта подсхема помещается в схему DSP, в которой она будет представлена как блок

(рис.4.13).

Рис. 4.13. Сигнальное процессирование схемы, показанной на рис. 4.12

Чтобы создать проект DSP для выполнения косимуляции:

1.Создайте схему DSP (рис. 4.13) и поместите в нее подсхему выпрямителя, выбирая в библиотеке созданную аналоговую подсхему командой Component > Component Library.

2.Добавьте компоненты DSP (генераторы цифрового сигнала, сборники данных и пр.).

3.Добавьте также необходимые компоненты DSP: элемент выделения выборок потока данных (EnvOutSelector или EnvOutShort)

4.Если входной сигнал в аналоговой подсхеме описан не во временной области (Timed), необходимо будет установить конвертеры Numeric-to-Timed Converters.

5.Установите параметры контроллера DF, показанные на рис. 4.14.

DF

DF1

DefaultNumericStart=0.0

DefaultNumericStop=1.0

DefaultTimeStart=0.0 usec

DefaultTimeStop=1.0 usec

DefaultSeed=1234567

OutVar=""

SchedulerType=Classical

DeadlockManager=ReportDeadlock

Рис. 4.14. Символ и параметры контроллера расчета цифрового потока

Цифровой поток битовых данных формируется, используя выборки через 0.01 мксек (параметр компоненты CxToTimed) и подается на выпрямитель. Входные и выходные напряжения показаны на рис. 4.15.

Рис. 4.15. При подаче на выпрямитель битового потока на выходе возникают затухающие гармонические колебания. По оси x номер выборки расчета в процессе DF

И метод огибающей ENV и метод расчета переходного процесса TRN имеют дело с сигналами во временной области. Поэтому компоненты DSP, связанные с подсхемой должны иметь тип Timed. Если входная компонента (соединяющая компоненту DSP со схемой) является чисто численная, необходимо поместить соответствующий преобразователь «число-временные зависимости» (типа «float-to-timed» или «complex-to-timed»). Эти компоненты находятся в библиотеке Signal Converters. Тогда входной сигнал в подсхему будет временным процессом.

Кластеризация структуры подсхемы

Кластеризация – это процесс задания границ сигнального процессирования и расчета аналоговых ВЧ схем. Первоначально, эти границы определены

схемой, например рис. 4.16. Однако, есть случаи, когда изменяются границы DSP и аналоговых схем. Это появляется например тогда, когда схема DSP имеет нулевое входное и выходное сопротивления.

Подсхемы, непосредственно связанные со схемами DSP, автоматически кластеризуются (объединяются) программой и этот общий блок воспринимается как одна подсхема, как показано на рис. 4.16. Таким образом, достигается использование только одного контроллера управления в двух (или больше) непосредственно соединенных подсхемах.

Рис. 4.16. Кластеризация: соединенные подсхемы трактуются как одна

Что случается, когда две подсхемы, определенные в двух различных схемах, связаны на схеме DSP? Две подсхемы кластеризованы в одну программой. Это должно делаться автоматически, без вмешательства пользователя. Однако если каждая из этих двух подсхем использует разные методы моделирования, то программа не поймет, какой метод выбран для моделирования. Это может привести к ошибкам.

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

Контуры обратной связи

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

Если такая задержка отсутствует, будет выдано сообщение об ошибках.

Рис. 4.17. Компонента задержки в петле обратной связи автоматически добавляется программой

Чтобы программа автоматически вставляла задержку, Вы должны установить параметр Resolve deadlock by inserting tokens в списке Deadlock Management контроллера DF.

Подсхемы, которые формируют петлю обратной связи, для той же самой цели, требует компоненты задержки в своем пути. Обычно, подходящими компонентами в такой петле обратной связи будут Delay_RF. Если такой задержки не существует, Ptolemy сообщит о тупиковой ситуации.

4.4. Соединение узлов аналоговой и DSP схем и расчет характеристик в схемных проектах

Подсхемы могут иметь включенные характеристики в схеме (такие как напряжения), которые игнорируются в косимуляции. Только данные, которые получены в схеме DSP, используя компоненты Sink или интерактивные компоненты, считаются результатами косимуляции.

Результат расчета методом огибающей (Circuit Envelope) - совокупность временных зависимостей, каждая на другой частоте. Вы должны выбрать форму волны, которую Вы хотите, задавая эту частоту. Это делается компонентой EnvOutSelector или EnvOutShort из библиотеки

Circuit Cosimulation.

Вы должны поместить эту компоненту во все выходы аналоговой подсхемы в схеме DSP.

Моделирование методом огибающей требует, чтобы определенные параметры были установлены в аналоговой схеме. Ключевой параметр для косимуляции, - параметр Time Step. Это - шаг времени, используемый имитатором, и может быть установлен равным или меньшим, чем шаг времени в порт соединения в схеме DSP. Другие важные параметры для косимуляции (особенно в нелинейных проектах) – это MaxOrder, Freq [ ] и Order [ ]. Убедитесь, что параметр OutFreq компоненты EnvOutSelector имеется среди фундаментальных частот или гармоник, заданных в контроллере Circuit Envelope.

Когда выполняется косимуляция с методом Transient , подсхема должна иметь контроллер Transient. Для этого контроллера не требуется никаких установок. То есть заданные по умолчанию параметры будут работать для косимуляции. Однако, параметр контроллера Freq [x]

требуется установить всякий раз, когда есть любые зависимые от частоты источники. Параметр Freq [x] определяет фундаментальную частоту.

4.5. Модели DSP схемы. Проблемы соединения аналоговых и DSP схем

Программа Ptolemy использует метод моделирования потока данных, и это моделирование управляется, используя контроллером Data Flow. Моделирование основано на вызове графика работы (schedule). График управляет механизмом "запуска" компонентов в определенном порядке и с некоторой частотой. Моделирование – это обычно повторение графика много раз.

Сточки зрения механизма работы Data Flow, аналоговая подсхема в схеме DSP – это только компонента с некоторым числом входных и выходных портов. Эта подсхема – часть графика, определенного контроллером Data Flow. Она будет возбуждаться точно так же, как любая другая компонента, согласно графику, и столько раз, сколько требуется. Каждый раз, когда подсхема запущена, имитатор схемы (определяемый контроллером моделирования на схеме) продолжает моделирование, на основании входного сигнала, который она получает из интерфейса DSP. Как только схемный моделятор заканчивает свой анализ, он передает результаты моделирования назад в интерфейс DSP. Этот цикл повторяется столько раз, сколько требует планировщик. Продолжительность моделирования схемы каждый раз, когда оно запущено, определена шагом времени, заданным в компоненте DSP соединенной ко входу подсхемы.

Сточки зрения моделятора аналоговой схемы, выход схемы DSP рассматривается как идеальный (со выходным сопротивлением 0 ом) источник. Чем больше портов при входном интерфейсе на схему, тем более идеальные источники там будут запитывать подсхемы. На выходе интерфейса схемы, будет узел, где результаты захватываются присоединенной к нему компонентой DSP.

На границе схемы DSP и аналоговой схемы, должен идти обмен информацией. Семантика и основные принципы моделирования в этих двух блоков весьма различны. Поясним самые важные аспекты этой связи.

Временные точки, в которые выполняются расчеты DSP устанавливаются через фиксированный шаг (Time Step). Однако моделяторы Envelope и Transient определяют шаг времени в контроллерах моделирования по-разному.

Контроллер Transient Simulator имеет несколько параметров, включая Start time, Stop time, Min time step, и Max time step (во вкладке Time Setup). Кроме того, вкладка Integration содержит параметр метода управления шага времени с Fixed, Iteration Count, и Truncation Error.

При косимуляции методом Transient, имейте в виду один ключевой момент: Расчет переходного процесса, не исключено, нужно выполнить с меньшим шагом, чем Time Step Ptolemy, чтобы удовлетворить его собственные требования установки. Кроме того, имитатор Transient, если необходимо, использует дополнительные шаги времени, чтобы соответствовать точкам времени в моделировании DSP. Только шаги времени, которые соответствуют точкам времени DSP, будут переданы Ptolemy.

Заметим, что во всех практических случаях, единственный параметр, который может изменять пользователь при косимуляции, это Max time step. Остальные параметры в контроллере Transient можно оставить по умолчанию.

Для имитатора Circuit Envelope, параметр шага времени в компоненте ENV Simulation контроллера должен быть установлен равным или меньше чем Time Step в интерфейсе «DSP – аналог».

Установка Time step в аналоговой подсхеме для косимуляции методом Circuit Envelope или Tran:

Параметр Time step контроллера Envelope или параметра Max time step контроллера Tran должны быть установлены равными кратному числу контроллера DSP (DF) от шага времени моделирования.

Этот шаг называется Tstep. Вы можете установить эту величину и установить такой же параметр в Analog/RF схеме, равной Time step, или выбирая Max time step равным Tstep/N, где N – заданное пользователем целое число, обычно большее, чем 1. Установите значение N> 1, когда, например, важен спектр сигнала, или когда важна точность результата.

Замечание Время остановки для моделирования определяется контроллером Data Flow и/или Sinks. Время остановки контроллеров Envelope или Transient не влияют на процесс счета.

Преобразователи времени

Сигнал, обмениваемый между схемой DSP и аналоговой схемой – это временной сигнал. Все три алгоритма, следовательно, имеют дело с понятием шага времени.

Сигнал, вводящий в подсхему должен быть типа Timed. Моделятор Transient имеет дело только с модулирующими сигналами во временной области в реальной базовой полосе частот, в то время как Circuit Envelope может обработать и полосу немодулированных частот, и комплексную огибающую временного сигнала.

Если сигнал, вводимый в подсхему не времязависимый (то есть сигнал является пачками численных значений), Вы должны поместить преобразователи FloatToTimed, FixedToTimed, IntToTimed, или CxToTimed. Хотя Ptolemy автоматически выполняет соответствующие преобразования, всегда рекомендуется явно поместить конверторы (рис. 4.18) в проекте.

CxToTimed

C1

TStep=.01 usec

FCarrier=11 MHz

Рис. 4.18. Символ преобразователя «комплексное число – времязависимый процесс»

В случае косимуляции с имитатором Circuit Envelope, временной сигнал, вводимый в подсхему

– обычно представляет собой огибающую, заполненной несущей. Это означает, что временные данные имеют заполнение с несущей частотойFc, и этот сигнал поступает в имитатор Circuit Envelope. Имитатор Circuit Envelope, в зависимости от конкретного проекта, генерирует множество форм волн в области времени, каждый связанный с частотой несущей (гармоники). Так как Ptolemy поддерживает только одну несущую частоту в каждом узле, Вы должны выбрать, какую из форм волны Вы желаете обрабатывать в части DSP. Это делается, помещая специальную компоненту EnvOutSelector или EnvOutShort (из библиотеки Circuit Cosimulation) к каждому выходному порту подсхемы.

Компонента EnvOutSelector действует как открытая схема, но блокирующая все связанное с его выводом от нагрузки схемы.

Если такая нагрузка желательна, используется компонента EnvOutShort. Компонента EnvOutShort действует как короткое замыкание и поэтому нагружает схему, соединяя с компонентами DSP.

Компоненты EnvOutSelector и EnvOutShort имеют параметр OutFreq. OutFreq определяет, какая форма волны выбрана из временной формы волны на выходе имитатора Envelope. OutFreq имеет следующие опции:

Lowpass— выбирает изменяемую по времени DC компоненту.

Bandpass (по умолчанию) – позволяет задать любую частоту.

Allpass—формирует композитный (в базовой полосе baseband) сигнал.

Один или более компонентов EnvOutSelector могут быть связаны с каждым выходным портом подсхемы, как на рис. 4.19. Это означает, что ко всем формам волны, сгенерированным имитатором Circuit Envelope можно обратиться в схеме DSP.

Рис. 4.19. Компоненты EnvOutSelector подключаются на выходе каждой подсхемы

Если или EnvOutSelector или EnvOutShort используются в проекте с Transient, их действие может быть или размыканием, или коротким замыканием, соответственно. Кроме этого, они не затрагивают процесс косимуляции методом переходного процесса, так что эту компоненту можно оставить на месте без какого либо влияния на косимуляцию с имитатором Transient.

Правила для выборки желательной частоты

В опции Bandpass, Вы можете ввести параметр OutFreq, желательную фундаментальную частоту, для формы временной волны, которой Вы интересуетесь. Если частота, которую Вы определяете, не существует в списке основных фундаментальных частот, программа осуществит поиск и остановится на самой близкой фундаментальной частоте. Поиск будет остановлен на частоте в пределах 0.01 % от фундаментальной частоты. Если частота, указанная в опции Bandpass, OutFreq не будет находиться в пределах 0.01 % от фундаментальной, будет использоваться значение по умолчанию 100 МГЦ, и выдано предупреждение.

4.6. Подготовка аналоговой схемы для косимуляции

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

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

В окне Schematic, создайте схему (рис. 4.12), которая включает компоненту моделирования ENVELOPE или компоненту TRANSIENT (в одной аналоговой подсхеме нельзя использовать и Envelope и Transient.)

Добавьте порты Port1 и Port2, к которым будет подключаться схема к схеме DSP.

Пусть диодный выпрямитель будет моделироваться с моделирующим устройством Circuit Envelope. Затем поместим эту подсхему в схему DSP, где она будет представлена как блок.

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

4.7. Создание схемы сигнального процессирования DSP

Проект DSP использует схему, показанную на рис. 4.21. На этой схеме сам нелинейный выпрямитель обозначен как подсхема X1. Создадим и сохраним схему рис. 4.20. Теперь, чтобы поместить эту подсхему в схему DSP, выберите Component > Component Library и поместите подсхему на её место на рис. 4.21.

Схема на верхнем уровне RectifierCx_Tutorial показана на рис. 4.20, в которой генератор случайной последовательности подает комплексный модулированный сигнал на две подсхемы выпрямителей.

Рис. 4.20. Проект косимуляции выпрямителя на уровне системы

Две одинаковые схемы выпрямителей созданы, один с контроллером TRAN

(rct_Tran), рис. 4.21 и другой с контроллером ENV (rct_Env), рис. 4.12.

Рис. 4.21. Подсхема выпрямителя rct_Tran с контроллером расчета переходного процесса

Чтобы увидеть подсхему из системы, выберите команду View > Push Into Hierarchy или кликните кнопку Push Into Hierarchy.

На схеме DSP, генерирование комплексных модулированных сигналов выполняется компонентой RectCx (рис. 4.22), которая генерирует периодический импульс с комплексной амплитудой.

RectCx

R1

Height=1.0-j*2.0

Width=18

Period=32

Источник на входе с Сигнал на входе выпрямителя, подлежащий выпрямлению шириной бита 18 мксек и периодом 32 мксек.

Рис. 4.22. Генератор потока на входе и временное представление сигнала на входе

Эти импульсы затем подаются на компоненту CxToTimed, которая фактически выполняет преобразование вверх по частоте. TStep установлен равным 0.01 сек, и несущая равна 11 МГЦ. Этот модулированный ВЧ сигнал разделяется затем на две ветви компонентой SplitterRF

иподается на подсхемы rct_Tran и rct_Env. Кроме того, компоненты TkPlot на выходе RectCx

иCxToTimed, показывают сигнал перед модулированием.

Так как TStep = 0.01 µсек, MaxTimeStep в контроллере Transient установлено на то же самое значение. Это значение должно всегда быть меньше или равно Tstep в схеме DSP. Другие

параметры установки времени, типа Start Time и Stop Time, игнорируются в косимуляции при расчете переходного процесса. Обратите внимание, что на выходе схемы rct_Tran сразу включена компонента TkPlot без промежуточных элементов.

Аналогичный параметр Step для имитатора Circuit Envelope должен быть установлен меньшим, или равным Tstep, чем в схеме DSP. Другие параметры: Freq[ ], Order [ ], и MaxOrder, определяют фундаментальную частоту и связанные с ней гармоники, которые будут проанализированы. В этом примере, фундаментальная частота Freq [1] = 11MHz и MaxOrder=5, и Order [1]=5. Обратите внимание также, что Freq [0] – это составляющая на нулевой частоте (постоянном токе).

Как правило, только одна компонента EnvOutSelector приcоединяется к выходу аналоговой подсхемы, анализируемой методом огибающей Envelope, но в данном примере мы использовали три таких компоненты, чтобы показать, как различные сигналы могут быть выбраны из схемы, анализируемой методом Envelope.

Рис 4.23. График Complex Bits это модуль комплексного периодического импульса, а график Rectifier Input показывает импульсно-модулированный сигнал с заполнением частотой 11 MHz.

В случаях Bandpass, Allpass и Lowpass установлен определенный параметр OutFreq. Когда выбрана опция Bandpass, диалоговое окно изменяется так, что можно ввести желательную фундаментальную частоту. В этом случае, OutFreq = 11 МГЦ. С выхода выпрямителя сигнал подается на три компоненты EnvOutSelectors, и на выходе каждого из них стоит компонента интерактивного вывода данных TkPlot.

Когда мы моделируем этот проект, появляются 6 окон TkPlot, показанные ниже на рис. 4.24-4.28.

Рис. 4.24. График Transient Output – это выпрямленное напряжение модулированного сигнала на выходе выпрямителя (отметим, что в этом сигнале нет отрицательной составляющей)

Постоянная времени (RC) в схеме выпрямителя определяет скорость спада импульса. Отметим, что это напряжение - реальный видеосигнал и включает все гармоники.

EnvOutSelector

O2

OutFreq=All

Рис. 4.25. Схема селектора с установками выделения всех частот

Далее покажем графики сигналов, которые имеются на выходе такого же выпрямителя, но с разными установками элемента EnvOutSelector. На рис. 4.26 – 4.28 показываются графики

Allpass, Bandpass, и Lowpass ouput.

Рис.4.26. Сигнал на выходе детектора, полностью, без выделения какой либо гармоники.

Рис.4.27. Выделение низкочастотной составляющей селектором на выходе детектора

Рис. 4.28. Выделение огибающей на выходе полосового фильтра

Кроме того, можно выделить реальную I и квадратичную составляющую Q сигнала на выходе выпрямителя и простроить сигнальное созвездие, а также сравнить его с сигнальным созвездием цифрового сигнала на входе выпрямителя.

4.8. Рекомендации при косимуляции

Имеется несколько моментов, которые рекомендуется выполнять, чтобы избежать ошибок в косимуляции:

1.В настоящее время в ADS в косимуляции можно использовать только методы Transient

иEnvelope. Другие методы моделирования аналоговых схем (такие как расчет S- параметры или AC) будут игнорироваться в косимуляции.

2.Непосредственно связанные подсхемы, помещенные как части на схеме DSP кластеризуются, и следовательно могут рассматриваться как одна подсхема. Это означает, что, если каждая из этих подсхем имеет их собственный контроллер моделирования схемы, будет дано сообщение об ошибках. Чтобы избежать таких проблем, Вы можете также:

-дезактивировать все контроллеры, кроме одного на схемах,

-подключить какую либо компоненту DSP между двумя подсхемами, таким образом препятствуя этим двум подсхемам кластеризоваться в один.

3.Резисторы, которые являются частью иерархических проектов DSP, будут поглощены в связанных с ними подсхемах. Если используется компонента EnvOutSelector, поглощенные резисторы не будут загружаться в схему, так как это компоненты являются моделью открытия. Если используется компонента EnvOutShort, поглощенные резисторы загрузят схему, и результаты будут отличаться масштабным коэффициентом.

4.Так как резисторы, которые являются частью времязависимых подсхем, поглощены в присоединенные подсхемы, Вы не должны помещать сборник данных или любую другую компоненту DSP сразу на этом порту, когда выполняется косимуляция методом огибающей. Если их поместить в этом месте, выдается сообщение об ошибках, требуя

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

82

Глава 5 Моделирование сложных сигналов

и потоков данных

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

5.1. Система модулирования QPSK

Рассмотрим квадратичную фазоманипулированную модуляцию QPSK, чтобы продемонстрировать использование Ptolemy для анализа системы цифровой связи. Эти методы модуляции, а также более сложные, типа и её модификации π/4-DQPSK используются в CDMA, GSM, и др. системах связи.

Рассмотрим последовательно следующие вопросы:

-Моделирование в программе Ptolemy системы QPSK, используя потоки цифровых данных.

-Использование сигнального созвездия и глазковой диаграммы для оценки качества передачи данных.

-Использование компонентов интерактивного вывода TkXYPlot и TkPlot для просмотра характеристик системы.

-Использование компоненты SampleAndHold для выборки символов в ограниченной полосе Найквиста

5.2.Источник данных

5.2.1.Создание схемы проекта

Откроем проект CommSys_Lab5_prj. В этом проекте выполняется анализ системы, включающей модулятор и демодулятор QPSK (рис. 5.1).

83

Рис. 5.1. Схема обработки потока данных

На вход модулятора MOD_QAM (рис. 5.1) подается поток данных, прошедший через цифровые фильтры. С выхода модулятора MOD_QAM сигнал подается на измеритель мощности и спектроанализатор, а после выделения его с помощью демодулятора QPSK_Demod сигналы I и Q выводятся на компоненту вывода сигнального созвездия.

Компонента вывода сигнального созвездия (звездной диаграммы) более сложная, чем просто элемент TkXYPlot, с помощью которого выполнялся вывод звездной диаграммы в предыдущих версиях Ptolemy.

Откроем окно DSP схемы и зададим команду File> New…. Выберем тип цепи «Digital Signal Processing Network» (рис. 5.2), в линии Name впечатаем имя «a_QPSK_Sys».

84

Рис. 5.2. Открытие нового проекта DSP и выбор шаблона

В поле схемы внесем компоненту VAR (из библиотеки «Controllers») и назовем её «Variables». Этот блок позволяет эффективно менять параметры задачи. В нашей задаче блок VAR должен включать переменные, приведенные на рис. 5.3.

Var

Eqn

VAR

Variables

Bit_rate=48.6 kHz RF_freq=836.5 MHz

Bit_time=1/Bit_rate LO_freq=RF_freq-IF_freq

Sym_rate=Bit_rate/2

Sym_time=1/Sym_rate

Numpts=512*2

Sam_per_sym=10

Tstep=1/(Sym_rate*Sam_per_sym)

Tstop=Numpts*Tstep

DFstop=Tstop*1e6

Pmod=-10 _dBm

Plo=7 _dBm

Filt_delay_syms=8

Filt_delay_time=8*Sym_time

Filt_Nyquist_freq=0.5/Sym_time

IF_freq=70 MHz

Рис. 5.3. Блок переменных, в которые включаются выражения, связывающие параметры расчета цифровой схемы

85

Переменные, описанные в компоненте VAR, поясняются в таблице 5.1.

 

 

Табл. 5.1. Блок VAR, состав и назначение переменных

#

Переменные

Величина

Имя блока VAR

 

1

Bit _ rate

48.6 kHz

Битовая скорость (частота

 

 

 

 

следования битов)

 

2

Bit _ time

1/Bit_rate

Длительность бита

 

3

Sym_rate

Bit_rate/2

Символьная скорость

 

4

Sym_time

1/Sym_rate

Длительность символа

 

5

Numpts

512*2

Число точек анализа по времени

 

6

Sam_per_sym

10

Количество выборок на символ

 

 

 

 

 

 

7

Tstep

1/(Sym_rate*Sam_per_sym )

Временной шаг, через который

 

 

 

 

выполняется расчет потока

 

 

 

 

данных

 

8

Tstop

Numpts*Tstep

Время остановки процесса расчета

 

 

 

 

 

 

9

DFstop

Tstop*1e6

Время окончания анализа потока

 

 

 

 

данных

 

10

Pmod

- 10_dBm

Мощность модулятора

 

11

Plo

7_dBm

Мощность гетеродина

 

12

Filt_delay_syms

8

Задержка фильтра в символах

 

 

 

 

 

 

13

Filt_delay_time

8*Sym_time

Задержка фильтра во времени

 

14

Filt_Nyquist_freq

0.5/Sym_time

Частота Найквиста фильтра

 

15

IF_freq

70 MHz

Промежуточная частота

 

16

RF_freq

836.5 MHz

ВЧ частота на входе приемника

 

17

LO_freq

RF_freq-IF_ freq

Частота гетеродина

 

Единицы типа кГц и МГц могут быть заданы или в блоке VAR или когда они используются как параметр. Они действуют как множитель (например, МГц = Гц * 1E6). Использование переменных и уравнений, чтобы установить ключевые соотношения между скоростью передачи информации в битах, символьной скорости, минимальной частотой Найквиста, и т.д., является удобным, чтобы убедиться, что параметры элементов установлены правильно. Также это удобно, когда параметры типа битовой скорости или число выборок на символ должны быть изменены.

Вставим в схему источник данных «Data» из библиотеки «Timed Sources». Установим в нем следующие параметры:

TStep = Tstepединицы– устанавливаются на NoneBitTime = Bit_timeединицы– устанавливаются на None

Внесем в схему разделитель потока данных Symbol Splitter из библиотеки «Timed Data Processing». Установим в нем следующие параметры:

86

SymbolTime = Bit_time (единицы None)

Delay = -sec1 (для автоматической синхронизации).

Рис. 5.4. Подключение источника данных и разделителя потока данных

5.2.2. Наблюдение мгновенного сигнала (с помощью компонентов TkPlot и TkXYPlot)

Внесем в схему рис. 5.1 компоненту «TkPlot» из палитры «Interactive Controls and Displays». Установим параметры TkPlot (рис. 5.5).

87

Рис. 5.5. Установка параметров элемента интерактивного контроля TkPlot

Присоединим компоненту TkPlot к выходу источника данных Data. Две стрелки на выходе означают, что по этому проводу идет двухкоординатный сигнал. Параметр Style=Сonnect означает, что точки на графике будут соединяться и показываться как непрерывный временной процесс.

Другой, более сложный, элемент TkXYPlot (рис. 5.5) из библиотеки

«Interactive Controls and Displays» (вместо него можно использовать и новый элемент TkContellation) имеет следующие параметры:

Label =ealId ConstellationGeometry = 500x400+0+0XTitle = Re

YTitle = ImStyle = dot.

88

Рис. 5.6. Символ компоненты интерактивного вывода данных

Присоединим компоненту TkXYPlot (рис. 5.6) к выходу расщепителя сигналов

Data splitter.

Табл. 5.2. Параметры источника данных блока Data

D 1

Величина

Имя набора данных

1

T S t e p

T s t e p

Шаг времени моделирования

2

BitTime

Bit_time

Временной интервал одного бита

3

T y p e

P r b s

Тип последовательности: Data sequence type random

 

 

 

(случайный) или prbs (псевдослучайный)

4

Sequence Pattern

8

Описание последовательности данных

5

R e p e a t

Y e s

Yes или No для определении последовательности

 

 

 

периодического сигнала

6

R O u t

50.0 Ohm

Выходное сопротивление

7

R T e m p

- 273.15

Температура

 

Табл. 5.3. Параметры разделителя данных на два потока Symbol Splitter

S 1

Величина

Имя разделителя потока данных

1

RIn

50.0 Ohm

Входное сопротивление

2

ROut

50.0 Ohm

Выходное сопротивление

3

RTemp

- 273.15

Температура

4

Symbol Time

B i t _ t i m e

Время длительности символа, через которое

 

 

 

выполняется переключения входного потока на два

 

 

 

выходных потоков данных

5

Delay

- 1 s e c

Время задержки начального потока данных от t=0;

 

 

 

для авто-синхронизации устанавливается Delay= -1

89

Рис. 5.7. Схема просмотра данных с генератора данных Data

Разделитель символов SymbolSplitter (из палитры «Time Data Processing») принимает два бита одновременно и выводит первый бит на вывод Q, а второй бит на вывод I (рис. 5.7).

Результирующие I и Q символы будут иметь вдвое большую продолжительность (например, продолжительность выходного символа будет 2 uS при длительности бита 1 uS). Параметр SymbolTime это опорный параметр ввода, или время передачи бита.

Этот элемент по существу выполняет функцию преобразователя последовательного потока данных в параллельную последовательность, чтобы задать четыре возможные состояния символа (22 = 4 возможных комбинаций) для квадратурной фазовой модуляции QPSK.

На выходе разделителя также установим средство интерактивного вывода. У этого элемента (рис. 5.7), TkXYPlot, имеются два входа.

90

5.2.3. Установки моделирования

Внесем контроллер DF из библиотеки «Controllers» в схему (рис. 5.8). Установим следующие параметры DF, в соответствии с табл. 5.3.

Рис. 5.8. Символ контроллера потока данных

 

 

Табл. 5.3. Параметры контроллера анализа потока данных DF

D F

Величина

Имя контроллера

1

DefaultStart

0.0

Начало потока данных

2

Default Stop

D F s t o p

Остановка потока данных

3

Default Time Unit

u s e c

Единицы времени по умолчанию

4

Default Seed

1 2 3 4 5 6 7

Число для запуска случайного потока

 

 

 

данных

5

Scheduler Type

Cluster Loop

Тип планировщика задания

6

Deadlock Manager

Report Deadlock

Менеджер разрешения тупиковых

 

 

 

ситуаций

7

Time Stamp

No Multirate Delay

Время задержки

8

Out Var

" "

Внешняя переменная, которая будет

 

 

 

участвовать в расчете и выводиться на

 

 

 

график.

5.2.4. Анализ и вид временных потоков из источника данных

Рассмотрим поток данных NRZ (Non Reverse Zero - невозвращаемые к нулю) из источника данных и идеальное сигнальное созвездие на выходе разделителя данных.

Установим в меню View команду «View All» в контроллере TkXYPlot, чтобы увидеть сигнальное созвездие. Компонента TkPlots имеет высокий

91

входной импеданс, а разделитель данных имеет выходной импеданс 50 ом, так что амплитуды символов равны ± 2 Вольт вместо ± 1 Вольт.

Заметим, что символы NRZ прямоугольные (рис. 5.9), и сигнальное созвездие будет идеальным (четыре точки), поскольку сигнал еще не был подвержен никакой фильтрации и ограничению по частоте в базовой полосе. В действительности бесконечной полосы каналов не существует, поэтому реальное сигнальное созвездие (или как еще иногда называют, звездная диаграмма) будет неидеальной.

Рис. 5.9. Временной поток данных NRZ и сигнальное созвездие для идеального QPSK сигнала

Компоненты TkPlot обеспечивают быстрый и простой путь просмотра данных. Это удобный способ первоначальной оценки начальной конфигурации системы перед использованием окна Data Display, на который выводятся точные рассчитанные данные. Закончим моделирование, нажимая кнопку «Quit» на панели.

5.3.Добавление фильтра и QAM модулятора

5.3.1.Добавление фильтра

Сигнал, показанный на рис. 5.9 имеет очень широкую полосу, что неоптимально для последующей обработки потока данных, поэтому эти сигналы пропускают через фильтры, причем с такими характеристиками фильтров, чтобы при максимальном сжатии полосы сигнал получил минимальное искажение. Таким фильтром является фильтр с характеристикой в виде приподнятого косинуса [8].

92

Выберем фильтр «LPF_RaisedCosineTimed» (низкочастотный фильтр с характеристикой в виде приподнятого косинуса) из палитры ADS «Timed Filters» (рис. 5.10) и присоединим его к выходам I и Q элемента

SymbolSplitter.

Рис. 5.10. Символ косинусоидального приподнятого фильтра

Параметры этой компоненты поясняются в табл. 5.4.

 

 

Табл. 5.4. Параметры фильтра LPF_RaisedCosineTimed

Параметр

Величина

Пояснение параметра

1

RIn

50 . 0 Ohm

Входное сопротивление

2

ROut

50 . 0 Ohm

Выходное сопротивление

3

RTemp

- 273. 15

Температура

4

Corner Freq

F i l t _ N y q u i s t _ f r e q

Частота среза; рекомендуется

 

 

 

принять ее равной 1/(2*SymbolTime)

5

Excess Bw

0 . 3 5

ExcessBw : полоса фильтра с

 

 

 

приподнятым косинусом

6

Type

Model with pulse equalization

Тип модели с приподнятым

 

 

 

косинусом

7

Square Root

Y e s

Использование модели в виде корня

 

 

 

квадратного из приподнятого

 

 

 

косинуса

8

Delay

F i l t _ d e l a y _ t i m e

Время задержки фильтра

9

Window Type

R e c t a n g u l a r

Тип окна вывода

93

Рис. 5.11. Соединение источника данных, разделителя данных и фильтров с характеристикой в виде приподнятого косинуса

Идеальные прямоугольные символы, видимые на TkPlots (рис. 5.11), приведут к сильному расширению спектра, когда символы I и Q модулируются ВЧ несущей. Поэтому и используется фильтры с характеристикой типа приподнятый косинус, чтобы пропустить прямоугольные символы через фильтр и значительно уменьшить ширину спектра. Но так, чтобы при передаче такого искаженного символа это привело бы к минимальному ухудшению работы системы.

Оптимальная частота Найквиста равна 1/(2*symbol time) для минимальных межсимвольных искажений. Так как фильтры с прямоугольной характеристикой физически не реализуемы, задается коэффициент избыточной полосы пропускания, равный 0.35 для этого примера (что эквивалентно увеличению полосы на 35 % по сравнению с фильтром с прямоугольной характеристикой).

Выравнивание («обкатка») импульса с помощью фильтра осуществляется умножением на функцию x/(sin x), чтобы обеспечить правильную характеристику фильтра для прямоугольных входных символов. Квадратный корень устанавливается для того, чтобы реализовать характеристику фильтра как экспоненту в степени 0.5, позволяя

94

использовать его и в модуляторе и в демодуляторе (результат действия на характеристику фильтра с приподнятым косинусом).

Обычно достаточно иметь один фильтр с приподнятым косинусом в демодуляторе, чтобы обеспечить фильтрацию шума, просачивающегося в приемник. Этот фильтр является непричинным (без задержки, свойственной физически реальному фильтру), и нужно добавить задержку, чтобы сделать его причинным (causal). Точность модели фильтра пропорциональна конкретной задержке, причем точность моделирования увеличивается с задержкой.

5.3.2. Добавление амплитудного QAM модулятора

Сигнал с фазовой модуляцией QPSK, пропущенный через фильтр, приобретает амплитудную модуляцию. Поэтому перенос его на ВЧ несущую выполняется с помощью амплитудного модулятора.

Выберем компоненту QAM_Mod из библиотеки «Timed Modem» и установим следующие его параметры:

Fcarrier = IF_freqединицы( установите на None)

Power = +10 dBm (или напечатайте: dbmtow(10))

Соединим выходы I и Q с фильтрами с приподнятым косинусом (рис. 5.12).

95

Рис. 5.12. Подключение амплитудного модулятора QAM_Mod, с помощью которого «обкатанный» сигнал QPSK с фазовой модуляцией переносится на ВЧ несущую

Параметры компоненты модулятора QAM_Mod поясняются в табл. 5.5

 

Табл. 5.5. Параметры модулятора QAM_Mod

Q 1

Величина

Пояснение параметра

 

 

 

 

 

RIn

50.0 Ohm

Входное сопротивление

 

ROut

50.0 Ohm

Выходное сопротивление

 

RTemp

-273.15

Температура

 

FCarrier

IF_freq

Несущая частота

 

Power

dbmtow (10)

Мощность на входе модулятора

 

VRef

1 V

Опорное напряжение

 

Phase

0

Фаза

 

GainImbalance

0

Разбаланс усиления

 

Phase Imbalance

0

Разбаланс фазы

 

5.3.3. Добавление анализатора FFT Analyzer и TkPlots

Выберем FFTAnalyzer из библиотеки «Sinks» (в последних версиях ADS этот элемент носит имя SpectrumAnalyzer). Установим следующие параметры:

Instance Name = Mod_SpectrumWindow = RECTANGULARNpoints = 1024

Присоединим его к выходу элемента QAM_Mod.

Поместим резистор нагрузки из библиотеки «Timed Linear», как показано на рис. 5.13.

96

Рис. 5.13. Измеритель мощности и спектроанализатор, выполняющий прямое преобразование Фурье

Присоединим компоненту TkXYPlot к выходу фильтра с приподнятым косинусом, чтобы видеть сигнальное созвездие сигнала с ограниченной полосой Найквиста. Установим следующие параметры:

Label = Filtered Constellation

Geometry = 500x400+0+0

XTitle = Re

YTitle = Im

Style = dot.

Табл. 5.6. Параметры компоненты спектроанализатора F F T A n a l y z e r

M o d _ S p e c t r u m

Величина

Пояснения

Start

D F _ V a l u e

Начало сбора данных

Stop

D F _ V a l u e

Окончание сбора данных

Time Unit

D F _ V a l u e

Единицы времени

Display Freq Unit

MHz

Единицы частоты, показываемые на

 

 

 

дисплее

NPoints

1

0 2 4

Количество точек времени,

 

 

 

используемые в расчете быстрого

 

 

 

преобразования Фурье

NAverage

1

 

Количество усреднений

Param

0

. 5

 

W i n d o w

RECTANGULAR

Вид окна вывода

N S e g m e n t s

1

 

Количество сегментов

O v e r l a p

0

 

Перекрытие

B i a s

B I A S _ P O W E R

 

D i s p l a y

d B m

Единицы мощности для показа

Ref _ Resistance

5

0. 0hm

Опорное сопротивление

97

5.3.4.Просмотр сигнального созвездия

Врезультате моделирования получаем сигнальное созвездие отфильтрованного сигнала (рис. 5.14).

Рис. 5.14. Сигнальное созвездие (звездная диаграмма)

Результаты моделирования естественным образом можно поставить следующие вопросы:

1.Почему сигнальное созвездие выглядит настолько искаженной?

2.Почему не было получено идеального сигнального созвездия с прямоугольными символами?

_________________________________________________________________

Мы ответим на них ниже. Закончим моделирование и сохраним проект с именем «a_QPSK_Sys».

5.4.Сигнальное созвездие, построенное с помощью выборок

5.4.1.Синхронизация процесса выборок данных

98

Выберем компоненту «Clock» из библиотеки «Timed Sources» и установим следующие параметры в соответствии с табл. 5.7:

Табл. 5.7. Параметры компоненты C l o c k – синхронизации по

 

 

времени в схеме DSP

C1

Величина

Пояснения

TStep

Tstep

Шаг времени, единицы None

Period

Sym_time

Период следования

 

 

символов, единицы None

Delay

Filt_delay_time+ 0.5*Sym_time

Задержка, единицы None.

Duty Cycle

0.5

Выходное сопротивление

ROut

50.0 Ohm

RTemp

- 273.15

Температура

Выберем элемент SplitterRF из библиотеки «Timed Linear» и соединим его к выходу элемента Clock (рис. 5.15).

Рис. 5.15. Присоединение компоненты синхронизации к разделителю потоков сигналов

5.4.2Схемы выборки сигналов (сэмплирования) и сохранения

1.Поместим два элемента SampleAndHold из библиотеки «Timed Linear» и соединим их к выходу SplitterRF (рис. 5.16). Установим параметры (табл. 5.9).

99

Рис. 5.16. Добавление двух элементов сэмплирования и сохранения сигналов

Табл. 5.9. Параметры компоненты выборки и сохранения значения выборки Sample And Hold

S 4

Величина

Пояснения

RIn

1 GOhm

Входное сопротивление

ROut

50.0 Ohm

Выходное сопротивление

RTemp

- 273. 15

Температура

Droop Rate

0

Скорость падения напряжения с момента выборки

Сопротивление Rin= 1GOhm позволяет соединить элемент SampleAndHold к системе без нагрузки её. Установка DroopRate= 0 будет сохранять напряжение выборки на постоянном уровне, пока не придет следующая выборка.

Соединим «Filtered Constellation» TkXYPlot к выходу схем SampleAndHold.

100

Входное сопротивление компоненты TkXYPlot имеет высокое значение, так что для согласования выходного импеданса схемы SampleAndHold необходимо внесение резистора 50 Ом (рис. 5.17).

Соединим вход схемы SampleAndHold к выходам фильтров с приподнятым косинусом. Окончательно схема выглядит как на рис. 5.17.

Рис. 5.17. Включение синхронизации с помощью компоненты Clock

101

5.4.3. Просмотр сэмплированного сигнального созвездия

Запустим моделирование и рассмотрим сигнальное созвездие на выходе фильтров «Filtered Constellation».

Почему требуется компонента SampleAndHold для просмотра сигнального созвездия в системе с ограниченной полосой Найквиста? Эти компоненты требуются для просмотра сигнального созвездия с ограниченной полосой Найквиста потому, что не имеет смысла отображать каждую выборку для фильтрованных символов.

Фильтрованные символы формируются на основе смешения нескольких характеристик (умножения импульсной характеристики на импульс Дирака) и поэтому вибрируют, потому что высокочастотная составляющая была удалена из прямоугольных символов (рис. 5.18). Это искажение приводит к небольшому ухудшению характеристик системы, если символы выбраны в середине символьного импульса, где символы на выходе фильтра принимают самое близкое к идеальным прямоугольным символам со значением (±1 V).

Это требует, чтобы выборки были сделаны в середине символов с периодом выборки, равным длительности символа. Параметр задержки для компоненты Clock, устанавливающий начало сэмплирования, рассчитывается, используя уравнение:

Delay=Filt_delay_time+(0.5*Sym_time)

Рис. 5.18. Сигнальное созвездие, полученное с элементами SampleAndHold

102

Это уравнение учитывает задержку для фильтра с приподнятым косинусом и выполняет выборки в середине первого символа на выходе фильтра. Параметр длительности периода для элемента Clock устанавливается равным периоду выборки и устанавливает символьное время так, чтобы была выбрана середина каждого очередного импульса. Для выполнения той же самой функции, как и компонента SampleAnd Hold, можно также использовать компоненту Downsamplers (преобразователь вниз).

5.4.4. Просмотр модулированого спектра

Чтобы анализатор FFTAnalyzer собрал достаточно данных и вывел их в окно необходимо выполнять моделирование достаточно долго. Если компонента TkPlots отключается раньше полного накопления, будет выдано предупреждение, и диалоговое окно запросит пользователя о выборе продолжения или прекращения сбора данных. Только часть данных будет послана сборникам данных, если моделирование закончено преждевременно. Щелкните на Quit, чтобы закончить моделирование.

Откроем Data Display и выберем прямоугольную систему координат. Выберем «Mod_Spectrum» (рис. 5.19). FFT Анализатор загружает расчет из набора данных «a_QPSK_Sys».

Рис. 5.19. Спектр на выходе спектроанализатора

Шаг времени (time step) для времязависимых элементов устанавливается уравнением Tstep=1/(Sym_rate*Sam_per_sym), и для нашего примера

Timestep = 4.115uS. Полоса моделирования зависит от time step и равна

BW= Fcarrier ± 1/(2*timestep).

103

Итак, шаг времени 4.115uS приводит к полосе моделирования равной 121.5 кГц вокруг несущей частоты 70 МГц.

5.5.Демодулятор QPSK

5.5.1.Добавление квадратурного фазоманипулированного

демодулятора QPSK

Отсоединим компоненту Mod_Spectrum и резистор от выхода MOD_QAM. Поместим SplitterRF из библиотеки «Timed Linear», и соединим их между MOD_QAM и SpectrumAnalyzer (рис. 5.20).

Рис. 5.20. Включение спектроанализатора на выходе делителя сигналов

104

Рис. 5.21. Диалог установки параметр компоненты QPSK_Demod

Поместим элемент QPSK_Demod из библиотеки «Timed Modem» и установите следующие его параметры:

SymbolTime = Sym_time – единицы установите на None

ExcessBW = 0.35для– фильтра с приподнятым косинусом

Соединим вход компоненты QPSK_Demod к нижнему выводу элемента

“SplitterRF”.

Поместим источник N_Tones из библиотеки «Timed Sources» и установим следующие параметры (рис. 5. 22). Источник N_Tones позволяет задавать фазовый шум на различных частотах, смещенных от Fc , используя параметр

PhaseNoiseData.

105

Рис. 5.22. Диалог установки параметров многотонового генератора

Соединим выход источника N_Tones ко входу «Osc» элемента “QPSK_Demod” (рис. 5.24) как показано на рис. 5.25. Параметры этих элементов поясняются в табл. 5.10 и 5.11.

Рис. 5.23. Символ демодулятора и его параметры

106

Рис. 5.24. Подключение демодулятора и многотонового генератора

Табл. 5.10. Параметры демодулятора фазоманипулированного сигнала QPSK_Demod

Имя демодулятора Q 2

Значение

Пояснение

RIn

50.0 Ohm

Входное сопротивление

ROut

50.0 Ohm

Выходное сопротивление

RTemp

- 273.15

Физическая температура

Symbol Time

Sym_time

Длительность символа

Excess Bw

0.35

Коэффициент

 

Табл. 5.11. Параметры многотонового источника N_Tones

N 1

Значение

Пояснение

TStep

Tstep

Длительность шага

Frequency 1

I F _ f r e q

ПЧ частота

Power 1

d b m t o w ( 1 2 )

Уровень мощности

Phase 1

0 . 0

Дополнительные гармоники

Additional Tones

" "

107

Random Phase

N o

Phase Noise Data

" "

ROut

5 0 . 0 O h m

RTemp

- 2 7 3 . 1 5

PN_ Type

R a n d o m P N

Распределение фазы Данные фазового шума Выходное сопротивление Температура

Случайное распределение фазового шума

5.5.2. Соединение сборников временных выборок

Выберем компоненту TimedSink из библиотеки «Sinks» и изменим ее имя на «Iout». Соединим его с выходом демодулятора I.

Скопируем компоненту TimedSink и соединим его к выходу Q демодулятора, изменив имя на «Qout».

Установим входной импеданс сборника данных на 50 Ом, шунтируя резистором между входом и землей. Выполним моделирование.

Рис. 5.25. Подключение многотонового генератора

врежиме добавления белого шума

5.5.3.Просмотр демодулированных I и Q

108

Откроем окно DDS и поместим прямоугольный график для показа потока демодулированных символов Iout и Qout.

Рис. 5.26. Временная зависимость компонент Iout и Qout

Теперь полезно ответить на вопросы:

1.Откуда появляется задержка на .493 uS? Подсказка: Разверните схему демодулятора, используя кнопку иерархии.

2.Как эта задержка должна быть учтена при расчете характеристик Error

Vector Magnitude и Bit Error Rate?

Рис. 5.27. Квадратурный демодулятор работает с опорным генератором, в качестве которого используется входной сигнал

5.6. Сигнальное созвездие на выходе

109

5.6.1. Выборки выходных сигналов Output I and Q

Поставим компоненту «Clock», «SampleAndHold» и «TkXYPlot» на выход демодулятора:

Скопируем командой Copy элементы Clock, SampleAndHolds, и TKPlots

из входного раздела на выход демодулятора. Изменим параметр Delay элемента Clock:

Delay= 2*Filt_delay_time + (0.5*Sym_time)

Этим будут учитываться дополнительная задержка фильтра с приподнятым косинусом в демодуляторе (Заметим: оно должно быть установлено на

1.5*Filt_delay_time + (0.5*Sym_time),

поскольку имеется только 12 символов задержки, но мы будем изменять задержку фильтра в демодуляторе позднее, в главе 6).

Изменим имя TkXYPlot на «Demodulated Constellation».

Поместим компоненту TkPlot и обозначим его «Eye Diagram». Установим следующие параметры:

Geometry = 500 x 400+0+0

XTitle = SamplesYTitle = VoltsXRange = 0 10YRange = -1 1Persistence = 300Style = ConnectUpdate Size = 100

Присоединим выход Q демодулятора.

110

Рис. 5.28. Включение элементов выборки для улучшения сигнального созвездия

5.6.2. Сэмплированное сигнальное созвездие на выходе

Выполним моделирование и выведем результаты расчета сигнального созвездия (рис. 5.29).

Рис. 5.29. Сэмплированное сигнальное созвездие

Рассматривая рис. 5.29, возникает вопрос: почему сигнальное созвездие на выходе выглядит лучше, чем диаграмма «Filtered Constellation» в модуляторе? Ответ на этот вопрос можно получить, есть рассмотреть, как характеристика фильтра с приподнятым косинусом распределяется между модулятором и демодулятором.

111

5.6.3. Просмотр глазковой диаграммы на выходе

Выберем команду «View>All», чтобы увидеть всю глазковую диаграмму

(рис. 5.30).

Установим параметры осей. Ось x представляет выборки, но не время. В этом примере выбрано 20 выборок на символ, так что xRange устанавливается от 0 до 10 чтобы перекрыть 20 выборок (или длительность одного символа) один поверху другого. Ось x может быть преобразована во время, умножая шаг времени timestep на номер выборок (т.е. от 0 до 20

выборок = от 0 до 20samples*(4.115uS/sample) = 0 – 82.3uS).

Рис. 5.30. Глазковая диаграмма. По оси x отложены номера выборок (всего

20)

5.7. Влияние фазового шума

Добавим фазовый шум из источника N_Tones (рис. 5.31) и рассмотрим его влияние на глазковую и звездную диаграммы. Отредактируйте следующие параметры в элементе N_Tones:

PhaseNoiseData = 100 -50 10 -60 10000 -70 100000 –80,

где сначала идет смещение частоты (в Гц), а затем следует уровень фазового шума (в dBc/Hz).

112

Рис. 5.31. Символ и параметры многотонового генератора

Результаты (сигнальное созвездие и глазковая диаграммы) для демодулированного сигнала показаны на рис. 5.32.

Рис. 5.32. Глазковая диаграмма и сигнальное созвездие в присутствии фазового шума (о чем свидетельствует отсутствие точки схода реализаций на глазковой диаграмме)

Точки на сигнальном созвездии, при воздействии фазового шума, разбросаны больше, что означает больше «неопределенности» в решении. Также отметим, что глазковая диаграмма не имеет определенной «точки» в момент осуществления выборки (причина, из-за чего сигнальное

созвездие имеет большую размазанность).

Все это приведет к ухудшению параметра частоты передачи ошибочных битов (BER) для того же самого отношения сигнала к шуму (SNR).

Итак, в главе 5 была исследована базовая система квадратурной фазовой модуляции QPSK.

113

Для удобства все параметры были установлены, используя блок VAR.Чтобы вывести графики звездной и глазковой диаграммы использовались интерактивные компоненты TkPlots.

Затем были добавлены схемы SampleAndHold, чтобы произвести выборки в центре символов и получить правильное сигнальное созвездие для системы с ограниченной полосой.

Чтобы выделить I и Q данные, использовался демодулятор квадратурной фазовой модуляции QPSK.

Были рассмотрены демодулированные I и Q символьные потоки и была учтена задержка, из-за фильтров с приподнятым косинусом в модуляторе и демодуляторе. Эта задержка будет важна при рассмотрении характеристик качества системы типа Error Vector Magnitude и Bit Error Rate.

Также было проанализировано влияние фазового шума гетеродина на звездную и глазковую диаграммы.