Skip to main content

Quantization Signal to Noise Ratio (Q-SNR)



Quantization Explanation

For a signal varies from -8 V to +8 V, giving a total quantization range of 16 V. If the number of quantization levels is 4, the step size will be:

\[ v_{\min} = -8, \quad v_{\max} = 8, \quad L = 4 \]

Quantization step size:

\[ \Delta = \frac{v_{\max} - v_{\min}}{L} = \frac{8 - (-8)}{4} = \frac{16}{4} = 4 \]

Partition boundaries (decision levels):

\[ p_0 = -8, \quad p_1 = -8 + 4 = -4, \quad p_2 = 0, \quad p_3 = 4, \quad p_4 = 8 \]

Quantization codebook (reconstruction levels):

\[ c_i = v_{\min} + \left(i + \frac{1}{2}\right) \Delta, \quad i = 0, 1, 2, 3 \]

Calculate each codeword:

  • \[ c_0 = -8 + \left(0 + \frac{1}{2}\right) \times 4 = -8 + 2 = -6 \]
  • \[ c_1 = -8 + \left(1 + \frac{1}{2}\right) \times 4 = -8 + 6 = -2 \]
  • \[ c_2 = -8 + \left(2 + \frac{1}{2}\right) \times 4 = -8 + 10 = 2 \]
  • \[ c_3 = -8 + \left(3 + \frac{1}{2}\right) \times 4 = -8 + 14 = 6 \]

Quantization rule:

For an input \( x \), find \( i \) such that:

\[ p_i < x \leq p_{i+1} \]

then output quantized value:

\[ Q(x) = c_i \]

Summary:

Interval Output quantized value \( c_i \)
\(-8 < x \leq -4\) \(-6\)
\(-4 < x \leq 0\) \(-2\)
\(0 < x \leq 4\) \(2\)
\(4 < x \leq 8\) \(6\)

Explore the concept of Quantization Signal-to-Noise Ratio (SNR), a critical parameter in Pulse Code Modulation (PCM) that determines the fidelity of quantized signals in digital communication systems.

Core Concepts of Quantization SNR

  1. Definition of Quantization SNR

    Quantization SNR measures the ratio of the power of the quantized signal to the power of the quantization noise introduced during the quantization process.

    Psnr = Ps / Pq, Or, Psnr = Ps / (Δ² / 12) 

    Where Psnr is the quantization SNR, Ps is the average power of the signal, Pq is the quantization noise power, and Δ is the quantization step size.

  2. Importance in PCM

    In PCM systems, high quantization SNR ensures better signal reconstruction at the receiver, leading to improved quality and performance.

  3. Factors Affecting Quantization SNR
    • Step Size: Smaller step sizes lead to higher quantization SNR.
    • Signal Power: Higher average signal power results in better SNR.

Example of Quantization SNR Calculation

Consider a sine signal with an amplitude of 1. So, average power of the sine signal Ps = (1)^2 = 0.5  and a quantization step size of Δ = 0.25

The quantization noise power

Pq = (0.25² / 12) = 0.00520833 

 The quantization SNR can be calculated as follows:

Psnr = Ps / Pq  = 0.5 / 0.00520833 =  96 (Approx.) = 19.82 dB

This indicates that the quantization noise is significantly lower than the signal power, resulting in good signal quality.


Simulation of a typical PCM system using quantization for a signal varying from -8 V to 8 V










In the table above, the signal varies from -8 V to +8 V, giving a total quantization range of 16 V. If the number of quantization levels is 4, the step size will be:

Δ = 16 V / 4 = 4 V

The resulting signal-to-quantization-noise ratio (SQNR) is calculated as:

SQNRlinear = 4 / (((16 / inputSignalAmplitude)2) / 12) = 48

SQNRdB = 10 · log10(48) ≈ 16.80 dB

and so on.


Quantization Levels and Their Impact

The number of quantization levels directly influences the quantization SNR:

  • Increasing quantization levels improves the approximation of the original signal, enhancing SNR.
  • However, higher levels also require more bits for representation, leading to potential trade-offs in bandwidth.

Conclusion

Understanding Quantization SNR is essential for designing efficient digital communication systems. By optimizing quantization levels and step sizes, engineers can significantly enhance signal quality.


Further Reading

[1] Understanding Quantization in PCM

[2] ADC SNR Gain 

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

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

Theoretical BER vs SNR for binary ASK, FSK, and PSK with MATLAB Code + Simulator

