Documentos de Académico
Documentos de Profesional
Documentos de Cultura
nPuntosTexto=20;
nFFT=4*4096; % Número de puntos de la FFT para la representación frecuencial
% Variable temporal
t=iIni:Ts:tFin;
% Portadora
c=cos(2*pi*fc*t+faseTx);
% Señal moduladora
m=sin(2*pi*fm*t);
% Señal modulada de doble banda lateral (DBL)
sDBL = ammod(m,fc,fs,faseTx);
%--------------------------------------------------------------------------
close all
clc
disp(' ')
disp('---------------------------------------------------------------------')
disp(' Demostrador - Modulación de amplitud de doble banda lateral (DBL)')
disp('---------------------------------------------------------------------')
disp(' ')
disp('Se van a representar varias señales.')
disp('Se recomienda ir colocando las figuras según se generan')
disp('de tal forma que se puedan ver todas de forma simultánea.')
disp(' ')
disp(' Pulse una tecla para comenzar...')
pause
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
% Se dibuja la señal portadora
%--------------------------------------------------------------------------
figure(1),plot(t,c)
etiquetas(nPuntosTexto,'Tiempo (t, segundos)','c(t)','Señal portadora')
clc
disp(' ')
disp(['Se muestra la señal portadora (frecuencia ',num2str(fc),' Hz).'])
disp(' ')
disp(' Pulse una tecla para resaltar el intervalo entre 2 seg y 2,5 seg...')
pause
figure(1),xlim([2,2.5])
pause
%--------------------------------------------------------------------------
%--------------------------------------------------------------------------
% Se representa la señal moduladora
%--------------------------------------------------------------------------
figure(2),plot(t,m)
etiquetas(nPuntosTexto,'Tiempo (t, seg)','m(t)','Señal moduladora')
clc
disp(' ')
disp('La señal moduladora, que se acaba de representar, es una ')
disp(['sinusoide de frecuencia ',num2str(fm),' Hz'])
disp(' ')
disp(' Pulse una tecla para resaltar el intervalo entre 2 seg y 2,5 seg...')
pause
figure(2)
ha=gca;
lineas=get(ha,'Children');
set(lineas(1),'LineWidth',3)
xlim([2,2.5])
%--------------------------------------------------------------------------
% Se representa la señal modulada (DBL)
%--------------------------------------------------------------------------
clc
disp(' ')
disp('La señal modulada de doble banda lateral (DBL) es ')
disp('el producto entre la señal portadora y la señal moduladora.')
disp(' ')
disp(' Pulse una tecla para verla...')
pause
figure(3),plot(t,c,'r',t,sDBL,'b')
ha=gca;
lineas=get(ha,'Children');
set(lineas(1),'LineWidth',3)
clc
disp(' ')
disp(' Pulse una tecla para resaltar el intervalo entre 2 seg y 2,5 seg...')
pause
figure(3),xlim([2,2.5])
disp(' ')
disp('En rojo (trazo fino) se ha superpuesto la señal portadora, para ayudar')
disp('a comprender las características de esta modulación')
pause
%--------------------------------------------------------------------------
% RESPUESTAS EN FRECUENCIA
%--------------------------------------------------------------------------
clc
disp(' ')
disp('A continuación se representarán respuestas en frecuencia.')
disp('Se utilizará el periodograma como estima de las densidades')
disp('espectrales de frecuencia.')
disp(' ')
disp(' Pulse una tecla para ver estas respuestas...')
pause
%--------------------------------------------------------------------------
% Respuesta de la señal moduladora
%--------------------------------------------------------------------------
figure(4)
periodogram(m,[],nFFT,fs,'power','centered');
etiquetas(20,'Frecuencia (Hz)','S_M(jw)','Estima de la DEP de m(t) (periodograma)')
ylim([-70,0])
xlim([-20,20])
clc
disp(' ')
disp('Esta es la densidad espectral de potencia de la señal')
disp('moduladora (señal de información)')
pause
%--------------------------------------------------------------------------
% Respuesta de la señal modulada
%--------------------------------------------------------------------------
figure(5)
periodogram(sDBL,[],nFFT,fs,'power','centered');
etiquetas(20,'Frecuencia (Hz)','S_S(jw)','Estima de la DEP de s(t) (periodograma)')
clc
disp(' ')
disp('Esta es la densidad espectral de potencia de la señal')
disp('modulada en doble banda lateral (DBL)')
disp(' ')
disp(' Pulse una tecla para resaltar la banda de interés...')
pause
ylim([-70,0])
xlim([30,70])
clc
disp(' ')
disp('Tenga en cuenta que sólo se están representando las frecuencias')
disp('positivas (para frecuencias negativas la respuesta es simétrica).')
pause
%--------------------------------------------------------------------------
% TRANSMISIÓN - CANAL ADITIVO GAUSIANO (SEÑAL + RUIDO GAUSIANO)
%--------------------------------------------------------------------------
clc
disp(' ')
disp(' ')
disp('A continuación se simula la transmisión de la señal, con la')
disp('suma de ruido térmico (ruido blanco y gausiano).')
disp(' ')
disp(' Pulse una tecla para continuar...')
disp(' ')
pause
%--------------------------------------------------------------------------
% Se suma ruido durante la transmisión (no se incluye atenuación)
%--------------------------------------------------------------------------
ruido = stdRuido*randn(size(t));
figure(6),plot(t,ruido)
ha=gca;
lineas=get(ha,'Children');
set(lineas(1),'LineWidth',3)
%--------------------------------------------------------------------------
% Se muestra la respuesta en frecuencia del ruido
%--------------------------------------------------------------------------
figure(7)
periodogram(ruido,[],nFFT,fs,'power','centered');
etiquetas(20,'Frecuencia (Hz)','S_n(jw)','Estima de la DEP de n(t) (periodograma)')
clc
disp(' ')
disp('Esta es la densidad espectral de potencia del ruido.')
pause
%--------------------------------------------------------------------------
% DEMODULACIÓN
%--------------------------------------------------------------------------
clc
disp(' ')
disp('La suma de señal modulada y ruido se demodula con un demodulador')
disp('coherente (misma fase que la portadora del transmisor).')
disp(' ')
disp('En primer lugar se demodulará sin realizar un filtrado previo para')
disp('limitar la potencia del ruido (equivalente a asumir un filtrado con')
disp('un ancho de banda de la mitad de la frecuencia de muestreo, en este')
disp('caso, un ancho de banda de 500 Hz')
pause
%--------------------------------------------------------------------------
% DEMODULACIÓN DE LA SEÑAL RUIDOSA - Sin filtrar
%--------------------------------------------------------------------------
% Señal con ruido
sDBLn = sDBL + ruido;
% Demodulación
d=amdemod(sDBLn,fc,fs,faseRx);
figure(8),plot(t,m,'r',t,d,'b')
ha=gca;
lineas=get(ha,'Children');
set(lineas(1),'LineWidth',3)
xlim([2,2.5])
indices=find((t>1)&(t<=4));
estimaSNR = cov(m(indices))/cov(d(indices)-m(indices));
estimaSNR_dB = 10*log10(estimaSNR);
disp(' ')
disp('En la figura se muestran la señal moduladora original y la señal')
disp('demodulada. El demodulador coherente compensa el factor de escala')
disp('de la mitad de la amplitud de la portadora.')
disp(' ')
disp(['Estima de la relación S/N = ',num2str(estimaSNR),'
(',num2str(estimaSNR_dB),' dB)'])
disp(' ')
pause
%--------------------------------------------------------------------------
% DEMODULACIÓN DE LA SEÑAL RUIDOSA - Filtrando antes de demodular
%--------------------------------------------------------------------------
% Se filtra la señal antes de demodular en la banda de paso
% Aunque teóricamente la banda de paso es 45-55 Hz,
% se filtra entre 30-70 Hz ya que los filtros no son ideales.
sFilt=bandpass(sDBLn,[30,70],fs,'ImpulseResponse','iir','Steepness',0.99);
% Demodulación
df=amdemod(sFilt,fc,fs,faseRx);
figure(9),plot(t,m,'r',t,df,'b')
ha=gca;
lineas=get(ha,'Children');
set(lineas(1),'LineWidth',3)
xlim([2,2.5])
indices=find((t>1)&(t<=4));
estimaSNRf = cov(m(indices))/cov(df(indices)-m(indices));
estimaSNRf_dB = 10*log10(estimaSNRf);
disp(' ')
disp('En la figura se muestran la señal moduladora original y la señal')
disp('demodulada con un filtrado previo a la demodulación.')
disp(' ')
disp(['Estima de la S/N con filtrado previo S/N= ',num2str(estimaSNRf),'
(',num2str(estimaSNRf_dB),' dB)'])
% Parámetros temporales
iIni=0; % Instante inicial
tFin=10; % Instante final
nPuntosTexto=20;
nFFT=4*4096; % Número de puntos de la FFT para la representación frecuencial
% Cálculo de la SNR
indices=find((t>1)&(t<=4));
estimaSNR = cov(m(indices))/cov(d(indices)-m(indices));
estimaSNR_dB = 10*log10(estimaSNR);
% Parámetros temporales
iIni=0; % Instante inicial
tFin=10; % Instante final
% Variable temporal
t=iIni:Ts:tFin;
% Señal moduladora
m=sin(2*pi*fm*t);
% Señal modulada de doble banda lateral (DBL)
sDBL = ammod(m,fc,fs,faseTx);
% Demodulación
d = amdemod(sDBLn, fc, fs, faseTx);
% Cálculo de la SNR
indices=find((t>1)&(t<=4));
estimaSNR = cov(m(indices))/cov(d(indices)-m(indices));
estimaSNR_dB = 10*log10(estimaSNR);
% Parámetros temporales
iIni=0; % Instante inicial
tFin=10; % Instante final
indices_modulacion = [0.2, 0.4, 0.6, 0.8, 1]; % Valores del índice de modulación
nPuntosTexto=20;
nFFT=4*4096; % Número de puntos de la FFT para la representación frecuencial
% Variable temporal
t=iIni:Ts:tFin;
% Señal moduladora
m=sin(2*pi*fm*t);
% Demodulación
d = amdemod(sDBLn, fc, fs, faseTx);
% Cálculo de la SNR
indices=find((t>1)&(t<=4));
estimaSNR = cov(m(indices))/cov(d(indices)-m(indices));
estimaSNR_dB = 10*log10(estimaSNR);