Está en la página 1de 10

UNMSM

FACULTAS DE INGENIERIA ELECTRONICA Y ELECTRICA


APELLIDOS Y NOMBRES: MATRICULA:
Salome Arcos Russell 15190027

CURSO: TEMA:
COMUNICACIÓN DIGITAL ALTERACIONES EN LAS SEÑALES DISTORSIÓN Y
RUIDO

INFORME FECHAS: MODULO


3 REALIZADO ENTREGADO

17/11/21

GRUPO: PROFESOR:
Wilbert Chávez Irazábal

FACULTAD DE INGENIERÍA ELECTRÓNICA Y


3.2 Generar un archivo en MATLAB U OCTAVE que permita graficar x(t), y (t) en función del
tiempo en dos ventanas diferentes. Graficar el espectro de amplitud de las dos señales
anteriores. (Las cuatro ventanas en la misma figura). Notar las diferencias entre la señal de
salida y la original.

%CODIGO EN MAT LAP

clear all
close all
clc

f=10000; % frecuencia
fs=20*f; % frecuencia de muestreo
t=0:(1/fs):(6/f); % vector de tiempo

A=3; % amplitud
x=A*sin((2/3)*pi*f*t); % función x(t)
y= x+ 5*(x.^3) -(3*(x.^5)); % función y(t)

subplot(221);
plot(t,x); % gráfica de la señal x(t)
xlabel('tiempo');
ylabel('Amplitud');
title('Función x(t)');
grid on

subplot(222);
plot(t,y); % gráfica de la señal y(t)
xlabel('tiempo');
ylabel('Amplitud');
title('Función y(t)');
grid on

%Espectros de las funciones


n=2048;
X=fft(x,n); % transformada rápida de fourier para la función x(t)
fx=(fs/n)*(1:n/2); % vector de frecuencias
subplot(223)
plot(fx,abs(X(1:n/2))); % gráfica de la transformada
xlabel('frecuencia');
ylabel('Magnitud');
title('Espectro X(f)');
grid on

Y=fft(y,n); % transformada rápida de fourier para la función y(t)


fx=(fs/n)*(1:n/2); % vector de frecuencias
subplot(224)
plot(fx,abs(Y(1:n/2))); % gráfica de la transformada
xlabel('frecuencia');
ylabel('Magnitud');
title('Espectro Y(f)');
grid on
La señal x(t) es afectada por componentes no lineales ,forma la señal y(t), la cual es
distorsionada tanto en el dominio del tiempo como en el de la frecuencia.

Al observar su espectro de frecuencia se visualizan componentes de frecuencia no deseadas


que forman lóbulos que no se encuentran presentes en el espectro de la señal original, razón
por la cual la señal debe ser filtrada.

4.2 Generar una señal cuadrada y una señal diente de sierra de amplitudes A y frecuencia f; y
adicionarle ruido blanco a cada una. Mostrar las componentes de frecuencia de la señal
antes y después de adicionar ruido.

A=1; %Amplitud
fs=1000;% Frecuencia de muestreo
f=10; % Frecuencia de la señal
T=3*(1/f);% Período
c=50; % Ciclo de trabajo
t=0:1/fs:T-1/fs; % Intervalo de tiempo
x=A*square(2*pi*f*t,c);%Función cuadrada
subplot(2,1,1)
plot(t,x),grid on
ylim([-1.5,1.5])
title('Función cuadrada')
TX=fft(x) %Transformada de la señal cuadrada
subplot(2,1,2)
plot(abs(TX)) % Graficamos la parte real
title('Espectro de frecuencia señal cuadrada')
hold on
figure(2)
ruido1=awgn(x,10) % Añadimos ruido
subplot(2,1,1)
plot(t,ruido1),grid on
ylim([-1.5,1.5])
title('Función cuadrada + ruido')
hold on
TR1=fft(ruido1) %Transformada de la nueva señal con ruido
subplot(2,1,2)
plot(abs(TR1))
title('Espectro de frecuencia señal cuadrada CON RUIDO')
hold on

figure(3)
z = sawtooth(2*pi*f*t) % Comando para la señal diente de sierra
subplot(2,1,1)
plot(t,x),grid on
ylim([-1.5,1.5])
plot(t,z),grid on
ylim([-1.5,1.5])
title('Función diente de sierra')
hold on
TZ=fft(z) % Transformada de la función diente de sierra
subplot(2,1,2)
plot(abs(TZ))
title('Espectro de frecuencia señal diente de sierra')
hold on

figure(4)
ruido2=awgn(z,10) % Añadimos ruido a la función
subplot(2,1,1)
plot(t,ruido2),grid on
ylim([-1.5,1.5])
title('Función diente de sierra + ruido')

TZ1=fft(ruido2) % Transformada de la nueva señal con ruido


subplot(2,1,2)
plot(abs(TZ1))
title('Espectro de frecuencia señal diente de sierra + ruido')
hold on
4.3. Pasar las señales del ejercicio 4.2 por un filtro pasa banda, con el fin de reducir el efecto
de las componentes no deseadas generadas por la distorsión no lineal Presentar en una
figura la señal filtrada y su espectro

