Функции Perfomance
и анализ Фурье в Micro-Cap 9
Данная статья продолжает знакомить читателей с некоторыми новыми возможностями программ Micro-Cap 8 (июль 2004 г.) и Micro-Cap 9 (январь 2007 г.)ю Начало — в предыдущем номере журнала [3].
Иосиф ЗЛАТИН
Функции Performance
Программа Micro-Cap 9 (в дальнейшем MC9) предоставляет группу функций для измерения характеристик, связанных с графиками. Эти функции позволяют измерять время нарастания, время спада, длительность импульса, частоту, период и много других параметров. Эти функции могут использоваться для анализа любого графика, сгенерированного во время анализа. Есть несколько путей использования функций Performance:
• Режим Immediate (без промежуточных стадий): в этом режиме необходимо нажать на кнопку Go to Performance 0 и выбрать функцию из списка. Тогда функция будет применена к графику, определенному в списке графиков Expression.
• Performance Tag: в этом режиме левая кнопка мыши используется для размещения маркера Performance, который измеряет параметр Performance для графиков. Сюда входят многовариантный анализ, анализ Monte Carlo или простые динамические редактирования.
• Графики Performance: в этом режиме выполняют несколько моделирований, многовариантно изменяя числовой параметр, а затем создают график, показывающий, как функция Performance изменяется с изменением переменных. Можно создать двухмерные и трехмерные графики Performance.
• Графики Monte Carlo: в этом режиме производится множество моделирований анализа Monte Carlo, а затем создается гистограмма, показывающая, как функция Performance изменяется статистически. Все функции Performance извлекают
единственное число (функцию Performance) из графиков. Таким образом, функции Performance — своего рода сокращение данных. Они уменьшают массив точек, например график V(OUT) от времени, до единственного числа, например Rise Time.
Определение функций Performance
Программа MC9 содержит группу функций для измерения связанных с рабочими ха-
рактеристиками параметров графиков. Это
следующие функции:
• Rise_Time — находит N-е время нарастания выражения Y при определенных значениях Low (нижнее значение) и High (верхнее значение). Она размещает курсоры в этих двух точках данных, а результатом является разность между величинами выражения X в этих двух точках. Эта функция используется для того, чтобы измерить время нарастания графиков во временной области.
• Fall_Time — отмечает N-е время спада выражения Y при определенных величинах Low (нижнее значение) и High (верхнее значение). Она размещает курсоры в этих двух точках данных, а результатом является разность между величинами выражения X в этих двух точках. Эта функция полезна для измерения времени спада графиков во временной области.
• Peak_X — находит N-й локальный пик выбранного выражения Y. Пиком является любая точка данных, превышающая соседние точки по обе стороны от нее. Она размещает левый или правый курсор в точке данных, а результатом является значение выражения X.
• Peak_Y — идентична функции Peak_X, но результатом является выражение Y. Эта функция используется для измерения выбросов графиков во временной области и пиков колебаний коэффициентов передачи фильтров при анализе AC.
• Valley_X — отмечает N-й локальный минимум выбранного выражения Y. Точка минимума определяется как любая точка данных с меньшим значением, чем соседние точки данных по обе стороны от нее. Она размещает левый или правый курсор в точке данных, а результатом является значение выражения X.
• Valley_Y — идентична функции Valley_X, но результатом является значение выражения Y. Она полезна для измерения отрицательного выброса во временной области и максимумов затухания в фильтрах при анализе AC.
• Peak_Valley — отмечает N-й пик и N-ю точку минимума выбранного выражения Y.
Она размещает курсоры в этих двух точках данных, а результатом является разность между значениями выражения Y в этих двух точках. Эта функция полезна для измерения колебаний, выбросов и амплитуды.
• Period — точно измеряет временной период графиков, вычисляя разность X между моментами поочередного достижения среднего значения Y в интервале моделирования, где булево выражение — логическая единица. Функция работает лучше всего на графиках, которые проходят через свое среднее значение один раз за период. Она не будет работать хорошо на графиках, которые содержат большие гармоники. Функция размещает курсоры в двух найденных точках данных и определяет разность между значениями выражения X в этих двух точках.
• Frequency — частота, численное дополнение функции Period. Она ведет себя, как функция Period, но определяется как 1/Period.
• Width — измеряет длительность графика выражения Y, обнаруживая N-й и N+1-й примеры определенного значения Level (Уровень). Затем она размещает курсоры в этих двух точках данных и определяет разность между значениями выражения X в указанных точках.
• High_X — находит глобальный максимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения X.
• High_Y — находит глобальный максимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения Y.
• Low_X — находит глобальный минимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения X.
• Low_Y — находит глобальный минимум выбранной области выбранного выражения Y, размещает левый или правый курсор в точке данных и определяет значение выражения Y.
• X_Level — находит N-й пример определенного значения Y Level, размещает там левый или правый курсор и определяет значение выражения X.
• Y_Level — находит N-й пример определенного значения X Level, размещает там левый или правый курсор и определяет значение выражения Y.
• X_Delta — находит N-й пример определенного диапазона выражения Y, размещает курсоры в этих двух точках данных и определяет разность между значениями выражения X в этих точках.
• Y_Delta — находит N-й пример определенного диапазона выражения X, размещает курсоры в двух точках данных и определяет разность между значениями выражения
Y в этих точках.
• X_Range — находит диапазон X (максимум — минимум) для N-го примера определенного диапазона Y. Сначала она ищет определенные значения выражения Y Low и Y High, а затем находит все точки данных между этими двумя для самых больших и самых маленьких значений X, размещает курсоры в этих точках и определяет разность между значениями выражения X в этих точках. Она отличается от функции X_Delta, которая определяет разность в максимумах и минимумах величины X в указанном диапазоне Y, а не разность в значениях X в указанных конечных точках Y.
• Y_Range — находит диапазон Y (максимум — минимум) для N-го примера определенного диапазона X. Сначала она обнаруживает указанные выражения X Low и X High, а затем ищет все точки данных между этими двумя для наибольшего и наименьшего значения Y, размещает курсоры в этих точках и определяет разность между значениями выражения Y в этих точках. Она отличается от функции Y_Delta, которая определяет разность между максимальным и минимальным значением Y в указанном диапазоне X, а не разность в значениях Y в указанных конечных точках X. Эта функция полезна для измерения колебаний затухания фильтра.
• Slope — размещает курсоры в двух точках данных, которые разнесены вблизи определенного значения X, и определяет крутизну между этими двумя курсорами.
• Phase_Margin — находит запас по фазе графика. Эта функция доступна только в анализе AC.
• RMS — находит среднеквадратичное значение RMS выбранного выражения Y. Функция вычисляется в диапазоне от XMin до XMax.
• Average — обнаруживает среднее значение выбранного выражения Y. Функция вычисляется в диапазоне от XMin до XMax.
Эти функции могут использоваться на
единственном графике анализа Monte Carlo,
при оптимизации и составлении трехмерного графика 3D.
Диалоговое окно Performance Function
Когда моделирование завершено, нажмем кнопку Go to Performance Function 0. Откроется диалоговое окно Performance Function (рис. 1).
Есть две вкладки: Performance и Cases.
Вкладка Cases позволяет выбирать область, если несколько областей доступно при многовариантном анализе. Вкладка Performance позволяет выбирать функцию Performance, для применения к выбранной области графика, выбранной на вкладке Cases.
Вкладка Performance имеет следующие поля:
• Function — здесь выбирается одна из функций Performance.
• Expression — здесь выбирается выражение для функции.
• Boolean — булево выражение должно быть логической единицей для функций Performance. Обычно эта функция используется, чтобы исключить некоторую нежелательную часть графика исследуемой функции. Типичное выражение: «T>100ns». Оно указывает программе исключать любые точки данных, для которых T<=100ns.
• N — целое число, которое определяет, какой из вариантов необходимо обнаружить и измерить. Например, это может быть измеренная длительность импульса. Значение N увеличивается каждый раз, когда нажимаем на клавишу Go To, измеряя каждый последующий пример.
• Low — определяет нижнее значение, которое используется подпрограммами исследования. Например, в функции Rise_Time она определяет нижнее значение, при котором измерен нарастающий фронт.
• High — определяет высшее значение, которое используется подпрограммами исследования. Например, в функции Rise_Time она определяет высшее значение, при котором измерен нарастающий фронт.
• Level — определяет значение уровня для использования подпрограммами исследования. Например, в функции Width она определяет значение выражения, при котором измерена длительность.
Кнопки внизу окна выполняют следующие функции:
• Go To (Left) — эту кнопку обозначают Go To, когда функция Performance, как
и следовало ожидать, позиционирует оба курсора (как делают функции Rise_Time и Fall_Time). Она обозначается Left, когда любой левый или правый курсор, но не оба, позиционируются функцией. При обозначении Left эта кнопка размещает левый числовой курсор в позицию, предписанную функцией Performance.
• Right — эта кнопка размещает правый числовой курсор в позицию, предписанную функцией Performance. Например, функция Peak может позиционировать любой левый или правый курсор.
• Help — эта кнопка обеспечивает доступ к локальной справочной информации для диалогового окна.
• Close — эта кнопка закрывает диалоговое окно.
• Default Parameters — эта кнопка устанавливает параметры по умолчанию для функций, которые имеют их.
Графики функции Performance
Графики функций Performance могут быть созданы, когда выполняется сложный анализ с вариацией температуры или параметров. Откроем файл примера PERF1. Выполним анализ переходных процессов. Результаты моделирования показаны на рис. 2.
В меню Transient выберем Performance Windows/Add Performance Window. Откроется диалоговое окно Properties For Performance (рис. 3).
Опишем вкладку Plot:
• Curves — это окно списка позволяет выбрать график, на котором будут определяться функции Performance. Клавиши Add и Delete внизу этого окна позволяют добавлять или удалять определенный график Performance.
• Title — это поле позволяет определять название графика. Если справа выбрано Auto, название создается автоматически.
• X Axis — этот раскрывающейся список позволяет выбирать многовариантную переменную, используемую для оси X.
• Runs — если разрешено Accumulate Plots, этот раскрывающийся список позволяет выбирать номер выполнения моделирования, которое необходимо использовать. Номер выполнения моделирования — просто числовой индекс каждого нового выполнения, созданный в динамическом режиме редактирования.
• X Axis позволяет выбирать многовариантную переменную для использования для оси X.
• Temperature — если температура также изменялась многовариантно, то для каждого значения создается отдельный график. Этот раскрывающийся список позволяет выбирать температуру для работы с графиком функции Performance.
Рис. 1. Диалоговое окно Performance Function
■Ш
в Е*е Е<* Compor*n aflndwvs Qpoons Irars»rc Scope Mores Cart > belp -!glK
» U H «& ■ - r > * ’ = Е1П0В PO
•* --?• is — if л й T tf ► ■ •• / / m я □ i > * * ua rWJyfi'vs /K'VWA 0*o V V
t00l ^cwci.ioop « b-
l-H-H-l —
Рис. 2. Результаты моделирования анализа переходных процессов
!'S Fie EcM Componert Wndom Opbom Tranuett Scope MorteC -IffJ *
* ы н aa - - p> • • ргпъпп a p o =a & * s в % a
ц s • ^ — t -j • • т ts* A7 и m □ * > -» ' .... , ... у ^ ^ *Q.
Hi Ttfne^pUT} 1 1 1^яС
)0TO* I ЛПп :«On 3 (П> 4 flCTci Б с
feu Tmrfvwoni.l.li
CJ
Рис. 4. График Performance Rise Time (времени нарастания)
Curve — этот флажок указывает, будет ли отображаться выбранный график функции Performance. Если необходимо скрыть график или группу графиков, надо удалить галочку, щелкнув в поле Show.
Plot Group — этот раскрывающийся список управляет групповым номером графика.
What To Plot — эта группа позволяет выбирать функцию Performance и ее параметры.
• Stepped Variables List — если больше чем одна переменная изменяется многовариантно, будет один или несколько списков. Эти списки позволяют выбирать, какой пример многовариантно изменяемой переменной функции (или переменных функций) Performance обрабатывается. Если многовариантно изменяются R1, L1 и C1 (например, каждое имеет 5 значений) и выбирают R1 для переменной оси X, то появятся списки для L1 и C1. Из этих двух списков можно выбрать любой из 5x5 = 25 возможных графиков и получить график функции Performance от значения R1. Нажмем на кнопку OK. Этим выбирается функция Rise_Time с параметрами по умолчанию и создается график Performance, показанный на рис. 4. Этот график показывает, как время нарастания V (1) (измеренное между 1 и 2 вольтами) изменяется от значения C1 с единственной многовариантно изменяемой переменной. Дважды щелкнем по графику или нажмем F10. Откроется диалоговое окно Properties. Нажмем кнопку Add. Нажмем кнопку Get и выберем Fall_Time из списка
Function. Нажмем дважды OK. В окно рабочих характеристик добавится график функции Fall_Time (рис. 5).
Нажмем F11 ив открывшемся окне Stepping нажмем Yes в группе Step It панели R1. Нажмем OK и F2. Результаты моделирования показаны на рис. 6.
Нажмем CTRL + F6 и увидим график Performance (рис. 7).
При новых выполнениях моделирования C1 изменяется от 0,1 до 4,6 нФ, а R1 — от 12,5 до 50 Ом. График показывает функции только от переменной C1. Двумерный график 2D может показать только функции от одной переменной. Другая переменная при этом должна быть постоянна. В этом случае график строится только для R1 =12,5 Ом. Чтобы увидеть другие значения, нажмем F10 и выберем новое значение R1. График Performance Fall_Time для R1 =25 Ом показан на рис. 8.
Когда две или больше переменных изменяется многовариантно, можно рассматривать результаты другим способом. Можно выполнить график Performance в трехмерном виде 3D. Для иллюстрации выберем Add 3D
Рис. 5. Графики Performance Rise и Fall Time (времени нарастания и времени спада)
Рис. 6. Многовариантное изменение C1 и R1
Рис. 7. Графики Performance для R1 = 12,5 Ом
Рис. 8. График Performance Fall_Time для R1 = 25 Ом
Window/3D Windows в меню Transient. В диалоговом окне 3D Properties выберем Performance из списка Y Axis и укажем функцию Fall_Time в списке Function. Нажмем OK. Результат показан на рис. 9. Этот трехмерный график 3D показывает, что функция Fall_Time представляет график в направлении вертикальной оси Y. С1 изменяется вдоль горизонтальной оси X, а R1 изменяется вдоль перпендикулярной чертежу оси Z. Это — те же самые данные, но представленные в другом виде. Фактически, если рассматривается трехмерный график, то можно увидеть двухмерный график Fall_Time внутри него (рис. 9).
Анализ Фурье
Fast Fourier Transforms (быстрое преобразование Фурье) — совокупность математических функций для извлечения частотновременной информации из сигнала, полу-
ченного в результате анализа переходных процессов и графиков анализа AC. Для вычисления этих математических функций используется внутренняя подпрограмма Fast Fourier Transform (FFT). Для этого нужны два основных параметра:
• N — число точек данных;
• DF — частота выборки.
N определяется значением в поле Number of Points на вкладке FFT диалогового окна Plot Properties (F10). N обычно равно 1024 и может быть:
- Minimum (Минимум) = 64, или 26;
- Maximum (Максимум) = 1 048 576, или 220.
DF вычисляется следующим образом:
- Для анализа переходных процессов:
DF = 1-я гармоника = 1/(<Upper Time Limit> — < Lower Time Limit>), где <Upper Time Limit> и <Lower Time Limit> — на вкладке FFT диалогового окна Plot Properties (F10).
- Для анализа AC:
DT = Time Step (временной шаг) = 1/DF = N/<Upper Frequency Limit>, где <Upper Frequency Limit> — на вкладке FFT диалогового окна Plot Properties (F10).
DF — интервал между точками выборки в выходном FFT, также упоминается как первая гармоника.
Функции FFT могут использоваться и в AC, и в анализе переходных процессов. Разрешающей способностью, диапазоном и точностью FFT управляют параметры N и DF.
Увеличение <tmax> в анализе переходных процессов уменьшает DF, приводя к более высокой разрешающей способности по частоте и более низкой максимальной частоте, начиная с fmax = (N-1)xDF. Рост N увеличивает верхнюю частоту диапазона.
Увеличение <fmax> в анализе AC уменьшает временной шаг DT, приводя к более высокой разрешающей способности временного шага и более низкому tmax, начиная с tmax = (N-1)xDT. Рост N увеличивает максимальный временной диапазон.
Функции Fast Fourier Transform
Функции Fast Fourier Transform (FFT):
• HARM(u[,BW]) — определяет амплитуду (среднее множество синусоидальных и косинусоидальных функций) гармоник сигнала u. BW — дополнительное выражение ширины полосы.
• THD(S[,FR]) — определяет суммарный коэффициент гармонических искажений спектра S как процент амплитуды гармоники опорной частоты FR.
• IHD(S[,FR]) — ведет себя точно так же, как функция THD, но определяет индивидуальное нелинейное искажение как процент амплитуды гармоники опорной частоты FR.
• FFT(u) — определяет классическое преобразование Фурье сигнала u. Она не определяет гармоники, как это делает HARM.
FFT(u) вычисляет ряд коэффициентов Фурье, масштабируемых N/2 (DC масштабируется N).
Функции HARM, THD и FFT преобразовывают сигнал временной области в спектр частотной области. Когда одно из них используется в выражении Y, выражение X должно быть частотой F. Диапазон X должен первоначально устанавливаться между 5*DF и 10*DF.
• FS(u,[[n1],n2]) — изображение частичного ряда Фурье сигнала u, собрание составляющих от n1 до n2. N1 по умолчанию 0, а n2 — Number of Points/2.
• RES(u,[[n1],n2]) — функция вычета показывает сигнал u за вычетом составляющих Фурье от n1 до n2. N1 по умолчанию 0. N2 по умолчанию 1. RES(u) является RES(u,0,1) и таким образом показывает искажения компонентов 2-ой и высших гармоник.
• FFTS(u[,BW]) — прямое преобразование Фурье сигнала u, масштабируется так, чтобы создавалась RE(FFTS(u)) — последовательность косинусоидальных коэффициентов ряда Фурье и IM(FFTS (u)) — последовательность синусоидальных коэффициентов ряда Фурье. Она подобна функциям HARM (). BW — дополнительное выражение ширины полосы.
• IFT(S) определяет классическое обратное преобразование Фурье спектра S. Спектр — перечень значений некоторых комплексных выражений от частоты. В анализе AC все выражения имеют этот тип, таким образом, IFT(V(1)) создает поддающиеся интерпретации результаты. В анализе переходных процессов не имеет смысла IFT(V(1)), так как V(1) сигнал временной области. Однако выражение IFT (FFT (V(1))) создает значимые результаты в анализе переходных процессов. IFT преобразует спектр частотной области в сигнал временной области — так, когда IFT используется в выражении Y, выражение X должно быть временем T. Начальный диапазон времени должен устанавливаться между 10*DT и 100*DT.
• IFTS(S) — масштабируемое обратное преобразование Фурье спектра S. Масштабирование осуществляется так, чтобы IFTS(FFTS(u)) = u.
• CONJ(S) — определяет спектр, сопряженный с S. Сопряженным комплексным числом a+b-j является a-b-j. Эта функция просто отрицает мнимую часть спектра. Пример:
CONJ(FFT(V(1))) — спектр, сопряженный FFT (V(1)).
• CS(u1,u2) — определяет спектр взаимной корреляции двух сигналов u1 и u2. Спектр взаимной корреляции определяется как CONJ(FFT(u2))*FFT(u1)*DT*DT.
Пример:
CS(V(1),V(2)) — спектр взаимной корреляции V(1) и V(2).
• AS(u) — определяет спектр сигнала u. Спектр определяется как
AS(u) = CONJ(FFT(u))*FFT(u)*DT*DT.
Пример:
AS(I(RL)) — спектр сигнала I (RL).
• AC (u) — автокорреляция сигнала u. Описание:
AC(u) = IFT(CONJ(FFT(u))*FFT(u))*DT. Эта функция полезна для обнаружения периодических сигналов, скрытых в шумах. Пример:
RE(AC(V(10))) — автокорреляция сигнала
V (10).
• CC(u,v) — взаимная корреляция сигнала u и v. Описание:
CC(u,v) = IFT(CONJ(FFT(v))*FFT(u))*DT. Эта функция полезна для обнаружения запаздывания между двумя периодическими сигналами.
Пример:
CC(V(1),V(2)) — взаимная корреляция сигналов V(1) с V(2).
• COH(u,v) — функция когерентности сигналов u и v. Описание:
COH(u,v) = CC(u,v)/sqrt(AC(u(0))*AC(v(0))). Пример:
COH(V(1),V(2)) V(1) — когерентность сигналов V(1) с V(2).
Операторы FFT — математические функции, позволяющие управлять выходными функциями FFT. Операторы FFT приведены в таблице 1.
Может использоваться как длинная, так и короткая формы записи. Заметим, что функция MAG избыточна. Составление гра-
Таблица 1. Операторы FFT
Короткая форма записи Длинная форма записи Функция
RE(S) REAL(S) Вещественная часть спектра S
IM(S) IMAG(S) Мнимая часть спектра S
MAG(S) MAG(S) Амплитуда спектра S
PH(S) PHASE(S) Фаза спектра S
фика V(1) — то же самое, что составление графика MAG (V(1)), так как подпрограммы составления графика всегда составляют график амплитуды конечного результата.
Точность нижних гармоник влияет главным образом на время или частотный шаг выполнения анализа. Если есть много высокочастотных составляющих, то точность будет воздействовать на N, так как N определяет fmax. Фактически N не имеет влияния на точность нижних гармоник.
Скорость FFT обычно — линейная функция от N. Всегда используйте значение N как можно меньше. Значение N, равное 1024, — почти всегда правильный выбор. Помните, N воздействует только на fmax, потому что fmax = N*DF. Иногда можно увеличить tmax для уменьшения DF, чтобы получить большую разрешающую способность по частоте. Это имеет побочный эффект — уменьшение fmax. Таким образом, возможно, необходимо увеличить N, чтобы сохранить желательное fmax.
Пример FFT
Поясним, как используются функции FFT, загрузив файл FFT1 (рис. 10).
Эта схема содержит узел, к которому присоединен источник функции с выходным выражением:
1.5+1.0*SIN(2*PI*T*1E6)+
+2.0*COS(2*PI*T*2E6)+
+3.0*SIN(2*PI*T*3E6)
Этот источник генерирует сигнал, который является результатом смешивания чистых синусоид. В этой схеме отсутствует переходной процесс в начальный момент вре-
9 Miero-Cap 9 0 0 0 - [С FT1 CIR]
R File ЕЛ Component Wndows Options Ana^sis Design Mode ч та' p.;M \ і
виш- a p о n
я rt ? Я Q,
This circuit illustrates the use of DSP functions and complex operators in transient analysis. These operators include:
THD... Cumulative total harmonic distortion in percent due to 2’nd through N/2 harmonics, relative to the 1'st harmonic.
HARM .Returns the harmonic values as a magnitude.
FFTS...Scaled Forward Discrete Fourier Transform as a complex expression
Re(FFTS(v(t))) shows the real magnitude of the harmonics of the waveform V(1). lm(FFTS<v(1))) shows the imaginary magnitude of the harmonics of the waveform V(1). FFT...Forward Discrete Fourier Transform
X(k>= Sum from n=0 to N-1 of (x(n)*exp<-2*pi*j*k*n/N))
Ph(FFT(v(1))) shows the phase angle IFT.. Inverse Discrete Fourier Transform
x(k)» (1/N)’Sum from n*0 to N-1 of (X(n)*exp(2*piTI<*n/N))
RE....Real part of a complex expression IM....Imaginary part of a complex expression MAG...Magnitude of a complex expression PH....Phase angle of a complex expression Plots always show the magnitude of the final expression. sqrt(realpartA2-*-imagpartA2).
WV1
yC 1.5-H.0*SIN(2‘PIT*1E6)+2.0’COS(2*PrT2E6)+3.0*SIN(2*PrT*3E6)
[ні ФімГуРч». U^X«o<***iXwo/
►Г
Рис. 10. Схема FFT1
Таблица 2. Результаты
Составляющие Частота, МГц Амплитуда
DC G 1,5
1 1 1,G
2 2 2,G
3 3 3,G
!■ Transient Analysis Limits Ixl
fi Rtf» 1 60S J иеос*к... | Proeert»i...| tieto-. |
Т«Г*Р4П09 Іч fiun Options [кут*
Мв^мг»Т1твЯер In Зівів V«»laUn l^ero
Nunba of Ports R Opе»*тдР9« Г AccimOetePtott
Tenoer«Use |lne* 127 Г ОрсгЛпд Port Or*y
Retrace P.iГЛ Г Auto Scale Рапдм
Годе liU X Caprcnion | УСшргсі*х> | X flange I \ .
ВІІ1Г гг b jlO.-JO
[и ШИШ “ГГ ^Urt*V(D) {SMeQ.O.Jefc (5,0.1
ішіанші ~wr |T«4Her«(V(l))) |зМг$,0,1е6 |soo,o,ioo
Рис. 11. Диалоговое окно FFT1 Analysis Limits
мени (ввиду отсутствия в ней индуктивностей и емкостей).
Выберем Transient в меню Analysis. Диалоговое окно Analysis Limits показано на рис. 11. Это диалоговое окно поясняет несколько важных шагов для получения хороших результатов с функциями FFT.
Шаг І
Функции FFT зависят от правильного выбора частоты выборки DF и достаточного количества точек данных N. Значение DF определяется как DF = F1 = 1 / tmax.
Формат поля Time Range:
Если tmin — нуль, поскольку это наиболее типичное значение, то <tmax> — значение, устанавливаемое в поле Time Range. Тогда DF = F1 = 1/Time Range.
Это требует, чтобы tmax > 1/FMIN, где FMIN — наименьшая ожидаемая гармоника.
Устанавливаем tmax > l/FMIN. Если вы не уверены в том, какова FMIN, предположите, что она равна самой низкой частоте любых источников входных сигналов, существующих в схеме. Если там источники не представлены, как в примере для генератора, используют ожидаемую частоту генератора.
Шаг 2
Точностью FFT будет управлять минимальный шаг времени. Уменьшение шага лучше, но это приводит к увеличению времени анализа. Хорошее эмпирическое правило — DT равно 0,1% периода. Устанавливаем Minimum Time Step в 0.001/FMIN.
Шаг 3
Установим выражение X равным F.
Шаг 4
Удостоверимся, что горизонтальный масштаб установлен для наблюдения интересующей частоты. Установим X Range наименьшим кратным числом DF (установим X Range от 10*DF до 50*DF).
Шаг 5
Функции FFT предполагают, что сигнал является периодическим. Если схема будет иметь непериодические начальные переходные процессы, то они генерируют погрешности в вычислениях FFT. Удалим их, используя вкладку FFT в диалоговом окне Plot Properties. Так как эта схема не имеет конденсаторов или индуктивностей, то нет начального переходного процесса, таким образом, нет необходимости в этой предосторожности. В общем случае необходимо устанавливать Lower Time Limit в диалоговом окне FFT
Parameters, чтобы исключались начальные переходные процессы.
Нажмем F2 для выполнения моделирования. Результаты моделирования показаны на рис. 12.
Второй график, показывая HARM (V(1)), содержит результаты, сведенные в таблицу 2.
Для пояснения воздействия изменения tmax изменим Time Range, установив его равным 10 мкс, и изменим X Range первого сигнала V(1), установив его равным 10 мкс. Для выполнения анализа нажмем F2. Результаты анализа показаны на рис. 13.
Обратите внимание, что функция HARM () не изменилась, а THD — изменилась. По определению, функция THD использует первую гармонику или опорную частоту. Поскольку мы изменяем tmax с 1 мкс на 10 мкс, частота первой гармоники изменяется:
• Старая первая гармоника =
= 1 МГц = 1/1 мкс.
• Новая первая гармоника =
= 100 кГц = 1/10 мкс.
• Опорная частота изменилась с 1 МГц на 100 кГц.
Для устранения этой проблемы необходимо определить дополнительный второй параметр FR. Например, в этом случае мы использовали бы: THD(HARM(V(1)),1MEG).
Программа сканирует значения N*DF и обнаруживает соответствующее N=10, потому что 10*DF = 10*100 кГц = 1 M^.
Она затем использует 10-ю гармонику (1 МГц) как опорную частоту THD. Графики тогда выглядят, как показано на рис. 14.
Обратите внимание, что THD теперь показывает ожидаемые значения 0% при 1 МГц, 200% при 2 M^ и т. д.
<tmax>[,<tmin>]
Рис. 13. График с tmax = 10u
Рис. 14. График с tmax = 10u и FR = 1 МГц
Панель управления FFT
Функции FFT и окна FFT используют параметры вкладки FFT диалогового окна Plot Properties (F10) для управления функциями FFT. Когда отображен график анализа, к нему можно получить доступ, нажав F10. К нему также можно получить доступ, дважды щелкнув по графику анализа, либо с помощью клавиши Properties в диалоговом окне Analysis Limits. Вкладка FFT показана на рис. 15.
Upper Time Limit устанавливает верхний предел времени для функций FFT. Вообще он устанавливается кратным основному периоду, обычно 3-5 периодов.
Lower Time Limit устанавливает нижний предел времени для функций FFT. Вообще он устанавливается кратным основному периоду, чтобы избежать переходных процессов заданного сигнала, и обычно равен 2-4 периодам. Разность между верхними и нижними пределами времени должна быть одним основным периодом.
Рис. 1S. Панель управления FFT
Можно также использовать эти переменные в полях пределов времени:
• TMAX — максимальное время анализа переходного процесса;
• TMIN — время запуска анализа переходных процессов.
Number of Points — устанавливает число интерполированных точек данных, исполь-
зуемых для функций FFT. Обычно 1024, 2048 или 4096.
Auto Scaling — управляет опциями автомасштабирования для функций FFT и включает эти опции:
• Include DC Harmonic — эта опция включает гармонику DC, когда автомасштабирование выполнено. Обычно она блокирована.
• Auto Scale First .... Harmonics — это число определяет число гармоник при включении масштабирования.
Для примера загрузим файл FFT7 и выполним анализ переходных процессов. Результаты моделирования показаны на рис. 16.
Рассмотрим график V(B). Начальный участок этого графика представляет непериодический переходной процесс. FFT предназначено для применения к периодическим сигналам, и любое отсутствие периодичности обнаруживается как побочная гармоника низкой частоты. Чтобы устранить переходные процессы и сопутствующие гармоники, нажмем F10 и перейдем на вкладку FFT. Установим Upper Time Limit равным 400ms. Установим Lower Time Limit равным 200ms. Нажмем OK и нажмем F2, чтобы повторно запустить анализ переходных процессов. Это означает, что часть сигнала до 200 мс должна быть удалена. Часть сигнала от 200 до 400 мс должна быть сохранена. Результаты моделирования отображены на рис. 17.
Вкладка FFT определяет следующее:
1. Удаление части сигнала V(B) от 0 до 200 мс.
2. Создание нового сигнала интерполированием 1024 равноотстоящих точек из старой области первоначального сигнала (от 200 до 400 мс).
3. Применение функции HARM к этому новому сигналу.
Верхняя часть графика показывает усеченный, интерполированный сигнал V(B) с его удаленной частью от 0 до 200 мс. Нижняя часть показывает HARM(V(B)). С удалением переходного процесса сигнала и его побочных гармоник истинное содержание гармо-
Рис. 16. График с начальными переходными процессами
Рис. 17. График без начальных переходных процессов
ник установившегося состояния теперь показано более ясно.
Окно FFT
Создание графика функций FFT может оказаться сложной задачей, а чтобы упростить ее, можно использовать окно FFT. Для пояснения, как это сделать, загрузим схему FFT1 и выполним анализ переходных процессов. После выполнения анализа выберем опцию Add FFT Window в Transient menu/FFT Windows. Откроется диалоговое окно FFT (рис. 18).
Диалоговое окно FFT имеет следующие вкладки:
Вкладка Plot (рис. 18):
• Окно Curves позволяет добавлять и выбирать графики FFT, к которым обращаются поля Title, Show, Plot Group, What To Plot и Expression.
• Поле Title позволяет выбирать название графика.
• Curve — разрешает или блокирует показ выбранного графика.
• Раскрывающийся список Plot Group служит для выбора группы графиков для функции FFT.
• What To Plot — выбирает, какой из нескольких операторов используется.
• Раскрывающийся список Expression служит для выбора графика функции FFT, с которым будут работать.
Вкладка Format позволяет управлять различными форматами, масштабированием и числовыми особенностями графиков в окне FFT.
Вкладка Colors, Fonts, and Lines позволяет управлять цветом, шрифтом и другими особенностями отображения графиков в окне FFT.
Вкладка Scope обеспечивает доступ к обычным функциям Scope для графика.
|><—| Cata Гам» «л41т | So»t| ОТ | t«d(«|
См< та»
|иааМП Р
Cm*
Р Sbaa р 3
WHloPta
м*д Г Л г • г Ыё г
С vm* [71 ^
_-j _£—)
| О» I С— | W I Нф I
Рис. 18. Диалоговое окно FFT Window Properties
Вкладка управления FFT позволяет управлять функциями FFT, используемыми в окнах FFT. Она не применяется к функциям FFT, используемым в графиках анализа.
Вкладка Tool Bar позволяет управлять кнопкой панели управления, которая появляется в окне FFT. Нажмем на кнопку OK, чтобы открыть окно FFT (рис. 19). В этом окне отображен график первых 10 гармоник V(1). ■
Литература
1. Разевиг В. Д. Схемотехническое моделирование с помощью Micro-Cap 7. М.: Горячая линия-Телеком, 2003.
2. Златин И. Л. Синтез аналоговых активных и пассивных фильтров в Micro-Cap 8 // Компоненты и технологии. 2006. № 1.
3. Златин И. Л. Новые возможности программы схемотехнического моделирования Micro-Cap // Компоненты и технологии. 2007. № 10.
4. Micro-Cap 9. Electronic Circuit Analysis Program User's Guide. Sunnyvale: Spectrum Software, 2007 (http://www.spectrum-soft.com/manual.shtm).
5. Micro-Cap 9. Electronic Circuit Analysis Program Reference Manual. Sunnyvale: Spectrum Software, 2007 (http://www.spectrum-soft.com/manual.shtm).
Рис. 19. Окно FFT