программный перенос спектра

Feofan
Сообщения: 19
Зарегистрирован: 20 фев 2017, 22:51
Откуда: Москва

Re: программный перенос спектра

Сообщение Feofan »

Я специально проверил файл, перед тем как его загружать.
Вот воспроизведение первого файла через штатную программу для работы с sdr приемниками SDRSharp: https://www.youtube.com/watch?v=vR5pJvZpSgI.

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: программный перенос спектра

Сообщение Бахурин Сергей »

о должен заметить, спектр действительно симметричный. Надо строки заменить в коде.
Первая замена:

Код: Выделить всё

% перевожу стерео из файла в один комплексный сигнал
adc = adc(:,1) + 1i * adc(:,2);


вторая замена

Код: Выделить всё

% перевожу стерео из файла в один комплексный сигна
shf = shf(:,1) + 1i * shf(:,2);
А то Q канал игнорировался

Feofan
Сообщения: 19
Зарегистрирован: 20 фев 2017, 22:51
Откуда: Москва

Re: программный перенос спектра

Сообщение Feofan »

Благодарю за код для Octave. Немного переделал его, раскрыв экспоненту в тригонометрической форме - результат получился корректный.
Единственное различие, которое я сейчас вижу между своим кодом, написанным на C++, и кодом из Octave это использование оконной функции. В моем случае при расчете спектра оконная функция не используется. Перечитав статью про оконные функции увидел ключевую фразу: "сигнал на частоте W1 будет не заметен под боковым лепестком сигнала с частотой W0". Надеюсь именно в этом и заключается моя проблема...

Аватара пользователя
Бахурин Сергей
Администратор
Сообщения: 1114
Зарегистрирован: 05 окт 2010, 19:55
Контактная информация:

Re: программный перенос спектра

Сообщение Бахурин Сергей »

Окна не влияют на перенос спектра, только на его форму при растекании боковых лепестков

Feofan
Сообщения: 19
Зарегистрирован: 20 фев 2017, 22:51
Откуда: Москва

Re: программный перенос спектра

Сообщение Feofan »

Причина "искажений" крылась в дисбалансе квадратур комплексного сигнала, принимаемого с SDR приемника. На этом же форуме удалось найти обсуждение одного из алгоритмов коррекции данного дисбаланса: viewtopic.php?t=103, также нашел более подробное обсуждение алгоритма на другом форуме: http://www.cqham.ru/forum/archive/index ... 5-p-2.html.
До полноценной реализации алгоритма Виндиша мне пока далеко, однако в своей программе я смог учесть постоянную составляющую (dc offset), которая и искажала спектр при частотном сдвиге сигнала.
Решение проблемы тривиальное - из квадратурного сигнала надо вычесть эту "постоянную составляющую".
На видео записан результат ручной коррекции дисбаланса квадратур. Бирюзовая окружность отображает уровень постоянной составляющей (центральный бин БПФ): https://www.youtube.com/watch?v=F62xyom ... e=youtu.be.
Фазовое рассогласование между квадратурами, конечно, остается, но пока что оно мне не мешает)

Ответить