Skip to main content

Rayleigh vs Rician Fading (with MATLAB + Simulator)

 

In Rayleigh fading, the channel coefficients tend to have a Rayleigh distribution, which is characterized by a random phase and magnitude with an exponential distribution. This means the magnitude of the channel coefficient follows an exponential distribution with a mean of 1.

In Rician fading, there is a dominant line-of-sight component in addition to the scattered components. The channel coefficients in Rician fading can indeed tend towards 1, especially when the line-of-sight component is strong. When the line-of-sight component dominates, the Rician fading channel behaves more deterministically, and the channel coefficients may tend towards the value of the line-of-sight component, which could be close to 1.

 

MATLAB Script

clc;
clear all;
close all;

% Define parameters
numSamples = 1000; % Number of samples
K_factor = 5; % K-factor for Rician fading
SNR_dB = 20; % Signal-to-noise ratio (in dB)

% Generate complex Gaussian random variable for Rayleigh fading channel
h_rayleigh = (randn(1, numSamples) + 1i * randn(1, numSamples)) / sqrt(2);

% Generate complex Gaussian random variable for line-of-sight component
h_los = sqrt(K_factor / (K_factor + 1));

% Generate noise
noisePower = 10^(-SNR_dB/10);
noise = sqrt(noisePower/2) * (randn(1, numSamples) + 1i * randn(1, numSamples));

% Combine Rayleigh and line-of-sight components for Rician fading channel
h_rician = h_los + sqrt(1 / (K_factor + 1)) * h_rayleigh;

% Add noise to the channel coefficients for Rayleigh fading channel
h_rayleigh_with_noise = h_rayleigh + noise;

% Add noise to the channel coefficients for Rician fading channel
h_rician_with_noise = h_rician + noise;

% Plot the channel coefficients
figure;
subplot(2,1,1);
plot(real(h_rayleigh_with_noise), imag(h_rayleigh_with_noise), 'b.');
hold on;
plot(real(h_rician_with_noise), imag(h_rician_with_noise), 'r.');
title('Channel Coefficients with Noise');
xlabel('Real');
ylabel('Imaginary');
axis equal;
legend('Rayleigh', 'Rician');
grid on;

subplot(2,1,2);
histogram(abs(h_rayleigh_with_noise), 'Normalization', 'probability', 'EdgeColor', 'b');
hold on;
histogram(abs(h_rician_with_noise), 'Normalization', 'probability', 'EdgeColor', 'r');
title('Magnitude Histogram');
xlabel('Magnitude');
ylabel('Probability');
legend('Rayleigh', 'Rician');
grid on;

 

Output

 

 
Fig 1: Rayleigh v/s Rician Fading


Copy the MATLAB Code from here



Interactive Online Simulators for Rayleigh & Rician Fading

Fading Models Overview (Rayleigh, Rician, and Nakagami)

In wireless simulations, fading models statistically describe how signal strength fluctuates due to multipath interference.

Rayleigh Fading

Scenario: Non-Line-of-Sight (NLOS)

Used for urban environments where the signal is blocked by buildings and reaches the receiver only via scattering.

\[ f_R(r) = \frac{r}{\sigma^2} e^{-\frac{r^2}{2\sigma^2}} \]

Rician Fading

Scenario: Line-of-Sight (LOS)

Used when a dominant direct path exists. Characterized by the K-factor (ratio of LOS power to scattered power).

\[ K = \frac{\text{LOS power}}{\text{Scattered power}} \]

Key Comparison

  • Severity: Rayleigh is more severe; Rician becomes "cleaner" as the K-factor increases.
  • Nakagami-m: A flexible model where \(m=1\) equals Rayleigh and higher \(m\) approximates Rician.
  • Limits: As \(K \to 0\), Rician fading becomes Rayleigh fading.

Wireless Fading Essentials

1 Large-Scale Fading

Occurs over long distances due to shadowing by obstacles like buildings. It describes the general decline in signal power as you move away from a transmitter.

2 Small-Scale Fading

Rapid power fluctuations over very short distances (wavelength level). This includes Rayleigh (NLOS) and Rician (LOS) models caused by multipath propagation.

3 Slow vs. Fast Fading

Determined by the Doppler Shift. Fast fading occurs when the channel changes quicker than the symbol rate; Slow fading occurs when the channel remains stable over several symbol periods.

Simulation Focus

Analyzing Alamouti 2x1 MIMO performance in multipath environments.

Want to see the MATLAB code or a deep dive into Doppler Shift equations?

Read More & Detailed Technical Guide →

Contact Us

Name

Email *

Message *

