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

 
 
> 4FSK, C4FM в частности
Quasar
сообщение Nov 23 2014, 09:27
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Приветствую.

Интересует алгоритм приема C4FM и вообще 4FSK модуляции. Конкретно интересует APCO P25. Собственно схема, по ТЗ должна быть такой:

В сети есть варианты демодуляции, один вариант в GNU Radio, он работает, но дает некоторый BER, даже в ближней зоне. Обязательным условием в ТЗ является частота дискретизации АЦП после FM демодулятора – 8 КГц. Демодулятор из GNU Radio, мне так кажется, именно из-за этого (частоты дискретизации) имеет проблемы с символьной синхронизацией, давая иногда не нулевой BER даже в ближней зоне. Этот демодулятор состоит из полифазного ресемплера, и делает ресемпл из входной частоты дискретизации до частоты дискретизации 4800, и по идее, в каждом отчете уже должен быть символ, ждущий принятия решения, что это за символ (-3, -1, +1, +3). Но видимо из-за того, что входная частота 8КГц некратна 4800 Гц, в ходе передискретизации не всегда символы оказываются ровно внутри семпла. (Хотя может быть я чего-то здесь недопонимаю) Реализация 4FSK из GNU Radio тут

Попробовал написать свой, схема ниже:

Синхронизация производится по поиску максимальной корреляции в FIFO, по преамбуле APCO-P25. В FIFO кладу семплы повышая частоту семплирования с 8КГц до 24КГц, интерполируя Raised Cosine фильтром, представленном в стандарте, для модулятора. Засинхронизироваться вроде удается, так как значение корреляции получается 216, это значит совпали все символы, но остальная часть сообщения принимается с диким, BER порядка 20%.

Вопрос, на сколько вообще реализуем мой метод демодуляция, с настройкой тайминга в начала пакета или обязательно надо подстраивать положение символов в ходе приема остального пакета? (Как это например сделано в GNU Radio)
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
petrov
сообщение Nov 23 2014, 19:40
Сообщение #2


Гуру
******

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



simulink в руки и отлаживать тщательно алгоритмы, да и вообще стыдно уже через аналоговый частотный дискримнатор делать с потерями, CPFSK когерентно демодулируются как фазовые модуляции.
Go to the top of the page
 
+Quote Post
D.I.M.A
сообщение Nov 24 2014, 08:41
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 26-08-08
Из: Москва
Пользователь №: 39 824



1. По стандарту в передатчике C4FM два фильтра: Raised Cosine и isinc. Соответственно, приемную сторону нужно проектировать с учетом данного факта.
2. Вроде бы apco25 C4FM передается в полосе 12.5 кГц, не мало ли будет полосы в 8 кГц на входе?
Go to the top of the page
 
+Quote Post
Quasar
сообщение Nov 24 2014, 09:46
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Цитата(D.I.M.A @ Nov 24 2014, 11:41) *
1. По стандарту в передатчике C4FM два фильтра: Raised Cosine и isinc. Соответственно, приемную сторону нужно проектировать с учетом данного факта.
2. Вроде бы apco25 C4FM передается в полосе 12.5 кГц, не мало ли будет полосы в 8 кГц на входе?


В стандарте схема демодулятора приведена такая:


То есть используется Integrate and Dump фильтр, но честно говоря, я не совсем понимаю, как принимать с его помощью.
По поводу полосы, да, полоса в эфире 12.5 КГц. По стандарту, при формировании модулирующего сигнала, его пропускают через Raised Cosine и isinc фильтры, ограничивая полосу частотой 2880.

Цитата
The response of the filter above 2880 Hz is not specified because the filter H(f) should cut off above 2880 Hz.




Цитата(petrov @ Nov 23 2014, 22:40) *
да и вообще стыдно уже через аналоговый частотный дискримнатор делать с потерями, CPFSK когерентно демодулируются как фазовые модуляции.


Это все конечно прекрасно, я же не спорю. Задача на уже существующем железе это сделать.
Go to the top of the page
 
+Quote Post
D.I.M.A
сообщение Nov 24 2014, 09:51
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 26-08-08
Из: Москва
Пользователь №: 39 824



Цитата(Quasar @ Nov 24 2014, 12:39) *
То есть используется Integrate and Dump фильтр, но честно говоря, я не совсем понимаю, как принимать с его помощью.


Integrate and Dump фильтр можно реализовать в виде КИХ-фильтра (обычный sinc фильтр), это будет фильтр со всеми коэффициентами, равными 1 и длинной, равной длительности одного символа. Например, если у вас 4 отсчета на символ, то I&D фильтр будет КИХ фильтр с коэф. {1,1,1,1}. Не помню, нужно ли нормировать выход фильтра. Структурно, в приемнике, I&D нужно ставить после Raised Cosine.

Сообщение отредактировал D.I.M.A - Nov 24 2014, 10:13
Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 24 2014, 10:06
Сообщение #6


Гуру
******

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



Цитата(D.I.M.A @ Nov 24 2014, 12:51) *
Структурно I&D нужно ставить после Raised Cosine.


Первый в приёмнике, второй в передатчике.
Go to the top of the page
 
+Quote Post
Quasar
сообщение Nov 27 2014, 17:34
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 257
Регистрация: 2-12-06
Из: Default City
Пользователь №: 23 021



