На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 46,
участников - 0
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Прочее —› Спектральные игры. FFT, I/Q и прочие забавы. 
Портативные Си-Би радиостанции в нашем магазине


Беркут Hunter
руб.

Егерь 3
руб.

President Randy II P
руб.

Турист 3
руб.

Штурман 80
руб.
 Страница:  ««  1  2  ...  17  18  19  20  21  ...  34  35  »»Поиск в теме
Автор Сообщение
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 27 Дек 2011 16:08:12 #  
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 27 Дек 2011 17:12:01 · Поправил: Mesh (27 Дек 2011 17:12:55) #  

mikasa76 АМ демодинг конешн не в дугу, нуна переделывать. Вот резалты файла RadioKoteg после SA http://www.radioscanner.ru/uploader/2011/am_k.rar у вас нелинейка явная какая-то, или RadioKoteg так отдемил. :-) Вобще чекить по вещалкам эт фигня. Эт так на грубые косяки, шлифинг делать нужно на спешиал файликах, с фул контролом параметров. Ну да ладно. В архиве кусок файла, весь не лезет в копилку.
Реклама
Google
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 27 Дек 2011 18:01:44 · Поправил: RadioKoteg (27 Дек 2011 18:02:17) #  

Вот в левом после SA АМ демодинг в правом после dspexe:

http://doris.kiev.ua/RS/FREQ/IQ/783k_000(AM)_MIX_AM_K.wav
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 27 Дек 2011 19:20:48 · Поправил: mikasa76 (27 Дек 2011 19:21:27) #  

Mesh RadioKoteg спасибо за резалты, АМ надо доработать конечно, согласен. беру паузу на устранение всех недостатков и постараюсь учесть все пожелания )))))
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 27 Дек 2011 20:59:57 · Поправил: Programmist (27 Дек 2011 21:10:20) #  

mikasa76
Да тут спешить некуда, еще мелкий баг нашел. При конвертации Real -> I/Q размер файла на выходе получается меньше, имхо где-то в конце последнего блока нулей надо добавить.
Потом консоль можно сделать, чтобы сразу со всеми параметрами, через запятую. Тогда любой сможет ее из своей программы запускать, чтобы не париться с вызовом функций, ну это так, для ленивых :)
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 27 Дек 2011 21:08:02 #  

Programmist меньше потому как задержка при свертке, а в конце нулей я не добавляю
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 27 Дек 2011 21:18:02 · Поправил: Programmist (27 Дек 2011 21:23:30) #  

задержка при свертке
Странно, должно быть 1:1, я нули в начале и в конце добавляю, но они только для "разгона" функций обработки и "центровки" картинки, хотя тут реализации разные.
У меня все циклы начинаются с отрицательного числа, на размер блока FFT.
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 27 Дек 2011 21:24:01 · Поправил: mikasa76 (27 Дек 2011 21:25:21) #  

Programmist
Странно, должно быть 1:1, я нули в начале и в конце добавляю, но они только для "разгона" функций обработки и "центровки" картинки, хотя тут реализации разные. так я эту задержку отрезаю, потому как это все равно ненужный мусор, а в конце ничего не добавляю, вот поэтому и получается, что реализация будет короче на длину этой задержки. длина задержки определяется параметром, задающем качество обработки, который в свою очередь определяется длиной формирующего КИХ фильтра. лучше даже наверное вначале добавлять.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 27 Дек 2011 21:28:59 · Поправил: Programmist (27 Дек 2011 22:08:56) #  

mikasa76
Да понятно, оно там не всегда ровно выходит, это так, детали, выровнять можно, потом по краям фэйдом пройти.

з.ы.
24 бита представлял как 3 байта из int32, по этой формуле:
i and $FF000000 shr 24 // не используется (символ $, здесь hex)
i and $FF0000 shr 16
i and $FF00 shr 8
i and $FF
потом берется три последних байта (начиная с последнего), не экономно, но ничего лучше не придумал, нет такого типа данных в Delphi.
Обратно так:
int32:= Byte0 + Byte1 * (1 shl 8) + Byte2 * (1 shl 16);
if int32 >= (1 shl 23) then int32:= int32 -(1 shl 24);
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 27 Дек 2011 22:03:42 · Поправил: Sinus (27 Дек 2011 22:07:02) #  

