Skip to main content

Minimum Shift Keying (MSK)



Minimum Shift Keying (MSK)

In digital modulation, Minimum-Shift Keying (MSK) is a type of continuous-phase frequency-shift keying. Similar to OQPSK, MSK encodes bits alternating between quadrature components, with the Q component delayed by half the symbol period.

However, instead of using square pulses like OQPSK, MSK encodes each bit as a half sinusoid. This results in a constant-modulus signal, which reduces issues caused by non-linear distortion. In addition to being viewed as a variant of OQPSK, MSK is also seen as a Continuous Phase Frequency Shift Keyed (CPFSK) signal with a frequency separation of one-half the bit rate. 

 

Mathematical Representation

The resulting signal can be expressed as:

s(t) = aI(t)  cos(Ï€t / 2T)  cos(2Ï€fct) − aQ(t)  sin(Ï€t / 2T)  sin(2Ï€fct)

where aI(t) and aQ(t) encode even and odd bits respectively with square pulses of duration 2T.

Using trigonometric identities, the expression can be rewritten to show phase and frequency modulation more clearly:

s(t) = cos(2Ï€fct + φk + Ï€t / 2T  ·  bk)

where:

  • bk = +1 if aI(t) = aQ(t), and -1 otherwise
  • φk = 0 if aI(t) = 1, and Ï€ otherwise

This shows that the signal is modulated in both frequency and phase, and the phase changes in a continuous and linear manner. 

 

Minimum shift keying (MSK) is a type of continuous frequency shift keying (CFSK). Like continuous frequency shift keying, we can also define bit "1" and "0" by two distinct frequency carriers, but the frequency shift will be half of the baud rate, i.e., f2 - f1 will be Rb/2.

where f2 is the carrier frequency for binary bit "1"

f1 is the carrier frequency for binary bit "0"

Rb = Baud Rate  

Here, the frequency shift between two carrier frequencies is minimum (Baud Rate) / 2. So, it is called minimum shift keying.


Steps for minimum shift keying

1. Firstly, generate a bitstream of binary bits "1" and "0"

2. Then Convert it to NRZ Signal

3. Then perform MSK modulation on the NRZ Signal

4. If the carrier frequency is fc, then bit "1" will be represented by slightly higher than the carrier frequency, fc + (baud rate)/4, and bit "0" by slightly lower than the carrier frequency, fc - (baud rate)/4.


Gaussian minimum shift keying (GMSK) is quite similar to the MSK. Here, MSK modulation is followed by the Gaussian filtering.

 

Why Use MSK?

Binary data with sharp transitions (like from "1" to "0") can create wide sidebands around the carrier frequency, which causes interference with adjacent channels. MSK, with its constant envelope and smooth phase transitions, minimizes these sidebands and fits better within limited bandwidth, making it ideal for wireless communications.

 

Similarities between FSK and MSK

Frequency Shift Keying (FSK) Minimum Shift Keying (MSK)
1. Bits "1" and "0" are represented
by two different carrier frequencies

2. Here, you can define bits "1" and 
"0" by carrier frequencies f2 and f1
, respectively.
1. Here also, bits "1" and "0" are represented
by two different carrier frequencies, but the frequency
 difference between them will be half of the baud rate
2. Here, you can define bits "1" and 
"0" by fc + (baud rate)/4 and fc - (baud rate)/4
, respectively. Where fc is the carrier frequency.


Differences Between MSK and FSK

Phase Continuity in FSK vs MSK

1. Frequency‑Shift Keying (FSK)

In FSK, when the data changes from 0 to 1 (and f0 ≠ f1), the carrier hops between the two symbol frequencies. Unless we deliberately use continuous‑phase FSK (CPFSK), the phase is not preserved across bit boundaries, so abrupt phase jumps occur at every transition.

2. Minimum‑Shift Keying (MSK)

MSK guarantees a continuous phase trajectory. The phase evolves linearly within each bit interval according to its value; it never jumps. The required frequency deviation is Δf = ±1 ⁄ 4Tb, where Tb is the bit duration. MSK “remembers” the carrier phase—the phase at the end of one symbol becomes the starting phase of the next.

3. Worked Example (Bitstring 0110, 100 bps, fc = 1 kHz)

Parameters

  • Bit rate: 100 bps → Tb = 0.01 s
  • Carrier: fc = 1 kHz

3.1 MSK Symbol Frequencies & Phase Ranges

