    clc; clear; %limpa as variaveis de ambiente
%% Parte 1: pega os sinais originais e avalia espectros 
    %parte 1.1: importa os 2 arquivos de audio
    arquivo1 = importdata('Cap1_Teste2_sinal1.wav');
    arquivo2 = importdata('Cap1_Teste2_sinal2.wav');
    audio1 = arquivo1.data;
    audio2 = arquivo2.data;
    Fs = arquivo1.fs; %pressupoem que ambos audios tenham mesma 
    %parte 1.2: coloca os dois audios do mesmo tamanho (mesma quantidade de amostras)
    N = min(length(audio1), length(audio2));
    n=0:N-1;
    audio1 = audio1(1:N);
    audio2 = audio2(1:N);
    t = N*(1/Fs);
    %parte 1.3: plota os sinais e seus espectros
    fft_sinal1 = fft(audio1);
    fft_sinal2 = fft(audio2);
    f_sinal_1e2 = n.*(Fs/N);
    subplot(4,2,1); plot(audio1); title('Sinal audio 1');
    subplot(4,2,2); plot(audio2); title('Sinal audio 2');
    subplot(4,2,3); plot(f_sinal_1e2(1:round(N/2)),abs(fft_sinal1(1:round(N/2)))); title('Espec audio 1');
    subplot(4,2,4); plot(f_sinal_1e2(1:round(N/2)),abs(fft_sinal2(1:round(N/2)))); title('Espec audio 2');
    soma_dois_audios_sem_modulacao = audio1 + audio2; %somando os dois sinais
    audiowrite('ATOA_soma_dos_2_canais_sem_modu.wav',soma_dois_audios_sem_modulacao,Fs);    
        
%% Parte 2: pega os 2 sinais, modulam e somam eles para enviar em um mesmo canal
    %parte 2.1: cria portadoras
    Largura_canal = Fs;
    freq_portadora_canal_1 = Largura_canal
    freq_portadora_canal_2 = freq_portadora_canal_1 + Largura_canal
    largura_banda = 4*Largura_canal
    Fs_banda = 2*largura_banda;
    N_banda = Fs_banda*t;
    n_portadoras = 0:N_banda-1;  
    portadora1 = 0.01*sin(2*pi*freq_portadora_canal_1*n_portadoras/Fs_banda );
    portadora2 = 0.01*sin(2*pi*freq_portadora_canal_2*n_portadoras/Fs_banda );
    %parte 2.2: como a Fs do sinal é uma coisa e a Fs do sistema(chamada Fs_banda) é outra, precisamos interpolar audio1 e audio2 para trabalharem na mesma Fs
    audio1_interpolado = spline(n,audio1,0:1/(Fs_banda/Fs):N); %passa Fs para Fs_banda
    audio2_interpolado = spline(n,audio2,0:1/(Fs_banda/Fs):N); %passa Fs para Fs_banda
    audio1_interpolado = audio1_interpolado(1:N_banda); %tira ultimo elemento para ajustar o numero de amostras para fazer a multiplicacao
    audio2_interpolado = audio2_interpolado(1:N_banda); %tira ultimo elemento para ajustar o numero de amostras para fazer a multiplicacao
    %parte 2.3: modula
    audio1_modulado = portadora1' .* audio1_interpolado';
    audio2_modulado = portadora2' .* audio2_interpolado'; 

%% Parte 3: plota o espectro do canal    
    fft_sinal_modulado1 = fft(audio1_modulado);     
    fft_sinal_modulado2 = fft(audio2_modulado);     
    f_sinal_modulado = n_portadoras.*(Fs_banda/N_banda);     
    subplot(4,2,5); plot(f_sinal_modulado(1:round(N_banda/2)),abs(fft_sinal_modulado1(1:round(N_banda/2)))); title('Espec do Aud1 modulado');
    subplot(4,2,6); plot(f_sinal_modulado(1:round(N_banda/2)),abs(fft_sinal_modulado2(1:round(N_banda/2)))); title('Espec do Aud2 modulado');
    
%% Parte 4: soma os 2 sinais modulados e calcula seu espectro
    sinal_total_modulado = audio1_modulado + audio2_modulado;
    subplot(4,2,7); stem(sinal_total_modulado); title('Sinal canal (aud1-modu + aud2-modu)');
    fft_sinal_total_modulado = fft(sinal_total_modulado);
    subplot(4,2,8); plot(f_sinal_modulado(1:round(N_banda/2)),abs(fft_sinal_total_modulado(1:round(N_banda/2)))); title('Espec do canal modulado');