Разработка моделей первичных сигналов
в программной среде MathCAD
В статье рассматривается методика разработки моделей первичных сигналов в программной среде MathCAD для их дальнейшего использования в системах схемотехнического моделирования радиоэлектронных устройств. Материал может оказаться полезным разработчикам аналоговой аппаратуры, а также студентам, аспирантам и преподавателям, специали-Роман АНТИПЕНСКИЙ зирующимся в области проектирования и моделирования радиоэлектрон-
[email protected] ных устройств, предназначенных для обработки аналоговых сигналов.
При проектировании и моделировании радиоэлектронных устройств с помощью систем схемотехнического моделирования (ССМ), таких как OrCAD, Microcap DesignLab [1], и других, часто приходится использовать различные источники сигналов для проверки проектируемой схемы на предмет безыскаженной передачи (преобразования) первичного сигнала. При этом имеющиеся в подобного рода программах источники сигналов не всегда в полной мере удовлетворяют запросам разработчиков. Для исследования характеристик схем в условиях воздействия реальных сигналов и помех часто приходится разрабатывать собственную модель сигнала, а затем использовать ее при моделировании схемы в ССМ. В связи с этим весьма полезным является освое-
ние принципов построения моделей сигналов, используемых в радиоэлектронных устройствах. Настоящая публикация знакомит читателя с методикой разработки моделей первичных сигналов с использованием программной среды МаШСАО [2] и последующего их использования в качестве источников сигналов из внешнего файла в ССМ радиоэлектронных устройств DesignLAB.
К первичным (модулирующим) сигналам обычно относят сумму нескольких гармонических составляющих (телефонное сообщение) и различные импульсные последовательности [3]. При этом основными представлениями сигналов являются временное (зависимость амплитуды сигнала от времени) и спектральное (зависимость амплитуды или фазы гармонических составляющих сиг-
нала от частоты). Задача заключается в разработке моделей сигналов, которые позволили бы получить их временное представление в виде массивов значений (отсчетов), а спектральные характеристики (комплексный спектр сигнала) можно будет получить с использованием быстрого преобразования Фурье [3] с помощью выражения:
5(ш) = ]Б{1)хечш<И, (1)
где Б(ї) — массив временных значений сигнала. Для реализации этого преобразования в системе MathCAD воспользуемся встроенным быстрым Фурье-преобразованием в виде функции (Б(ї)) [2].
Рассмотрим методику построения модели телефонного сообщения в виде суммы нескольких гармонических составляющих, аппроксимирующих спектр реального телефонного сообщения (ТЛФС) и имеющих регулируемые случайные пределы отклонения амплитуд, частот и начальных фаз:
N,-1
3ТЛФС ~
к=О
ХС08(2л(^+<^)^.+Ф4), (2)
где Бк, итк — частоты и их амплитуды, аппроксимирующие спектр реального ТЛФС; іик, іРк — случайные отклонения амплитуд и частот гармонических составляющих; ф^ — начальные фазовые сдвиги частот; Ыг — количество гармонических составляющих сигнала. Покажем, каким образом наша аналитическая модель (2) преобразуется в программный код MathCAD (рис. 1).
Поясним введенные идентификаторы и программный код модели. В строках 1-4 задаем амплитуды и частоты тринадцати гармонических составляющих телефонного сообщения, в строке 5 формируем отсчеты индексной переменной ) — управляющей
■чг ¥ е" 3 Um2:=1,6 Um3:=1,4 Um4:= =1,1 GO О II. E Um6:=0,7 Um7:=0,6
F, := 200 F2 := 400 F3 := 600 F4 := 800 F5:=1000 F6:=1200 F7:=1400
Uma:=1,4 Um9:=1,6 Um10:=1,4 Um„ :=1,1 Um 12 ;=0,8 Um13:=0,7
F8:=200 F9 := 400 F10:=600 F„” 800 F12:= = 1000 F13:= 1200
j :=1.. 10000 tj := j-10- 6 fj := j -102
N :=13 к; :=1..N um := max (Um)
фк := md(Umk)' л dU := runif(14, — 0,2, 0,2) dF := runif(14, - ■10,10)
Fk:=Fk+dFk Umk := Umk + dUk
N T.
Ti:= S -cos(2-ic-Fk-tj + фк) R := max(T) sti:=_L
k= 1
vT:
SwT := cfft(st) vTj:= | SwTj r:= max(vT) bTj := —
r
Рис. 1. Программный код модели телефонного сообщения
Форма ТЛФ сигнала
Спектр ТЛФ сигнала
-1
а І о )01 /о, >02 \/tfo 03 ф W 04
ьт,
I
0,5
I I
, ...II ,1...
0 1000 2000 3000 4000
fr
Рис. 2. Форма и спектр телефонного сигнала
переменной, которую будем использовать для индексации массивов, необходимых в модели, а также формируем отсчеты времени t] и частоты ^. В строке 6 задаем количество гармонических составляющих и индексную переменную k. В строке 7 формируем начальные фазовые сдвиги, отклонения амплитуд и частот, причем, если установить маркер в какое-либо из этих полей (выражений), то каждый раз при моделировании будут генерироваться новые значения параметров и это отразится на выходном сигнале. В строке 8 пересчитываем значения частот и амплитуд с учетом сгенерированных случайных сдвигов. В строке 9 формируем временное представление сигнала и выполняем его нормировку. В строке 10 рассчитываем комплексный спектр сигнала БыТ, его модуль уТ и выполняем нормировку амплитудно-частотного спектра (АЧС) результирующего сигнала, используя переменную г. Результат присваиваем идентификатору ЬТ и строим график полученного массива от отсчетов частоты ^. На рис. 2 показаны форма и спектр телефонного сигнала, полученные с помощью модели (2).
Итак, мы построили простую и удобную для управления параметрами модель первичного сигнала в виде суммы нескольких гармонических составляющих. Мы можем изменять амплитуды, частоты и начальные фазы каждой составляющей сигнала и видеть результаты изменений этих параметров на временном и спектральном представлении их суммы. Единственное, что осталось сделать — это записать в файл результат формирования временного представления сигнала для его использования в качестве входного сигнала в системе схемотехнического моделирования РЭУ. В ССМ DesignLAB предусмотрен источник сигнала из файла, при этом данные в файле необходимо представить в следующем формате:
(<отсчет времени 1> , <отсчет амплитуды 1>)
(<отсчет времени 2> , <отсчет амплитуды 2>)
(<отсчет времени N> , <отсчет амплитуды N>).
Поясним введенные обозначения. Мы сформировали массив всего из двух значений (0 и 1) для индексной переменной i, которая будет участвовать в формировании двумерного массива sig по правилу: если i = 0, то в j-элемент массива записываем отсчет времени j, если не равен нулю (равен 1) — то записываем отсчет сигнала sj. Затем формируем файл с именем sig.dat, он будет размещаться в том же каталоге, что и наш файл с моделью. Следует также сказать о том, что для правильной записи результатов моделирования в файл, необходимо в программе MathCAD установить следующие значения системных параметров PRN File Settings: Precision (точность отображения) = 10, Column Width (ширина столбца) = 20.
Покажем теперь, как выполнить ввод и моделирование испытательной схемы для проверки модели сигнала в DesignLAB 8.0. Введем схему, показанную на рис. 3.
В качестве источника сигнала воспользуемся компонентом VPWL_FILE (источник на-
пряжения, заданный в файле) и установим значение его атрибута File=sig.dat. Сохраним собранную схему, поместив в папку со схемой файл sig.dat, зададим параметры директивы временного анализа и выполним моделирование. В окне программы Probe системы DesignLAB мы увидим точно такой же сигнал, который первоначально был создан нами с помощью программы MathCAD (рис. 4).
Разработаем модель первичного сигнала в виде последовательности прямоугольных импульсов с управляющими параметрами длительности импульса, периода следования импульсов и числа импульсов в моделируемом фрагменте. Хотя подобного рода сигналы можно сгенерировать и с помощью имеющихся в ССМ источников сигналов, модель такого сигнала понадобится нам для создания источников сигналов с дискретной модуляцией, которых, к сожалению, в системе DesignLAB нет. Алгоритм формирования последовательности импульсов Nu с заданной длительностью tu и периодом следования Таналитически можно записать с помощью условной функции вида:
ж>=/
cl < х < с2, d\, d2
(З)
где с1, с2 — значения переменной х, определяющие границы условия; d1 — значение, принимаемое функцией при выполнении условия; ей — значение, принимаемое функцией при невыполнении условия. Тогда, представив импульсную последовательность в виде суммы одиночных импульсов, смещенных друг относительно друга по оси времени на длительность импульса и периода их следования tuxn+Txn, получим алгоритм формирования последовательности импульсов с заданной скважностью и длительностью импульсов:
n(fJ=%F
\ + T'x.n<ti<t3+tuy.n-\-T'x.n,
1,
L0
(4)
где tз — длительность интервала задержки последовательности относительно момента времени Ц = 0; Nи — количество импульсов
Для того чтобы наш сигнал выглядел в файле подобным образом, добавим в модель следующий программный код:
□ V(R1:1)
Время
i:=0...1 sigy:=if (i=0, tj, stj) WRITEPRN («sig.dat»):=sig
Рис. 4. Результаты моделирования источника сигнала в системе DesignLAB
N,-1 Т т tA -Xn<t<tA -х(л +1), К ' 3 К К-1 AW т т tA -Xn+Pxk<t<tA -x(n + l)+Pxk, 3 Nu 1 3 Nuy j
md=LF мп, (5) Mn,
п=0 0 к=0 п=0
в последовательности: tи, Т — длительность и период следования импульсов для заданной скважности с=ТНи. В выражении (4) формируется массив значений Л, в котором для каждого г-го отсчета определено значение, откладываемое по оси ординат: 1 — если отсчет времени Ц находится в пределах длительности импульса (удовлетворяется условие), и 0 — во всех остальных случаях (условие не удовлетворяется). Просуммировав полученные таким способом одиночные импульсы, смещенные по оси времени на интервал Тп, получим требуемую последовательность импульсов с варьируемыми значениями длительности и периодом следования.
На языке МаШСАБ выражение (3) можно ввести с помощью условной функции 1Т(а^,у1,у2) [2]. Тогда программа для формирования временного представления импульсной последовательности может быть записана следующим образом. Задаем начальные значения параметров й — длительность импульса, Т — период следования импульсов, пг — количество импульсов в пачке:
й: = 10х10-3 пг: = 5 Т: = 40х10-3.
Формируем массивы управляющей переменной /, отсчетов времени / и частоты /, отсчетов импульсной последовательности а} в соответствии с выражением (4):
/: = 0.. .10000 / : = /хЮ-4 %: = /
пг-1
а: = ^г%(Тхп < / < и +Тхп, 1, 0).
п=0
Для генерирования дискретных сигналов с кодовым формированием импульсов воспользуемся все тем же принципом суммирования элементарных импульсов, но сдвинутых друг относительно друга по оси времени на длительность единичной посылки Тп/Ыих п. Для этого сформируем кодовый массив М = (т0, т1, т2...тЫи-1), в котором число элементов равно числу единичных импульсов. Так, например, для семиэлементного произвольного кода массив можно представить в виде М = [1110010]. Тогда алгоритм формирования кодовой посылки импульсов с использованием (4) запишется в виде выражения (5), где t3 — длительность интервала задержки кодовой посылки относительно момента времени Ц = 0; Ыи — количество импульсов в посылке; Тп — длительность кодовой посылки.
Для получения последовательности, состоящей из нескольких посылок, разделенных временными промежутками, просум-
мируем сдвинутые по времени посылки на длительности элементарного импульса и периода повторения посылки Tn /Nuxn +Pxk. Тогда алгоритм (5) следует записать в виде (6), где t3 — длительность интервала задержки кодовой посылки относительно момента времени t{ = 0; Nu — количество импульсов в посылке; Тп — длительность кодовой посылки; Nn — количество посылок в последовательности; Р — период повторения посылок.
Приступим к созданию модели первичного сигнала в виде импульсной последовательности с кодовым формированием единичных посылок. Задаем начальные значения параметров Тс — длительность пачки импульсов, Per — период следования пачек импульсов, Кс — количество импульсов в пачке и mk — значения единичных посылок:
• длительность пачки импульсов
Тс = 10х10-3;
• период следования пачки импульсов/количество пачек
Per = 20x10-3/N: = 2;
• кодовая последовательность
Kc: = 5, m0= 1, m1 = 0, m2 = 1, m3 = 0, m4 = 1, m5 = 1.
Формируем массивы управляющей переменной /, отсчетов времени / и частоты /, отсчетов импульсной последовательности а в соответствии с выражением (6), отсчетов одиночного импульса а1/ длительностью Тс и отсчетов одиночного импульса а2 / длительностью Тс/Кс, которые являются вспомогательными при анализе спектра последовательности:
/: = 0.10000 /: =/х10-4
N Кс-1
а: = ^ Хг/(Тсхп/Кс+Регхк < / <
к=0 п=0
< Тс /Кс+Тс хп/Кс+Рег хк, тп, 0)
%: = / а1: = (0 < / < Тс, 1, 0)
а2/: = г/(0 < / < Тс /Кс, 1, 0).
В результате получим график временного представления импульсной последовательности с кодовым формированием единичных посылок, показанный на рис. 5.
Спектры импульсной последовательности Ь/ с кодовым формированием единичных посылок, одиночных импульсов Ь1/ и Ь2 / с длительностями Тс и Тс/Кс соответственно показаны на рис. 6.
Используя рассмотренную методику разработки моделей сигналов в программной
1.1
Tc Per
0,003 0,006 0,009 0,012 0,015 0,018 0,021 0,024 0,027 0,030
ti
Рег+Тс
Рис. 5. Временное представление импульсной последовательности с кодовым формированием единичных посылок
Ь)
Ы|
Ь2:
i
1-103
Рис. 6. Спектры одиночных импульсов и последовательности с кодовым формированием единичных посылок
среде МаЛСАЭ, читатель самостоятельно сможет создать источники первичных сигналов для моделирования с их помощью различных радиоэлектронных устройств.
В следующих статьях будет показано, каким образом можно с использованием рассмотренного подхода разработать модели сигналов с аналоговой и дискретной модуляцией, а также модели некоторых сложных сигналов. ■
Литература
1. Разевиг В. Д. Система сквозного проектирования электронных устройств DesignLab 8.0. М.: Солон, 1999.
2. Saffe R. C. Random Signals for Engineers using MATLAB and MathCAD. Springer — Verlag. 2000.
3. Гоноровский И. С. Радиотехнические цепи и сигналы. М.: Радио и связь, 1986.