На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 54,
участников - 8 [ Greenland, Механик, sergsib, XOR, Edd, vr91, Darko_swl, Olexandr]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Радиосигналы —› SDR: I/Q - как выделить несколько полос по 12500 Гц из гирокой полосы потока данных из SDR? 
Различные приборы, оборудование, спутниковые и радиотелефоны!


Усилители сигнала и мощности

Усилители сотовой связи

Металлоискатели

Радионяни и видеоняни

Измерители КСВ и мощности
 Страница:  ««  1  2  3  4  5  6  7  8  9  »»Поиск в теме
Автор Сообщение
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 24 Янв 2023 22:04:17 · Поправил: vladisslav2011 (24 Янв 2023 22:21:19) #  

Programmist
I и Q это не Image и Real части
Это именно что и есть Imaginary(Q) и Real(I), проекции вектора на оси. А каждый синусоидальный сигнал с постоянной амплитудой это вращение этого самого вектора вокруг нулевой точки.

wazzoo
каждом бине информация об уровне сигнала на частоте, которой этот бин соответствует
Не только об уровне, но и о фазе. На выходе комплексные числа.
Это очень важно. Это говорит о том, что с помощью FFT можно делать как-раз нарезку сигнала на полосы.

Поправьте, если неправильно понял идею...
Я предлагаю ничего обратно не перегонять. На выходе FFT у нас сразу есть порезанный на полосы сигнал - по одному сэмплу после каждого FFT. Можно его брать и использовать. В данном случае не нужно рассматривать FFT как некоторое урезанное ограниченное приближение непрерывного преобразования Фурье. FFT это немножко другое.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 22:05:31 #  

pavelkolodin
Я просто запутался в комплексном матане всего этого FFT-вопроса
Ничего, я тоже путался, потом нарисовал на спектре слона и смотрел на выходе результат, где голова, где ноги.
И это не шутка.
Реклама
Google
pavelkolodin
Участник
Offline1.3
с апр 2012
Санкт-Петербург
Сообщений: 83

Дата: 24 Янв 2023 22:09:00 #  

Я предлагаю ничего обратно не перегонять. На выходе FFT у нас сразу есть порезанный на полосы сигнал - по одному сэмплу после каждого FFT. Можно его брать и использовать. В данном случае не нужно рассматривать FFT как некоторое урезанное ограниченное приближение непрерывного преобразования Фурье. FFT это немножко другое.

Убило моск. А можно подробнее - как это не перегонять? Мне ж для всяких дальнейших демодуляций хотелось бы из каждой отфильтрованной суб-полосы получить сырой I/Q-сигнальчик (с частотой дескритизации, скажем 32000 Гц)...
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 24 Янв 2023 22:14:43 · Поправил: vladisslav2011 (24 Янв 2023 22:51:53) #  

pavelkolodin
Исходники остались, надо будет как-то возобновить проект: https://github.com/pavelkolodin/audigger
Глянул. Лицензию прочитать не смог. Хотел склонировать и попробовать собрать, но так как непонятно, что лицензия позволяет, а что нет, пока воздержусь.

Убило моск.
Я тут уже наверное 5 страниц пишу, что на выходе FFT мы получаем IQ и что этот IQ можно немного дофильтровать уже на низкой частоте дискретизации и использовать. Это же очевидно, если посмотреть на то, как FFT вычисляется. В GNU Radio так делают (применительно к OFDM и с наложением банка FIR перед преобразованием), в Cubic SDR, в WEB SDR и наверное еще в куче проектов.