Цитата(petrov @ Nov 24 2014, 13:06) *
Первый в приёмнике, второй в передатчике.


Тогда еще вопрос, в догонку, а я правильно понимаю, что частота среза у RC фильтра 2400 (то есть половина символ рейта) и параметр beta=0.2? В приложениях для синтеза подобного фильтра спрашивают частоту среза (ну её-то по АЧХ понять можно) и бету, вот насчет беты сомнения у меня.
Go to the top of the page
 
+Quote Post
D.I.M.A
сообщение Nov 28 2014, 09:55
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 26-08-08
Из: Москва
Пользователь №: 39 824



Цитата(petrov @ Nov 24 2014, 13:06) *
Первый в приёмнике, второй в передатчике.


А зачем I&D в передатчике? В передатчике нужен inverse sinc.

Цитата(Quasar @ Nov 27 2014, 20:34) *
Тогда еще вопрос, в догонку, а я правильно понимаю, что частота среза у RC фильтра 2400 (то есть половина символ рейта) и параметр beta=0.2? В приложениях для синтеза подобного фильтра спрашивают частоту среза (ну её-то по АЧХ понять можно) и бету, вот насчет беты сомнения у меня.


Да, все верно.

Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 28 2014, 11:00
Сообщение #9


Гуру
******

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



Цитата(D.I.M.A @ Nov 28 2014, 12:55) *
А зачем I&D в передатчике? В передатчике нужен inverse sinc.


Я такого не писал. Приподнятый косинус в передатчике, скользящее среднее в приёмнике, наоборот структурно можно сделать?
Go to the top of the page
 
+Quote Post
D.I.M.A
сообщение Nov 28 2014, 13:16
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 26-08-08
Из: Москва
Пользователь №: 39 824



Цитата(petrov @ Nov 28 2014, 14:00) *
Я такого не писал. Приподнятый косинус в передатчике, скользящее среднее в приёмнике, наоборот структурно можно сделать?

Как тогда понимать фразу?

Цитата(petrov @ Nov 24 2014, 13:06) *
Первый в приёмнике, второй в передатчике.


Скользящее среднее должно быть реализовано в приемнике, что бы скомпенсировать Inverse Sinc передатчика. Т.е. в передатчике RC+InverseSinc, в приемнике - скользящее среднее. Мы говорим об одном и том же?
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 28 2014, 14:00
Сообщение #11


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

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



Странно, мне всегда в подобных схемах isinc на приемном конце встречался.

Но видимо в моих случаях была задача обузить полосу.
А в вашем isinc на передающем конце выполняет ту же роль, что и Pre-emphasis filter при чм передаче.

Цитата(D.I.M.A @ Nov 28 2014, 14:16) *
Скользящее среднее должно быть реализовано в приемнике, что бы скомпенсировать Inverse Sinc передатчика. Т.е. в передатчике RC+InverseSinc, в приемнике - скользящее среднее.
Go to the top of the page
 
+Quote Post
D.I.M.A
сообщение Nov 28 2014, 14:07
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 26-08-08
Из: Москва
Пользователь №: 39 824



Цитата(Fat Robot @ Nov 28 2014, 17:00) *
Странно, мне всегда в подобных схемах isinc на приемном конце встречался.

Но видимо в моих случаях была задача обузить полосу.
А в вашем isinc на передающем конце выполняет ту же роль, что и Pre-emphasis filter при чм передаче.


В apco это сделано для того, что бы сделать общий демодулятор для двух фаз apco25: C4FSK и pi/4-DQPSK. Прикрепленный файл  multi_modulation_scheme_compatible_radio.pdf ( 426.25 килобайт ) Кол-во скачиваний: 224
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Nov 28 2014, 14:21
Сообщение #13


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

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



Я подозреваю, что эта возможность - побочный продукт. По современным меркам расширение полосы лишь в угоду удобства обработки - дикость. Хотя и такие варианты мне встречались.

Цитата(D.I.M.A @ Nov 28 2014, 15:07) *
В apco это сделано для того, что бы сделать общий демодулятор для двух фаз apco25: C4FSK и pi/4-DQPSK.

Go to the top of the page
 
+Quote Post
petrov
сообщение Nov 28 2014, 14:57
Сообщение #14


Гуру
******

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



Цитата(D.I.M.A @ Nov 24 2014, 12:51) *
Структурно, в приемнике, I&D нужно ставить после Raised Cosine.


Вот как это понимать? В приёмнике у вас изначально не было, исправлено было уже после моего поста. Зачем приподнятый косинус приёмнике?
Go to the top of the page
 
+Quote Post
D.I.M.A
сообщение Nov 28 2014, 15:03
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 26-08-08
Из: Москва
Пользователь №: 39 824



Цитата(petrov @ Nov 28 2014, 17:57) *
Вот как это понимать? В приёмнике у вас изначально не было, исправлено было уже после моего поста. Зачем приподнятый косинус приёмнике?


Виноватsm.gif Даже не обратил на это внимание, прошу прощения. Конечно же, не за чем!

Сообщение отредактировал D.I.M.A - Nov 28 2014, 15:04
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:18
Рейтинг@Mail.ru


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