mikasa76, поясните, плз, как выбирать параметр Frequency в режиме узкополосного ресемплинга: представлять себе шкалу частот real-сигнала, т.е. диапазон частот от 0 до Fdiscr (где Fdiscr - дискрет в исходном IQ-файле)? Или же представлять себе диапазон от -Fdiscr/2 до +Fdiscr/2 в исходном IQ-файле?

Заранее спасибо.
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 27 Дек 2011 22:57:54 #  

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

Дата: 29 Дек 2011 02:37:07 · Поправил: Sinus (29 Дек 2011 02:40:48) #  

Извините за занудство, но чё-то мну тёти всё покоя не дают ))

mikasa76, конверсия iq --> real у Вас в плагине отлично работает (канешн, строго говоря, не мне об этом судить, ибо сравнивал лишь со своим FFT-резалтом, раскритикованным ЦОСшниками-профи..))

А вот полосовую фильтрацию плагином чего-то никак не могу получить... Скорее-то всего, что чё-то не так делаю, но может быть и баг у Вас, т.к. вроде бы никто насчёт фильтрации полос чётко ещё не отписался... (если не баг, то извините, плз, меня за неловкость)

Потому, возвращаюсь к тестовому файлу с тётушками RadioKoteg-а:
http://doris.kiev.ua/RS/FREQ/IQ/_111_000.rar

В нём - два не особо громких FM-сигнала, с центральными частотами приблизительно FC=1MHz и FC=500 kHz после конверсии iq --> real (FFT-способом). Их спектр в FFT видится так:

http://s007.radikal.ru/i302/1112/7f/62c568830323.jpg

Поскольку плагином не сумел селектировать, то выхватил тёть своим FFT-способом (и около одной из них вырезал вредную несучку), и записал их обратно как iq с пониженным дискретом; на всякий случай называю свои поделки не iq, а АВ:

http://www.divshare.com/download/16474267-dd4
band_AB_in_111_000_FFT-select_FC=1MHz_resFd=31234Hz.wav

http://www.divshare.com/download/16474276-aee
band_AB_in_111_000_FFT-select_FC=500kHz_resFd=31234Hz.wav

Плагин их хорошо FM-демодулирует, проверил с параметрами Frequency = 0, SampleRate = 6000; вот резалты (кое-какие огрехи звучания вызваны, скорее всего, хреновостью FFT-фильтрации, не зря же petr0v её критиковал):

http://www.divshare.com/download/16474277-ca0
mikasa-FM-demod_band_AB-FFT-select_FC=1MHz.wav

http://www.divshare.com/download/16474281-8da
mikasa-FM-demod_band_AB-FFT-select_FC=500kHz.wav

Это для сравнения; если удастся их отфильтровать плагином, то интересно бы сравнить...

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

Дата: 29 Дек 2011 06:50:47 · Поправил: Programmist (29 Дек 2011 07:52:27) #  

Эти тетушки меня с ума сведут :) Все результаты разные. Здесь маленький архив, где на слух слышно разницу, в том, что Mesh в SA делал и после плагина DSP: http://files.mail.ru/7LCITK, там и файл с вырезанной "несучкой".
Обнулять "несучки" можно только с окном, иначе спектр "растекается" (зачем только это Гиббс придумал) и может быть еще хуже, в некоторых случаях.
До фильтра:

После FFT фильтра:

Все остальное осталось на своих местах, АЧХ и ФЧХ не пострадали.
Конечно, еще нужна доработка, чтобы полностью убрать остатки, но это просто так не получается.
По задумке, дальше в дело вступают кисти и краски, да полная палитра еще не готова. Когда знаешь, что все получится, на первый план выходит лень :)
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 29 Дек 2011 12:18:19 #  

Sinus конверсия iq --> real у Вас в плагине отлично работает это хорошо )

А вот полосовую фильтрацию плагином чего-то никак не могу получить... Скорее-то всего, что чё-то не так делаю, но может быть и баг у Вас, т.к. вроде бы никто насчёт фильтрации полос чётко ещё не отписался... (если не баг, то извините, плз, меня за неловкость) Потому, возвращаюсь к тестовому файлу с тётушками RadioKoteg-а:
http://doris.kiev.ua/RS/FREQ/IQ/_111_000.rar


