Jump to content
    

CPFSK 4 демодулятор

15 часов назад, komah сказал:

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

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

Share this post


Link to post
Share on other sites

А на чем демодулятор работать должен? Вычисления с плавающей точкой? Я делал универсальный демодулятор для cpfsk на основе библиотеки liquid-dsp. Для 4-х позиционной модуляции вероятность ошибки 10^(-4) при ОСШ где-то 13..15 дБ. Сдвиг частоты из-за допплера компенсируется легко, именно так как написал выше.

Share this post


Link to post
Share on other sites

18 минут назад, komah сказал:

А на чем демодулятор работать должен? Вычисления с плавающей точкой? Я делал универсальный демодулятор для cpfsk на основе библиотеки liquid-dsp. Для 4-х позиционной модуляции вероятность ошибки 10^(-4) при ОСШ где-то 13..15 дБ. Сдвиг частоты из-за допплера компенсируется легко, именно так как написал выше.

Универсальный для чего-то там - это одно. А это стандарт транка. Где всякое есть.

Share this post


Link to post
Share on other sites

10 минут назад, thermit сказал:

Универсальный для чего-то там - это одно. А это стандарт транка. Где всякое есть.

Для меня универсальный сделать сложнее. Но это не важно. Здесь упоминался демодулятор на основе алгоритма Витерби. Не проясните, как там сдвиг по частоте можно устранить? Получается, у нас есть условный буфер, например, на 128 символов. Есть символ на выходе этого буфера. Получили оценку фазы для этого символа и нашли ошибку относительно эталона. Теперь нужно "повернуть" остальные символы в буфере на полученный угол? А как быть со всеми рассчитанными метриками? Пересчитывать?

Share this post


Link to post
Share on other sites

29 минут назад, komah сказал:

Для меня универсальный сделать сложнее. Но это не важно. Здесь упоминался демодулятор на основе алгоритма Витерби. Не проясните, как там сдвиг по частоте можно устранить? Получается, у нас есть условный буфер, например, на 128 символов. Есть символ на выходе этого буфера. Получили оценку фазы для этого символа и нашли ошибку относительно эталона. Теперь нужно "повернуть" остальные символы в буфере на полученный угол? А как быть со всеми рассчитанными метриками? Пересчитывать?

Витерби не демодулятор. Это детектор. Ему на вход подаются мягкие решения, для которых уже все отрегулировано за исключением, быть может канала.  Да. Оценивааем фазу,  дальше посимвольный фап. Т е фазу нужно будет оценивать для каждого символа. Для общего cpm фаза оценивается сложно и не оптимально. Нужно просуммировать сколько-то символов возведенных в удвоенную степень знаменателя индекса модуляции, взять аргумент полученного безобразия и поделить его на удвоенный знаменатель индекса. Эта фазовая ошибка для самого старого символа в буфере. Он и корректируется. Это схема для прямой коррекции фазы не зависящей от данных но при условии нормальной символьной синхронизации. Для петель предполагается, схема, зависящая от данных.

Share this post


Link to post
Share on other sites

23 минуты назад, thermit сказал:

Для общего cpm фаза оценивается сложно и не оптимально.

Есть конкретный вариант, ARTM-CPM. Там индекс модуляции принимает два значения и меняется от символа к символу. Демодулировать как ЧМ-4 не получается даже при очень хорошем ОСШ. Только вариант с Витерби, но он получился очень медленным. Думал, может неправильно что-то делаем.

Share this post


Link to post
Share on other sites

1 час назад, komah сказал:

Есть конкретный вариант, ARTM-CPM. Там индекс модуляции принимает два значения и меняется от символа к символу. Демодулировать как ЧМ-4 не получается даже при очень хорошем ОСШ. Только вариант с Витерби, но он получился очень медленным. Думал, может неправильно что-то делаем.

ЧМ с парциальным откликом тоже не демодулируется за исключением гмск. Но всегда есть четкая символьная синхронизация и несущая 0. Объем вычислений зависит от числа состояний. Но даже даже 256, 512 вполне себе используются и прекрасно работают в реальном масштабе времени на относительно скромных устройствах..

Share this post


Link to post
Share on other sites

1 час назад, thermit сказал:

ЧМ с парциальным откликом тоже не демодулируется

