|
Декодирование FSK, посоветуйте алгоритм |
|
|
|
Jun 24 2005, 08:34
|
Группа: Новичок
Сообщений: 5
Регистрация: 23-06-05
Пользователь №: 6 258

|
Через мировой эфир передается цифровой сигнал со скоростью 333 бод, используя частотную манипуляцию без разрыва фазы. 1000Гц единичка, 1333Гц нолик (значения частот приблизительные, точные не помню). В начале посылки длинная преамбула 10 единичных бит. Сейчас для декодирования этой посылки используется ФАПЧ настроенный на 1167Гц. Так вот! Есть мысль, что используя цифровую обработку этой посылки, можно существенно повысить вероятность правильного приема, сильно обезображенной эфирными помехами посылки. Так ли это? И если так то какие алкогоритмы лучше применить? Корреляционный когерентный метод спасет меня? Или по сравнению с ФАПЧ не будет ни какого выигрыша?
Сообщение отредактировал Dmitry_R - Jun 29 2005, 11:13
|
|
|
|
|
 |
Ответов
|
Jul 11 2005, 19:26
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901

|
Цитата(moonrock @ Jul 11 2005, 11:29) Спасибо за ответ, интересный способ! У меня задача для BPSK. Была рождена похожая идея, суть такая: перемножить несколько периодов огибающей с SIN и COS (с бодовой частотой), найти ARCTAN от всего этого и скорректировать счетчик. Разумеется это получится если синхронизирующая последовательность будет 10101010101... В общем надо проверять. Хотел еще спросить, в чем лучше моделировать, точнее в чем быстрее?(я пока на С пишу модели). Об АЦП. Внешний АЦП - не хочется. Как бы это все в AVR или MSP затолкать, используя то что есть. Что касается битовой синхронизации при фазовой манипуляции, то здесь есть колоссальное количество литературы, как на русском так и на английском. К примеру Спилкер. Цифровая Спутниковая Связь. Самый широко используемый алгоритм выглядит следующим образом: Пусть К - число сигнальных отсчетов, приходящихся на один бит. Стоит задача определить номер отсчета сигнала, который является концом/началом бита. Для этого создаем массив на К элементов и последовательно заполняем c суммированием каждый элемент массива в соответствие со следующим выражением: W(к) = W(k-1) + ( I(k)*sign(I(k-1)) + Q(k)*sign(Q(k-1))), где I и Q синфазная и квадратурная компоненты сигнала (I~D(t)cos(df) , Q~D(t)sin(df) ). После N проходов, то есть после N последовательных накоплений (усреднений) необходимо найти элемент массива, содержащий наименьшее значение. После этого записать в счетчик отсчетов сигнала (счетчик битовой синхронизации) номер той самой минимальной ячейки. Теперь Ваш счетчик работает в такт синронизирущей последовательности. Число проходов N зависит от времени, которое Вам отводится на синхронизацию и от отношения сигнал/шум. Что касается последовательности, то она может быть любая, лишь бы был переход битов пусть не регулярный - это н етак важно, со временем Вы все равно засинхронизуетесь и начнете демодуляцию сообщения. Все это очень тщательно промоделировано и реализовано в спутниковых приемниках, которые разрабатывает и выпускает моя фирма. Могу выслать результаты моделирования на матлабе.
|
|
|
|
|
Jul 12 2005, 12:16
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(Dsurkov @ Jul 11 2005, 22:26) ... После N проходов, то есть после N последовательных накоплений (усреднений) необходимо найти элемент массива, содержащий наименьшее значение... Если Вы применяете стандартный метод синхронизации, не совсем понятно, почему Вы ищете минимальное значение, ведь оно соответствует минимальному отношению сигнал/шум и, соответственно, ошибка будет максимальной. Кроме того, Вы можете неправильно определить момент максимума корреляции, так как он может быть смещен относительно середины бодового интервала. В то же время, поиск максимума в Вашем накопителе даст правильное значение, когда именно нужно делать выборку и которое будет более устойчиво к помехам.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jul 12 2005, 17:56
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 6-04-05
Из: г. Москва
Пользователь №: 3 901

