Skip to main content

Theoretical BER vs SNR for binary ASK and FSK


Theoretical Ber vs SNR for Amplitude Shift Keying (ASK)

The theoretical bit error rate (BER) for binary Amplitude Shift Keying (ASK) as a function of the signal-to-noise ratio (SNR) can be derived using the following expression:

If we map the binary signals to 1 and -1 in ASK, the probability of bit error will be:

BER = Q(√(2*SNR))
 
If we map the binary signals to 0 and 1 in ASK, the probability of bit error will be:
 
 BER = Q(√(SNR/2))
 
Where:
Q(x) is the Q-function, which is the tail probability of the standard normal distribution.
SNR is the signal-to-noise ratio.
N0 is the noise power spectral density.

Where Q is the Q function
In mathematics Q(x) = 0.5 * erfc(x/2)
 

Calculate the Probability of Error using Q-function for ASK:

For ASK with amplitudes 0 and 1:

  • When bit '0' is transmitted, the received signal is noise only.

  • When bit '1' is transmitted, the received signal is 1 + noise.

  • The receiver makes a decision at the threshold 0.5.

  • If bit 0 is transmitted, noise must exceed +0.5.

  • If bit 1 is transmitted, noise must decrease the signal below 0.5.
  • In either case, the noise is Gaussian with mean = 0 and variance = N0/2. The probability of noise exceeding ±0.5 can be calculated with the Q-function:

    Pb = Q(0.5/ฯƒ)

    Where:

    ฯƒ = √(0.5/2)

    So:

    Pb = Q(0.5/√(N0/2)) = Q(√(2(0.5)2/N0))

    Since:

    SNR = (0.5)2 / N0

    We get:

    Pb = Q(√(SNR/2))

     

    Theoretical BER vs SNR for Frequency Shift Keying (FSK)

    Formulae for bit error rate (BER) of binary FSK is 

    BER = Q(√(SNR))
     
    Where Q is the Q function
    In mathematics Q(x) = 0.5 * erfc(x/2)

    So, theoretical BER for binary FSK will be
    Where:
    Q(x) is the Q-function.
    Eb is the energy per bit. 
    N0 is the noise power spectral density.
    erfc(x) is the complementary error function.



     

     Fig: Theoretical BER vs SNR for Binary ASK Modulation

     

      

      Fig: Theoretical BER vs SNR for Binary FSK Modulation


    Similarities:

    For both ASK and BFSK, the BER decreases as the SNR increases, indicating better performance at higher SNR values.
    The formulas for BER in both cases involve the complementary error function, indicating that they follow similar trends, though the constants and scaling factors differ slightly.

     

    MATLAB Code for theoretical BER vs SNR for BASK



    MATLAB Code for theoretical BER vs SNR for BFSK



    Also read about

    People are good at skipping over material they already know!

    View Related Topics to







    Admin & Author: Salim

    s

      Website: www.salimwireless.com
      Interests: Signal Processing, Telecommunication, 5G Technology, Present & Future Wireless Technologies, Digital Signal Processing, Computer Networks, Millimeter Wave Band Channel, Web Development
      Seeking an opportunity in the Teaching or Electronics & Telecommunication domains.
      Possess M.Tech in Electronic Communication Systems.


    Contact Us

    Name

    Email *

    Message *

    Popular Posts

    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. It is defined as,  In mathematics, BER = (number of bits received in error / total number of transmitted bits)  On the other hand, SNR ...

    Simulation of ASK, FSK, and PSK using MATLAB Simulink

    ๐Ÿ“˜ Overview ๐Ÿงฎ How to use MATLAB Simulink ๐Ÿงฎ Simulation of ASK using MATLAB Simulink ๐Ÿงฎ Simulation of FSK using MATLAB Simulink ๐Ÿงฎ Simulation of PSK using MATLAB Simulink ๐Ÿงฎ Simulator for ASK, FSK, and PSK ๐Ÿงฎ Digital Signal Processing Simulator ๐Ÿ“š Further Reading ASK, FSK & PSK HomePage MATLAB Simulation Simulation of Amplitude Shift Keying (ASK) using MATLAB Simulink      In Simulink, we pick different components/elements from MATLAB Simulink Library. Then we connect the components and perform a particular operation.  Result A sine wave source, a pulse generator, a product block, a mux, and a scope are shown in the diagram above. The pulse generator generates the '1' and '0' bit sequences. Sine wave sources produce a specific amplitude and frequency. The scope displays the modulated signal as well as the original bit sequence created by the pulse generator. Mux is a tool for displaying b...

    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...

    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 ...

    MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...

    ๐Ÿงฎ MATLAB Code for BPSK, M-ary PSK, and M-ary QAM Together ๐Ÿงฎ MATLAB Code for M-ary QAM ๐Ÿงฎ MATLAB Code for M-ary PSK ๐Ÿ“š Further Reading MATLAB Script for BER vs. SNR for M-QAM, M-PSK, QPSK, BPSK % Written by Salim Wireless clc; clear; close all; num_symbols = 1e5; snr_db = -20:2:20; psk_orders = [2, 4, 8, 16, 32]; qam_orders = [4, 16, 64, 256]; ber_psk_results = zeros(length(psk_orders), length(snr_db)); ber_qam_results = zeros(length(qam_orders), length(snr_db)); for i = 1:length(psk_orders) psk_order = psk_orders(i); for j = 1:length(snr_db) data_symbols = randi([0, psk_order-1], 1, num_symbols); modulated_signal = pskmod(data_symbols, psk_order, pi/psk_order); received_signal = awgn(modulated_signal, snr_db(j), 'measured'); demodulated_symbols = pskdemod(received_signal, psk_order, pi/psk_order); ber_psk_results(i, j) = sum(data_symbols ~= demodulated_symbols) / num_symbols; end end for ...

    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 ...

    MATLAB Code for Channel Impulse Response

    MATLAB Code for Channel Impulse Response (CIR) ๐Ÿ“˜ Overview & Theory ๐Ÿงฎ MATLAB Code ๐Ÿค” How does CIR affect the signal? ๐Ÿ› ️ How to Mitigate Channel Distortion? ๐Ÿ“š Further Reading MATLAB Script for Simulating CIR This MATLAB script allows you to generate and visualize the channel impulse response (CIR). You can choose to create a 'random' multi-path channel or a near-'ideal' single-path channel to understand their distinct characteristics. % User input for choosing the type of impulse response response_type = input('Enter "random" for random channel impulse response or "ideal" for near-ideal impulse response: ', 's'); if strcmpi(response_type, 'random') % Parameters for random impulse response num_taps = input('Enter the number of taps: '); % Number of taps in the channel d...

    Constellation Diagrams of ASK, PSK, and FSK

    ๐Ÿ“˜ Overview of Energy per Bit (Eb / N0) ๐Ÿงฎ Online Simulator for constellation diagrams of ASK, FSK, and PSK ๐Ÿงฎ Theory behind Constellation Diagrams of ASK, FSK, and PSK ๐Ÿงฎ MATLAB Codes for Constellation Diagrams of ASK, FSK, and PSK ๐Ÿ“š Further Reading ๐Ÿ“‚ Other Topics on Constellation Diagrams of ASK, PSK, and FSK ... ๐Ÿงฎ Simulator for constellation diagrams of m-ary PSK ๐Ÿงฎ Simulator for constellation diagrams of m-ary QAM BASK (Binary ASK) Modulation: Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1.    BFSK (Binary FSK) Modulation: Transmits one of two signals: +√Eb​ ( On the y-axis, the phase shift of 90 degrees with respect to the x-axis, which is also termed phase offset ) or √Eb (on x-axis), where Eb​ is the energy per bit. These signals represent binary 0 and 1.  BPSK (Binary PSK) Modulation: Transmits one of two signals...