MSK

MSK (Minimum Shift Keying) - вид частотной модуляции с минимальным разносом частот. Это более продвинутая версия CPFSK модуляции, которая имеет непрерывную фазу, но у которой индекс модуляции, отвечающий за расстояние между частотами для нуля и единицы, минимален.

Модуляция MSK

Перед переходом к MSK рекомендую ознакомиться с CPFSK и FSK модуляциями. Ссылки на эти модуляции можно найти на главной странице моего сайта. Главным отличием MSK от CPFSK является ширина спектра. В MSK он минимален, что позволяет использовать все плюсы CPFSK и занимать еще меньше полосы пропускания. Разберемся немного лучше на что влияет индекс модуляции и где найти его в формулах. При обычной CPFSK модуляции мы выбираем базовую частоту и уже на ее основе определяем две другие частоты, одну для нуля, вторую для единицы.

wbase=50wdeviation=pi(1/Tb)fskindex

В приведенных формулах Tb - это длительность одного бита, а fsk_index и есть тот индекс, которым отличается CPFSK от MSK. Этот индекс напрямую влияет на разнос частот. Как видно из формул - чем больше индекс, тем больше разнос частот. Стандартные значения этого индекса: 1, 2, 3, 5. Посмотрим как меняется разнос частот в CPFSK при изменении этого индекса. Длительность одного бита будет равна 1 секунде.

При запускаем получим 5 спектров сигналов с разными fsk_index: 0.1, 0.5, 1, 3, 5.

spectrs

На графике четко видно разницу между частотами при индексе 5, но при уменьшении индекса модуляции разница становится всё меньше. В какой-то момент, а именно при 0.5, различить на спектре частоты становится очень сложно, а при 0.1 вообще невозможно, потому что они сливаются в одну.

Минимальный индекс модуляции

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

Для двух функций f1(t) и f2(t), которые определены на интервале [a,b], они ортогональные если их скалярное произведение равно нулю. Математически это выглядит следующим образом.

abf1(t)f2(t)dt=0

Если проецировать это на сигналы, то ортогональные несущие это сигналы, чьи частоты или фазы выбраны таким образом, чтобы они были ортогональны друг другу.

Рассмотрим пример с двумя сигналами с разными частотами.

s1(t)=cos(2pif1t)s2(t)=cos(2pif2t)

Эти сигналы будут ортогональными, если их скалярное произведение будет равно нулю. Подставим их в формулу с интегралом.

0Tcos(2pif1t)cos(2pif2t)dt=0

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

0Tcos(w1t)cos(w2t)dt=0cos(w1t)cos(w2t)=[cos((w1w2)t)+cos((w1+w2)t)]/2

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

120T[cos((w1w2)t)+cos((w1+w2)t)]dt12(0T[cos((w1w2)t)]dt+0T[cos((w1+w2)t)]dt)

Теперь проанализируем два интеграла отдельно. Первый интеграл.

0T[cos((w1w2)t)]dt

Интеграл косинуса будет равен нулю, если его аргумент будет равен 2pi умноженному на любое целое число. Используя это свойство получаем.

(w1w2)=2pikT

Второй интеграл.

0T[cos((w1+w2)t)]dt

Следуя прошлому правилу получаем.

(w1+w2)=2pimT

В обоих случаях k и m - это константы отличные от нуля.

Вернемся к MSK. В MSK частоты f1 и f2 выбираются таким образом, чтобы сигналы были ортогональный. Частоты для 1 и 0 соответственно равны.

f0=fbaseΔff1=fbase+Δf

Где f_base - центральная частота, а delta f - девиация частоты. Tb - длительность 1 бита. Тогда, для ортогональности частот f0 и f1.

(w1w2)=2pi(f1f0)=2pikTb2pi((fbase+Δf)(fbaseΔf))=2pikTb2pi(2Δf)=2pikTb4piΔf=2pikTbΔf=k2Tb

Так как k - это целое число не равное нулю, то его минимальное значение будет 1. Именно по этой формуле рассчитывается девиация частот для MSK, FSK и CPFSK. Она позволяет получить минимальную разницу между частотами и добиться наименьшей ширины спектра. Индекс модуляции для MSK можно получить используя формулу индекса модуляции через скорость передачи и девиацию частоты.

fskindex=Δf1Tbfskindex=12Tb1Tbfskindex=12111fskindex=0.51=0.5

Соответственно индекс модуляции для MSK всегда равен 0.5. Именно за счет ортогональности сигналов и низкого индекса модуляции мы получаем узкий спектр, что дает множество преимуществ MSK перед CPFSK.

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

Изучим спектральную разницу между CPFSK с индексом модуляции 1 и MSK. Для этого используем следующим код.

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

spectrs

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

Ресурсы

https://ru.dsplib.org/content/signal_msk/signal_msk.html#:~:text=MSK%20%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F%20%D1%8D%D1%82%D0%BE%20%D1%87%D0%B0%D1%81%D1%82%D0%BD%D1%8B%D0%B9%20%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9,%D0%B8%20%C2%AB1%C2%BB%20(%D1%82. https://digteh.ru/UGFSvSPS/modul/MSK/