Laboratorio 1 Procesamiento Digital de Senales

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

1

Laboratorio de Procesamiento Digital de Señales No. 1


INTRODUCCIÓN AL PROCESAMIENTO DE SEÑALES CON MATLAB
Arévalo Arias Nelson,
[email protected]
Universidad Militar Nueva Granada

Utilizar los siguientes programas en Matlab para generar


Abstract - Management tools such as Matlab for the señales fundamentales y realizar los ejercicios propuestos
engineer is indisputably necessary in view of the many al final.
applications we have with this tool. For digital signal
processing using Matlab become even more essential, x=linspace(-2*pi,2*pi,50); y=sin(x);
because their multiple tools such as Simulink and z=sin(x-(pi/2))
facilities that are in programming allow a plot(x,y)
comprehensive management and signal processing hold
plot(x,z,'red')
title('Grafica de la funcion seno');
grid
Resumen —El manejo de herramientas como Matlab
para el ingeniero es indiscutiblemente necesario teniendo
en cuenta las múltiples aplicaciones que se tienen con
esta herramienta. Para el procesamiento digital de SEÑAL SENO
señales el uso de Matlab se vuelven aún más
imprescindible, debido a que sus múltiples herramientas Código:
como simulink y las facilidades que se tienen en la
programación permiten un amplio manejo y tratamiento
de señales. Gráfica

I. INTRODUCCIÓN

Es necesario adquirir el conocimiento de herramientas de


software y las habilidades de manejo de los diferentes
comandos, para así poder generar señales de diferentes
tipos en el dominio del tiempo y para diferentes valores
de sus parámetros. El ingeniero de telecomunicaciones
debe manejar diferentes tipos de señales y sus
parámetros en las diversas aplicaciones que dentro de su
carrera se presentan

II. OBJETIVOS
a) Generar señales continuas y discretas, utilizando
herramientas computacionales como Matlab.
b) Reconocer los diferentes comandos y utilidades
del software matlab.
c) Analizar el comportamiento de las señales Figura 1: Gráfica Señal Senoidal

Análisis:
III. PROCEDIMIENTO
Para la generación de la grafica senoidal, sencillamente se
debe tener en cuenta la amplitud de la señal, el período
2

con el cual se desea graficar y finalmente el


desplazamiento de la misma en el tiempo.

SEÑAL CUADRADA

%Generación de ondas cuadradas

A= 1; %Amplitud de la señal, entre 1 y


5
f= 2000;
B=20;
C=1;
wo=B*pi;%Frecuencia de la señal en
rad/s.
B=2*f %donde f es la %frecuencia en
cps.
rho=0.5; %(<1)Ciclo útil del __% -valor
entre 0.1 y <1
t=0:0.001:C;%Rango de tiempo a trabajar
según el número de ciclos a %observar.
cuadrada=A*square(wo*t+rho);%Utilizació
n del comando square, Figura 2: Gráfica Señal Cuadrada

plot(t,cuadrada); %Dibujo de señal


