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

 
 
> Демодуляция GFSK с помощью Витерби
STAR_IK
сообщение Mar 2 2011, 08:42
Сообщение #1


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

Группа: Свой
Сообщений: 136
Регистрация: 10-04-09
Из: Омск
Пользователь №: 47 461



Доброго времени суток. Возникла необходимость переписать GFSK демодулятор, заменив посимвольное принятие решений на более помехоустойчивое, учитывающее память сигнала с помощью алгоритма Витерби. Пока даже не важен индекс модуляции и BT гауссовского фильтра, т.к. при необходимости можно и поменять. Построил модель в Matlab, для простоты первого понимания взял сигнал MSK. Однако даже в этом случае возникло непонимание. Во-первых не ясно как быть с начальными условиями. Везде для пояснения пишут что в начале "0", но как я на приемном конце могу знать, что передается если я ещё это не декодировал и не принял решения? Во-вторых, в "Прокис - Цифровая связь" сказано, что на каждом интервале необходимо для каждого узла вычислять метрики, т.е. в нашем случае для каждого из 4-х узлов необходимо вычислить две метрики и исключить наибольшую. При этом на каждом символьном интервале у нас могут быть только два состояния, соответствующие +/-(pi/2) от предыдущего фазового состояния. Поэтому не ясен смысл вычислений метрик для оставшихся двух узлов.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
petrov
сообщение Mar 2 2011, 09:25
Сообщение #2


Гуру
******

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



Цитата(STAR_IK @ Mar 2 2011, 11:42) *
Во-первых не ясно как быть с начальными условиями. Везде для пояснения пишут что в начале "0", но как я на приемном конце могу знать, что передается если я ещё это не декодировал и не принял решения?


Декодер необходимо синхронизировать, например по преамбуле устанавливать в исходное состояние.


Цитата(STAR_IK @ Mar 2 2011, 11:42) *
Во-первых не ясно как быть с начальными условиями. Везде для пояснения пишут что в начале "0", но как я на приемном конце могу знать, что передается если я ещё это не декодировал и не принял решения?


У MSK 4 фазовых состояния 0 pi/2 pi -pi/2, из предыдущего фазового состояния не все переходы возможны, возможные и образуют решётку переходов между 4-мя фазовыми состояниями.

Другое дело что MSK можно оптимально без витерби демодулировать, да и в случае GMSK c BT=0.3 такой демодулятор не очень много проигрывает, что-то в районе децибела с копейками.
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Mar 2 2011, 09:56
Сообщение #3


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

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Цитата(petrov @ Mar 2 2011, 12:25) *
Другое дело что MSK можно оптимально без витерби демодулировать


Это парой фильтров разнесенными на скорость?
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 2 2011, 10:00
Сообщение #4


Гуру
******

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



Цитата(Alex65111 @ Mar 2 2011, 12:56) *
Это парой фильтров разнесенными на скорость?


http://electronix.ru/forum/index.php?s=&am...st&p=818746
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Mar 2 2011, 10:41
Сообщение #5


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

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Цитата(petrov @ Mar 2 2011, 13:00) *


7ой матлаб (serv pack 1) чего то матерится по страшной силе, на два экрана красных надписей наваливает при попытке открытия проекта.

Ну и в любом случае. Вроде бы Витерби не просто демодулирует, а пытается исправить канал (т.е. это не столько демодулятор сколько эквалайзер), и как то не совсем мне понятно (пока не смог открыть соответствующий mdl), в чем же оптимальность демодуляции без Витерби, особенно в срезе коррекции канала?
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Mar 2 2011, 10:50
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Алгоритм Витерби, вообще, не применяется для демодуляции (СЮРПРИЗ!). Он применяется для декодирования сверточных кодов.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 2 2011, 10:54
Сообщение #7


Гуру
******

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



Цитата(Alex65111 @ Mar 2 2011, 13:41) *
Ну и в любом случае. Вроде бы Витерби не просто демодулирует, а пытается исправить канал (т.е. это не столько демодулятор сколько эквалайзер), и как то не совсем мне понятно (пока не смог открыть соответствующий mdl), в чем же оптимальность демодуляции без Витерби, особенно в срезе коррекции канала?


