На главную страницу сайта
· Наш магазин · Объявления · Рейтинг · Статьи · Частоты · Копилка · Аэродромы · Live!
· Файлы · Диапазоны · Сигналы · Музей · Mods · LPD-форум · Клуб · Радиостанции
На сайте: гостей - 48,
участников - 7 [ docent, rn9aaa, Sinilaj, Slavik, autosat, Greenland, ew2abc]
 · Начало · Опросы · События · Статистика · Поиск · Регистрация · Правила · FAQ · Галерея ·
 Форум —› Прочее —› Спектральные игры. FFT, I/Q и прочие забавы. 
Блоки питания для радиотехники: Ajetrays, Alan, Manson, Optim, RM, Vega, Yaesu, Энергомаш


Alan K35
(1 Ампер)
руб.

RM LPS 105
(5 Ампер)
руб.

Manson SPA-8100
(10/12 Ампер)
руб.

Optim PS-20
(20/22 Ампер)
руб.

Vega PSS-3035
(30/35 Ампер)
руб.
 Страница:  ««  1  2  ...  14  15  16  17  18  ...  34  35  »»Поиск в теме
Автор Сообщение
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 21 Дек 2011 21:37:30 #  

mikasa76 А пародне, как это вы постоянку не отрабатывали? Оно ж у вас на ноль снесено. Кто ж её сносоит. В SA например там я руками её убирал. Тут непонятки. Оно то понятно как это сносится, но дык кто это делает если не вы?
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 21 Дек 2011 22:25:02 · Поправил: Programmist (21 Дек 2011 22:55:52) #  

А я вообще не знаю, как правильно сносить, вижу то, что после конвертера сигнал состоит из двух половин и половины эти разные. До того отрезалась первая попавшаяся и умножалась на синусоиду. Может быть, их не резать надо, а складывать, каким-то хитрым образом.
На вид как-то подозрительно, слишком смахивает на то, что одна половина - частота, вторая - фаза, ну а может это и глупость очередная :)
Вот они какие, две половинки эти:


Увеличить

Начало той станции, которая погормче, с записи АМ-маяка549. На картинку выведена частота и фаза (через пиксель) не сдвинутого спектра, после IQ2Real.
Реклама
Google
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 21 Дек 2011 22:38:09 #  

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

Дата: 21 Дек 2011 22:52:16 #  

mikasa76 Пон, там эта АМ детекшн то квадратурный? А то ещё и тут разница может быть, обычные как бы похуже будут.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 21 Дек 2011 23:05:07 · Поправил: Sinus (21 Дек 2011 23:29:26) #  

mikasa76
попробую и я составить конкуренцию результатам обработки Sinusа.

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

Если найдётся у кого времечко, гляньте, плз, вышло ли у меня iq2r для эталонного АМ iq-файла "маяк549". Делал по своему "3-му варианту":

http://www.divshare.com/download/16431195-aa3
real_from_mayak549_FFT-conv-3_iq=AB_Fd=100kHz.wav

ФМ ещё не пробовал, скоро займусь им. Но АМ демодулировал; в iq-файле "маяк549" частота дискрета = 50 кГц, так что после пр-я в real-моно получился дискрет 100 кГц, и значит сигнал с полосой от 0 до 50 кГц. В этой полосе обнаружил два сильных АМ-сигнала: на частоте F=25 кГц и на частоте F=43 кГц (плюс очень слабенькие зеркалки сильной станции, вероятно это дефект моей конверсии iq2r). Вот так у меня звучат две громкие станции после АМ-демодуляции в маткаде:

http://www.divshare.com/download/16431198-a1c
FFT_conv-3_demod-AM_mayak549_F=25kHz_Fd=25kHz.wav (аудио, Fdiscr = 25 kHz)

http://www.divshare.com/download/16431205-51f
FFT_conv-3_demod-AM_mayak549_F=43kHz_Fd=25kHz.wav (аудио, Fdiscr = 25 kHz)

Рассказываю, как делал АМ-демодуляцию. Сначала вырезал из полной FFT-полосы нужную "станцию". Вот для примера узкий кусочек вырезанного спектра для станции F=25kHz (вся вырезанная полоса была F+-10 kHz):

http://s04.radikal.ru/i177/1112/a2/a97e6d1c7b7b.jpg

Из спектра вырезанной станции методом IFFT получил её сигнал во времени: S(t). Затем взял абсолютное значение |S(t)|. Затем сделал для него FFT, и отбросил нулевую гармонику, т.е. постоянку. Точнее - обнулил все бины ниже 20 Гц и выше 12 кГц. Затем сделал IFFT, но не для всех N/2 бинов, а только для первых 1/4 бинов от количества N/2, и получившийся аудио-сигнал записал с в 4 раза меньшей частотой дискретизации (100/4 = 25 кГц) - такова у меня процедура децимации (смейтесь, смейтесь ))). Вот графики, иллюстрирующие этот алгоритм АМ-демодуляции:

