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

 
 
 
Reply to this topicStart new topic
> Реализация демодулятора MSK на Blackfin, с петлей Костаса
Pavel_SSS
сообщение Mar 19 2011, 20:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-10-10
Из: Москва
Пользователь №: 60 055



Возникла необходимость сделать программный демодулятор MSK на DSP Blackfin.
Мой опыт в DSP на MK ограничивается линейной и адаптивной фильтрацией да и то на других платформах, на Blackfin-е ничего писать не доводилось - осваиваю. На входе - потоки 24-бит I и Q, на выходе - демодулированный битовый поток.
Хотелось бы узнать, как народ реализует управляемые генераторы для Костаса на Blackfin-e- а если удастся посмотреть кусок кода, который делает примерно то же самое - было бы замечательно, а то похоже изобретением велосипеда занимаюсь.
Заранее спасибо всем откликнувшимся.

Сообщение отредактировал Pavel_SSS - Mar 19 2011, 20:53
Go to the top of the page
 
+Quote Post
petrov
сообщение Mar 19 2011, 21:07
Сообщение #2


Гуру
******

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



Непонятно какое отношение имеет блэкфин к петле Костаса. Что на FPGA делать, что на PC, алгоритмы одни и те же. Примеры алгоритмов выкладывались на форуме.
Go to the top of the page
 
+Quote Post
Pavel_SSS
сообщение Mar 19 2011, 21:15
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-10-10
Из: Москва
Пользователь №: 60 055



Цитата(petrov @ Mar 20 2011, 00:07) *
Непонятно какое отношение имеет блэкфин к петле Костаса. Что на FPGA делать, что на PC, алгоритмы одни и те же. Примеры алгоритмов выкладывались на форуме.

Алгоритм-то как раз понятен - два перемножителя, два ФНЧ, сумматор, управляемый генератор. Вопрос в эффективной реализации с учетом особенностей архитектуры конкретного процессора - а то я и с петлей Костаса только теоретически знаком и на Блэкфине до этого ничего не писал, а код надо эффективный и скоростной. Библиотечные синус и косинус, полагаю, не применишь.
P.S. Писать собрался на ассемблере.
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Mar 20 2011, 10:12
Сообщение #4


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



а что за блекфин и куда и как вы в него потоки i/q 24 бита заводите ? ..и на какой скорости ?


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 20 2011, 11:21
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Pavel_SSS @ Mar 19 2011, 23:52) *
Возникла необходимость сделать программный демодулятор MSK на DSP Blackfin.


Для какого канала? Какие требования по SNR?

Для AWGN канала без особых требований по SNR - согласованный фильтр, потом восстанавливаете символьный тайминг, например, Гарднером, демодулируете дифференциально - смотрите, куда повернулась на 90 градусов фаза по отношению к предыдущему символу. Всё.

Но обычно MSK - это только часть большой системы. Многое (почти всё) в устройстве демодулятора зависит от канала, через который должна работать система.



--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Pavel_SSS
сообщение Mar 20 2011, 11:27
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-10-10
Из: Москва
Пользователь №: 60 055



Цитата(Lmx2315 @ Mar 20 2011, 13:12) *
а что за блекфин и куда и как вы в него потоки i/q 24 бита заводите ? ..и на какой скорости ?

Блекфин ADSP-BF504, скорость 540 000 выборок в секунду, I/Q заводим по SPORT-у, с AD9874.

Цитата(Oldring @ Mar 20 2011, 14:21) *
Для какого канала? Какие требования по SNR?

Для AWGN канала без особых требований по SNR - согласованный фильтр, потом восстанавливаете символьный тайминг, например, Гарднером, демодулируете дифференциально - смотрите, куда повернулась на 90 градусов фаза по отношению к предыдущему символу. Всё.

Но обычно MSK - это только часть большой системы. Многое (почти всё) в устройстве демодулятора зависит от канала, через который должна работать система.

По многим соображениям, в том числе и по SNR, хотелось бы когерентную демодуляцию сделать.
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 20 2011, 11:47
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Pavel_SSS @ Mar 20 2011, 14:27) *
По многим соображениям, в том числе и по SNR, хотелось бы когерентную демодуляцию сделать.


Кто мешает?
Коггерентная демодуляция отличается от дифференциальной только тем, что дифференциальная демодуляция оценивает фазовый сдвиг в канале только по предыдущему символу, а коггерентная - по некоторой последовательности символов, выигрывая 3 dB за счет меньшего шума референсной фазы. При непрерывной передаче делаете ФАПЧ с NCO чиста в цифре, плавно отслеживающий референсную фазу.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Pavel_SSS
сообщение Mar 20 2011, 11:57
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 63
Регистрация: 11-10-10
Из: Москва
Пользователь №: 60 055



Цитата(Oldring @ Mar 20 2011, 14:47) *
Кто мешает?
Коггерентная демодуляция отличается от дифференциальной только тем, что дифференциальная демодуляция оценивает фазовый сдвиг в канале только по предыдущему символу, а коггерентная - по некоторой последовательности символов, выигрывая 3 dB за счет меньшего шума референсной фазы. При непрерывной передаче делаете ФАПЧ с NCO чиста в цифре, плавно отслеживающий референсную фазу.

Мешает отсутствие опыта написания таких вещей вообще и опыта программирования на блекфине в частности. Хотелось бы раздобыть кусокк кода с целью ознакомиться с приемами программирования
Go to the top of the page
 
+Quote Post
Oldring
сообщение Mar 20 2011, 12:19
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Pavel_SSS @ Mar 20 2011, 14:57) *
Мешает отсутствие опыта написания таких вещей вообще и опыта программирования на блекфине в частности. Хотелось бы раздобыть кусокк кода с целью ознакомиться с приемами программирования


А...
Ну опыт можно приобрести только самостоятельно. И чтение описания архитектуры и системы команд камня тут ничто не заменит IMHO. Вне зависимости от модуляции. Если меня не подводит память, у блэкфина нет команды "демодулировать MSK".

Из приемов специфичных для MSK вне зависимости от камня: умножьте сигнал на символьной дискретизации на комплексную синусоиду с периодом, равным 4 символам. То есть четыре точки последовательно по углам квадрата, угол поворота квадрата медленно отслеживается вашей фазовой ФАПЧ. Не важно в какую сторону. Тогда констелляция сведется к двум точкам +-1, действительную часть демодулируете в бит, в зависимости от того, положительная она или отрицательная, не забывая проксорить с предыдущим битом, мнимая компонента умноженная на знак действительной - сигнал ошибки для вашего фазового ФАПЧ, задающей угол поворота референсного квадрата. И, разумеется, такой огромный динамический диапазон как 24 бита вам может потребоваться только до AGC на входе. Потом достаточно 8 бит, но и 16 бит у вас бесплатны.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post

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

 


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


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