Витерби это всего лишь алгоритм поиска максимально правдоподобного пути по решётке, автоматически он сам ничего не делает, в данном случае речь об учёте памяти модуляции, если необходим учёт памяти канала то нужно разрабатывать этот эквалайзер витерби.
Go to the top of the page
 
+Quote Post
Alex65111
сообщение Mar 2 2011, 10:56
Сообщение #8


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

Группа: Участник
Сообщений: 141
Регистрация: 25-10-07
Пользователь №: 31 729



Цитата(one_eight_seven @ Mar 2 2011, 13:50) *
Алгоритм Витерби, вообще, не применяется для демодуляции (СЮРПРИЗ!). Он применяется для декодирования сверточных кодов.



Во для GSM то на самом деле сюрприз! Они оказываются не по теме Витерби применяют когда канал корректируют (для сверточников вроде бы сюрпризов не наблюдается).

Цитата(petrov @ Mar 2 2011, 13:54) *
Витерби это всего лишь алгоритм поиска максимально правдоподобного пути по решётке, автоматически он сам ничего не делает, в данном случае речь об учёте памяти модуляции, если необходим учёт памяти канала то нужно разрабатывать этот эквалайзер витерби.



А какие мысли есть почему mdl не открывается?
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Mar 2 2011, 11:00
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



В GSM применяется Soft-Decision Viterbi Decoder, декодер, а не демодулятор.
Демодулятор выдаёт символы, декодер их оценивает. Навроде как гаечный ключ нельзя ввернуть в отверстие, в отверстие ввинчивается винт, а вот его уже можно крутить гаечным ключом.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 2 2011, 11:04
Сообщение #10


Гуру
******

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



Цитата(Alex65111 @ Mar 2 2011, 13:56) *
А какие мысли есть почему mdl не открывается?


Не знаю, если у вас более старая версия матлаба чем R2010a пробуйте более новую.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Mar 2 2011, 11:10
Сообщение #11


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(one_eight_seven @ Mar 2 2011, 15:00) *
В GSM применяется Soft-Decision Viterbi Decoder, декодер, а не демодулятор.
Демодулятор выдаёт символы, декодер их оценивает. Навроде как гаечный ключ нельзя ввернуть в отверстие, в отверстие ввинчивается винт, а вот его уже можно крутить гаечным ключом.

В GSM применяется эквалайзер Витерби, который производит оценку ИХ канала для каждого слота по заранее известной кодовой последовательности при помощи алгоритма максимального правдоподобия Витерби, а уже после демодуляции производится декодирование сверточного кода также по алгоритму Витерби. кроме того, не обязательно для целей демодуляции/декодирования применять алгоритм Витерби, можно использовать и другие алгоритмы, например, алгоритм оптимального посимвольного принятия решения - MAP (maximum a posteriori), тогда получите еще большую помехоустойчивость.

Сообщение отредактировал Serg76 - Mar 2 2011, 11:44
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 2 2011, 11:40
Сообщение #12


Гуру
******

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



Цитата(Serg76 @ Mar 2 2011, 14:10) *
В GSM применяется эквалайзер Витерби, который производит оценку ИХ канала для каждого слота по заранее известной кодовой последовательности при помощи алгоритма максимального правдоподобия Витерби, а уже после демодуляции производится декодирование сверточного кода также по алгоритму Витерби


Вроде не так, определением ИХ канала занимается отдельное устройство, а эквалайзер Витерби используя ИХ уже ищет максимально правдоподобную последовательность символов.
Go to the top of the page
 
+Quote Post
one_eight_seven
сообщение Mar 2 2011, 12:21
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Чтобы применить эквалайзер витерби нужно передавать с полезным сигналом (случайным) тестовый (детерминированый).
Демодулировать (объясните мне, как работает демодулятор Витерби, если он демодулирует ЛЮБОЙ сигнал?) обе последовательности, и уже после этого в дело вступает эквалайзер Витерби.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Mar 2 2011, 12:32
Сообщение #14


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ Mar 2 2011, 14:40) *
Вроде не так, определением ИХ канала занимается отдельное устройство, а эквалайзер Витерби используя ИХ уже ищет максимально правдоподобную последовательность символов.