http://s017.radikal.ru/i405/1112/0b/126cc04d7bee.jpg

Аналогично АМ-демодулировал и станцию F=43кГц; её спектр в real-моно файле у меня выглядит так:
http://s40.radikal.ru/i090/1112/7b/939a92147761.jpg

Пойду дальше упражняться, и рассматривать результаты mikasa76.
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 21 Дек 2011 23:08:56 · Поправил: mikasa76 (21 Дек 2011 23:25:36) #  

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

Дата: 21 Дек 2011 23:12:43 #  

Sinus
Так я не понял, для АМ детектирования надо брать абсолютные значения сигнала?
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 21 Дек 2011 23:15:39 #  

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

Дата: 21 Дек 2011 23:17:24 · Поправил: Sinus (21 Дек 2011 23:21:55) #  

Короче, у меня не квадратурная демодуляция, а простая, на скорую руку. Пока это нормально, прав petr0v, нам с Programmistом ещё рано браться за демодуляцию. Прежде надо ещё будет учиться полосовую фильтрацию в IQ-сигнале культурно делать...

Programmist
Так я не понял, для АМ детектирования надо брать абсолютные значения сигнала?

Да, если делать её как в детстве - как в детекторном приёмнике (т.е. тогда детектор работает как "выпрямитель" переменного тока :))). Но есть гораздо более продвинутые методы АМ-детектирования, в том числе - прямо в IQ-сигнале, без конверсии в реал.
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 21 Дек 2011 23:20:28 #  

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

Дата: 21 Дек 2011 23:27:33 #  

Прежде надо ещё будет учиться полосовую фильтрацию в IQ-сигнале культурно делать...
Да, а мне надо Real2IQ конвертер собрать и смотреть на картинках, иначе голова уже отказывается понимать, что куда попадает :)
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 21 Дек 2011 23:32:56 #  

mikasa76 Ага реализация квадратурная, ну и отлично, да не, задержка куда от неё, хотя мона конечно и её прибить, но эт для фулл эстетикал и не так просто сделать красиво. Я про мусорок, если в начале не мусор, то я хз что это, може так и надо, може так снос постоянки работает. Уж вам оно виднее. Эт в ФМ трудно убрать, а в АМ вроде как откуда ему братся.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 21 Дек 2011 23:33:23 · Поправил: Sinus (21 Дек 2011 23:35:55) #  

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

Вот это уже почти правильно, но картинки надо строить в виде графиков - по формулам. А для понимания формул и придётся-таки почитать книжки, да посидеть недельку другую с карандашом и бумагой (только читать, но не выводить формул самостоятельно, плохо помогает)))
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 21 Дек 2011 23:39:54 #  

Sinus Ну и класно у вас развернурось из I/Q в реал. Пздравляю. С закусью разбиратся будете, почему типо 1 вариант вроде эквивалентен 3, а на деле нифига? :)
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 21 Дек 2011 23:46:41 · Поправил: Programmist (21 Дек 2011 23:51:15) #  

Sinus
картинки надо строить в виде графиков - по формулам
Я привык к спектру, чтобы строить картинки из любой точки программы, как в Маткаде, такой возможности нет. Бумага и карандаш помогают. Если надо что-то посмотреть, каждый раз приходится писать осциллограф, на отдельной форме. А с формулами, если они есть в программе, приходится разбираться в любом случае, иначе быть просто не может. Если и беру чужие модули, для быстрого получения результата, то в конечном итоге все они переписываются самостоятельно.

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

Дата: 21 Дек 2011 23:48:29 #  

Mesh, нормально, да? ну, значит, понимание какое-то спектральной картины таки появляется. А с первым вариантом поразбираюсь... Хотя уже пора от FFT-фильтрации переходить к обычной, с КИХ-фильтрами. Сравнивал 1-й вариант с 3-м на тётях и на своих 3-АМ, вроде разницы не увидел.

Спасибо за проверку.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 21 Дек 2011 23:51:20 #  

Sinus Да ладно, как это разницы не увидели? Чёт мы опять о разном походу. У вас ж на тётях зеркало было вроде? Чёт я уже путатся начал, кто чего говорил, у кого что было.
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 21 Дек 2011 23:56:23 #  

Mesh, зеркало появлялось во 2-м варианте (где вообще преобразование сводилось к сортировке отсчётов S(n) на чётные и нечётные с изменениями знаков через один, там никаких FFT не было, и пёрли зеркала). А 1-й вариант - там всё через FFT, и снос частот и интерполяция-децимация. Ну, уже не суть, это уже уходит в прошлое, становится историей... ;)))
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 21 Дек 2011 23:58:54 · Поправил: Mesh (22 Дек 2011 00:05:20) #  

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