cuadrada, Análisis:
grid;%Se coloca retícula a la gráfica.
axis([0,1,-3,3]);
title('Onda cuadrada de',f,'cps y ciclo Para la generación de la grafica de una señal cuadrada,
útil de 0.5') se usa el comando Square, donde especificamos la
ylabel('Amplitud en v'); amplitud de la señal con “A” y la Frecuencia de la
xlabel('Tiempo en s');
misma con “Wo” multiplicado por el vector tiempo y
sumando el ciclo útil rho.

SEÑAL TRIANGULAR
Código: Código:
Gráfica Gráfica
3

Para la generación de la grafica de una señal triangular,


se usa el comando Sawtooth, donde especificamos la
amplitud de la señal con “A” y la Frecuencia de la
misma con “Wo” multiplicado por el vector tiempo y
sumando la fase correspondiente a theta.

SEÑAL CUADRADA DISCRETA

Código:

Gráfica

%Generación de señal triangular


%Generación de onda cuadrada discreta
A=1; % Amplitud de la señal, entre 1 y A=1 ; % Amplitud de la señal, entre 1 y
5 5
omega=pi/B;% Frecuencia de la señal en B=20 ;
rad/s. wo=B*pi;% Frecuencia de la señal en
B=2*f ; %f es la frecuencia en cps. rad/s.
rho= 0.5; %Ciclo útil del 50%, B=2*f %donde f es la frecuencia en cps.
D=10; D=1;
n=-D:1:D;%Rango de muestras a observar theta= 0.5; %Fase,
x=A*square(omega*n+rho);%Vector donde t=0:0.001:D;%Rango de tiempo a trabajar
se guardan muestras según el número de ciclos a
stem(n,x);%Comando para desplegar %observar.
señales discretas trian=A*sawtooth(wo*t+theta);%Utilizaci
grid ón de comando sawtooth,
axis([-10,10,-2,2]); plot(t,trian)
title('Onda cuadrada discreta ') grid
ylabel('Amplitud en V'); title('Onda triangular ')
xlabel('Tiempo en s'); ylabel('Amplitud en Voltios');% Usted
define unidades
xlabel('Tiempo en s');

Figura 3: Gráfica Señal Triangular

Análisis: Figura 4: Gráfica Señal Cuadrada Discreta


4

Figura 5: Gráfica onda exponencial continua.


Análisis: Análisis:

Para la generación de la grafica de una señal cuadrada, Para la generación de la grafica de una onda
se usa el comando square, donde especificamos la exponencial, se usa el comando exp para expresar euler,
amplitud de la señal con “A” y la Frecuencia de la multiplicamos por la amplitud “A” y dentro de
misma con “Omega” multiplicado por el vector tiempo y paréntesis se especifica el coeficiente de
sumando el ciclo útil rho. Para graficar en tiempo amortiguamiento e incluimos el vector tiempo al cual se
discreto en vez de usar el comando “plot” se usa “stem”. va a elevar la función.

ONDA EXPONENCIAL DISCRETA

ONDA EXPONENCIAL CONTINUA Código:

%Onda exponencial discreta Gráfica


A= 1; % Amplitud de la señal, entre 1 y
5 %Onda exponencial continua
B= 0.5;%Variable (<1), A=1 ; %Amplitud de la señal, entre 1 y
n=-10:1:10;% Rango de número de 5
muestras a observar B= 2;%Coeficiente de amortiguamiento,
x=A*B.^n;%El punto (.) se usa para el entre 1 y 10
cálculo de elemento por C=1;
%elemento, t=0:0.001:C; %Rango de tiempo a
stem(n,x) trabajar según el número de ciclos
grid %a observar
title('Onda exponencial discreta') y=A*exp(-B*t);%uso de comando exp,
ylabel('Amplitud en Voltios'); plot(t,y)
xlabel('Tiempo en s'); grid
title('Onda exponencial continua')
ylabel('Amplitud en Voltios');
xlabel('Tiempo en Segundos');
Código:

Gráfica

Figura 6: Gráfica onda exponencial discreta.


5

Análisis:

Para la generación de la gráfica de una onda exponencial


discreta se multiplican sucesivamente elemento por
elemento un valor A por una variable B, elevada a la n,
correspondiente a un vector igual al número de muestras
a graficar.

ONDA SENO MUESTREADA

Código:

Gráfica %Onda seno muestreada


A=1% Amplitud de la señal, entre 1 y 5
f=10;
C=100;
B=2*f% donde f es la frecuencia en cps.
omega=2*pi/B;% Frecuencia de la señal
en rad/s.
phi=C ;%Fase (inicial de cero)
n=-D:D;%Por omisión la muestra se toma
cada unidad
y=A*cos(omega*n+phi)
stem(n,y)
grid
title('Onda seno muestreada')
ylabel('Amplitud en Voltaje');
xlabel('Tiempo en S');

Figura 7: Gráfica onda seno muestreda.

Análisis:

Para la generación de la gráfica de una onda senoidal


discreta se usa una función cosinoidal, multiplicada por
6

la amplitud, dentro de la función se multiplica la Para la generación de la gráfica de una onda senoidal
frecuencia omega por el vector y se suma la fase. exponencialmente se opera una onda senoidal con una
señal exponencial con el fin de que paulatinamente la
OPERACIÓN CON SEÑALES señal senoidal se desvanezca de manera exponencial

Código:

Gráfica ESCALON DISCRETO

Código:

%Operación con señales. Onda seno


exponencialmente decreciente
A=1 ;% Amplitud de la señal, entre 1 y Gráfica
5
f=100; %Escalón discreto
E=1; u=[zeros(1,A),ones(1,A)]; %Se definen
wo=B*pi;% Frecuencia de la señal en vectores de tamaño A(>10)
rad/s. n=0:2*A-1;
B=2*f %donde f es lafrecuencia en cps. stem(n,u)
phi=D; grid
C=6; axis([0,2,0,2]);
t=0:0.001:E; %Rango de tiempo a title('Escalón discreto')
trabajar según el número de ciclos a ylabel('Amplitud en Voltios');
%observar. xlabel('Tiempo en segundos');
senexp=A*sin(wo*t+phi).*exp(-C*t)
plot(t,senexp)
grid
title('Onda seno exponencialmente
decreciente')
ylabel('Amplitud en voltios');
xlabel('Tiempo en segundos')

Figura 8: Gráfica escalón discreto.

Figura 7: Gráfica onda exponencialmente decreciente. Análisis:

Análisis:
7

Para generar la gráfica del escalón discreto, es necesario


declarar vectores zeros y ones, luego se grafican desde 0
hasta A-1 para poder visualizar el escalon unitario

IMPULSO DISCRETO Análisis:

Código: Para generar la gráfica del impulso discreto, es necesario


declarar vectores zeros y ones, luego se grafican desde 0
Gráfica hasta A-1.

PULSO CENTRADO EN EL ORIGEN


%Operación con señales. Onda seno
exponencialmente decreciente Código:
A=1 ;% Amplitud de la señal, entre 1 y
% Impulso discreto
5
delta=[zeros(1,B),1,zeros(1,B)]; %Se
f=100;
definen vectores de tamaño
E=1;
%B(>10)
Gráfica
wo=B*pi;% Frecuencia de la señal en
n=0:2*(B+1)-2;
rad/s. % Pulso centrado en el orígen
stem(n,delta)
B=2*f %donde f es lafrecuencia en cps. t=-1:1/500:1; %Rango de tiempo a
grid
phi=D; trabajar según lo que se desea
axis([150,250,-1,1.5]);
C=6; observar.
title('Impulso
t=0:0.001:E; discreto')
%Rango de tiempo a u1=[zeros(1,250),ones(1,751)];
ylabel('Amplitud
trabajar según elen Voltios');
número de ciclos a u2=[zeros(1,751),ones(1,250)];
xlabel('Tiempo en s');
%observar. u=u1-u2;
senexp=A*sin(wo*t+phi).*exp(-C*t) plot(t,u)
plot(t,senexp) grid
grid axis([-1,1,0,1.5]);
title('Onda seno exponencialmente title('Pulso centrado en el origen')
decreciente') ylabel('Amplitud en v');
ylabel('Amplitud en voltios'); xlabel('Tiempo en s');
xlabel('Tiempo en segundos')

Figura 9: Gráfica impulso discreto. Figura 10: Pulso centrado en el origen.


Análisis:
8

Para la generación de un pulso centrado, en el origen, se 𝜋


b) 𝑥(𝑡) = 𝐶𝑠𝑒𝑛𝑜 (2𝜋 ∗ 1000𝑡 − 𝐷) ∗ 𝑒 −𝑎𝑡
usan dos vectores que se restan para permitir la
formación del pulso en un Δt.
Código:
Graficar:
C= 30;
a) 𝐴𝑒 −𝑡 − 𝐵𝑒 −0.5𝑡 𝑝𝑎𝑟𝑎 0 < 𝑡 < 5 w0 = 2 * pi;% Frecuencia de la señal
t=-2:0.01:2; % rango de tiempo
Código: D=7;
phi = 1000*t-pi/D;
a = 5; % Amplitud
A=6;%valor de A expsen = C * cos( w0 * t + phi) .* exp ( -a
B=3;%valor de B * t); % funcion
a=1;%valor multiplicativo de la exponencial plot(t,expsen);
b=0.5;%valor multiplicativo de la exponencial
t=0:0.01:5;%intervalo de tiempo
A1=A*exp(-a*t);%exponencial de A
B2=B*exp (-b*t);%exponencial de B Graficas
xt=A1-B2;%funcion x(t)
plot(t,xt);

𝝅
Figura 12: 𝒙(𝒕) = 𝑪𝒔𝒆𝒏𝒐 (𝟐𝝅 ∗ 𝟏𝟎𝟎𝟎𝒕 − ) ∗ 𝒆−𝒂𝒕 ,
𝑫
con a=5

Figura 11: 𝑨𝒆−𝒕 − 𝑩𝒆−𝟎.𝟓𝒕 𝒑𝒂𝒓𝒂 𝟎 < 𝒕 < 𝟓

a) 𝐴𝑒 −𝑡 + 𝐶𝑒 −0.5𝑡 𝑝𝑎𝑟𝑎 0 < 𝑡 < 5


9

𝝅
Figura 13: 𝒙(𝒕) = 𝑪𝒔𝒆𝒏𝒐 (𝟐𝝅 ∗ 𝟏𝟎𝟎𝟎𝒕 − 𝑫) ∗ 𝒆−𝒂𝒕 , 𝝅
con a=4 Figura 15: 𝒙(𝒕) = 𝑪𝒔𝒆𝒏𝒐 (𝟐𝝅 ∗ 𝟏𝟎𝟎𝟎𝒕 − 𝑫) ∗ 𝒆−𝒂𝒕 ,
con a=1

Para el siguiente programa;


a. Trazar diagrama de flujo (Observe que es una función)
b. Una vez probada guardarla en al directorio de matlab
con la extensión .m
c. De acuerdo con la función, emplearla en un nuevo
programa para generar la señal correspondiente.

Codigo implementado para la función:


(los valores para a,b,delta y x se asignaron mediante linea de
comandos).

function Punto11(x,a,b,delta)

% a=-1;
% b=1;
% delta=500;
𝝅
Figura 14: 𝒙(𝒕) = 𝑪𝒔𝒆𝒏𝒐 (𝟐𝝅 ∗ 𝟏𝟎𝟎𝟎𝒕 − ) ∗ 𝒆−𝒂𝒕 , % x=10;
𝑫
g=zeros(size(x));
con a=2 set1=find(abs(x)<=0.5)
g(set1)=ones(size(set1))
x=a:1/delta:b;
plot(x,g, 'r');
grid
title('Onda ')
ylabel('Amplitud en V');
xlabel('Tiempo en s');
end
10

Figura 15: Grafica de función impulso generada por


Matlab

Diagrama
11

I. CONCLUSIONES

Esta actividad permite identificar diversas maneras de


procesar las señales digitales mediante el programa
Matlab, además como herramienta de análisis simplifica
la solución de problemas y permite identificar los cambios
en diferentes tipos de sistemas si se modifican variables o
componentes.

También podría gustarte