Перейти к содержанию
    

Добрый день! Прошу помочь разобраться, как можно ДЕМОДУЛИРОВАТЬ сигнал с модуляцией FSK4 и с индексом h=0, 29166666. Вообще, какие есть методы синхронизации и приёма. Я нашёл приёмник Витерби, но для такого индекса неинтересно совсем. Я хорошо знаю, как сделать фапч для qpsk модуляции, например. Поэтому ещё раз, мои вопросы:

1) как синхронизироваться по частоте для cpfsk4  сигнала с индексом 0,291666

2) как выделить символы, не используя алгоритм витерби. (Производную арктангенса знаю, но для такого сигнала слишком большой разброс мгновенной частоты для одного и  того же символа в разном месте в сообщении получается) 

 

Может быть есть ссылка на реально работающий проект? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, [email protected] сказал:

Добрый день! Прошу помочь разобраться, как можно ДЕМОДУЛИРОВАТЬ сигнал с модуляцией FSK4 и с индексом h=0, 29166666. Вообще, какие есть методы синхронизации и приёма. Я нашёл приёмник Витерби, но для такого индекса неинтересно совсем. Я хорошо знаю, как сделать фапч для qpsk модуляции, например. Поэтому ещё раз, мои вопросы:

1) как синхронизироваться по частоте для cpfsk4  сигнала с индексом 0,291666

2) как выделить символы, не используя алгоритм витерби. (Производную арктангенса знаю, но для такого сигнала слишком большой разброс мгновенной частоты для одного и  того же символа в разном месте в сообщении получается) 

 

Может быть есть ссылка на реально работающий проект? 

Смешной индекс. Есть реально работающей проект. А чем Вас mlse  не устраивает? Хорошая штука. Вычислительных мощностей не хватает?

Изменено пользователем thermit

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну есть такой открытый американский стандарт dPMR. Там скорость передачи 2400 и девиация 700 Гц между "уровнями" (-1050, -350, 350,1050 Гц) вот получается, что индекс 700/2400=0, 291666. Но я вообще хотел узнать, как умные люди такое демодулируют. Mlse это maksimum likelihood что то? Я так понял, что это то же, что Витерби, только более ёмкая в вычислениях. Есть ли какой то проект с этим алгоритмом? Каков принцип? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, [email protected] сказал:

Ну есть такой открытый американский стандарт dPMR. Там скорость передачи 2400 и девиация 700 Гц между "уровнями" (-1050, -350, 350,1050 Гц) вот получается, что индекс 700/2400=0, 291666. Но я вообще хотел узнать, как умные люди такое демодулируют. Mlse это maksimum likelihood что то? Я так понял, что это то же, что Витерби, только более ёмкая в вычислениях. Есть ли какой то проект с этим алгоритмом? Каков принцип? 

Да. mlse это витерби. Это одно и тоже. Если нужно, могу помочь. Но к сожалению не бесплатно.

Изменено пользователем thermit

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

dpmr.thumb.png.3e2241fdcedf293ae82b1ed2e8b9f0a7.png

Прямо по стандарту предусмотрена простая частотная демодуляция.

В общем соглашайтесь на предложение thermit.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, petrov said:

dpmr.thumb.png.3e2241fdcedf293ae82b1ed2e8b9f0a7.png

Прямо по стандарту предусмотрена простая частотная демодуляция.

В общем соглашайтесь на предложение thermit.

Это все здорово, но как же быть с памятью? Я так демодулирую и вижу, что амплитуда  текущего символа зависит от того, какие символы были перед этим. Причём, довольно сильно зависит, при шумах будет очень сложно отличить -1 от -3, например. 

2) как с таким сигналом синхронизироваться по частоте. Приходит пока только одна мысль - вычислять мгновенную частоту и сильно её усреднять. Но это очень медленно будет. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, [email protected] said:

Это все здорово, но как же быть с памятью? Я так демодулирую и вижу, что амплитуда  текущего символа зависит от того, какие символы были перед этим. Причём, довольно сильно зависит, при шумах будет очень сложно отличить -1 от -3, например. 

Так на выходе частотного детектора будет хорошо-хорошо-хорошо, а потом, бац и плохо 🙂 Пороговый эффект называется.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

[email protected]

Это все здорово, но как же быть с памятью?

Искать ошибки.

как с таким сигналом синхронизироваться по частоте.

Так же как и для QPSK, ЧАПЧ управляемая решениями, синхронизация по известной последовательности и т. п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот Вам конкретный вопрос. Для psk4 мы берём фазовый детектор, управляемый решениями. Функция sign в обоих I и Q ветвях и перемножаем на значения сигналов, вычитаем. Вот сигнал ошибки по фазе, потом его используем, чтобы управлять DDS. Как такой сигнал ошибки сгенерировать для cpfsk4? 

 

Изменено пользователем [email protected]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот я описал структуру. Можно использовать atan-1 для psk модуляций и так далее. Можете описать хотя бы словами такой детектор? Не надо общих слов, я своими руками делаю приёмники на плис, мне нужно понимать очень конкретно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На выходе частотного детектора получаете PAM, вон выше в стандарте даже осциллограмму нарисовали, принимаете решения для PAM, иными словами квантуете, разница между решением и мягким выходом детектора и есть ошибка, сдвиг по частоте приводит к ошибке постоянного смещения, по обратной связи её компенсируете. Структура замкнутой петли ФАПЧ, ЧАПЧ - БИХ фильтр, здесь первого порядка достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, petrov said:

На выходе частотного детектора получаете PAM, вон выше в стандарте даже осциллограмму нарисовали, принимаете решения для PAM, иными словами квантуете, разница между решением и мягким выходом детектора и есть ошибка, сдвиг по частоте приводит к ошибке постоянного смещения, по обратной связи её компенсируете. Структура замкнутой петли ФАПЧ, ЧАПЧ - БИХ фильтр, здесь первого порядка достаточндостат

интересное предложение. Спасибо! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 06.03.2024 в 15:07, petrov сказал:

На выходе частотного детектора получаете PAM, вон выше в стандарте даже осциллограмму нарисовали, принимаете решения для PAM, иными словами квантуете, разница между решением и мягким выходом детектора и есть ошибка, сдвиг по частоте приводит к ошибке постоянного смещения, по обратной связи её компенсируете. Структура замкнутой петли ФАПЧ, ЧАПЧ - БИХ фильтр, здесь первого порядка достаточно.

Можно просто интегрировать (БИХ - фильтрами) отдельно положительные и отрицательные значения на выходе демодулятора. Разница между ними пропорциональна уходу частоты. Если данные более-менее рандомизированы, то работает и для CPFSK-2 и для CPFSK-4.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...