скажем 32000 Гц
Тогда на входе нужно будет настроить фронтэнд так, чтобы FFT получалось с целым размером блока, а лучше с размером блока в степень двойки.
Например возьмем FFT размером 128, тогда на входе будет сигнал с частотой дискретизации 4.096 MHz. Если мы хотим получить на выходе чистую полосу в ~24kHz, нужно будет делать FFT с перекрытием 2, а лучше 4. Тогда после FFT получим 128 потоков по 128kHz, из которых можно будет выбрать нужные и отфильтровать легким FIR на 128kHz (LPF с полосой пропускания 24kHz, скатами 4kHz) с децимацией 4. В результате получим потоки по 32kHz с полосой сигнала 24kHz и значительным снижением нагрузки на процессор по сравнению с получением того же результата кучей тяжелых FIR, работающих на 4.096MHz c децимацией 128.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 22:25:37 · Поправил: Programmist (24 Янв 2023 22:30:08) #  

pavelkolodin
Убило моск.
Вот: http://www.radioscanner.ru/files/recording/file22175/
Потом удалю. Когда соберёте правильно из I/Q, тогда и моск отпустит.)

Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 24 Янв 2023 22:32:05 · Поправил: Sinus (24 Янв 2023 22:54:33) #  

Когда-то, отвечая на вопрос форумчан о Дискретном Преобразовании Фурье (ДПФ должно выдавать те же числа, что и FFT, но только оно не быстрое) я сделал 2 простенькие html-программки: одна вычисляет ДПФ для вещественного входного массива, другая - для комплексного массива (он задаётся как два вещественных).

Числа для массивов вводятся в эти программки вручную, поштучно. Открываются программки просто браузером (если удастся открыть без ошибок :); код в них можно увидеть любым текстовым "листером" или редактром, как в обычных html-файлах.

Может быть, результаты такого счёта на произвольно сочиняемых "игрушечных" массивах кому-нибудь пригодятся для тестирования FFT в своих собственных разработках. Вот ссылка на пост с пояснениями, и в нём же же две ссылки на zip-архивы с упомянутыми html-программками:

Спектральные игры. FFT, I/Q и прочие забавы. - Страница 30
pavelkolodin
Участник
Offline1.3
с апр 2012
Санкт-Петербург
Сообщений: 83

Дата: 24 Янв 2023 22:34:09 · Поправил: pavelkolodin (24 Янв 2023 22:36:25) #  

Глянул. Лицензию прочитать не смог. Хотел склонировать и попробовать собрать, но так как непонятно, что лицензия позволяет, а что нет, пока воздержусь.
Да какая там лицензия, мы ж в России живём. Лицензия DWTFYWT наверное - Do What The Fuck You Want To видимо. Судить никого не буду - режь, грабь, воруй гусей, компилируй.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 22:34:36 #  

Sinus
Не надо им туда, там столько ошибок, что показывать стыдно.)
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 24 Янв 2023 22:39:11 #  

А я не на тему сослался, а на свой конкретный пост. У меня ошибок нет. (Почему-то движок форума оформил ссылку на пост в этом форуме как на название темы).
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 22:43:27 · Поправил: Programmist (24 Янв 2023 22:51:44) #  

Sinus
У меня ошибок нет.
У всех есть ошибки, и тема та больше для развлечения.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 24 Янв 2023 22:50:10 · Поправил: Sinus (24 Янв 2023 22:55:14) #  

Programmist, я сейчас рассержусь на Вас :) Отвечайте, пожалуйста, только за Ваши ошибки, но не надо приписывать их всем. За то, что я выкладывал, я сам несу ответсвенность. Если получите неверный результат в тех моих учебных программках, то предъявите его, заранее Вам спасибо, и тогда будет предмет для разбора и критики. А огульно объявлять ошибкой всё подряд - это примитивный троллинг, в который Вы впадаете всё чаще.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 22:51:54 · Поправил: Programmist (24 Янв 2023 23:20:27) #  

Sinus
Просто предупредил участников, можете читать посты Sinusa, мои - не надо.
Если получите неверный результат в тех моих учебных программках, то предъявите его
Не о программах речь, но раз пошла такая пьянка, кто децимацию делал выбрасыванием лишних отсчётов, тоже я? )
//
Да, во всём, что сегодня умею, большая часть Вашей заслуги, но про отсутствие ошибок и троллинг, не надо.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 23:33:10 #  