По первому сигналу, с ним пришлось повозиться. И так, на первом этапе понижаем частоту дискретизации до промежуточной и переносим в ноль. Парметры настройки указываем следующие:

Mode: 2
Frequency: -500000 (т.к. сигнал комплексный)
SampleRateOut: 50000

промежуточная реализация http://files.mail.ru/X6HYAA

Затем понижаем частоту еще раз, чтобы отфильтровать паразита на частоте примерно +/-1600 Гц, т.к. на детектор надо подать сигнал без посторонних составляющих. Параметры для этого этапа:

Mode: 2
Frequency: 0
SampleRateOut: 3000

следующая промежуточная реализация http://files.mail.ru/3GK2VO

и теперь уже эту реализацию можем спокойно демодулировать ЧМ детектором. Параметры настройки следующие:

Mode: 4
Frequency: 0
SampleRateOut: 3000

вот окончательный результат андреевский спуск

Теперь второй сигнал. Опять же так как входной сигнал комплексный, то частота сигнала будет находится в районе нуля. Выделяем этот элементарный полосовой сигнал и децимируем его. Параметры для этого промежуточного режима:

Mode: 2
Frequency: 0
SampleRateOut: 50000

результат проведенной операции http://files.mail.ru/8KC752

Теперь, когда никаких значительных помех в полосе детектора нет, смело демодулируем его. Параметры режима:

Mode: 4
Frequency: 0
SampleRateOut: 22050

вот окончательный результат центральная

Примечание: все режимы обрабатывал с качеством "High"
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 29 Дек 2011 13:27:02 #  

Встроил вызов плагина в программу (кнопка DSP), но пока это только вызов. Файл должен быть открыт и находится в папке с программой. Имя файла не должно содержать пробелов. Кому интересно, программа (с плагином) здесь: http://files.mail.ru/WDS36V
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 29 Дек 2011 13:51:18 #  

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

Дата: 29 Дек 2011 14:09:03 · Поправил: Programmist (29 Дек 2011 14:30:00) #  

mikasa76
Да работать-то он работает, куда денется, только тут надо как-то функции делать, чтобы, к примеру, ввод-вывод мой остался, а обработка Ваша, тогда будет удобно. Сразу не выйдет, еще не понятно, что надо оставить, а что можно выбросить, да и ошибок еще много, как ни включу, все время что-то новое находится.
Для начала, можно поддержку длинных имен файлов (путь) сделать и просто вызов консоли, без exe.
Что-то типа InitDll(FileName: AnsiString).

з.ы.
Если нормально делать, то надо блок-схему рисовать, иначе все это в голове долго не держится.
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 29 Дек 2011 14:53:28 · Поправил: RadioKoteg (29 Дек 2011 14:54:19) #  

mikasa76 при сносе с этого файла http://doris.kiev.ua/RS/FREQ/IQ/001/_IF2011-11-2806-00-00.wav
Результат dspexe.exe: http://doris.kiev.ua/RS/FREQ/IQ/001/_IF2011-11-2806-00-00(20111229104101).wav
но в
Programmist можно подготовить, отрезав предварительно фильтром не нужную боковую.

Результат: http://doris.kiev.ua/RS/FREQ/IQ/001/_IF2011-11-2806-00-00(CE).wav

сори за не попадание в частоту.
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 29 Дек 2011 15:05:07 #  

Programmist только тут надо как-то функции делать, чтобы, к примеру, ввод-вывод мой остался, а обработка Ваша, тогда будет удобно. Сразу не выйдет, еще не понятно, что надо оставить, а что можно выбросить, да и ошибок еще много, как ни включу, все время что-то новое находится. согласен, надо сначала отладить как следует

RadioKoteg Вы предлагаете сделать просто НЧ фильтрацию с сохранением начального дискрета? я правда не знаю насколько это нужно? но проблемы в этом конечно же нет. )))))
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 29 Дек 2011 16:19:13 · Поправил: RadioKoteg (29 Дек 2011 16:24:23) #  

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

Дата: 29 Дек 2011 16:37:23 · Поправил: Programmist (29 Дек 2011 16:48:08) #  

