CPFSK

CPFSK (Continuous phase modulation) - один из видов частотной модуляции. Отличается от FSK тем, что имеет непрерывную фазу, что помогает уменьшить размер спектра и занимаемую ширину канала. CPFSK имеет набор преимуществ перед FSK, которые будут рассмотрены после изучения внутренней работы CPFSK.

Модуляция CPFSK

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

Чтобы лучше понять для чего нужна CPFSK рассмотрим следующие примеры.

WHY CPFSK?

Источник: https://www.slideshare.net/slideshow/continuos-phase-frequency-shift-keyingcpfsk/54978534

Как видно на рисунке, при переключении между генераторами в сигнале возникает разрывы фаз, при CPFSK этот разрыв убирается, это хорошо видно на следующем слайде.

WHY CPFSK?

Источник: https://www.slideshare.net/slideshow/continuos-phase-frequency-shift-keyingcpfsk/54978534

Модуляция CPFSK в Octave

Рассмотрим примеры и разберем математику CPFSK в Octave. Для этого используем исходные данные из статьи про FSK. Определим сигнал, который будет передаваться. У сигнала будет какая-то битовая скорость, которая будет обозначаться как BPS.

В FSK при модуляции мы использовали следующие параметры в Octave.

Частота семплирования - 1000 Герц, длительность бита - 1 секунда. Также в коде есть расчет частоты девиации, которая для CPFSK рассчитывается так же как и для FSK. Сгенерируем два сигнала, один с CPFSK, а второй с FSK, чтобы лучше понять в чем разница между двумя модуляциями. Заполним массив FSK_signal.

Теперь передем непосредственно к CPFSK. Для создания непрерывного сигнала нам нужно контролировать фазу, самый простой способ - пересчитывать фазу при добавлении бита. Разберем формулы для реализации. В непрерывном времени изменение фазы в течении маленького интеравала времени dt определяется следующим образом.

dϕ=wdt

Теперь при дискретизации с частотой дискретизации Fs (задана в начале статьи и равна 1000 отсчетов в секунду) формула превращается в следующий вариант.

Δϕ=w(1/Fs)

Следовательно обновление фазы будет выглядить так.

ϕn+1=ϕn+Δϕ

Следовательно конечная формула.

phase=phase+freq1/Fsphase=phase+freq/Fs

Теперь попробуем применить ее на практике и посмотреть моменты переключения на графиках, которые сгенерирует Octave.

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

Время в графиках ограничено до 2 секунд, чтобы можно было четко найти переход от 0 на 1.

Signal FSK and CPFSK

Также изучим спектральные различия между двумя модуляциями.

Получаем следующие графики.

Spectr FSK and CPFSK

Как видно на графиках, различия значительны. CPFSK не создает боковых частотных компонентов в спектре из-за плавного перехода, за счет этого его спектр получается намного уже, что позволяет экономить место в пропускной полосе, при этом сохраняя скорость передачи данных.

Ресурсы

https://astro.tsu.ru/TGP/text/6_1_2.htm https://en.wikipedia.org/wiki/Phase_(waves) https://en.wikipedia.org/wiki/Continuous_phase_modulation https://signals.radioscanner.ru/info/item68/ http://www.radioscanner.ru/info/article345/