vladisslav2011
Это именно что и есть Imaginary(Q) и Real(I), проекции вектора на оси. А каждый синусоидальный сигнал с постоянной амплитудой это вращение этого самого вектора вокруг нулевой точки.
Понятно, как-то так:



Не удивительно, что у некоторых мозг плавиться. :)
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 24 Янв 2023 23:34:31 · Поправил: vladisslav2011 (24 Янв 2023 23:37:36) #  

Programmist
кто децимацию делал выбрасыванием лишних отсчётов

Да все ее так делают. Фильтруем ФНЧ или полосовым с полосой меньше частоты дискретизации после децимации и выбрасываем лишние отсчеты, точнее просто не считаем свертки, которые дают лишние отсчеты.

Понятно, как-то так:
Вылезли зеркалки, так как без информации о фазе невозможно определить направление вращения. Так и должно быть.
А где вторая половина FFT с отрицательными частотами. Там же должно быть 2 слона крест-накрест.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 23:39:58 · Поправил: Programmist (24 Янв 2023 23:56:43) #  

vladisslav2011
Фильтруем ФНЧ или полосовым с полосой меньше частоты дискретизации
Ага, фильтруем, а без фильтра?

Там же должно быть 2 слона крест-накрест.
Одно дело должно быть, а другое, есть на самом деле.
Файл I/Q в копилке, возьмите сами и посчитайте.
При переводе в реальный сигнал, будет один слон, как на первой картинке.
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 24 Янв 2023 23:43:29 #  

фильтруем, а без фильтра
Если не фильтровать будет алиасинг. Частоты вне полосы наложатся поверх частот в полосе. В методичках же про это написано. Если вы делали децимацию без фильтра, то я не завидую слону после такой децимации :-)
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 23:47:40 #  

Если вы делали децимацию без фильтра, то я не завидую слону после такой децимации
Я тоже. ))
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 24 Янв 2023 23:51:13 · Поправил: vladisslav2011 (24 Янв 2023 23:51:27) #  

Так... Я проинтерпретировал слона исходя из предположения, что он в int16_t, а он оказывается в float...
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 24 Янв 2023 23:54:41 · Поправил: Programmist (25 Янв 2023 00:01:47) #  

vladisslav2011
он оказывается в float...
Нет, обычный I/Q слон, PCM 16 bit, 2 канала.
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 25 Янв 2023 00:02:36 #  

Нет, обычный I/Q слон, PCM 16 bit.
Audacity сказало, что это float.
В общем результат:
[Видео YouTube - нажмите для просмотра]
Со слонами я еще такого не делал...
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 25 Янв 2023 00:09:25 · Поправил: Programmist (25 Янв 2023 00:12:04) #  

vladisslav2011
Со слонами я еще такого не делал...
Удивительно как такое можно сделать без слона. Все преобразования надо проверять.

Audacity сказало, что это float.
Там разработчики наверно тоже слонов не рисовали, поэтому и называют чёрное белым.
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 25 Янв 2023 00:13:08 · Поправил: vladisslav2011 (25 Янв 2023 00:17:34) #  

Вот что будет, если сделать IQ_to_real:
[Видео YouTube - нажмите для просмотра]
Как и ожидалось, слон отразился от нулевой частоты. Зеркалки, как они есть. Поэтому всю обработку нужно делать в IQ.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 25 Янв 2023 00:20:32 · Поправил: Programmist (25 Янв 2023 00:50:00) #  

vladisslav2011
Вот что будет, если сделать IQ_to_real: http://www.radioscanner.ru/files/recording/file22176/
Реальный Слон.
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 25 Янв 2023 00:27:56 #  

