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

Безуспешная генерация комплексного сигнала с векторным генератором сигналов

Здравствуйте. Попробую описать свою проблему, над которой бьюсь неделю... Уверен, что решение лежит где-то на повернхости, и просто из-за моей нехватки опыта или фундаментального понимания процесса, оно (решение), продолжает ускользать. Надеюсь на помощь "зала" :)

 

Итак, я пытаюсь сгенерировать комплесный сигнал (назовем его S1), который состоит из:

- Синусойда с частотой f1 (пусть будет 30Гц)

- "Под-несущая" с частотой f2 (пусть будет 10кГц), которая частотно модулированна (FM) частотой f1 (но с разнецой в фазе, psi). Для пущей сложности, амплитуда "под-несущей" f2 (10кГц), промодулированная АМ, частотой f3 (пусть будет 60Гц). И, наконец, боковые полосы частот FM "под-несущей" f2, поочередно подавляются с частотой f4 (пусть будет 1170Гц - четное f1).

 

(Описанный выше сигнал, S1, будет амплитудно модулировать несущую в полосе УКВ, но это не важно в рамках данной задачи, все что я пытаюсь сделать - это сгенерировать сигнал S1 при помощи векторного генератора сигналов.)

 

Есть люди, которые уже решали конкретно эту задачу, и подробно (но не без опечаток) описали ее решение в патенте. Сюда приведу только конечные уравнения, которыми этот комплексный сигнал S1, был описан в патенте:

 

I(S1) = (1 + Mv*cos(2*pi*f1)) * cos(psi) + (1 + Mv*cos(2*pi*f1)) * Mr*sin(2*pi*f2 - Mc*sin(2*pi*f3))

Q(S1) = (1 + Mv*cos(2*pi*f1)) * sin(psi) + (1 + Mv*cos(2*pi*f1)) * Mr*cos(2*pi*f2 - Mc*sin(2*pi*f3)) * sign(cos(f4))

 

Где Mv, Mr и Mc - индексы модуляции.

 

Проблема вот в чем. Измеряю выход векторного генератора, и вижу следующий спектр (центральная частота - это упомянутая RF нусещая, диапозон частот - 100кГц).

spectr.png

 

Частота под-несущей - 10кГц (и ее видно на одно деление от центра). Но откуда взялся этот "аллиасинг", что на 30 и 40кГц от центра?

Первое что приходит на ум - это что-то с ФНЧ на выходе векторного генератора... Но! Если я перестану "поочередно подавлять" боковые полосы поднесущей т.е. S1 примет вид:

 

S1 = 1 + Mv*cos(2*pi*f1) + Mr*cos(2*pi*f2 - Mc*sin(2*pi*f1)) * (1 + Md*cos(2*pi*f3))

 

... то весь этот "антиаллиасинг" изчезает. Частота дискретизации 4 * f2, т.е. оверсамплинг самой большой частоты S1 (10кГц) в 4 раза. Что это может быть? Правильны ли уравнения?

 

P.s. дописал и понял, насколько непросто кому-нибудь слету все это переварить...

Изменено пользователем honeycomb0

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


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

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

Изменено пользователем hsoft

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


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

Вот спектр комплексного сигнала (описанного выше) в Матлабе. Никаких аллиасов на 30 и 40кГц не видно...

spekrt_matlab.png

 

Кстати, частота реконструкционного фильтра векторного генератора 10МГц.

 

Изменено пользователем honeycomb0

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


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

Если в Matlab все в порядке, я предполагаю, что у Вас в железе нет ошибок, тогда можно сделать следующее.

Создаете в Simulink модель формулы включая все этапы, исходный сигнал, оцифровка, работа с целыми числами, формула,

преобразование и наконец вывод спектра. И затем создать контрольные точки вывода данных в железе и в Matlab.

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

Если у Вас FPGA то это очень простая и интересная задача.

И еще возможно векторный генератор "врет" из за неправильных настроек, попробуйте сделать независимый

аналоговый или цифровой фильтр и отловить несущие на Ваши 30..40КГц, и посмотрите уровень сигнала,

ну или синусоиду на выходе узкополосного фильтра.

 

И наконец если в Matlab Вы не добавляли в формулу шумы специально, то у Вас очень большой уровень фоновых

шумов, и похоже это ошибка вывода спектра в Matlab, я не помню точно, но там есть настройка которая убирает

это, у Вас максимум уровень шумов на частоте 40кГц должен быть -70dB от 0 уровня.

Изменено пользователем hsoft

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


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

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

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


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

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

 

Может генератор и анализатор по 10МГц затактировать от одного источника?

 

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


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

P.s. дописал и понял, насколько непросто кому-нибудь слету все это переварить...

 

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

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


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

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

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

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

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

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

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

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

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

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