Децимация нужна хорошая. Есть тут исходник на СИ, если его откомпилировать удастся, может быть и будет работать: http://files.mail.ru/N8N5HB
Совсем простенький такой, для детского сада :) Ну и у меня штук 20 релизов на Delphi, только все не то.
А снос спектра - отдельная тема. Без заворота тоже не выходит.
В общем, чтобы все собрать, "конец света" придется отменить :)
Хорошо сделать можно только разделив все операции, имхо.
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 29 Дек 2011 16:54:34 #  

RadioKoteg ок, понял, надо подумать как это провернуть
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 29 Дек 2011 16:59:02 #  

В общем, чтобы все собрать, "конец света" придется отменить :) я тоже за это, отменяем? Кто за?
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 29 Дек 2011 17:05:43 #  

Кто за?
Отменяем, что делать, хотя зрелище, наверно интересное, но тут тоже не скучно :)
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 31 Дек 2011 02:15:37 · Поправил: Programmist (31 Дек 2011 12:28:56) #  

Децимацию добавил, качественная (кнопочка "CSR"). Библиотека чужая, 11 лет чей-то работы:
http://files.mail.ru/ODEQF2
Здесь: http://files.mail.ru/XOPXPM (версия 17).
RadioKoteg
Участник
Offline4.4
с сен 2006
Киев
Сообщений: 14486

Дата: 31 Дек 2011 02:48:15 #  

Programmist Да, это хорошо ресамплинг, но проблема так и не решена сноса спектра. Например как снести спектр шириной допустим 5 кГц на 300 Герц вниз?
Я делаю вашей программой это так: Переношу высоко вверх, низ очищаю, и сношу опять вниз на нужную частоту. Но что делать когда дискрет 10 кГц а спектр 4,5 кГц? Ресамплинг на большую частоту и перенос в вверх потом очистка и вновь в низ.. IMHO оно работает.
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 31 Дек 2011 03:16:25 #  

RadioKoteg
проблема так и не решена сноса спектра
Да есть модуль на FFT, но там нужна серьезная доработка самого модуля, получается снос за 3-4 шага. Автоматизация еще не готова. Ресемплиг тоже менять надо, не нравится он мне, у настоящего Кула, имхо чем-то лучше будет. Править эту библиотеку - с ума сойдешь, тем более, что она на С++ и CallBack у нее не работает. На больших файлах создается впечатление, что программа зависла.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 31 Дек 2011 22:08:39 · Поправил: Sinus (31 Дек 2011 22:17:20) #  

mikasa76, спасибо, за объяснения; я понял, что неверно задавал частоту, и пытался одновременно полосу выделить (указывая новый дискрет) и демодуляцию произвести; а надо было поэтапно.

Programmist, RadioKoteg, ещё предстоит разные варианты опробовать; всё впереди. В маткаде методом FFT мне удаётся любой снос спектра - с шагом доли герца (шаг в герцах = 1/(длительность сигнала в секундах)). Но этот метод подвергся жёсткой критике профессионалами, поэтому не выкладываю здесь подробностей такого алгоритма - чтобы зря не тратилось на него время и внимание.

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

Дата: 01 Янв 2012 04:07:40 · Поправил: Programmist (01 Янв 2012 04:33:22) #  

Надеюсь, в Новом году совместными усилиями подберём более удачные алгоритмы обработки файлов
Думаю, что подберем, тем более, что Новый год начался удачно :) ровно в 23.55 китайское ADSL-чудо салютовало взрывом последнего электролита по питанию, оставив меня без связи. Потребовалась срочная модернизация:


Увеличить

Зато теперь знаю, что взорвалось до того - электролитов было два :)

Вот только от FFT отказываться не стоит, примером может служить последняя встроенная в программу децимация. Ну не дотягивает она по качеству до работы FFT, несмотря на то, что это лучшее, что возможно во временном домене. А задача сноса спектра сейчас на первом плане.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 01 Янв 2012 04:47:59 #  

Programmist Ну не дотягивает она по качеству до работы FFT, несмотря на то, что это лучшее, что возможно во временном домене. Однозначна! Всё что вы говорите, чисто правда, вы ж лет поди 11 как в теме? А то и больше. Вам вера безмерная. :-)
Реклама
Google
 Страница:  ««  1  2  ...  17  18  19  20  21  ...  34  35  »» 

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