Перейти к содержанию
    

Гармоники усилителя в Матлаб

Здравствуйте, решил сделать модель усилителя в матлаб. Почему-то не формируется вторая гармоника сигнала при подаче мощного сигнала, но зато формируется 3 гармоника. Подскажите какие настройки выставить, чтобы совпало с поведением в железе, там вторая гармоника появляется раньше третьей и имеет амплитуду больше амплитуды третьей гармоники. Информацию параметров усилителя взял из пдф на микросхему lee-49.

amplifier_version_1.JPG

Настраивал параметры ip2 в пределах от -100 до +100 дбм, не помогло.

amplifier_version_2.JPG

amplifier_test.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, Skryppy сказал:

не формируется вторая гармоника сигнала при подаче мощного сигнала, но зато формируется 3 гармоника.

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

На СВЧ, однако, такого не бывает, поэтому в реальности лезет вторая гармоника.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно, скорее всего нужно выбирать параметр Nonlinear polyn. type = even and odd. Но вторую гармонику не смог пока получить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то так и не смог добиться появления второй гармоники. Может кто подскажет как вручную настроить ограничение синусоиды несимметричным? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, Skryppy сказал:

Что-то так и не смог добиться появления второй гармоники. Может кто подскажет как вручную настроить ограничение синусоиды несимметричным? 

Покажите настройки всех блоков. Или модель сконвертируйте для версии 2016b.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модель сконвертировал. Посмотрите, пожалуйста. 

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

Снимок.JPG

Снимок2.JPG

 

 

Amplifier_test_2016b.slx

test_2016b.slx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, Skryppy сказал:

Не смог открыть модели, Матлаб говорит, что это версия 2019b...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 22.04.2020 в 14:12, Skryppy сказал:

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

Посмотрел. Вы несколько некорректно формируете входные и выходные сигналы, по сути на входе у Вас сейчас 2.6 ГГц несущая, а что на выходе понять сложно, по-видимому SimRF тоже не очень понял, что от него хотят:)

Не скажу, что сам все полностью понимаю, но вот два варианта, которые работают:

 

Amplifier_v1_2016b.slx

Amplifier_v2_2016b.slx

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое, завтра посмотрю, сейчас нет возможности . Завтра отпишусь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Итак, ещё раз спасибо, все заработало. Просветите меня по нескольким вопросам, пожалуйста.

1) правильно ли я понял, что в блоках inport если задаём несущую, carrier frequency, то он сам формирует ее, надо на входе константой только задать амплитуду?

2) почему при установлении значения 0 (по умолчанию), надо задавать частоту из вне, а если установить 1е9, то она сама сформируется? В хелпе матлаба не нашёл информации.

3) когда надо проставлять несущие в настройках блока outport: carrier, почему при установлении в блоке inport: 0 hz carrier, нельзя установить  другие частоты в настройках output: carrer frequency, вернее будут отображаться помехи, а не несущие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.04.2020 в 09:16, Skryppy сказал:

1) правильно ли я понял, что в блоках inport если задаём несущую, carrier frequency, то он сам формирует ее, надо на входе константой только задать амплитуду?

Да, но константа это частный случай. В общем же случае, на вход подаются отсчеты квадратур низкочастотного модулирующего сигнала I(t)+j*Q(t) (complex baseband signal), т.е. блок inport реализует функцию квадратурного модулятора. 

 

Это же ответ и на второй вопрос.

 

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

 

В 24.04.2020 в 09:16, Skryppy сказал:

3) когда надо проставлять несущие в настройках блока outport: carrier, почему при установлении в блоке inport: 0 hz carrier, нельзя установить  другие частоты в настройках output: carrer frequency, вернее будут отображаться помехи, а не несущие?

Для начала надо понимать общий принцип работы SimRF. Никаких реальных модуляций/демодуляций и переносов спектра в блоках inport/outport нет, как нет в SimRF и симуляций на высокой частоте. А есть только огибающая сигнала (вот эти вот отсчеты квадратур I(t)+j*Q(t)) и есть набор несущих частот, для которых (и только для которых) аналитически просчитывается прохождение огибающей через элементы схемы. Список несущих частот задается в блоке конфигурации (включая гармоники). Или же этот список формируется автоматически, на основании, в том числе, и несущих частот, заданных в блоке inport. Все, других частот SimRF просто не знает. Поэтому и попытка прописать любую другую частоту в блоке outport, кроме заданных в блоке конфигурации, и приводит к формированию на выходе нулей, для них расчет просто не делался.

 

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

 

На выходе блока inport формируется сигнал (квадратурную компоненту везде опускаю, т.к. она равна нулю):

 

y(t) = I(t)*cos(wc*t),

 

где I(t) это огибающая, в нашем случае это sin(w0*t), а wc – несущая частота, заданная в блоке inport, w0 = wc = 1.3ГГц.

 

Далее сигнал проходит через усилитель с нелинейной характеристикой:

 

y(x) = k1*x + k2*x^2 + k3*x^3,

 

и на выходе усилителя получаем:

 

ya(t) = k1*I(t)*cos(wc*t) + k2*I^2(t)*cos(wc*t)^2 + k3*I^3(t)*cos(wc*t)^3

 

Раскрываем степень у несущих частот и объединяем одинаковые частоты:

 

ya(t) = k1*I(t)*cos(wc*t) + k2*I^2(t)*[1 + cos(2*wc*t)]/2 + k3*I^3(t)*[3*cos(wc*t) + cos(3*wc*t)]/4

 

ya(t) = [k2*I^2(t)/2] + [k1*I(t) + k3*I^3(t)*3/4]*cos(wc*t) + [k2*I^2(t)/2]*cos(2*wc*t) + [k3*I^3(t)/4]*cos(3*wc*t)

 

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

 

Соответственно, блок outport в зависимости от режима формирует на выходе либо только огибающую для заданной несущей частоты (режим «Complex Baseband»), либо огибающую, умноженную на косинус этой самой несущей частоты (режим «Real Passband»).    

 

Т.е. если мы задаем в блоке outport несущую 1.3ГГц и режим «Complex Baseband», то на выходе увидим огибающую [k1*I(t) + k3*I^3(t)*3/4] => sin(w0*t) + sin(3*w0*t), иными словами 1.3ГГц и 3.9ГГц, что мы и наблюдаем в действительности. Да, результат на первый взгляд маловразумительный, но как уже говорил, надо понимать, что мы задаем на входе и что формируем на выходе.

 

Если w0 сделать не 1.3ГГц, а, к примеру, 100МГц, то получим входной двухтоновый сигнал 1.2ГГц и 1.4ГГц, симметричный относительно несущей. На выходе в этом случае будем иметь компоненты с частотами 100МГц и 300МГц, что соответствует реальному сигналу с частотами 1, 1.2, 1.4 и 1.6ГГц, где частоты 1 и 1.6ГГц – это интермодуляционные искажение 3-его порядка. Остальные интермодуляционные компоненты можно увидеть, задавая кратные несущие частоты.

 

Если несущая в блоке inport задана нулевой, то гармоник нет, SimRF анализирует только нулевую частоту, все 4 огибающие суммируются и соответствуют только нулевой частоте.

 

Изменено пользователем Самурай

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, за развернутый ответ. Мануалы скачал, буду подробней разбираться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Была попытка вставить формулу, как это было сделано в старой версии форума. Она провалилась...

Изменено пользователем Самурай

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...