MSK frequencies are offset by ±1 ⁄ 4Tb = ±25 Hz:

  • Bit 0f = 975 Hz
  • Bit 1f = 1025 Hz
Bit #ValuePhase Equation
(within its interval)
Phase Range
10 φ(t) = −Ï€t ⁄ (2Tb) 0 → −Ï€ ⁄ 2
21 φ(t) = −Ï€ ⁄ 2 + Ï€(t−0.01) ⁄ (2Tb) −Ï€ ⁄ 2 → 0
31 φ(t) = Ï€(t−0.02) ⁄ (2Tb) 0 → Ï€ ⁄ 2
40 φ(t) = Ï€ ⁄ 2 − Ï€(t−0.03) ⁄ (2Tb) Ï€ ⁄ 2 → 0

3.2 Binary FSK Symbol Frequencies & Phase Ranges

To keep the two tones orthogonal over one bit, choose Δf = 1 ⁄ (2Tb) = 50 Hz:

  • Bit 0f0 = 950 Hz
  • Bit 1f1 = 1050 Hz

(Standard FSK resets the phase at the start of each symbol.)

Bit #ValuePhase EquationPhase Range
10 φ(t) = 2Ï€·950·t 0 → 19Ï€ ≈ 59.7 rad
21 φ(t) = 2Ï€·1050·(t−0.01) 0 → 21Ï€ ≈ 66.0 rad
31 φ(t) = 2Ï€·1050·(t−0.02) 0 → 21Ï€ ≈ 66.0 rad
40 φ(t) = 2Ï€·950·(t−0.03) 0 → 19Ï€ ≈ 59.7 rad

4. Key Take‑Aways

  • MSK = narrow phase swing (±Ï€/2), fully continuous.
  • FSK = large phase swing (≈60–66 rad), discontinuous unless CPFSK is used.
  • Continuous phase → better spectral efficiency and smoother spectra.


Read more about

  1. Minimum Shift Keying (MSK) Simulator
  2. MATLAB Code for MSK
  3. Gaussian minimum shift keying (GMSK)
  4. MATLAB Code for GMSK 

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

Periodogram in MATLAB

Power Spectral Density Estimation Using the Periodogram Step 1: Signal Representation Let the signal be x[n] , where: n = 0, 1, ..., N-1 (discrete-time indices), N is the total number of samples. Step 2: Compute the Discrete-Time Fourier Transform (DTFT) The DTFT of x[n] is: X(f) = ∑ x[n] e -j2Ï€fn For practical computation, the Discrete Fourier Transform (DFT) is used: X[k] = ∑ x[n] e -j(2Ï€/N)kn , k = 0, 1, ..., N-1 k represents discrete frequency bins, f_k = k/N * f_s , where f_s is the sampling frequency. Step 3: Compute Power Spectral Density (PSD) The periodogram estimates the PSD as: S_x(f_k) = (1/N) |X[k]|² S_x(f_k) ...

Constellation Diagram of ASK in Detail

A binary bit '1' is assigned a power level of E b \sqrt{E_b}  (or energy E b E_b ), while a binary bit '0' is assigned zero power (or no energy).   Simulator for Binary ASK Constellation Diagram SNR (dB): 15 Run Simulation Noisy Modulated Signal (ASK) Original Modulated Signal (ASK) Energy per bit (Eb) (Tb = bit duration): We know that all periodic signals are power signals. Now we’ll find the energy of ASK for the transmission of binary ‘1’. E b = ∫ 0 Tb (A c .cos(2П.f c .t)) 2 dt = ∫ 0 Tb (A c ) 2 .cos 2 (2П.f c .t) dt Using the identity cos 2 x = (1 + cos(2x))/2: = ∫ 0 Tb ((A c ) 2 /2)(1 + cos(4П.f c .t)) dt ...

MATLAB Code for Rms Delay Spread

RMS delay spread is crucial when you need to know how much the signal is dispersed in time due to multipath propagation, the spread (variance) around the average. In high-data-rate systems like LTE, 5G, or Wi-Fi, even small time dispersions can cause ISI. RMS delay spread is directly related to the amount of ISI in such systems. RMS Delay Spread [↗] Delay Spread Calculator Enter delays (ns) separated by commas: Enter powers (dB) separated by commas: Calculate   The above calculator Converts Power to Linear Scale: It correctly converts the power values from decibels (dB) to a linear scale. Calculates Mean Delay: It accurately computes the mean excess delay, which is the first moment of the power delay profile. Calculates RMS Delay Spread: It correctly calculates the RMS delay spread, defined as the square root of the second central moment of the power delay profile.   MATLAB Code  clc...

