RRMF
Mon Nov 18 2024 18:49:50 GMT+0000 (Coordinated Universal Time)
Saved by @lord
clc; clear all; close all; Fs = 1e6; % Sampling frequency fd = 100; % Doppler frequency % Custom Rayleigh fading implementation n = 1000; % Number of samples pathDelays = [0 1e-5 2e-5]; pathGains_dB = [0 -3 -6]; pathGains = 10.^(pathGains_dB/10); % Convert to linear scale % Generate Rayleigh fading samples t = (0:n-1)/Fs; % Time vector rayleigh_fading = zeros(n, length(pathDelays)); for i = 1:length(pathDelays) doppler_phase = 2 * pi * fd * t; % Doppler effect rayleigh_fading(:, i) = sqrt(pathGains(i)) * ... abs(1/sqrt(2) * (randn(1, n) + 1j * randn(1, n))) .* exp(1j * doppler_phase); end % Custom Rician fading implementation k = 10; % Rician K-factor rician_fading = sqrt(k/(k+1)) + sqrt(1/(k+1)) * rayleigh_fading; % Generate random input signal x = randn(n, 1); % Pass the signal through the custom Rayleigh and Rician channels y_rayleigh = sum(rayleigh_fading, 2) .* x; y_rician = sum(rician_fading, 2) .* x; % Extract impulse responses impulse_response_rayleigh = rayleigh_fading; impulse_response_rician = rician_fading; % Plot Rayleigh channel impulse response figure; subplot(2, 1, 1); plot(abs(impulse_response_rayleigh)); title('Rayleigh Fading Channel Impulse Response'); xlabel('Sample Number'); ylabel('Amplitude'); % Plot Rician channel impulse response subplot(2, 1, 2); plot(abs(impulse_response_rician)); title('Rician Fading Channel Impulse Response'); xlabel('Sample Number'); ylabel('Amplitude'); % Calculate and plot Rician channel power delay profile Pd_rician = mean(abs(impulse_response_rician).^2, 1); % Average power per path figure; stem(10*log10(Pd_rician), 'filled'); % Power in dB title('Rician Fading Channel Power Delay Profile'); xlabel('Path Index'); ylabel('Power (dB)'); % Compute FFT of the Rayleigh and Rician faded signals fft_rayleigh = fft(y_rayleigh); fft_rician = fft(y_rician); % Plot frequency spectrum figure; subplot(2, 1, 1); plot(abs(fft_rayleigh)); title('Frequency Spectrum of Rayleigh Fading Signal'); xlabel('Frequency Index'); ylabel('Amplitude'); subplot(2, 1, 2); plot(abs(fft_rician)); title('Frequency Spectrum of Rician Fading Signal'); xlabel('Frequency Index'); ylabel('Amplitude');
Comments