Дата: 22 Дек 2011 00:06:55 #  

Все-таки интересно, как поступать с этой "бабочкой" после I/Q2Real, допустим, если у меня нет I/Q сигнала, а только уже такой реальный. Отрезать половину или собирать надо как-то?
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 22 Дек 2011 00:17:45 · Поправил: Sinus (22 Дек 2011 00:20:26) #  

Programmist, если делать по-простому, как в детекторном приёмнике, то ведь я уже рассказал подробно - см. выше. А если делать вырезанием полосы частот и сносом, то берите чуть меньше половины - чтобы несущая (частота по центру) не попала в выделяемую полосу. Затем снесите эту полосу к нулю частот - так, чтобы частоты ближайшие к несущей оказались низшими. И к снесённым так фурье-амплитудам примените IFFT. (Только не применяйте IFFT к вашим RGB - это будет полный бред)

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

Дата: 22 Дек 2011 00:21:39 · Поправил: Programmist (22 Дек 2011 00:36:36) #  

Sinus
Спасибо, по-простому все понял, а как будет правильно, нужно думать. Не все тут так легко, как кажется.
Вот этот вопрос я и упустил, хотя знал, что он никуда не "испарится" сам собой.

Только не применяйте IFFT к вашим RGB - это будет полный бред
RGB это вообще не для этого :)) Кстати, бреда не будет, когда все будет сделано правильно. Файлы RGB содержат полную информацию о сигнале т.е. там есть все и фаза и частота и полярность. Поэтому уже сейчас их можно обрабатывать в фотошопе :)
Картинка 32 бита, дополнительная информация (полярность амплитуд) записана в альфа-слой, ее просто не видно.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 22 Дек 2011 00:24:51 #  

mikasa76 К ста про задержки, а вот в SA я хз вроде и нет их. Даж прикольно, эт реал так чи как-то минимизировано что незаметно. По крайней мере я не могу сказать что их видно допустим явно как у вас.
mikasa76
Участник
Offline1.8
с сен 2008
USSR
Сообщений: 305

Дата: 22 Дек 2011 01:08:20 #  

Mesh в SA их нет, убрать задержку несложно, это половина длины фильтра -1, чтобы сохранить исходную длину выборки в конце реализации можно добавить требуемое количество нулей.
Mesh
Участник
Offline4.0
с мая 2006
Сообщений: 6169

Дата: 22 Дек 2011 01:22:36 #  

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

Дата: 23 Дек 2011 00:55:48 #  

Sinus
обнулил все бины ниже 20 Гц и выше 12 кГц.
Нельзя обнулять бины без окон, это нарушение законов природы - идеальный фильтр. Блоки склеить будет невозможно, но, есть одно маленькое НО: Никто не запрещал брать FFT от всего сигнала :)
Sinus
Участник
Offline3.0
с авг 2010
Санкт-Петербург
Сообщений: 1055

Дата: 23 Дек 2011 04:09:05 · Поправил: Sinus (23 Дек 2011 14:25:23) #  

Programmist
Блоки склеить будет невозможно, но, есть одно маленькое НО: Никто не запрещал брать FFT от всего сигнала :)

Ура, вижу, что наконец-то Вы осознали весь "пафос" моего "подхода" :-))) - ведь я с самого начала упорно толдычу, что работаю именно с фурье-образами сигналов целиком ! Именно с полной спектральной картиной сигналов целиком и разбираюсь тут с амого начала.

Более того, чтобы иметь размеры "два в целой степени" дополняю концы сигналов нулями. Так что, размерчики у меня частенько за 8 млн. сэмплов зашкаливают, - и ничего, не сдох, всё нормуль; главное, как говорится, - не сc..ть с Трезоркой на границе :-))))) А вот как только перейду к обработке сигналов блоками, тотчас заменю FFT обычными КИХ-фильтрами, как делают все нормальные люди.

Кстати, потихоньку уже прощаюсь с FFT. Но "под занавес" ещё один FFT-шный результатец хочется здесь предъявить. Сконвертил по 3-му варианту iq2r эталонный iq-сигнал Meshа с FM (файл "StereoKCC") Имхо, это есть FM-сигнал на всю полосу 250 кГц, и потому без разницы, как его конвертить - как iq=AB или как iq=BA (имхо); вот на всякий случай оба результата:

http://www.divshare.com/download/16439558-3d3
real_iz_StereoKCC_FFT-conv-3_iq=AB_Fd=500kHz.wav
http://www.divshare.com/download/16439561-58b
real_iz_StereKCC_FFT-conv-3_iq=BA_Fd=500kHz.wav

Но это ладно. Главная радость - удалось эту FM и демодулировать всё тем же любимым FFT :-))). Кому интересно - послушайте, качество звука не хуже (имхо ессно), чем у Mesha и mikasa76:

http://www.divshare.com/download/16439579-57f
FFT-conv-3_BA_demod-FM_StereoKCC_Fd=31250Hz.wav

Принцип демодуляции FM здесь не квадратурный, а как в простейшем ЧМ-приёмнике:

1) Сигнал сначала усиливаю в очень большое число раз (например 1000) и ограничиваю по амплитуде - это чтобы избавиться от паразитной АМ.

2) Затем делаю FFT и "пропускаю через фильтр" с линейной АЧХ. Проще говоря - умножаю фурье-амплитуды S(k) на значения линейной функции K(k) = k. Тем самым FM преобразуется в AM.

3) Делаю IFFT, и полученный таким образом AM-сигнал S(t) уже демодулирую как АМ - известным методом, о котором говорил раньше, - как в детекторном приёмнике :-)). Вот поясняющие графики:


Увеличить


А чо? Всё по простецки, по-дурацки, но звучит-то клёво! )) Имхо, можно для прикола такой рецепт подкинуть в тему про ЧМ-демодуляцию, есть такая на форуме ;)) (Шутко).

ps. Надпись на рис. исправил, (там была неверно Fdiscr указана). Децимацию в 16 раз делал тоже методом FFT, как раньше описывл (500 кГц/ 16 = 31250 Гц - это дискрет в выходном аудио-файле)
Programmist
Участник
Offline4.0
с ноя 2008
Москва
Сообщений: 3826

Дата: 23 Дек 2011 05:18:53 · Поправил: Programmist (23 Дек 2011 12:20:33) #  

можно для прикола такой рецепт подкинуть в тему про ЧМ-демодуляцию
Можно, еще не известно, что лучше будет, если рецепт доработать :)

Сигнал сначала усиливаю в очень большое число раз
Я его усиливаю сразу, в 32767 раз (если это 32 бита, со своими абсолютными значениями, менее единицы), 16 бит не усиливаются, 24 бита делятся на 255. Далее вся работа с плавающей точкой, можно не боятся появления признаков квантования, в разумных пределах, естественно.

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

з.ы.
А то, что демо прога была, так она и была - демо. Сам наткнулся на множество багов, при первой попытке включить ее в реальную задачу. В процессе работы над "щепками" не видно "бревен". Сдохла на wav-e c неправильным заголовком, и работать неудобно, не смотря на то, что фильтры (на FFT), достаточно качественные и быстрые, да и в конвертере, вроде как, ничего ужасного не нашли. А вот сдвиг спектра и не работал :(

з.ы.з.ы.
Sinus
вот на всякий случай оба результата:
Разные. От первого варианта. Может быть, это у меня из-за окон, или модули разные, но спектры полностью не совмещаются. Такое впечатление, что все сдвинуто на один отсчет, куда-то в сторону и в бок, а так, все вроде идентично. Это я при максимальном разрешении сравнивал, частоту и фазу, с наложением двух полупрозрачных слоев (картинок). На таком файле понять что-либо сложно. Нужны специальные тестовые сигналы (как таблица в телеящике).
Пока "I и Q карандаши" не сделаю, чтобы сигнал нарисовать можно было, разобраться, куда чего сдвинулось трудно, все должно совпадать идеально, если не совпадет - значит, придется ставить фазовый множитель.
DVE
Участник
Offline3.8
с ноя 2006
EU
Сообщений: 5098

Дата: 23 Дек 2011 13:54:43 #  

Programmist
> а его возможности в синтезе сигналов, пока вообще не рассматривали

http://ru.wikipedia.org/wiki/OFDM
petr0v
Участник
Offline2.3
с мая 2010
Balakhna
Сообщений: 412

Дата: 23 Дек 2011 14:43:38 #  

Programmist

Блоки склеить будет невозможно, но, есть одно маленькое НО: Никто не запрещал брать FFT от всего сигнала :)

Котельников запрещает!


Ура, вижу, что наконец-то Вы осознали весь "пафос" моего "подхода" :-))) - ведь я с самого начала упорно толдычу, что работаю именно с фурье-образами сигналов целиком ! Именно с полной спектральной картиной сигналов целиком и разбираюсь тут с амого начала.

Сделайте сигнал - сумма двух синусоид рядышком, во временной области сгенерируйте, одну синусоиду задавите вашим фильтром. Разумеется частоты синусоид в бины попадать не должны. Потом сгенерируйте сигнал просто одна синусоида, ту которую давили, и снова тот же фильтр наложите. И без гигантизма, чтобы результат видно было, а не самообман.Что за мусор остался на других частотах?
Реклама
Google
 Страница:  ««  1  2  ...  14  15  16  17  18  ...  34  35  »» 

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