MATLAB Code for ASK, FSK, and PSK

📘 Overview & Theory 🧮 MATLAB Code for ASK 🧮 MATLAB Code for FSK 🧮 MATLAB Code for PSK 🧮 Simulator for binary ASK, FSK, and PSK Modulations 📚 Further Reading ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for ASK Modulation and Demodulation % The code is written by SalimWireless.Com % Clear previous data and plots clc; clear all; close all; % Parameters Tb = 1; % Bit duration (s) fc = 10; % Carrier frequency (Hz) N_bits = 10; % Number of bits Fs = 100 * fc; % Sampling frequency (ensure at least 2*fc, more for better representation) Ts = 1/Fs; % Sampling interval samples_per_bit = Fs * Tb; % Number of samples per bit duration % Generate random binary data rng(10); % Set random seed for reproducibility binary_data = randi([0, 1], 1, N_bits); % Generate random binary data (0 or 1) % Initialize arrays for continuous signals t_overall = 0:Ts:(N_bits...

Online Simulator for ASK, FSK, and PSK

Try our new Digital Signal Processing Simulator!   Start Simulator for binary ASK Modulation Message Bits (e.g. 1,0,1,0) Carrier Frequency (Hz) Sampling Frequency (Hz) Run Simulation Simulator for binary FSK Modulation Input Bits (e.g. 1,0,1,0) Freq for '1' (Hz) Freq for '0' (Hz) Sampling Rate (Hz) Visualize FSK Signal Simulator for BPSK Modulation ...

UGC NET Electronic Science Previous Year Question Papers

Home / Engineering & Other Exams / UGC NET 2022: Previous Year Question Papers ... UGC-NET (Electronics Science, Subject code: 88) UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2024]  UGC Net Paper 1 With Answer Key Download Pdf [Sep 2024] with full explanation UGC Net Electronic Science Question Paper With Answer Key Download Pdf [Sep 2024]  UGC Net Paper 1 With Answer Key Download Pdf [June 2023] with full explanation UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2023] with full explanation UGC Net Electronic Science Question Paper With Answer Key Download Pdf [June 2023] UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2022] UGC Net Electronic Science Question Paper With Answer Key Download Pdf [June 2022] UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2021] ...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...

📘 Overview of BER and SNR 🧮 Online Simulator for BER calculation of m-ary QAM and m-ary PSK 🧮 MATLAB Code for BER calculation of M-ary QAM, M-ary PSK, QPSK, BPSK, ... 📚 Further Reading 📂 View Other Topics on M-ary QAM, M-ary PSK, QPSK ... 🧮 Online Simulator for Constellation Diagram of m-ary QAM 🧮 Online Simulator for Constellation Diagram of m-ary PSK 🧮 MATLAB Code for BER calculation of ASK, FSK, and PSK 🧮 MATLAB Code for BER calculation of Alamouti Scheme 🧮 Different approaches to calculate BER vs SNR What is Bit Error Rate (BER)? The abbreviation BER stands for Bit Error Rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. BER = (number of bits received in error) / (total number of tran...

Comparisons among ASK, PSK, and FSK | And the definitions of each

📘 Comparisons among ASK, FSK, and PSK 🧮 Online Simulator for calculating Bandwidth of ASK, FSK, and PSK 🧮 MATLAB Code for BER vs. SNR Analysis of ASK, FSK, and PSK 📚 Further Reading 📂 View Other Topics on Comparisons among ASK, PSK, and FSK ... 🧮 Comparisons of Noise Sensitivity, Bandwidth, Complexity, etc. 🧮 MATLAB Code for Constellation Diagrams of ASK, FSK, and PSK 🧮 Online Simulator for ASK, FSK, and PSK Generation 🧮 Online Simulator for ASK, FSK, and PSK Constellation 🧮 Some Questions and Answers Modulation ASK, FSK & PSK Constellation MATLAB Simulink MATLAB Code Comparisons among ASK, PSK, and FSK    Comparisons among ASK, PSK, and FSK Comparison among ASK, FSK, and PSK Parameters ASK FSK PSK Variable Characteristics Amplitude Frequency ...