Как выполнить анализ переходных процессов и моделирование источника шума с помощью LTspice

Добавлено 13 июля 2020 в 17:05

Рассмотрим несколько способов моделирования источников шума (как для анализа переходных процессов, так и для анализа шума) в LTspice.

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

Данная статья предполагает, что у вас есть опыт работы с параметрами анализа переходных процессов и шума, которые можно найти в меню Simulation (Моделирование) → Edit Simulation Command (Редактировать команду моделирования), и некоторые знания о шуме в компонентах схемы, таких как резисторы.

Моделирование 1: источники для анализа шума в частотной области

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

Начнем с нового специального числа: 60,328 × 1018. Не волнуйтесь, его не будут спрашивать в тесте. Это значение резистора, которое, по мнению LTspice, будет генерировать 1,000001 В/Гц1/2 теплового шума. Вы можете получить такое же значение, если используете много значащих цифр в расчете теплового шума резистора, т.е. \(\sqrt{4k_{B}TR}\). Ключ к описанному здесь источнику – использование резистора в качестве генератора белого шума.

Рисунок 1 Использование резистора в качестве генератора белого шума
Рисунок 1 – Использование резистора в качестве генератора белого шума

Напряжение шума, создаваемое резистором, является входом для источника напряжения, управляемого напряжением. Это компонент "e" в библиотеке компонентов LTspice. Источник "e" здесь использует значение 1 для получения на выходе шума 1 В/Гц1/2. Изменение значения на 0,001 дает 1 мВ/Гц1/2 и так далее. Другой резистор с таким же значением подключен ко входу источника тока, управляемого напряжением ("g" в библиотеке), для создания токового шума.

«Бесшумная» функция в LTspice

Далее приведены некоторые подробности об этой схеме.

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

Резистору R102 назначен недокументированный атрибут компонента "noiseless" (бесшумный), который указывает LTspice игнорировать резистор в качестве источника шума. Эта функция очень полезна, потому что не нужно из результатов измерения вычитать дополнительный шум от резистора.

Атрибут "noiseless" добавляется с помощью редактора атрибутов компонентов (Component Attribute Editor), который вызывается удерживанием клавиши Ctrl и щелчком правой кнопкой мыши на условном обозначении резистора. Добавьте слово "noiseless" в качестве дополнительного значения (Value2). Дважды щелкните на поле Vis. (видимый), чтобы дополнительное значение отображалось на схеме.

Я назвал токовый выход "cnoise" вместо "inoise", чтобы избежать путаницы с "inoise", используемым LTspice в качестве специальной метки. V100 и V101 – это входные источники, которые требуются для моделирования шума.

Моделирование 2: использование случайных функций во временной области

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

В LTspice встроены источники напряжения или тока с произвольным поведением. Они называются "B" функциями, и мы будем использовать "bv" из библиотеки. Источник тока – это "bi". B-источники для задания выходных сигналов используют функции. В LTspice есть три функции, которые создают «шумные» или случайные последовательности чисел, используемые в качестве входных данных для этих источников.

Эти три функции – это RAND(), RANDOM() и WHITE(). Они производят псевдослучайные последовательности чисел с различными характеристиками.

Рисунок 2 Использование источников напряжения с произвольным поведением в качестве генераторов шума
Рисунок 2 – Использование источников напряжения с произвольным поведением в качестве генераторов шума

На рисунке показан инвертирующий усилитель, повторенный три раза. Каждый экземпляр использует одну из трех функций. Графики во временной области показывают различия в выходных сигналах. RAND() – верхний график. Выходной сигнал не сглаживается, и его форма не выглядит «нечеткой», как нам хотелось бы. Средний график – RANDOM(). RANDOM() выдает сглаженный выходной сигнал, но в нем заметно смещение по постоянной составляющей. Нижний график – WHITE(). Выходной сигнал немного более плавный, и в нем нет смещения по постоянному напряжению.

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

Моделирование включает в себя директивы .MEASURE, которые печатают среднеквадратичные и пиковые значения сигналов в журнал ошибок SPICE. Ниже показаны результаты этого запуска моделирования.

whrms: RMS(v(whiteout))=0.238969 FROM 0 TO 0.1
rdmrms: RMS(v(randomout)+0.5)=0.247377 FROM 0 TO 0.1
rdrms: RMS(v(randout)+0.5)=0.27391 FROM 0 TO 0.1
whpp: PP(v(whiteout))=0.97515 FROM 0 TO 0.1
rdmpp: PP(v(randomout))=0.975855 FROM 0 TO 0.1
rdpp: PP(v(randout))=0.975857 FROM 0 TO 0.1