Это устройство в общем и называется эквалайзером Витерби, которое производит оценку ИХ канала, а алгоритм Витерби применяется для расчета метрику и оценки переданной последовательности данных.

Цитата(one_eight_seven @ Mar 2 2011, 15:21) *
Чтобы применить эквалайзер витерби нужно передавать с полезным сигналом (случайным) тестовый (детерминированый).
Демодулировать (объясните мне, как работает демодулятор Витерби, если он демодулирует ЛЮБОЙ сигнал?) обе последовательности, и уже после этого в дело вступает эквалайзер Витерби.

Все правильно, в пакетах GSM в середине передается настроечная последовательность, копиия которой хранится в приемнике. По ней и производится оценка ИХ.

Сообщение отредактировал Serg76 - Mar 2 2011, 12:34
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 2 2011, 12:44
Сообщение #15


Гуру
******

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



Цитата(petrov @ Mar 2 2011, 12:25) *
Декодер необходимо синхронизировать, например по преамбуле устанавливать в исходное состояние.


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


Цитата(Serg76 @ Mar 2 2011, 15:32) *
Это устройство в общем и называется эквалайзером Витерби, которое производит оценку ИХ канала, а алгоритм Витерби применяется для расчета метрику и оценки переданной последовательности данных.


С чего бы это? А если я по этой известной настроечной последовательности рассчитываю коэффициенты DFE эквалайзера? Это всего лишь фильтр согласованный с известной последовательностью, почему он вдруг эквалайзером Витерби стал?

Go to the top of the page
 
+Quote Post
Serg76
сообщение Mar 2 2011, 15:19
Сообщение #16


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(petrov @ Mar 2 2011, 15:44) *
С чего бы это? А если я по этой известной настроечной последовательности рассчитываю коэффициенты DFE эквалайзера? Это всего лишь фильтр согласованный с известной последовательностью, почему он вдруг эквалайзером Витерби стал?

Формально Вы правы, но в литературе по gsm это все рассматривается как единое устройство, вопрос терминологии, главное чтобы суть была понятной.
Go to the top of the page
 
+Quote Post
STAR_IK
сообщение Mar 3 2011, 05:48
Сообщение #17


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

Группа: Свой
Сообщений: 136
Регистрация: 10-04-09
Из: Омск
Пользователь №: 47 461



Цитата(petrov @ Mar 2 2011, 18:44) *
Нет вру, нет нужды знать начальное состояние автомата, выживший путь автоматом будет из правильного состояния выходить. Важно в конце блока автомат в известное состояние перевести чтобы последние символы декодировать.


Если я правильно понял то не зная начальных условий мы перебираем все возможные пути. Однако если мы с помощью синхрослова синхронизируем начальный момент декодирования, то мы исключим из перебора те ветви, которые в принципе не могут выходить из данного начального состояния. Т.е. для той же MSK в синхрословом мы можем сократить количество путей в два раза???

Стоит наверно сказать более подробно о сигнале и приемнике: сигнал представляет собой короткое сообщение - 2 байта синхрослова + 10 байт данных. Приемник выполнен на сигнальном процессоре TMS320C5509. Может и не стоит в данном случае применять декодирование по Витерби, но как тогда учесть память сигнала. Посимвольные детектирование сигналов МНФ по максимуму апостериорной вероятности в данном случае не пойдет... каналов много, сигнальник не вытянет.

to petrov: В модели которой Вы привели система с обратной связью, она просто не успеет за это время войти в синхронизм.

Сообщение отредактировал STAR_IK - Mar 3 2011, 07:08
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 3 2011, 07:48
Сообщение #18


Гуру
******

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



Цитата(STAR_IK @ Mar 3 2011, 08:48) *
Если я правильно понял то не зная начальных условий мы перебираем все возможные пути. Однако если мы с помощью синхрослова синхронизируем начальный момент декодирования, то мы исключим из перебора те ветви, которые в принципе не могут выходить из данного начального состояния. Т.е. для той же MSK в синхрословом мы можем сократить количество путей в два раза???


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

