% Programa simples para calcular o "atraso de excesso médio" (Tau_m), o
% "espalhamento de atraso RMS" (Sigma_tau) e a "banda de coerência" (Bc),
% dados o perfil de potências de um canal.
% Autor: Diego Medeiros

% Apagando as variáveis
clear all; clc;

% Vetor com a potência de cada componente, em escala linear
P = [0.01 0.1 0.1 1];
% Vetor com o atraso de cada componente, em segundos
T = [0 1 2 5]*1E-6;

% Aplicando a equação do "atraso de excesso médio"
Tau_m = sum(P .* T)/sum(P);

% Calculando o "atraso médio quadrático" (Tau_q)
Tau_q = sum(P .* (T.^2))/sum(P);

% Aplicando a equação do "espalhamento de atraso RMS"
Sigma_tau = sqrt(Tau_q - Tau_m^2);

% Aplicando a equação da "banda de coerência", para uma correlação de 90%
% (Bc90) e para uma correlação de 50% (Bc50)
Bc90 = 1/(50 * Sigma_tau);
Bc50 = 1/(5  * Sigma_tau);

% Mostrando os resultados
display('-------------------------------------------- Resultados:')
display(['Atraso de excesso médio: ' num2str(Tau_m) ' segundos'])
display(['Atraso médio quadrático: ' num2str(Tau_q) ' segundos^2'])
display(['Espalhamento de atraso RMS: ' num2str(Sigma_tau) ' segundos'])
display(['Banda de coerência (90%): ' num2str(Bc90) ' Hz'])
display(['Banda de coerência (50%): ' num2str(Bc50) ' Hz'])

% Plotando a resposta do cantal
figure
stem(T,P)
grid on
xlabel('Tempo [segundos]')
ylabel('Potência [linear]')
title('Resposta o impulso do canal')

