Multipath Rayleigh Channel with different doppler frequencies

by

 

Rayleigh Channel with different doppler frequencies

rayleigh_doppPerformance.m
clear all
clc
N=512;                               %FFT size
fd=[5.55 70 100];                             %Doppler frequencies

L = 5;
tau = [0 2 8 14 20]*1e-6;
pdb = [0.5 0.25 0.2 0.1 0.05];
% pdb = [10^(0/10) 10^(-5/10) 10^(-10/10)];
Ts = 2e-6;
sampled_tau = tau/Ts;
rng('shuffle')
for jj = 1:length(fd)
    fm = fd(jj);
    df=(2*fm)/(N-1);                    %Frequency seperation
    fs=10*fm;                           %Sampling frequency
    % Making of Doppler filter 
    f=-fm:df:fm;                        %Frequency vector 
    S=1.5./(pi*fm*sqrt(1-(f./fm).^2));   %Doppler spectrum    
    S(1)=2*S(2)-S(3);                   %Defining the end points
    S(end)=2*S(end-1)-S(end-2);         %Defining the end points
    %
    taps_t = zeros(1,L);
    taps_f = zeros(L, N);
    gaussian_vari = (randn(1,L) + 1i*randn(1,L));
%     taps_sort = sort(abs(gaussian_vari), 'descend');
%     taps_sort = sort(randn(1, L), 'descend');
    for ii = 1:L
        temp_t = zeros(1,N);
%         taps_t(1,ii) = rand(1);
        temp_t(1, sampled_tau(ii)+1) = gaussian_vari(1,ii);
%         temp_t(1, sampled_tau(ii)+1) = taps_sort(ii);
%         temp_t(1, sampled_tau(ii)+1) = taps_t(1,ii);
        taps_f(ii,:) = fft(temp_t, N);
        doppler_taps(ii,:) = taps_f(ii,:).*sqrt(S);
        doppler_taps_t(ii,:) = sqrt(pdb(ii))*abs(ifft(doppler_taps(ii,:)));
        tap(jj,sampled_tau(ii)+1) = doppler_taps_t(ii, sampled_tau(ii)+1);
%         tap(jj,:) = tap(jj,:)/sqrt(sum(tap(jj,:).^2))
    end
end
tap
figure
hold on
% plot(20*log10(abs(fft(tap(1, :), N))), '-r', 20*log10(abs(fft(tap(2, :), N))), '-g', 20*log10(abs(fft(tap(3, :), N))), '-k')
plot(20*log10(abs(fft(tap(1, :), N))), '-r')
plot(20*log10(abs(fft(tap(2, :), N))), '-g')
plot(20*log10(abs(fft(tap(3, :), N))), '-k')
legend('5.55', '70', '100')

Contact us