|
Цитата(Stanislav @ Jul 12 2005, 15:16) Цитата(Dsurkov @ Jul 11 2005, 22:26) ... После N проходов, то есть после N последовательных накоплений (усреднений) необходимо найти элемент массива, содержащий наименьшее значение... Если Вы применяете стандартный метод синхронизации, не совсем понятно, почему Вы ищете минимальное значение, ведь оно соответствует минимальному отношению сигнал/шум и, соответственно, ошибка будет максимальной. Кроме того, Вы можете неправильно определить момент максимума корреляции, так как он может быть смещен относительно середины бодового интервала. В то же время, поиск максимума в Вашем накопителе даст правильное значение, когда именно нужно делать выборку и которое будет более устойчиво к помехам. В данном случае речь идет о битовой синхронизации!, а не о вычислении корреляционной функции. Предполагается, что сигнал BPSK, согласно того что написал в своем посте moonrock. Также, насколько я понял сигнал не содержит какой-либо поднесущей (М-последовательности или кода Баркера). Просто стоит задача демодуляции сообщения, колторым промодулирована несущая по BPSK. Естсетсвенно, что в данном случае алгоритм будет работать при малой частной расстройке (единицы Гц), то есть в области нулевых частот. Так вот такой алгоритм работает очень хорошо. Его кстати же применяют и в приемниках спутниковой навигации GPS / ГЛОНАСС для демодуляции навигационного сообщения.
|
|
|
|
Сообщений в этой теме
Dmitry_R Декодирование FSK Jun 24 2005, 08:34 bmf Насчет выигрыша с ФАПЧ не знаю, но сам метод и алг... Jun 24 2005, 11:27 proxi Цитата(bmf @ Jun 24 2005, 13:27)Насчет выигры... Jun 25 2005, 09:42 Fast Цитата(Dmitry_R @ Jun 24 2005, 11:34)Через ми... Jun 27 2005, 12:12 Dmitry_R Цитата(Fast @ Jun 27 2005, 15:12)Цитата(Dmitr... Jun 29 2005, 06:14 vm1 Цитата(Dmitry_R @ Jun 24 2005, 11:34)Через ми... Jun 27 2005, 14:35 Fast Цитата(vm1 @ Jun 27 2005, 17:35)Так не бывает... Jun 27 2005, 15:06 Tommyknocker Цитата(vm1 @ Jun 27 2005, 17:35)Цитата(Dmitry... Jun 27 2005, 19:36  Dmitry_R [/quote]
Так не бывает при FSK, несущая здесь мен... Jun 29 2005, 05:52 Stanislav Цитата(Dmitry_R @ Jun 24 2005, 11:34)Через ми... Jul 4 2005, 18:51 Fast Цитата(Stanislav @ Jul 4 2005, 21:51)Следующи... Jul 5 2005, 10:07 Dmitry_R
Следующий метод приема будет гораздо эффективнее ... Jul 25 2005, 07:05  Stanislav Цитата(Dmitry_R @ Jul 25 2005, 10:05)Цитата(S... Jul 25 2005, 23:05  Stanislav Посмотрел матлабовский файл, добавил замечания. Си... Jul 26 2005, 16:45 moonrock to Stanislav: а можно подробнее узнать о 6 пункте
... Jul 9 2005, 12:51 Stanislav Цитата(moonrock @ Jul 9 2005, 15:51)to Stanis... Jul 9 2005, 15:00 Stanislav Цитата(moonrock @ Jul 11 2005, 11:29)Спасибо ... Jul 11 2005, 15:16  vm1 Я из огибающих x и y для FSK получал сигнал по
фо... Jul 11 2005, 16:05   Stanislav Цитата(vm1 @ Jul 11 2005, 19:05)Я из огибающи... Jul 11 2005, 18:07    vm1 X и Y фильтрованные компоненты после
перемножения ... Jul 12 2005, 09:59     vm1 Поправка: разницу между текущим и немного задержан... Jul 12 2005, 10:01     Stanislav Цитата(vm1 @ Jul 12 2005, 12:59)X и Y фильтро... Jul 12 2005, 12:02    Stanislav Цитата(Dsurkov @ Jul 12 2005, 20:56)В данном ... Jul 13 2005, 14:58 moonrock Спасибо всем за ответы!
Мне очень понравился... Jul 13 2005, 10:20 Tommyknocker Цитата(moonrock @ Jul 13 2005, 13:20)Спасибо ... Jul 13 2005, 19:18
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|