2016-04-27 9 views
5

Я пытаюсь демодулировать сигнал с помощью GNU Radio Companion. Сигналом является FSK, с меткой и пространственными частотами на 1200 и 2200 Гц, соответственно.
Данные в текстовых данных сигнала, генерируемые устройством под названием GeoStamp Audio. Устройство генерирует звук GPS-данных, подаваемых в него в реальном времени, и также может декодировать этот звук. У меня есть декодированная текстовая версия аудио для справки.Демодуляция FSK с помощью GNU Radio

Я установил график потока в GNU Radio (см. Ниже), и он работает без ошибок, но со всеми вариантами, которые я пытался, я до сих пор не могу получить данные. Поэтому у меня есть несколько вопросов:
1) Выходной поток потока должен быть двоичным (1 с и 0 с), который я могу позже преобразовать в обычный текст, правильно?
2) Правильно ли подавать звуковой файл wav так, как я?
3) Как я могу восстановить данные из демодулированного сигнала - я что-то пропустил в своем поточном графе?

Flow Graph

Это FFT сюжет WAV аудио файла перед тем демодуляции:

FFT Plot before Demod

Это результат раковины области действий после демодуляции (может быть, выглядит многообещающим?): Scope Sink after Demod

ОБНОВЛЕНИЕ (2 августа 2016 года): Я все еще работаю над этой проблемой (иногда) и, к сожалению, пока не могу получить данные. В результате получается многообещающая строка из 1 и 0, но ничего не понятна.

Если у кого-то есть предложения по выяснению настроек в блоках MMC Polyphase Clock Sync или Clock Recovery или усилении на блоке Quad Demod, я был бы очень признателен.

Вот одна версии обновленного графа потока на основе ответа Маркуса (также пытаюсь другие версии с восстановлением многофазных часов): enter image description here

Однако я до сих пор не удалось восстановить данные, которые имеют смысл. Результатом является длинная строка из 1 и 0, но не правильная. Я попытался настроить почти все настройки во всех блоках. Я думал, что восстановление часов было выключено, но я пробовал широкий диапазон значений без каких-либо улучшений.
Есть ли что-нибудь еще, что мне не хватает или нужно изменить?

+0

вы не должны подключить FFT погрузиться на выход вашего квадратурного демода, но на вход; это будет показывать только скорость символа как периодичность. Однако масштаб области квадратурного выхода демода будет гораздо интереснее. –

+0

О да, я просто экспериментировал с этим, чтобы посмотреть, как выглядит результат демодуляции. График области после демодуляции действительно выглядел интересным, я отредактирую свой пост, чтобы добавить его. – Bird

+0

Интересно! Да, я бы сказал, это довольно многообещающе. Когда я развиваю вещи, я бы сравнил вывод раковины с областью после демодулятора с водопадом для входа звука. –

ответ

8

Таким образом, на первый взгляд, мой подход здесь будет выглядеть примерно так:

Flow graph of analysis approach

Что происходит здесь является то, что мы берем на вход, переложить его в частотной области, так что метка и пространство при + -500 Гц, а затем использовать квадратурный демод. «Логически», тогда мы можем просто «принять решение». Я поделюсь конфигурацию Xlating FIR здесь:

Parametrization of the Xlating FIR Filter

Обратите внимание, что сигнал сначала сдвинут таким образом, что центральная частота (средняя между 2200 и 1200 Гц) заканчивается в 0Hz, а затем фильтруют с помощью низкий коэффициент усиления (коэффициент усиления = 1,0, полоса пропускания начинается с 1 кГц, полоса пропускания заканчивается на частоте 1 кГц - 400 Гц = 600 Гц).На данный момент фактическая полоса пропускания, которая все еще присутствует в сигнале, намного ниже, чем частота дискретизации, поэтому вы можете просто просто уменьшить без потерь (установить прореживание на что-то более высокое, например 16), но для анализа мы выиграли ' Это сделать.

Теперь раковина должна показывать лучшие значения. Посмотрите на края; они, вероятно, не очень круты. Для синхронизации часов я бы поэтому рекомендовал просто пойти и попробовать многофазное восстановление часов вместо Müller & Mueller; использование любой «несколько круглой» формы импульса может работать.


Для удовольствия и смеха, я нажал вместе быстрый демо DEMOD (GRC here):

Demod demo

, который показывает:

demod demo: Demonstration of demod demo demo output

+0

Ничего себе! Большое вам спасибо за все эти детали, которые разрешили несколько запутанных моментов, которые у меня были. По какой-то причине, когда я использую синхронизацию часов Polyphase, GRC говорит, что «Python неожиданно завершается», поэтому я пытаюсь восстановить часы восстановления MM. Теперь раковина выглядит действительно многообещающей. Попытка выяснить, как читать файлы на основе [этого сайта] (http://gnuradio.org/redmine/projects/gnuradio/wiki/FAQ#What-is-the-file-format-of-a-file_sink -Как-может-I-чтения-файлы производство, по-а-файл раковина). – Bird

+0

По какой-то причине я по-прежнему не могу восстановить фактические данные. Мой результат кажется, что он находится на правильном пути, но двоичные значения - это нонсенс. Я не могу сказать, является ли это моей обработкой или сигналом. – Bird

+0

Проблема может быть в том, что вы не знаете, где ваши границы байтов, не так ли? Или, может быть, они используют какую-то манчестерскую кодировку или что-то подобное? Код канала? –

Смежные вопросы