В смысле? Обычным частотным дискриминатором все что угодно демодулируется. Только с разным качеством. Дискриминатор я уже вдоль и поперек исследовал и больше из него не вытянешь. Очевидно, что для сигналов с частичным откликом mlse должен быть лучше. Но тот вариант, который сделали для ARTM-CPM (делал не я) по скорости проигрывает дискриминатору раз в 400. Видимо, сделали плохо.

Share this post


Link to post
Share on other sites

39 минут назад, komah сказал:

В смысле? Обычным частотным дискриминатором все что угодно демодулируется. Только с разным качеством. Дискриминатор я уже вдоль и поперек исследовал и больше из него не вытянешь. Очевидно, что для сигналов с частичным откликом mlse должен быть лучше. Но тот вариант, который сделали для ARTM-CPM (делал не я) по скорости проигрывает дискриминатору раз в 400. Видимо, сделали плохо.

Вы наверное имеете в виду корреляционный  приемник? Ему нужны сопоставимые с млсе ресурсы при прочих равных в качестве млсе проигрывает радикально. Все-же частотный дискриминатор предполагает наличие хотя бы периода гармоники (индекс >=1).

Share this post


Link to post
Share on other sites

3 минуты назад, thermit сказал:

Все-же частотный дискриминатор предполагает наличие хотя бы периода гармоники (индекс >=1).

В соседней теме про извлечение бит из фазового демодулятора я даже строчку кода на Си для этого дискриминатора привел. Оценивание мгновенной частоты как разности фаз двух соседних (комплексных) отсчетов. Математически - аргумент произведения текущего отсчета на комплексно-сопряженный предыдущий. Напряжение на выходе пропорционально отклонению мгновенной частоты от 0.  Для многопозиционной (>2) модуляции желательно нормировать результат с учетом индекса модуляции. Если на входе дискриминатора стоит согласованный фильтр, некоторые говорят о когерентном демодуляторе. Я лично так не думаю.

Share this post


Link to post
Share on other sites

11 минут назад, komah сказал:

В соседней теме про извлечение бит из фазового демодулятора я даже строчку кода на Си для этого дискриминатора привел. Оценивание мгновенной частоты как разности фаз двух соседних (комплексных) отсчетов. Математически - аргумент произведения текущего отсчета на комплексно-сопряженный предыдущий. Напряжение на выходе пропорционально отклонению мгновенной частоты от 0.  Для многопозиционной (>2) модуляции желательно нормировать результат с учетом индекса модуляции. Если на входе дискриминатора стоит согласованный фильтр, некоторые говорят о когерентном демодуляторе. Я лично так не думаю.

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

Share this post


Link to post
Share on other sites

10 минут назад, thermit сказал:

Это дифференциальный демодулятор. К частотному дискриминатору никакого отношения не имеет.

Прямо так и не имеет. Найти картинку с АЧХ дискриминатора? Помню, там еще был почти прямой отрезок из нижнего левого угла в верхний правый :)

Edited by komah

Share this post


Link to post
Share on other sites

32 минуты назад, komah сказал:

Прямо так и не имеет. Найти картинку с АЧХ дискриминатора? Помню, там еще был почти прямой отрезок из нижнего левого угла в верхний правый :)

 

1 Не такой уж и прямой. Мы в картинках разбираемся.

2 Если и дискриминатор, то фазовый. 

 

 

Share this post


Link to post
Share on other sites

15 минут назад, thermit сказал:

2 Если и дискриминатор, то фазовый. 

Да серьезно, частотный ). Это же античный термин, из теплых ламповых УКВ - приемников. Там разные детекторы были придуманы, но я запомнил только один - на расстроенных контурах. Еще про какой-то детектор с ФАПЧ писали, но по моему это миф. Когда я смог этот ФАПЧ программно сделать, видимо подходящие сигналы излучать перестали.

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

Share this post


Link to post
Share on other sites

1 час назад, komah сказал:

Да серьезно, частотный ). Это же античный термин, из теплых ламповых УКВ - приемников. Там разные детекторы были придуманы, но я запомнил только один - на расстроенных контурах. Еще про какой-то детектор с ФАПЧ писали, но по моему это миф. Когда я смог этот ФАПЧ программно сделать, видимо подходящие сигналы излучать перестали.

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

Зато я хорошо все помню. Дискриминатор сферической лошади в вакууме вычисляет напряжение, пропорциональное ее изменению.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...