Разработка моделей первичных сигналов в программной среде MathCAD

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

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

При проектировании и моделировании радиоэлектронных устройств с помощью систем схемотехнического моделирования (ССМ), таких как OrCAD, Microcap DesignLab [1], и других, часто приходится использовать различные источники сигналов для проверки проектируемой схемы на предмет безыскаженной передачи (преобразования) первичного сигнала. При этом имеющиеся в подобного рода программах источники сигналов не всегда в полной мере удовлетворяют запросам разработчиков. Для исследования характеристик схем в условиях воздействия реальных сигналов и помех часто приходится разрабатывать собственную модель сигнала, а затем использовать ее при моделировании схемы в ССМ. В связи с этим весьма полезным является освоение принципов построения моделей сигналов, используемых в радиоэлектронных устройствах. Настоящая публикация знакомит читателя с методикой разработки моделей первичных сигналов с использованием программной среды MathCAD [2] и последующего их использования в качестве источников сигналов из внешнего файла в ССМ радиоэлектронных устройств DesignLAB.

К первичным (модулирующим) сигналам обычно относят сумму нескольких гармонических составляющих (телефонное сообщение) и различные импульсные последовательности [3]. При этом основными представлениями сигналов являются временное (зависимость амплитуды сигнала от времени) и спектральное (зависимость амплитуды или фазы гармонических составляющих сигнала от частоты). Задача заключается в разработке моделей сигналов, которые позволили бы получить их временное представление в виде массивов значений (отсчетов), а спектральные характеристики (комплексный спектр сигнала) можно будет получить с использованием быстрого преобразования Фурье [3] с помощью выражения:

где S(t) — массив временных значений сигнала. Для реализации этого преобразования в системе MathCAD воспользуемся встроенным быстрым Фурье-преобразованием в виде функции Сfft (S(t)) [2].

Рассмотрим методику построения модели телефонного сообщения в виде суммы нескольких гармонических составляющих, аппроксимирующих спектр реального телефонного сообщения (ТЛФС) и имеющих регулируемые случайные пределы отклонения амплитуд, частот и начальных фаз:

где Fk, Umk — частоты и их амплитуды, аппроксимирующие спектр реального ТЛФС; dUk, dFk — случайные отклонения амплитуд и частот гармонических составляющих; φk — начальные фазовые сдвиги частот; Nг — количество гармонических составляющих сигнала. Покажем, каким образом наша аналитическая модель (2) преобразуется в программный код MathCAD (рис. 1).

Рис. 1. Программный код модели телефонного сообщения

Поясним введенные идентификаторы и программный код модели. В строках 1–4 задаем амплитуды и частоты тринадцати гармонических составляющих телефонного сообщения, в строке 5 формируем отсчеты индексной переменной j — управляющей переменной, которую будем использовать для индексации массивов, необходимых в модели, а также формируем отсчеты времени tj и частоты ƒj . В строке 6 задаем количество гармонических составляющих и индексную переменную k. В строке 7 формируем начальные фазовые сдвиги, отклонения амплитуд и частот, причем, если установить маркер в какоелибо из этих полей (выражений), то каждый раз при моделировании будут генерироваться новые значения параметров и это отразится на выходном сигнале. В строке 8 пересчитываем значения частот и амплитуд с учетом сгенерированных случайных сдвигов. В строке 9 формируем временное представление сигнала и выполняем его нормировку. В строке 10 рассчитываем комплексный спектр сигнала SwТ, его модуль vT и выполняем нормировку амплитудно-частотного спектра (АЧС) результирующего сигнала, используя переменную r. Результат присваиваем идентификатору bT и строим график полученного массива от отсчетов частоты ƒj. На рис. 2 показаны форма и спектр телефонного сигнала, полученные с помощью модели (2).

Рис. 2. Форма и спектр телефонного сигнала

Итак, мы построили простую и удобную для управления параметрами модель первичного сигнала в виде суммы нескольких гармонических составляющих. Мы можем изменять амплитуды, частоты и начальные фазы каждой составляющей сигнала и видеть результаты изменений этих параметров на временном и спектральном представлении их суммы. Единственное, что осталось сделать — это записать в файл результат формирования временного представления сигнала для его использования в качестве входного сигнала в системе схемотехнического моделирования РЭУ. В ССМ DesignLAB предусмотрен источник сигнала из файла, при этом данные в файле необходимо представить в следующем формате:

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

Поясним введенные обозначения. Мы сформировали массив всего из двух значений (0 и 1) для индексной переменной i, которая будет участвовать в формировании двумерного массива sig по правилу: если i = 0, то в j-элемент массива записываем отсчет времени tj, если не равен нулю (равен 1) — то записываем отсчет сигнала stj . Затем формируем файл с именем sig.dat, он будет размещаться в том же каталоге, что и наш файл с моделью. Следует также сказать о том, что для правильной записи результатов моделирования в файл, необходимо в программе MathCAD установить следующие значения системных параметров PRN File Settings: Precision (точность отображения) = 10, Column Width (ширина столбца) = 20.

Покажем теперь, как выполнить ввод и моделирование испытательной схемы для проверки модели сигнала в DesignLAB 8.0. Введем схему, показанную на рис. 3.

Рис. 3. Испытательная схема с источником сигнала из файла

