Перейти к содержанию
    

FSK декодер

добрый день, вопрос у меня следующий: на выходе FSK демодулятора имею восстановленную цифровую последовательность,НО каждому биту

соответствует N=Fдискр/Fвх.сигн. точек. Видимо, мне необходима децимация, но, чтобы ее сделать,нужна синхронизация,то есть я должен знать

номер отсчета, соответствующий началу бита и от него плясать. Как лучше сделать? Можно заложить длинную последовательность и, при наличии

хорошей корреляции с ней, считать, что привязались.Тогда, если, например, выбрать байт для привязки 0x55, эта последовательность будет

длиной 8*N точек,чередуются N 0-й и N 1-ц 4 раза. С ней и сравниваем каждые 8*N отсчетов входного сигнала. Если фрагмент похож - от этой

точки и пляшем. Или вообще не так делают?

 

PS не так давно спрашивал про модуляцию FSK-спасибо всем ответившим,разобрался,заработало...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

добрый день, вопрос у меня следующий: на выходе FSK демодулятора имею восстановленную цифровую последовательность,НО каждому биту

соответствует N=Fдискр/Fвх.сигн. точек. Видимо, мне необходима децимация, но, чтобы ее сделать,нужна синхронизация,то есть я должен знать

номер отсчета, соответствующий началу бита и от него плясать. Как лучше сделать? Можно заложить длинную последовательность и, при наличии

хорошей корреляции с ней, считать, что привязались.Тогда, если, например, выбрать байт для привязки 0x55, эта последовательность будет

длиной 8*N точек,чередуются N 0-й и N 1-ц 4 раза. С ней и сравниваем каждые 8*N отсчетов входного сигнала. Если фрагмент похож - от этой

точки и пляшем. Или вообще не так делают?

 

PS не так давно спрашивал про модуляцию FSK-спасибо всем ответившим,разобрался,заработало...

 

Есть непонятные моменты. Например: Fдискр и Fвх.сигн. - они что кратны? Если нет, то не обойтись без дробной передискретизации работающей вместе с символьной синхронизацией. Если все-таки кратны, то необходима символьная синхронизация. Например так: "ловите" момент перехода через "ноль" - это и есть начало символа, отсчитываете N отсчетов - конец символа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Частоты кратны(пока :-)). В приниципе, сейчас я так и делаю - ловлю переход через 0.

Но если передачи нет - на входе шумы, можно же привязаться к переходу, который

вызван шумами, или в этом случае именно сравнение с преамбулой посылки покажет,

что это не правильная посылка?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

или в этом случае именно сравнение с преамбулой посылки покажет,

что это не правильная посылка?

 

В шуме любые преамбулы встречаются.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так в том-то и дело, понятно, что дальше есть crc сообщения, которая не будет равна для ошибочного приема,

но все таки как лучше синхронизироваться с моментом смены символов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так в том-то и дело, понятно, что дальше есть crc сообщения, которая не будет равна для ошибочного приема,

 

И CRC любые в шуме встречаются.

 

но все таки как лучше синхронизироваться с моментом смены символов?

 

Разные способы есть. Например на выходе частотного детектора ставите чётную нелинейность, на выходе которой в спектре появляется гармоника символьной частоты, при наличии символьных переходов, выделяете эту гармонику узкополосным фильтром и используете для выборки отсчётов символов в моменты максимального отношения сигна/шум.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Один из способов реализации: система фазовой автоподстройки частоты (ФАПЧ)

генератор с управляемой частотой, выход которого - тактовая символов

петлевой фильтр

дискриминатор

 

Литературы про фапч много.

 

Дискриминаторов фазы символов тоже много. Вот на выбор:

http://mathworks.com/help/comm/ref/gardner...ngrecovery.html

http://mathworks.com/help/comm/ref/earlyla...ngrecovery.html

http://mathworks.com/help/comm/ref/mueller...ngrecovery.html

http://mathworks.com/help/comm/ref/squarin...ngrecovery.html

 

Последнее - то, о чем говорил Petrov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на выходе FSK демодулятора имею восстановленную цифровую последовательность,НО каждому биту соответствует N=Fдискр/Fвх.сигн. точек. Можно заложить длинную последовательность и, при наличии

хорошей корреляции с ней, считать, что привязались.Тогда, если, например, выбрать байт для привязки 0x55, эта последовательность будет

длиной 8*N точек,чередуются N 0-й и N 1-ц 4 раза. С ней и сравниваем каждые 8*N отсчетов входного сигнала

 

Обычно, в начале сообщения передают синхрослово (СС) определенной длины. Вашего байта 0x55 маловато будет для синхронизации. В своё время я использовал СС длиной 32 бита (на фидерной линии), причем программа допускала приём несколько неверных бит в любом месте СС, и то, на шумах каждые 18 минут появлялось ложное СС. Да, добавлю, что 32 битная последовательность имела хорошую АКФ, ну не как у кодов Баркера, а как у М-последовательностей...

 

В вашем случае последовательность будет состоять из N*32 точек, вот с ней и сравнивать. Можно и определенный процент искажений допустить. Для современных процов легко делается в реале.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Частоты кратны(пока :-)).

Разброс частот, фаз и Доплер. Приемник никогда не совпадает по частоте с передатчиком. Помимо СС в начале, еще должна быть периодическая или встроенная синхронизация внутри данных. Преобразование без постоянного напряжения и скремблер в помощь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...