"wh--" – это WHITE(). "Rdm--" – это RANDOM(). "Rd--" – это RAND(). Напряжение пик-пик должно быть близко к 1 вольт. Отношение значения пик-пик к среднеквадратичному значению (RMS) должно составлять от 4 до 6, что характерно для белого шума. Обратите внимание, что смещение из RAND() и RANDOM() удалено.

Верхняя частота источника контролируется путем передачи функции внутренней переменной времени, умноженной на масштабный коэффициент. Многое из этого не документировано. Эксперимент! Вот два графика, на которых показаны масштабные коэффициенты 1000 и 10000.

Рисунок 3 Получение шума с разной полосой частот с помощью масштабных коэффициентов псевдослучайных функций
Рисунок 3 – Получение шума с разной полосой частот с помощью масштабных коэффициентов псевдослучайных функций

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

Рисунок 4 Сравнение выходных данных псевдослучайных функций
Рисунок 4 – Сравнение выходных данных псевдослучайных функций

Иногда RANDOM() и WHITE() описываются как версии RAND() с фильтрацией нижних частот. Эти подробные графики показывают, что это не так. Кроме того, WHITE() - это не просто смещенная версия RANDOM(). Ниже показана разница этих двух функций с вычтенным смещением. Эта разница существенная.

Рисунок 5 Разница выходных данных псевдослучайных функций WHITE() и RANDOM()
Рисунок 5 – Разница выходных данных псевдослучайных функций WHITE() и RANDOM()

Моделирование 3: использование PWL во временной области

Другой метод во временной области использует PWL (Piecewise Linear, кусочно-линейный) источник. Фрагменты формы сигнала задаются в текстовом файле списком пар время-напряжение. Ниже показано начало файла из 1000 точек, который я создал с помощью электронной таблицы и функции RND(). Вывод RND() смещен на -0,5, чтобы центрировать значения относительно 0. Большинство программ для работы с электронными таблицами должны принимать "=RND( )-0.5".

0.001     0.2054203753
0.002     0.4484326853
0.003     0.1923825948
0.004     0.01742015759
0.005    -0.1907726361
0.006    -0.1055641709
0.007     0.4320814403
0.008     0.08668131624
0.009    -0.02411717432
0.010     0.006584482657
0.011    -0.1113930451

LTspice использует пробельные разделители. В примере я использовал табуляцию. Поместите файл в тот же каталог, что и ваша схема, и введите имя файла в поле "PWL File" при настройке PWL функции для источника. Например, я использовал имя "random_data.txt".

Рисунок 6 Использование кусочно-линейного источника напряжения в качестве генератора шума
Рисунок 6 – Использование кусочно-линейного источника напряжения в качестве генератора шума

Ниже показаны результаты измерения напряжения пик-пик и среднеквадратичного значения для данного запуска.

txtdatarms: RMS(v(fileout))=0.233475 FROM 0 TO 1
txdatapp: PP(v(fileout))=0.998355 FROM 0 TO 1

Данные из запуска моделирования могут быть экспортированы в текстовый файл в том же формате, что и входной файл. Смотрите File (Файл) → Export data as text (Экспорт данных в виде текста). Ниже приведено начало экспортированного файла для запуска данного моделирования. LTspice добавил запись для времени, равного 0, которого нет во входном файле. При сравнении входных и выходных файлов видны инвертирование операционного усилителя и другие эффекты схемы.

      time                      V(fileout)

0.000000000000000e+000        -2.023313e-001
1.000000000000000e-003        -2.023313e-001
2.000000000000000e-003        -4.453379e-001

Бонусный совет: экспорт в аудиофайл .wav

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

.wave random_data.wav 16 44.1K V(fileout)

Вы создали конвертер файлов .csv в .wav. Бесплатно!

Заключение

В данной статье представлено несколько способов моделирования источников «белого» шума и рассмотрены некоторые их ограничения. Есть и другие креативные способы создания источников шума в LTspice. Например, некоторые люди используют полупроводниковые устройства для создания 1/ƒ шума. Если вы хотите поделиться каким-либо способом, оставляйте комментарии ниже.

Статьи по теме

Теги

CAD / САПР (система автоматизированного проектирования)LTspiceБелый шумМоделированиеПереходной процессШум

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.