реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Безуспешная генерация комплексного сигнала с векторным генератором сигналов
honeycomb0
сообщение Feb 24 2017, 15:10
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 28-08-14
Пользователь №: 82 671



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

Итак, я пытаюсь сгенерировать комплесный сигнал (назовем его 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кГц).


Частота под-несущей - 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 - Feb 24 2017, 15:13
Go to the top of the page
 
+Quote Post
hsoft
сообщение Feb 24 2017, 15:15
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 13-02-17
Пользователь №: 95 415



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

Сообщение отредактировал hsoft - Feb 24 2017, 15:20
Go to the top of the page
 
+Quote Post
honeycomb0
сообщение Feb 24 2017, 15:49
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 28-08-14
Пользователь №: 82 671



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


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


Сообщение отредактировал honeycomb0 - Feb 24 2017, 15:49
Go to the top of the page
 
+Quote Post
hsoft
сообщение Feb 24 2017, 16:16
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 13-02-17
Пользователь №: 95 415



Если в Matlab все в порядке, я предполагаю, что у Вас в железе нет ошибок, тогда можно сделать следующее.
Создаете в Simulink модель формулы включая все этапы, исходный сигнал, оцифровка, работа с целыми числами, формула,
преобразование и наконец вывод спектра. И затем создать контрольные точки вывода данных в железе и в Matlab.
Данные должны совпадать с высокой точностью. Так пройдясь по всему тракту преобразований найдете где ошибка.
Если у Вас FPGA то это очень простая и интересная задача.
И еще возможно векторный генератор "врет" из за неправильных настроек, попробуйте сделать независимый
аналоговый или цифровой фильтр и отловить несущие на Ваши 30..40КГц, и посмотрите уровень сигнала,
ну или синусоиду на выходе узкополосного фильтра.

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

Сообщение отредактировал hsoft - Feb 24 2017, 16:18
Go to the top of the page
 
+Quote Post
stealth-coder
сообщение Feb 24 2017, 20:24
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 27-12-08
Пользователь №: 42 786



Пару раз встречался с проблемой появления непонятных гармоник, оказывалось, что они порождаются соединением генератора и анализатора кабелем, стоило прямое соединение разорвать и сделать "передачу по эфиру", т.е. к выходу генератора подключить антенну и ко входу анализатора тоже подключить антенну, гармоники исчезали.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Feb 25 2017, 09:00
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(stealth-coder @ Feb 24 2017, 23:24) *
Пару раз встречался с проблемой появления непонятных гармоник, оказывалось, что они порождаются соединением генератора и анализатора кабелем, стоило прямое соединение разорвать и сделать "передачу по эфиру", т.е. к выходу генератора подключить антенну и ко входу анализатора тоже подключить антенну, гармоники исчезали.


Может генератор и анализатор по 10МГц затактировать от одного источника?
Go to the top of the page
 
+Quote Post
andyp
сообщение Feb 25 2017, 11:58
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(honeycomb0 @ Feb 24 2017, 18:10) *
P.s. дописал и понял, насколько непросто кому-нибудь слету все это переварить...


Такой "алиасинг" появляется от нечетной нелинейности в тракте. Вполне возможно, что то, что Вы суете в генератор, где-то ограничивается. Попробуйте уменьшить амплитуду сигнала.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2017 - 02:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016