реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> FSK декодер
rimidalv
сообщение Mar 12 2016, 20:55
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 26-02-16
Пользователь №: 90 625



добрый день, вопрос у меня следующий: на выходе FSK демодулятора имею восстановленную цифровую последовательность,НО каждому биту
соответствует N=Fдискр/Fвх.сигн. точек. Видимо, мне необходима децимация, но, чтобы ее сделать,нужна синхронизация,то есть я должен знать
номер отсчета, соответствующий началу бита и от него плясать. Как лучше сделать? Можно заложить длинную последовательность и, при наличии
хорошей корреляции с ней, считать, что привязались.Тогда, если, например, выбрать байт для привязки 0x55, эта последовательность будет
длиной 8*N точек,чередуются N 0-й и N 1-ц 4 раза. С ней и сравниваем каждые 8*N отсчетов входного сигнала. Если фрагмент похож - от этой
точки и пляшем. Или вообще не так делают?

PS не так давно спрашивал про модуляцию FSK-спасибо всем ответившим,разобрался,заработало...
Go to the top of the page
 
+Quote Post
Anton1990
сообщение Mar 13 2016, 05:48
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584



Цитата(rimidalv @ Mar 12 2016, 23:55) *
добрый день, вопрос у меня следующий: на выходе FSK демодулятора имею восстановленную цифровую последовательность,НО каждому биту
соответствует N=Fдискр/Fвх.сигн. точек. Видимо, мне необходима децимация, но, чтобы ее сделать,нужна синхронизация,то есть я должен знать
номер отсчета, соответствующий началу бита и от него плясать. Как лучше сделать? Можно заложить длинную последовательность и, при наличии
хорошей корреляции с ней, считать, что привязались.Тогда, если, например, выбрать байт для привязки 0x55, эта последовательность будет
длиной 8*N точек,чередуются N 0-й и N 1-ц 4 раза. С ней и сравниваем каждые 8*N отсчетов входного сигнала. Если фрагмент похож - от этой
точки и пляшем. Или вообще не так делают?

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


Есть непонятные моменты. Например: Fдискр и Fвх.сигн. - они что кратны? Если нет, то не обойтись без дробной передискретизации работающей вместе с символьной синхронизацией. Если все-таки кратны, то необходима символьная синхронизация. Например так: "ловите" момент перехода через "ноль" - это и есть начало символа, отсчитываете N отсчетов - конец символа.
Go to the top of the page
 
+Quote Post
rimidalv
сообщение Mar 13 2016, 09:05
Сообщение #3





Группа: Участник
Сообщений: 7
Регистрация: 26-02-16
Пользователь №: 90 625



Частоты кратны(пока :-)). В приниципе, сейчас я так и делаю - ловлю переход через 0.
Но если передачи нет - на входе шумы, можно же привязаться к переходу, который
вызван шумами, или в этом случае именно сравнение с преамбулой посылки покажет,
что это не правильная посылка?
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 13 2016, 09:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(rimidalv @ Mar 13 2016, 12:05) *
или в этом случае именно сравнение с преамбулой посылки покажет,
что это не правильная посылка?


В шуме любые преамбулы встречаются.
Go to the top of the page
 
+Quote Post
rimidalv
сообщение Mar 13 2016, 10:02
Сообщение #5





Группа: Участник
Сообщений: 7
Регистрация: 26-02-16
Пользователь №: 90 625



так в том-то и дело, понятно, что дальше есть crc сообщения, которая не будет равна для ошибочного приема,
но все таки как лучше синхронизироваться с моментом смены символов?
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 13 2016, 10:24
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(rimidalv @ Mar 13 2016, 13:02) *
так в том-то и дело, понятно, что дальше есть crc сообщения, которая не будет равна для ошибочного приема,


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

Цитата(rimidalv @ Mar 13 2016, 13:02) *
но все таки как лучше синхронизироваться с моментом смены символов?


Разные способы есть. Например на выходе частотного детектора ставите чётную нелинейность, на выходе которой в спектре появляется гармоника символьной частоты, при наличии символьных переходов, выделяете эту гармонику узкополосным фильтром и используете для выборки отсчётов символов в моменты максимального отношения сигна/шум.
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Mar 13 2016, 15:02
Сообщение #7


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



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

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

Дискриминаторов фазы символов тоже много. Вот на выбор:
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
Go to the top of the page
 
+Quote Post
rimidalv
сообщение Mar 13 2016, 16:39
Сообщение #8





Группа: Участник
Сообщений: 7
Регистрация: 26-02-16
Пользователь №: 90 625



Сейчас буду смотреть, спасибо.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 13 2016, 18:26
Сообщение #9


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(rimidalv @ Mar 12 2016, 20:55) *
на выходе FSK демодулятора имею восстановленную цифровую последовательность,НО каждому биту соответствует N=Fдискр/Fвх.сигн. точек. Можно заложить длинную последовательность и, при наличии
хорошей корреляции с ней, считать, что привязались.Тогда, если, например, выбрать байт для привязки 0x55, эта последовательность будет
длиной 8*N точек,чередуются N 0-й и N 1-ц 4 раза. С ней и сравниваем каждые 8*N отсчетов входного сигнала


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

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


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
rimidalv
сообщение Mar 13 2016, 20:00
Сообщение #10





Группа: Участник
Сообщений: 7
Регистрация: 26-02-16
Пользователь №: 90 625



Завтра буду пробовать
Go to the top of the page
 
+Quote Post
Corner
сообщение Mar 14 2016, 05:38
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Цитата(rimidalv @ Mar 13 2016, 12:05) *
Частоты кратны(пока :-)).

Разброс частот, фаз и Доплер. Приемник никогда не совпадает по частоте с передатчиком. Помимо СС в начале, еще должна быть периодическая или встроенная синхронизация внутри данных. Преобразование без постоянного напряжения и скремблер в помощь.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 17:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01432 секунд с 7
ELECTRONIX ©2004-2016