Popular Posts

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

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. 📘 Theory 🧮 Simulators 💻 MATLAB Code 📚 Resources BER Definition SNR Formula BER Calculator MATLAB Comparison 📂 Explore M-ary QAM, PSK, and QPSK Topics ▼ 🧮 Constellation Simulator: M-ary QAM 🧮 Constellation Simulator: M-ary PSK 🧮 BER calculation for ASK, FSK, and PSK 🧮 Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit f...

UGC NET Electronic Science Previous Year Question Papers with Solutions

Home / Engineering & Other Exams / UGC NET 2022 PYQ ⬇️ Download Papers and Solutions 📋 Exam Pattern 💡 Preparation Tips ❓ FAQs 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading UGC-NET (Electronics Science, Subject code: 88) Subject_Code : 88; Department : Electronic Science; 📂 View All Question Papers Q. UGC Net Electronic Science Question Paper [June 2025] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [June 2025] with full explanation Q. UGC Net Electronic Science Question Paper [December 2024] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2024] ...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. 📘 Overview 🧮 Simulator ⚖️ Theory Q-function 📚 Resources 📂 Other Topics: M-ary PSK & QAM Diagrams ▼ 🧮 Simulator for M-ary PSK Constellation 🧮 Simulator for M-ary QAM Constellation 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 phas...

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

MATLAB Code for ASK, FSK, and PSK Comprehensive implementation of digital modulation and demodulation techniques with simulation results. 📘 Theory 📡 ASK Code 📶 FSK Code 🎚️ PSK Code 🕹️ Simulator 📚 Further Reading Amplitude Shift Frequency Shift Phase Shift Live Simulator ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for ASK Modulation and Demodulation COPY % The code is written by SalimWireless.Com clc; clear all; close all; % Parameters Tb = 1; fc = 10; N_bits = 10; Fs = 100 * fc; Ts = 1/Fs; samples_per_bit = Fs * Tb; rng(10); binar...

Online Simulator for ASK, FSK, and PSK

Interactive Digital Signal Processing (DSP) Tutorial and Simulator for ASK, FSK, and BPSK modulation techniques. Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Digital Modulation Visualizer: ASK, FSK, & BPSK Simulator Learn and visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. Perfect for DSP students and engineers. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics 1. ASK (Amplitude Shift Keying) Simulat...

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; snr_db = -5:2:25; 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) ber_psk_results(i, :) = berawgn(snr_db, 'psk', psk_orders(i), 'nondiff'); end for i = 1:length(qam_orders) ber_qam_results(i, :) = berawgn(snr_db, 'qam', qam_orders(i)); end figure; semilogy(snr_db, ber_psk_results(1, :), 'o-', 'LineWidth', 1.5, 'DisplayName', 'BPSK'); hold on; for i = 2:length(psk_orders) semilogy(snr_db, ber_psk_results(i, :), 'o-', 'DisplayName', sprintf('%d-PSK', psk_or...

BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc (MATLAB + Simulator)

📘 Overview 📚 QPSK vs BPSK and QAM: A Comparison of Modulation Schemes in Wireless Communication 📚 Real-World Example 🧮 MATLAB Code 📚 Further Reading   QPSK provides twice the data rate compared to BPSK. However, the bit error rate (BER) is approximately the same as BPSK at low SNR values when gray coding is used. On the other hand, QPSK exhibits similar spectral efficiency to 4-QAM and 16-QAM under low SNR conditions. In very noisy channels, QPSK can sometimes achieve better spectral efficiency than 4-QAM or 16-QAM. In practical wireless communication scenarios, QPSK is commonly used along with QAM techniques, especially where adaptive modulation is applied. Modulation Bits/Symbol Points in Constellation Usage Notes BPSK 1 2 Very robust, used in weak signals QPSK 2 4 Balanced speed & reliability 4-QAM ...

Q-function in BER vs SNR Calculation

Q-function in BER vs. SNR Calculation In the context of Bit Error Rate (BER) and Signal-to-Noise Ratio (SNR) calculations, the Q-function plays a significant role, especially in digital communications and signal processing . What is the Q-function? The Q-function is a mathematical function that represents the tail probability of the standard normal (Gaussian) distribution. Specifically, it is defined as: Q(x) = (1 / sqrt(2Ï€)) ∫â‚“∞ e^(-t² / 2) dt In simpler terms, the Q-function gives the probability that a standard normal random variable exceeds a value x . It is the complementary cumulative distribution function (CCDF) of the standard Gaussian distribution. The Role of the Q-function in BER vs. SNR The Q-function is the standard tool for calculating the Bit Error Rate (BER) in digital communication systems like Binary Phase Shift Keying (BPSK) or Quadrature Phase Shift Keying (QPSK) , where noise follows a Gaussian dis...