stiansjogren icon

Lab 3 Radio

stiansjogren | PRO | 05/30/16 08:55:17 PM UTC | 0 ⭐ | 8009 👁️ | Never ⏰ | []
MatLab |

3.37 KB

|

None

|

0 👍

/

0 👎

close all 
 
 
%% Problem 1 
 
 
T_S = 1/(7.68e6);
omega_max = 300;
nb_samples = 10e-3 * 7.68e6;
 
 
% Generation of narrowband Rayleigh fading Channel
% using internal filter based MATLAB function
 
rayChanObj = rayleighchan(T_S, omega_max, 0, 0) ;
rayChanObj.StoreHistory = 1;
x = ones(nb_samples,1);
y = filter(rayChanObj,x);
g = rayChanObj.PathGains;
 
%-------------------------------------------------
 
% Rayleigh fading channel using Sum of sinusoids method
[acf_sos,lag_sos] = xcorr(sumofsinusoids((1/(7.68e6)), 20, 300,nb_samples));
 
% Rayleigh fading channel using filter based method
[acf_flt,lag_flt] = xcorr(y);
 
 
 
% Plotting
subplot(1,3,1)
plot(lag_sos,acf_sos/max(acf_sos));
title 'Sum of sinusoids'
subplot(1,3,2)
plot(lag_flt,acf_flt/max(acf_flt));
title 'Filter based method'
chlen = -0.01:T_S:0.01;
subplot(1,3,3)
plot(linspace(-76799,76799,length(besselj(0, 2*pi*300*chlen))),besselj(0, 2*pi*300*chlen));
title 'Theorethical'
figure; 
plot(lag_sos,acf_sos/max(acf_sos), 'r');
hold on
grid on
plot(lag_flt,acf_flt/max(acf_flt),'g');
hold on
plot(linspace(-76799,76799,length(besselj(0, 2*pi*300*chlen))),besselj(0, 2*pi*300*chlen));
title 'Problem one'
legend('Sum-of-Sinusoids', 'Filter based', 'Bessel function'  );
hold off
 
 
 
 
 
 
 
 
%% Problem 2
 
% Generate four independent fading channels 
 
a = [0 0.3 0.9]; b = [0 0.9 0.9];
G = zeros(2,2,nb_samples);
tmp = sumofsinusoids((1/(7.68e6)), 20, 300,nb_samples);
 
for k=1:2
    for j=1:2
        for i= 1:length(sumofsinusoids((1/(7.68e6)), 20, 300,nb_samples))
            G(k,j,i) = tmp(i);
        end
        tmp = sumofsinusoids((1/(7.68e6)), 20, 300,nb_samples);
    end
end
 
Rtx1 = [1 a(1); conj(a(1)) 1] ; Rrx1 = [1 b(1); conj(b(1)) 1];
Rtx2 = [1 a(2); conj(a(2)) 1] ; Rrx2 = [1 b(2); conj(b(2)) 1];
Rtx3 = [1 a(3); conj(a(3)) 1] ; Rrx3 = [1 b(3); conj(b(3)) 1];
 
H = zeros(2,2,nb_samples);
%H2 = zeros(2,2,nb_samples);
%H3 = zeros(2,2,nb_samples);
 
% for n =1:length(G)
%     H1(:,:,n) = sqrtm(Rrx1) .* G(:,:,n) .*transpose(sqrtm(Rtx1));
%     H2(:,:,n) = sqrtm(Rrx2) .* G(:,:,n) .*transpose(sqrtm(Rtx2));
%     H3(:,:,n) = sqrtm(Rrx3) .* G(:,:,n) .*transpose(sqrtm(Rtx3));
% end
 
 
SNR = power(10,-20/10):10:power(10,30/10);
SNR_db = -20:10:30;
figure; 
colors = ['b', 'r', 'c'];
tic
for k = 1:3
    R_tx = sqrtm([1 a(k); conj(a(k)) 1]);
    R_rx = sqrtm([1 b(k); conj(b(k)) 1]);
    %for m = 1:nb_samples
    %    H(:,:,m) = R_rx .* G(:,:,m).* transpose(R_tx);
    %end
    CAP      = capacity_SU_CL_ML(H,SNR);
    CAP_mean = mean(CAP,2) ;
    plot(SNR_db, CAP_mean(:), colors(k));
    hold on
end
 
xlabel('SNR [dB]');
ylabel('Channel Capacity');
title('SNR vs Channel capacity with low, medium, and high correlation');
legend('Low correlation (alpha=0, beta=0)', ...
    'Medium correlation (alpha=0.3, beta=0.9)',...
    'High correlation (alpha=0.9, beta=0.9)');
    
toc
 
 
 
 
 
 
 
 
 
 
% figure;
% 
% 
% [CAP] = capacity_SU_CL_ML( H1, SNR ,0);
% plot(SNR,CAP);
% 
% figure;
% title 'Capacity of SU MIMO channel for medium correlation case';
% for i=1:10:length(SNR)
%     [CAP] = capacity_SU_CL_ML( H2, SNR(i),0);
%     hold on
%     plot(CAP);
% end
% figure;
% title 'Capacity of SU MIMO channel for high correlation case';
% for i=1:10:length(SNR)
%     [CAP] = capacity_SU_CL_ML( H3, SNR(i),0);
%     hold on
%     plot(CAP);
% end

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