Цитата(STAR_IK @ Mar 3 2011, 08:48) *
Стоит наверно сказать более подробно о сигнале и приемнике: сигнал представляет собой короткое сообщение - 2 байта синхрослова + 10 байт данных. Приемник выполнен на сигнальном процессоре TMS320C5509. Может и не стоит в данном случае применять декодирование по Витерби, но как тогда учесть память сигнала. Посимвольные детектирование сигналов МНФ по максимуму апостериорной вероятности в данном случае не пойдет... каналов много, сигнальник не вытянет.



ИМХО для GMSK выигрыш мал чтобы заморачиваться алгоритмом Витерби.

Цитата(STAR_IK @ Mar 3 2011, 08:48) *
to petrov: В модели которой Вы привели система с обратной связью, она просто не успеет за это время войти в синхронизм.


Можно сделать feed forward фазовую синхронизацию подобно как в модели для pi/4 qpsk приводил или по преамбуле синхронизироваться быстро а потом переключаться на обратную связь.
Go to the top of the page
 
+Quote Post
STAR_IK
сообщение Mar 3 2011, 08:45
Сообщение #19


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

Группа: Свой
Сообщений: 136
Регистрация: 10-04-09
Из: Омск
Пользователь №: 47 461



Цитата(petrov @ Mar 3 2011, 13:48) *
ИМХО для GMSK выигрыш мал чтобы заморачиваться алгоритмом Витерби.

На самом деле я не ограничен только именно GMSK. Такой простой сигнал я взял для простоты понимания. Индекс модуляции я могу взять в принципе любой, как и ВТ. Соответственно и фазовое дерево можно по мудренее построить...

Цитата(petrov @ Mar 3 2011, 13:48) *
Можно сделать feed forward фазовую синхронизацию подобно как в модели для pi/4 qpsk приводил или по преамбуле синхронизироваться быстро а потом переключаться на обратную связь.

До этого у проблемы с синхронизацией (частотной или символьной) у нас не возникало. Оценка частоты и времени выборки производится в самом начале, а за такую малую длительность пакета параметры просто не успевали измениться. Схема на частотном детекторе с посимвольным принятием решения отлично работает, но не хватает 2-3 дБ в помехоустойчивости.
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 3 2011, 09:08
Сообщение #20


Гуру
******

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



Цитата(STAR_IK @ Mar 3 2011, 11:45) *
На самом деле я не ограничен только именно GMSK. Такой простой сигнал я взял для простоты понимания. Индекс модуляции я могу взять в принципе любой, как и ВТ. Соответственно и фазовое дерево можно по мудренее построить...


Вы можете сделать GMSK c простейшим мягким свёрточным кодом и получить тот же выигрыш в 3 дБ.


Цитата(STAR_IK @ Mar 3 2011, 11:45) *
До этого у проблемы с синхронизацией (частотной или символьной) у нас не возникало. Оценка частоты и времени выборки производится в самом начале, а за такую малую длительность пакета параметры просто не успевали измениться. Схема на частотном детекторе с посимвольным принятием решения отлично работает, но не хватает 2-3 дБ в помехоустойчивости.


Для MSK нужно учитывать два символа, например таким способом как в модели показано, получите 2-3 дБ.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Mar 3 2011, 09:29
Сообщение #21


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

Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(STAR_IK @ Mar 3 2011, 12:45) *
Схема на частотном детекторе с посимвольным принятием решения отлично работает, но не хватает 2-3 дБ в помехоустойчивости.

Используйте квадратурную схему демодулятора с когерентным алгоритмом обработки, получите бОльшую помехоустойчивость, нежели ЧМ детектор. Схема будет похожа на схему принятия решения для OQPSK демодулятора, получите оптимальный по критерию максимального правдоподобия приемник. А выделять пакеты, оценивать отстройку по несущей, а также начальные фазы по несущей и тактам, все равно придется по преамбуле.
Go to the top of the page
 
+Quote Post
Gyga
сообщение Dec 25 2012, 04:56
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 203
Регистрация: 3-06-08
Пользователь №: 38 014



Можно вопрос? Почему в эквалайзере витерби используется не импульсная характеристика канала а переходная?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:58
Рейтинг@Mail.ru


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