%% Efecto del Multicamino: una visión fasorial
% Copyright (c) 2024 G.T.A.S. (Grupo Tratamiento Avanzado de Señal). Universidad de Cantabria.
%
% Comprobamos el efecto del multicamino por medio de la representación fasorial de las señales que alcanzan la antena receptora.
% Usaremos como ejemplo un canal plano con una componente fija LOS y otra componente multicamino NLOS uniformemente distribuida y su efecto en dos antenas independientes.

for n=1:100
    Antena1 = [1*exp(1i*pi/4) , rand*exp(1i*2*pi*rand)];    % componente LOS fija y componente NLOS de amplitud y fase uniformes
    Antena2 = [1*exp(1i*2*pi/3) , rand*exp(1i*2*pi*rand)];  % componente LOS fija y componente NLOS de amplitud y fase uniformes
    % Plot de la señal de la antena 1
    handle = figure(1);
    subplot(121);h=compass([1.3*(1+1i) Antena1 sum(Antena1)]);
    set(h(1),'Color','w');set(h(2),'Color','b','LineWidth',2);set(h(3),'Color','g','LineWidth',2);set(h(4),'Color','r','LineWidth',4);
    title('Antena 1');legend('','LOS','NLOS','suma','Location','southwest')
    % Plot de la señal de la antena 2
    subplot(122);h=compass([1.4*(1+1i) Antena2 sum(Antena2)]);
    set(h(1),'Color','w');set(h(2),'Color','b','LineWidth',2);set(h(3),'Color','g','LineWidth',2);set(h(4),'Color','r','LineWidth',4);
    title('Antena 2')
    set(handle,'Visible','on')
    pause(0.3)
end

%
%% Comentarios
% Comprueba como la resultante puede alcanzar valores de amplitud entre 0 y 2: un máximo del doble de amplitud (+6 dB) y un mínimo de amplitud nula, es decir, un desvanecimiento total (-\infty
%
%  dB).
% Recuerda el efecto pernicioso del desvanecimiento en la BER promedio al estar ésta dominada por las realizaciones de canal desfavorables.
% En este ejemplo, al ser las componentes NLOS de la antena 1 y de la antena 2 independientes entre sí, se puede observar como los desvanecimientos que sufren las antenas son independientes.
%
%% Prueba con otras distribuciones
% Puedes probar a cambiar la estadística del canal, por ejemplo haciendo que la componente NLOS sea de tipo Rayleigh, es decir, con una distribución CN(0,1) que, en Matlab, sería (randn+1i*randn)/sqrt(2).