%CODIGO EN MAT LAP

clear all
close all
clc

A=1; %Amplitud
fs=2000;% Frecuencia de muestreo
f=10; % Frecuencia de la señal
T=3*(1/f);% Período
c=50; % Ciclo de trabajo
t=0:1/fs:T-1/fs; % Intervalo de tiempo
x=A*square(2*pi*f*t,c);%Función cuadrada
subplot(3,1,1)
plot(t,x),grid on
ylim([-1.5,1.5])
title('Función cuadrada')
%%TX=fft(x) %Transformada de la señal cuadrada
%%subplot(2,2,2)
%plot(abs(TX)) % Graficamos la parte real
%title('Espectro de frecuencia señal cuadrada')
%hold on
ruido1=awgn(x,10) % Añadimos ruido
subplot(3,1,2)
plot(t,ruido1),grid on
ylim([-1.5,1.5])
title('Función cuadrada + ruido')
hold on
%TR1=fft(ruido1) %Transformada de la nueva señal con ruido
%subplot(2,2,4)
%plot(abs(TR1))
%title('Espectro de frecuencia señal cuadrada CON RUIDO')
%hold on
n=5;% orden del filtro
wp=3;
wn=[0.1 250]/(fs/2);% Establecemos el rango de frecuencias a filtrar
[num den]=cheby1(n,wp,wn,'bandpass');% Filtro chebychev pasabanda
SFiltrada=filter(num,den,ruido1);
subplot(3,1,3)
plot(SFiltrada),grid on
title('Señal filtrada')
ii

%CODIGO EN MAT LAP

clear all
close all
clc

A=1; %Amplitud
fs=2000;% Frecuencia de muestreo
f=10; % Frecuencia de la señal
T=3*(1/f);% Período
c=50; % Ciclo de trabajo
t=0:1/fs:T-1/fs; % Intervalo de tiempo
figure(1)
z = sawtooth(2*pi*f*t) % Comando para la señal diente de sierra
subplot(3,1,1)
ylim([-1.5,1.5])
plot(t,z),grid on
ylim([-1.5,1.5])
title('Función diente de sierra')
hold on

ruido2=awgn(z,10) % Añadimos ruido a la función


subplot(3,1,2)
plot(t,ruido2),grid on
ylim([-1.5,1.5])
title('Función diente de sierra + ruido')

n=5; % orden del filtro


wp=3;
wn=[0.01 250]/(fs/2); % Establecemos el rango de frecuencias a filtrar
[num den]=cheby1(n,wp,wn,'bandpass'); % Filtro chebychev pasabanda
SFiltradaD=filter(num,den,ruido2);
subplot(3,1,3)
plot(SFiltradaD),grid on
title('Señal filtrada')
4.4 Generar mediante archivo en MATLAB U OCTAVE que realice la suma de señales
senoidales de amplitud A, y distintas frecuencias f; y hacer pasar a esta señal por un filtro
pasa altos. Mostrar la señal antes y después del filtro, y notar la diferencia entre ambos
casos. Mostrar la variación de la función densidad espectral de potencia

clc
clear all; %limpiar variables
fm=100000; %frecuencia de muestreo
t = 0:1/(fm*32):1; %vector de tiempo
sum=0;
n=input('Ingrese la cantidad de funciones: '); %comando para ingresar
la cantidad de señales a sumar

subplot(3,1,1)
for i=1:1:n %sumatoria de las señales senoidales
A=input('Ingrese amplitud: '); %amplitud
f=input('Ingrese la frecuencia: '); %frecuencias
y=A*sin(2*pi*t*f); %forma de señal, en este caso senoidal Genera los
plots, titulos y nombres.
plot(t,y)
hold on
xlim([0 0.0001])
sum=sum+y;
end

title ('Señales generadas')


hold off
subplot(3,1,2)
plot(t,sum)
title ('Suma de señales generadas')
xlim([0 0.0001])
%DENSIDAD ESPECTRAL DE POTENCIA
DENn=abs(fft(sum)).^2; %magnitud para la densidad espectral de
potencia
subplot(3,1,3)
frecuencias=((0:1023)/1023); %frecuencias para las señales sonoidales
plot(t,DENn)
title ('Densidad espectral de potencia de suma de señales generadas')
%FILTRO PASAALTO
a=1; %Orden del filtro
fc=10000; %frecuencia de corte del filtro
%wn=fc/(fm/2);
wn=0.985; %frencuencia de corte del filtro pasa altas normalizado
[num den]=butter(a,wn,'High');% commando para crear el filtro
[j k]=freqz(num,den); %Respuesta de frecuencia del filtro
figure(2)
plot(k/pi,(abs(j)));
title('FILTRO PASA ALTOS')
grid on
%FILTRAMOS
sefil=filter(num,den,sum);
figure(3)
plot(t,sefil)

También podría gustarte