% MODULACIÓN DIGITAL (Aux 1 EL-4005 Principios de Comunicaciones) % Autor : Claudio Estevéz Montero % 12 Abril 2014 % Profesor Auxiliar : Andrés Edgardo Sanhueza Gutiérrez clear all load handel %Easter Egg de Matlab %Carga el sonido "y" y la Freq de muestre "Fs" t = (0:1/Fs:(length(y)-1)/Fs)'; %Transformamos el dominio X ti = (1/5/Fs:1/5/Fs:(length(y))/Fs)'; %a forma de tenerlo en [Hz] % length(ti) yi = resample(y,5,1); % Resampleamos el arreglo "y" original, para obtener "0" en los espacios vacios % ... esto es para obtener una % mejor fft %% Audio Original (Tiempo) pause sound(y,Fs) pause %Visualizamos figure(1) plot(ti,yi) title('Audio Original (Tiempo)') xlabel('Tiempo[s]') ylabel('Amplitud') pause sound(y,Fs) %% Audio Original (Frecuencia) %Y=fft(y); %q=length(y); %f = -Fs/2:Fs/(q-1):Fs/2; %Y2 = [Y(ceil(length(y)/2)+1:end);Y(1:ceil(length(y)/2))]; % figure % plot(f,abs(Y2)) fmax = 5*Fs; qi = length(yi); Yi=fft(yi); fi = -fmax/2:fmax/(qi-1):fmax/2; Yi2 = [Yi(ceil(length(yi)/2)+1:end);Yi(1:ceil(length(yi)/2))]; %Visualizamos pause figure(2) plot(fi,1/5*abs(Yi2)) title('Audio Original (Frecuencia)') xlabel('Frecuencia (Hz)') %% Modulacion fc = Fs; %Modulamos en 8120 y algo [Hz] (no más de 20.000, para hacerlo audible) ym = cos(2*pi*fc*ti).*yi; Ym=fft(ym); Ym2 = [Ym(ceil(length(ym)/2)+1:end);Ym(1:ceil(length(ym)/2))]; %Visualizamos pause figure plot(fi,1/5*abs(Ym2)) title('Audio Modulado en fc=8192[Hz]') xlabel('Frecuencia [Hz]') pause iym = ifft(Ym); % Escuchar sound(real(iym),fmax) %% Demodulacion yd = cos(2*pi*fc*ti).*ym; Yd=fft(yd); Yd2 = [Yd(ceil(length(yd)/2)+1:end);Yd(1:ceil(length(yd)/2))]; pause figure plot(fi,1/5*abs(Yd2)) title('Audio Demodulado sin Filtrar (Frecuencia)') xlabel('Frecuencia [Hz]') pause iyd = ifft(Yd); %Obtenemos la transformada inversa (para escuchar esta version) % Escuchamos sound(real(iyd),fmax) %% Filtrado (programado, no real!) H_lpf = [ones(ceil(length(fi)/6),1);zeros(length(fi)-2*ceil(length(fi)/6),1);ones(ceil(length(fi)/6),1)]; Yf = Yd.*H_lpf; Yf2 = [Yf(ceil(length(yd)/2)+1:end);Yf(1:ceil(length(yd)/2))]; pause figure plot(fi,1/5*abs(Yf2)) title('Audio Demodulado Filtrado (Frecuencia)') xlabel('Frecuencia[Hz]') pause iyf = ifft(Yf); figure plot(ti,real(iyf)) title('Audio Demodulado (Tiempo)') xlabel('Tiempo [s]') sound(real(iyf),Fs*5)