Реальный сигнал для выполнения над ним FFT преобразуется в комплексный: в I кладем реальный сигнал, в Q кладем 0, так как мнимой части у реального сигнала нет. Выполняем FFT, получаем красивый отраженный от нулевой частоты спектр, как и говорит теория. Вроде все уже 5 раз было обсосано в теме про FFT. Что тут еще можно придумать? Гилберта? Отфильтровать комплексным LPF FIR, сдвинутым на fs/4, чтобы подавить зеркалки? Сделать то же самое в частотной области после FFT с фазовыми искажениями и краевыми артефактами после реконструкции сигнала из-за наложения окон?
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 25 Янв 2023 00:34:18 · Поправил: Programmist (25 Янв 2023 00:39:37) #  

Ладно, завтра Sinus придёт, и расскажет какой слон реальный, а какой мифический.
Оба файла пока удалять не буду.

Вот это животное, я точно не рисовал:



:-))
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 25 Янв 2023 00:47:58 #  

сделать IQ_to_real: Слон
Тут не IQ_to_real, а плосовик, который отрезал от слона половинку. Частоты вблизи нуля пострадали... Не просто половинка слона, а еще и покоцанная.
[Видео YouTube - нажмите для просмотра]
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 25 Янв 2023 00:54:41 · Поправил: Programmist (25 Янв 2023 01:02:13) #  

vladisslav2011
Не просто половинка слона, а еще и покоцанная.
Не знаю что Вы там с этим слоном делаете, я могу хоть сто раз крутить из I/Q в Real и обратно.
Если что пострадает, так это незначительно края полосы. Так оно и должно быть, потому что без фильтра данная операция не делается, даже на FFT.
Центр всегда остаётся цел, и не думаю, что заметите большую разницу после стократного преобразования.
vladisslav2011
Участник
Offline0.0
с фев 2022
СЗФО
Сообщений: 410

Дата: 25 Янв 2023 00:59:28 · Поправил: vladisslav2011 (25 Янв 2023 01:03:19) #  

Не знаю что Вы там с этим слоном делаете
Скормил Gqrx, чтобы нарисовать на водопаде. real, соответственно, пришлось перегнать в IQ, так как поддержку real sample file для всяких AirSpy и RX-888 я пока что не реализовал.
При увеличении видна полосатость из-за того, что при генерации из картинки фаза не крутилась требуемым образом.
У вас, получается, "IQ_to_real" не только отфильтровало, но еще и умножило на FS/2, чего быть не должно. Центр картинки должен был остаться на нуле.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 25 Янв 2023 01:06:03 · Поправил: Programmist (25 Янв 2023 01:16:20) #  

vladisslav2011
При увеличении видна полосатость из-за того, что при генерации из картинки фаза не крутилась требуемым образом.
Не надо крутить фазу! Фаза всегда остаётся на месте, а "полосатость" при увеличении на экране это совсем другое явление.
Самое интересное, что та летучая мышь на экране может звучать точно также как слон, ну или очень похоже, при звуковом сигнале.
Не знаю, может в SDR так и надо, но всё требует проверки.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 25 Янв 2023 01:31:04 · Поправил: Sinus (25 Янв 2023 01:31:41) #  

Я не понял, какая задача тут сейчас решается. Если надо было всего лишь преобразовать IQ-слона в Real, то, например, в моей самопальой программке "iq-zabava" результат выглядит так (и, на мой взгляд, так и должно быть - всё вышло по науке):

Спектрограмма исходного IQ-сигнала slon.wav

Увеличить


Спектрограмма с положительными и отрицательными частотами для одноканального (Real) сигнала, полученного преобразованием IQ-->Real

Увеличить


Спектрограмма Real-слона с только положительными частотами (т.е. половина предыдущей спектрограммы):

Увеличить
Реклама
Google
 Страница:  ««  1  2  3  4  5  6  7  8  9  »» 

Создавать сообщения могут только зарегистрированные участники форума.
Войти в форум :: » Логин » Пароль
Начало
Средства связи, рации. Купить радиостанции Motorola, Yaesu, Vertex, приемники, антенны.
Время загрузки страницы (сек.): 0.051; miniBB ®