В качестве источника сигнала воспользуемся компонентом VPWL_FILE (источник напряжения, заданный в файле) и установим значение его атрибута File=sig.dat. Сохраним собранную схему, поместив в папку со схемой файл sig.dat, зададим параметры директивы временного анализа и выполним моделирование. В окне программы Probe системы DesignLAB мы увидим точно такой же сигнал, который первоначально был создан нами с помощью программы MathCAD (рис. 4).

Рис. 4. Результаты моделирования источника сигнала в системе DesignLAB

Разработаем модель первичного сигнала в виде последовательности прямоугольных импульсов с управляющими параметрами длительности импульса, периода следования импульсов и числа импульсов в моделируемом фрагменте. Хотя подобного рода сигналы можно сгенерировать и с помощью имеющихся в ССМ источников сигналов, модель такого сигнала понадобится нам для создания источников сигналов с дискретной модуляцией, которых, к сожалению, в системе DesignLAB нет. Алгоритм формирования последовательности импульсов Nи с заданной длительностью tи и периодом следования Т аналитически можно записать с помощью условной функции вида:

где с1, с2 — значения переменной х, определяющие границы условия; d1 — значение, принимаемое функцией при выполнении условия; d2 — значение, принимаемое функцией при невыполнении условия. Тогда, представив импульсную последовательность в виде суммы одиночных импульсов, смещенных друг относительно друга по оси времени на длительность импульса и периода их следования tu×n+T×n, получим алгоритм формирования последовательности импульсов с заданной скважностью и длительностью импульсов:

где tз — длительность интервала задержки последовательности относительно момента времени ti = 0; Nи — количество импульсов в последовательности: tи , Т — длительность и период следования импульсов для заданной скважности q = T/tи. В выражении (4) формируется массив значений I1, в котором для каждого i-го отсчета определено значение, откладываемое по оси ординат: 1 — если отсчет времени ti находится в пределах длительности импульса (удовлетворяется условие), и 0 — во всех остальных случаях (условие не удовлетворяется). Просуммировав полученные таким способом одиночные импульсы, смещенные по оси времени на интервал Tn, получим требуемую последовательность импульсов с варьируемыми значениями длительности и периодом следования.

На языке MathCAD выражение (3) можно ввести с помощью условной функции if(arg,y1,y2) [2]. Тогда программа для формирования временного представления импульсной последовательности может быть записана следующим образом. Задаем начальные значения параметров ti — длительность импульса, T — период следования импульсов, ni — количество импульсов в пачке:

Формируем массивы управляющей переменной j, отсчетов времени tj и частоты ƒj , отсчетов импульсной последовательности aj в соответствии с выражением (4):

Для генерирования дискретных сигналов с кодовым формированием импульсов воспользуемся все тем же принципом суммирования элементарных импульсов, но сдвинутых друг относительно друга по оси времени на длительность единичной посылки Tn/Nu×n. Для этого сформируем кодовый массив M = (m0, m1, m2…mNu–1), в котором число элементов равно числу единичных импульсов. Так, например, для семиэлементного произвольного кода массив можно представить в виде М = [1 1 1 0 0 1 0]. Тогда алгоритм формирования кодовой посылки импульсов с использованием (4) запишется в виде выражения (5), где tз — длительность интервала задержки кодовой посылки относительно момента времени ti = 0; Nи — количество импульсов в посылке; Тп — длительность кодовой посылки.

Для получения последовательности, состоящей из нескольких посылок, разделенных временными промежутками, просуммируем сдвинутые по времени посылки на длительности элементарного импульса и периода повторения посылки Tn /Nu×n + P×k. Тогда алгоритм (5) следует записать в виде (6), где tз — длительность интервала задержки кодовой посылки относительно момента времени ti = 0; Nи — количество импульсов в посылке; Тп — длительность кодовой посылки; Nп — количество посылок в последовательности; Р — период повторения посылок.

Приступим к созданию модели первичного сигнала в виде импульсной последовательности с кодовым формированием единичных посылок. Задаем начальные значения параметров Тс — длительность пачки импульсов, Per — период следования пачек импульсов, Кс — количество импульсов в пачке и mk — значения единичных посылок:

  • длительность пачки импульсов
  • период следования пачки импульсов/количество пачек
  • кодовая последовательность

Формируем массивы управляющей переменной j, отсчетов времени tj и частоты fj, отсчетов импульсной последовательности aj в соответствии с выражением (6), отсчетов одиночного импульса a1j длительностью Тс и отсчетов одиночного импульса a2j длительностью Тс/Кс, которые являются вспомогательными при анализе спектра последовательности:

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

Рис. 5. Временное представление импульсной последовательности с кодовым формированием единичных посылок

Спектры импульсной последовательности bj с кодовым формированием единичных посылок, одиночных импульсов b1j и b2j с длительностями Тс и Тс/Кс соответственно показаны на рис. 6.

Рис. 6. Спектры одиночных импульсов и последовательности с кодовым формированием единичных посылок

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

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

Литература

  1. Разевиг В. Д. Система сквозного проектирования электронных устройств DesignLab 8.0. М.: Солон, 1999.
  2. Saffe R. C. Random Signals for Engineers using MATLAB and MathCAD. Springer — Verlag. 2000.
  3. Гоноровский И. С. Радиотехнические цепи и сигналы. М.: Радио и связь, 1986.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *