Автор |
Сообщение |
|
Дата: 24 Май 2006 16:50:44 · Поправил: Andy
#
AlexSW
Что-то мне не удалось получить "крестик" из файла out.wav :(
|
|
Дата: 24 Май 2006 16:54:49
#
Andy Софт левый, может неправильно рисовать, на синтезе ошибок не бывает у нормальных пацанов. ;)
|
Реклама Google
|
|
|
Дата: 24 Май 2006 18:15:46
#
Нормальный пацан
Ошибки свойственны всем
Mesh
Файл в копилке. http://www.radioscanner.ru/uploader/2006/out1.wav 48000Hz, 16bit, Mono, SDPSK, NRZ, амплитуда 10000.
Вот что должно быть:
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too. When we speak of free softwas
Andy
У меня тоже такаяже картинка получается, но декодер в текст переводит. В случае подачи отсчетов вообще без ошибок, а с wav на line-in показывал что получается несколько постов назад. |
|
Дата: 24 Май 2006 20:14:17
#
AlexSW Не знаю, чего не то, по алгоритму один в один приведённому выше, поменян только порядок передаваемых битов, получен такой файл текст скопирован с окна из этого форума из предыдущего вашего поста. Одним словом файлы должны быть одинаковые но они разные. А добавил по 10 пробелов в начале и конце текста. |
|
Дата: 24 Май 2006 20:46:31
#
А вот так он демодулируется, правда не в реальном времени, и с ручными настройками.
Увеличить
А с Вашим AlexSW, что-то и правда не так, есть переходы на 180 градусов которых быть не должно по умолчанию. |
|
Дата: 24 Май 2006 21:19:07
#
Буду ковырять дальше. Я только учусь.
|
|
Дата: 24 Май 2006 22:06:46
#
Господа, а есть ли смысл разбираться со старым форматом передачи, которого в эфире уже нет?
Сейчас есть только сигнал нового типа |
|
Дата: 24 Май 2006 22:53:44
#
SergUA6
По-мойму вы чего то не то поймали..
|
|
Дата: 24 Май 2006 23:04:49
#
ZahaR
Эта... да я то ничего не ловил, у меня и не чем особо, и не слышно их, я просто пытался из того, что у нас есть выковырять три волшебных байта синхры, пока ничего не вышло.
|
|
Дата: 24 Май 2006 23:08:42 · Поправил: Shephard
#
ZahaR
тупик? Вы проясните ситуацию про декодер? Какое железо? Что за микросхема демодулятор, и где продаётся?
Почему Вы всячески скрываете любую информацию о своём демодуляторе?
|
|
Дата: 24 Май 2006 23:16:25
#
SergUA6
Ну то, что нечем, это аргумент. А вот насчет "не слышно" не совсем понятно...
|
|
Дата: 24 Май 2006 23:19:34
#
john_qkk
Давали в руки приемник, я ничего не услышал.
|
|
Дата: 24 Май 2006 23:38:44
#
SergUA6
В диапазоне 137.0 - 138.0 их слышно бОльшую часть времени. Иногда слышно даже два, но редко.
Сигнал сильный, принять можно на резинку, но желательно снаружи помещения. Если установить программу Orbitron, то можно увидеть все пролеты. Правда, не для всех спутников указаны частоты. Я сейчас частоты в своем орбитроне уточняю.
|
|
Дата: 25 Май 2006 01:13:09
#
|
|
Дата: 26 Май 2006 10:47:25
#
Ну что, Господа, неужели интерес к теме совсем угас?
Из последних записей хоть понятно, что за модуляция и скорость?
Для декодра не пригодна? Я, увы, лучше записать не могу.
|
|
Дата: 26 Май 2006 14:55:46 · Поправил: AlexSW
#
Mesh
В файле out_1.wav вы синтезировали биты текста или изменения битов?
SergUA6
А вот так он демодулируется, правда не в реальном времени, и с ручными настройками
Чем вы демодулировали и с какими ручными настройками?
А с Вашим AlexSW, что-то и правда не так, есть переходы на 180 градусов которых быть не должно по умолчанию
Да была ошибка в модуляторе, прошу строго не судить, это моя всего вторая попытка писать декодеры.
|
|
Дата: 26 Май 2006 18:29:18
#
Давайте попробуем еще раз расставить все точки над i, в этом, вдруг оказавшемся на редкость слабо освещенном вопросе. Нужно убедится, что в предоставленных записях действительно SDPSK, и если это так, то насколько реально ее демодулировать. В том, что это SDPSK, косвенно можно убедиться по фазовому созвездию, к сожалению это не дает ни каких гарантий относительно демодуляции, по причине, что созвездие может иметь отличный вид, даже если половина посылок будет пропущена или вообще отражена не на своих местах, и еще хуже,даже при не правильных параметрах просмотра, все равно будет видно хорошую картину.
Создаем тестовый сигнал SDPSK, с требуемыми параметрами и крутим его выявляя особенности и тонкости, смотрим как выглядит распределение фаз в заведомо нормальном(тестовом) сигнале. Вот как это выглядит в идеальном случае:
Увеличить
Смотрим то же самое на реальной записи(забегая вперед скажу, всего одна запись имеет соответствующее качество)
Увеличить
В принципе, очень даже убедительное качество, можно попробовать демодулировать, однако есть проблема, проверить верность демодуляции не получится, так как не с чем сравнивать. Нужен заведомо правильный сигнал как в виде wav файла так и уже после демодуляции. Обращаем внимание на файлы присланные ZahaR в числе которых есть и дампы непосредственно после демодулятора. Чуть чуть их поковыряв приходим к выводу, что в этих файлах сигнал с выхода демодулятора в виде фазового угла, по два бита на отсчет, где 00=0, 10=90, 11=180 и 01=270 градусов соответственно, что позволяет полностью восстановить исходный сигнал. Восстановленный сигнал разительно отличается по звуку, от тех записей которые представлены, это конечно плохо, но прямого ответа на вопрос, можно ли демодулировать записи не дает. Используем восстановленный файл в качестве образцового, пишем демодулятор, демодулируем образцовый файл, получаем биты, по этим битам создаем в формате дампа от ZahaR свой дамп, и подсовываем его программе Orbcomm.exe, если демодуляция прошла без ошибок она его обработает и выдаст то же самое что и на нормальном(родном) дампе. После некоторой возни все получилось, таким образом уже можно быть уверенным, что демодулятор работает правильно, теперь демодулируем запись, и имея перед собой биты после ее демодуляции и образцовые(из восстановленного файла) ищем чем же все таки эти записи различаются. Многим, начиная от слова синхронизации и заканичвая самим содержимым фреймов, общим является лишь наличие нулевых байт на местах указанных в документации, и формат фрейма.
Битовый поток после демодуляции восстановленного файла.
Увеличить
Обратите внимание на почти полное соответствие документации. Синим выделены три байта синхронизации, биты которых расположены так 0-1-2-3-4-5-6-7, и получается 568A9F, что после приведения к нормальному виду соответствует 65A8F9 то есть как и описано. Обратите внимание на явную регулярность как в пакете так и между пакетами, что и придает сигналу резко характерное звучание.
Битовый поток после демодуляции записи.
Увеличить
Так же выделены синим цветом байты синхронизации, которые совсем другие, и зеленая строка - нулевой пакет, который должен быть одинаковым по всему файлу и появляться ровно через секунду, так оно и есть, только заголовок у него другой, да и сам фрейм совсем не содержит регулярностей, ни каких. Насколько велика вероятность, что все же не верно демодулирована запись? Вероятность есть, но она ничтожна, и вот почему, во первых демодулятор проверен, во вторых очень сомнительно, что демодулятор с точностью до бита правильно демодулирует каждый нулевой пакет(96 бит между прочим) и вдруг не правильно все остальные, с чего я решил, что нулевой пакет демодулирован правильно? Во первых нулевому пакету всегда предшествует пакет с тремя первыми байтами синхронизации которые так же встречаются ровно через секунду по всей записи, и должны быть одинаковыми, все это так и происходит, если бы демодулятор где-то "косил" это обязательно дало бы сбой в этой регулярности, но этого нет. В принципе, то, что это Orbcomm, но только другой, не тот который был раньше, аргументов достаточно, демодулировать записи можно, вопрос, что с ними делать.
Для полноты картины нужно решить еще один вопрос, действительно ли можно принимать спутники Orbcomm на простые не "секретные" приемники, или это случайность, между прочим наличие всего одной нормальной записи является большим поводом задуматься над этим.
Для решения этого вопроса, синтезируем сигнал на частоте к примеру 36 Кгц и попробуем его пропустить, через фазовый и частотный дискриминаторы. Результаты, этих действий приведены.
Увеличить
Надо сказать, что после частотного дискриминатора sdpsk превращается в адскую смесь PSK-2 и еще чего-то с сильно урезанным спектром(на уровне 2400 Гц) и прижатым к нулевой частоте, а после фазового дискриминатора уровень сколь ни будь заметных составляющих вообще просто мизерный, что автоматически означает, не в той моде этот сигнал принять может и можно, но вот демодулировать его как SDPSK просто не возможно, а это в свою очередь значит, что Orbcomm следует принимать исключительно в режиме NFM. Но есть ложка дегтя в этом меде, даже в идеале, полоса сигнала лежит в пределах 2400-4800 Гц, реально можно накинуть смело по килогерцу в обе стороны, то есть получаем 1400-5800 примерно, как раз в эту полосу попадает срез ФНЧ обычных девайсов, что приводит к необратимым фазовым искажениям сигнала, то есть ни какое выравнивание амплитуды уже не поможет, а это значит только выход с дискриминатора с верхней частотой не менее 6-7 кГц(желательно вообще отсутствие всяких фильтров), что обязывает делать записи с частотой не ниже 22050 Гц. Возможно в этом даже есть особый смысл, типа контролировать наличие сигнала можно простым приемником, а вот, что то реально принимать уже нет. Ну и последнее, отношение сигнал шум должно быть высоким, к сожалению, как уже говорилось, только одна запись удовлетворяет этому условию, все остальные нет. |
|
Дата: 27 Май 2006 17:44:16 · Поправил: Mesh
#
По моему в Битовый поток после демодуляции записи не снята кодировка NRZ-M у меня в ручную получаются байты 65A8F9 и флаг нулевого пакета 1E, выходит всё демодулировано правильно, а что звук другой так наверно передают чего то другое.
|
|
Дата: 27 Май 2006 20:16:25 · Поправил: SergUA6
#
Да. Все верно, косяк, забыл снять nrz-m
Увеличить
таким образом, все сходится, что называется до бита. Содержание пакетов правда не совсем такое как у образцового/восстановленного сигнала, отсюда и разница на слух. Таким образом, итоги всей этой эпопеи следующие:
Принимать спутники Orbcomm на приемники с выходом с дискриминатора можно, в режиме NFM. При надлежащем качестве, сигнал можно демодулировать. При наличии желания и документации можно и декодировать.
Типа все точки над i расставлены. ;) |
|
Дата: 27 Май 2006 22:42:14
#
SergUA6
Mesh
А что насчет моих записей? Они пригодны для демодуляции?
Или там сигнал/шум сильно подкачал?
|
|
Дата: 27 Май 2006 22:45:25
#
john_qkk
Не пригодны, у меня ничего не вышло, на них даже созвездия толкового нет, все же желательно убедиться, что не только премник Shephard'а на это годится, в смысле нужны еще записи, для полного контроля.
|
|
Дата: 27 Май 2006 22:51:17
#
SergUA6
Хорошо, сделаю записи с максимальной частотой. Какая продолжительность записи необходима?
|
|
Дата: 27 Май 2006 22:53:48
#
Не менее 3 секунд, для гарантированного попадания и опознования синхрослова.
|
|
Дата: 29 Май 2006 09:39:36
#
AlexSW У вас чего нибудь получается? Признаться я уже забыл, что и как делал, и все работы свернул и проекты снес. ;(
|
|
Дата: 29 Май 2006 11:37:38
#
Mesh
Была ошибка в моем кодере - исправил. Теперь сигнал синтезирую правильно, но вот парадокс, сигнал с ошибкой распознавался моим декодером в 70%, а без ошибки не распознает вообще. Буду позже переписывать декодер.
SergUA6
Можно узнать по какому алгоритму Вы делали декодирование? Я делал как описано в этом мануале: ROBUST, FFT-BASED, SINGLE CARRIER, MULTIUSER,
SDPSK/DPSK BLOCK DEMODULATION IN THE PRESENCE OF
SYMBOL SYNCHRONIZATION JITTER
|
|
Дата: 29 Май 2006 12:01:29
#
AlexSW
То есть Вы делаете демодулятор через FFT? И какая у Вас длинна блока выборки для FFT получилась?
|
|
Дата: 29 Май 2006 13:21:31
#
SergUA6
Нет не через FFT. Просто пользовался описанием и принципами декодирования из этого мануала. Я пробовал выделить Re и Im из сигнала, а далее как в мануале. Кстати там не только через FFT. А по какому алгоритму Вы декодировали?
|
|
Дата: 29 Май 2006 14:02:18
#
AlexSW
Нет не через FFT
Понятно.
Поскольку реальный демодулятор я писать не собирался, то взял то, что у меня есть и немного добавил чего не хватало, а есть SV+ от которого в конечном итоге потребовались те самые Re и Im, и которые легко получить http://www.radioscanner.ru/forum/index.php?action=vthread&forum=21&topic=16848&page=2 , дальше потребовалось написать сущую ерунду, которая бы из Re и Im слепила в отдельный файл Yn точно как нарисованно в документе, OneSymbolDelay означает линию задержки на 20 тактов для частоты дискретизации файла 96000 Гц. Ну а дальше из того файла, что получился, легко выковырять c частотой манипуляции(через те же 20 тактов) то что нужно, единственная проблема это правильная начальная фазировка(с какого отсчета начать шагать 20-ти тактовыми шагами), легко решается в ручную, при наличии какой либо визуализации. Так как тактовая все же не равна метматически точно 4800(да и частота дискретизации то же не точная), то весь файл обработать не возможно, без принятия мер автоподстройки тактовой, но это и не требуется, 5-6 ти секундные отрезки со свистом демодулятся без особых проблем. Ну, а дальше, снятие nrz-m и собственно все. Предварительно правда вся эта кухня тщательно проверяется и выверяется на образцовых сигналах. Вот так это выглядит в общих чертах. |
|
Дата: 29 Май 2006 15:26:47
#
SergUA6
Я делаю полностью также, только на С. Частота у меня 48000 и 1 бит получается 10 отсчетов. Наверное я всеже не правильно питаюсь получить Re и Im, потому что когда была ошибка в моем кодере, декодер не стабильно, но работал. С нормальными сигналами работать перестал. Сейчас ищу, что не так.
Можно узнать по какой формуле Вы получаете Re и Im?
|
|
Дата: 29 Май 2006 15:35:45
#
AlexSW
А нету формул, есть фапч и генераторы sin и cos перемножая которые с сигналом получаем Re и Im на нулевой частоте.
|
Реклама Google |
|