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

 
 
> 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
 
Start new topic
Ответов
D.I.M.A
сообщение Nov 24 2014, 08:41
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 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
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 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
Сообщение #10


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

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- Quasar   4FSK   Nov 23 2014, 09:27
- - petrov   simulink в руки и отлаживать тщательно алгоритмы, ...   Nov 23 2014, 19:40
|- - D.I.M.A   Цитата(Fat Robot @ Nov 28 2014, 17:00) Ст...   Nov 28 2014, 14:07
|- - Fat Robot   Я подозреваю, что эта возможность - побочный проду...   Nov 28 2014, 14:21
- - petrov   Цитата(D.I.M.A @ Nov 24 2014, 12:51) Стру...   Nov 28 2014, 14:57
- - D.I.M.A   Цитата(petrov @ Nov 28 2014, 17:57) Вот к...   Nov 28 2014, 15:03
- - Quasar   Цитата(petrov @ Nov 28 2014, 17:57) Вот к...   Nov 28 2014, 15:19
- - petrov   Цитата(Quasar @ Nov 28 2014, 18:19) Я его...   Nov 28 2014, 15:35
- - Quasar   Цитата(petrov @ Nov 28 2014, 18:35) Да. С...   Jul 27 2015, 15:03
- - petrov   Цитата(Quasar @ Jul 27 2015, 18:03) Почем...   Jul 27 2015, 18:23


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

 


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


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