📘 Overview & Theory 🧮 MATLAB Codes 📚 Further Reading Theoretical BER vs SNR for Amplitude Shift Keying (ASK) The theoretical Bit Error Rate (BER) for binary ASK depends on how binary bits are mapped to signal amplitudes. For typical cases: If bits are mapped to 1 and -1, the BER is: BER = Q(√(2 × SNR)) If bits are mapped to 0 and 1, the BER becomes: BER = Q(√(SNR / 2)) Where: Q(x) is the Q-function: Q(x) = 0.5 × erfc(x / √2) SNR : Signal-to-Noise Ratio N₀ : Noise Power Spectral Density Understanding the Q-Function and BER for ASK Bit '0' transmits noise only Bit '1' transmits signal (1 + noise) Receiver decision threshold is 0.5 BER is given by: P b = Q(0.5 / σ) , where σ = √(N₀ / 2) Using SNR = (0.5)² / N₀, we get: BER = Q(√(SNR / 2)) Theoretical BER vs ...

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

How Windowing Affects Your Periodogram

The windowed periodogram is a widely used technique for estimating the Power Spectral Density (PSD) of a signal. It enhances the classical periodogram by mitigating spectral leakage through the application of a windowing function. This technique is essential in signal processing for accurate frequency-domain analysis.   Power Spectral Density (PSD) The PSD characterizes how the power of a signal is distributed across different frequency components. For a discrete-time signal, the PSD is defined as the Fourier Transform of the signal’s autocorrelation function: S x (f) = FT{R x (Ï„)} Here, R x (Ï„)}is the autocorrelation function. FT : Fourier Transform   Classical Periodogram The periodogram is a non-parametric PSD estimation method based on the Discrete Fourier Transform (DFT): P x (f) = \(\frac{1}{N}\) X(f) 2 Here: X(f): DFT of the signal x(n) N: Signal length However, the classical periodogram suffers from spectral leakage due to abrupt truncation of the ...

MATLAB code for Pulse Code Modulation (PCM) and Demodulation

📘 Overview & Theory 🧮 Quantization in Pulse Code Modulation (PCM) 🧮 MATLAB Code for Pulse Code Modulation (PCM) 🧮 MATLAB Code for Pulse Amplitude Modulation and Demodulation of Digital data 🧮 Other Pulse Modulation Techniques (e.g., PWM, PPM, DM, and PCM) 📚 Further Reading MATLAB Code for Pulse Code Modulation clc; close all; clear all; fm=input('Enter the message frequency (in Hz): '); fs=input('Enter the sampling frequency (in Hz): '); L=input('Enter the number of the quantization levels: '); n = log2(L); t=0:1/fs:1; % fs nuber of samples have tobe selected s=8*sin(2*pi*fm*t); subplot(3,1,1); t=0:1/(length(s)-1):1; plot(t,s); title('Analog Signal'); ylabel('Amplitude--->'); xlabel('Time--->'); subplot(3,1,2); stem(t,s);grid on; title('Sampled Sinal'); ylabel('Amplitude--->'); xlabel('Time--->'); % Quantization Process vmax=8; vmin=-vmax; %to quanti...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...(with Online Simulator)

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

MATLAB Code for QPSK Modulation and Demodulation

📘 Overview 🧮 MATLAB Codes 🧮 Theory 🧮 BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc 📚 Further Reading   Quadrature Phase Shift Keying (QPSK) is a digital modulation scheme that conveys two bits per symbol by changing the phase of the carrier signal. Each pair of bits is mapped to one of four possible phase shifts: 0°, 90°, 180°, or 270° 00  ===> 0 degree phase shift of carrier signal 01  ===> 90 degree 11  ===> 180 degree 10  ===> 270 degree   MATLAB Script clc; clear all; close all; clc; M = 4; data = randi([0 (M-1)], 1000, 1); Phase = 0; modData=pskmod(data,M,Phase); figure(1); scatterplot(modData); channelAWGN = 15; rxData2 = awgn(modData, channelAWGN); figure(2); scatterplot(rxData2); demodData = pskdemod(rxData2,M,Phase);   Result data 1 0 2 2 0 2 1 . . . modData -1.00000000000000 + 1.22464679914735e-16i -1.83697019872103e-16 - 1.000000000000...

MATLAB Code for ASK, FSK, and PSK (with Online Simulator)

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