Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0.8003
0.4538
0.4324
0.8253
0.0835
0.1332
0.1734
0.3909
0.8314
0.8034
0.0605
0.3993
ans =
-0.0782
>> inv(A)
ans =
-0.3222
2.4606
-4.1562
-0.4930
0.6116
-2.8609
3.0165
1.9659
1.4390
-0.6289
-0.5722
-0.4788
-0.7778
0.7281
2.6716
-0.3521
>> A = [ 1 2 3; 3 4 5; 6 7 8]
A=
1
3
6
2
4
7
3
5
8
2
4
7
3
5
8
>> A=zeros(5)
A=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
>> B=zeros(3,5)
B=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TIEMPO CONTINUO
%% GRAFICA DE LA SEAL SENO 2*PI EN FUNCION DEL TIEMPO
t = 0:0.01:2 %rango de separacion de escala entre cero y dos
x = sin(2*pi*t) % evaluando variable x (seno de 2pi)en t
plot(t,x,('r')) % graficar x en funcion de t
xlabel('tiempo en segundos') %nombre del eje de la x
ylabel ('x(t)');%nombre del eje de la y
title('Grafica de sen(2/PI en t)')% titulo de la grafica
Ejemplo 2
TIEMPO DISCRETO
%% Graficar la seal seno discretizada
n = 0:1:40; %rango de 0 a 4 de uno en uno
x = sin(0.1*pi*n); % seal a graficar en funcion de n
Hs = stem(n,x,('b')); % grafica discreta de la seal n,x
set(Hs,'markersize',10); %grafica de la marca de cada seal discreta
xlabel ('n');%nombre del eje de la x
ylabel('x(n)');% nombre del eje de la y
title('Grafica de seal discreta sin (0.2*pi n)')% Titulo de la
grafica
Ejemplo 3
Comando trama secundaria
t = 0:0.01:2 %rango de separacion de escala entre cero y dos
x = sin(2*pi*t) % evaluando variable x (seno de 2pi)en t
plot(t,x,('r'))% graficar x en funcion de t
hold on;
% mantener esta figura
xlabel('tiempo en segundos') %nombre del eje de la x
ylabel ('x(t)');%nombre del eje de la y
title('Grafica de sen(2/PI en t)')% titulo de la grafica
%% Graficar la seal seno discretizada
n = 0:1:40; %rango de 0 a 4 de uno en uno
xt = sin(0.1*pi*n); % seal a graficar en funcion de n
Hs = stem(n*0.05,xt,('b'),'filled'); % grafica discreta de la seal
n,x
set(Hs,'markersize',4); %grafica de la marca de cada seal discreta
hold off % soltar esta figura
xlabel ('n');%nombre del eje de la x
ylabel('x(n)');% nombre del eje de la y
Ejemplo 5
Procesamiento digital del sonido con adicin de efecto de eco
Audio
load handel; % la seal es la entrada Y y y la frecuencia de muestreo
Fs
sound(y,Fs); %Reproduce el sonido original
pause(10); %pausa de 10ms
alpha = 5.9; D = 4196;% Parametros para el eco
b = [1,zeros(1,D),alpha];% Parametros del filtro
x = filter(b,1,y); %Genera un sonido plus junto con el eco
sound(x,Fs); %Reproduce el sonido con eco
w = filter(10,b,x); % Filtro para eliminar el eco
sound(w,Fs)% Reproduce el sonido sin eco
realizarlo: - Crear una nueva matriz que reciba alguna caracterstica o propiedad de la de
partida - Componer una matriz a partir de submatrices ms pequeas.
Mediante la manipulacin de los elementos de la matriz de partida. Caractersticas de una
matriz: 33 Destacamos algunos comandos que permiten trabajar con las caractersticas o
elementos de una matriz de partida: size (A), length(A) nos dan informacin sobre las
caractersticas de la matriz A, en este caso dimensin de la matriz o longitud del vector. zeros
(size(A)) genera una matriz de ceros del mismo tamao que A. ones(size(A)) lo mismo con
matriz de unos A=diag(x) devuelve una matriz diagonal cuyos elementos de la diagonal son los
del vector x. triu(A) y tril(A) forman matrices triangulares superiores e inferiores a partir de la
matriz A.
Composicin de matrices Crear una matriz a partir de submatrices es algo muy sencillo para el
programa que sin embargo es de mucha utilidad por ejemplo a la hora de aadir datos o
ampliar informacin. Si contamos con la submatrices A=[1 2; 3 4] y B=[1,6], C=[A; B] genera la
matriz: 1 2 3 4 1 6 Si tenemos con los vectores u=[1 2 3 4] y v=[1 6], w=[u v] devuelve: w=[1 2 3
4 1 6] Manipulacin de elementos Veremos como extraer, cambiar o eliminar elementos o
lneas (filas o columnas de una matriz). Dado un vector x, la ejecucin de x(i) devuelve el
elemento situado en la posicin i de ese vector. En el caso matricial A(i,j) devuelve el elemento
situado en la fila i columna j de la matriz A. El operador (:) es de gran importancia en Matlab.
Puede decirse que es un operador que respeta el rango.
Veamos su utilidad con algunos ejemplos: >> x=1:10 x = 1 2 3 4 5 6 7 8 9 10 >> x=[0:2:10] x = 34
0 2 4 6 8 10 El primer nmero indica el valor inicial, el segundo el paso del incremento y el
tercero el elemento final. Como hemos visto si se omite el intermedio, por defecto se toma la
unidad. Nota: En general, el operador genera vectores fila. Conocido este operador, podemos
decir que con l es posible definir variables vectoriales: x= [p:q] general un vector de primer
elemento p, ltimo q y los elementos intermedios se diferencian en una unidad x= [p:i:q]
devuelve un vector de primer elemento p, ltimo q y los elementos intermedios se diferencian
en i unidades. Destacar tambin el comando linspace: x=linspace(p,q,n) genera un vector de n
elementos uniformemente espaciados desde p hasta q.
A esto se le puede dar gran nmero de aplicaciones:
Recordando que el vector x es: x=[1 2 3 4 5 6 7 8 9 10]:
>> x(1:4)
ans = 1 2 3 4
>> A=[1 2;3 4;5 6]
A = 1 2 3 4 5 6 >> A(1,:)
ans = 1 2 >> A(:,2) ans = 2 4 6
Scripts vs. Funciones
Los scripts trabajan sobre variables en el Workspace de la lnea de comandos o crean nuevas
variables que son aadidas a dicho Workspace, de modo que todas esas variables pueden ser
luego manipuladas desde la lnea de comandos.
Definicin de la funcin: Esta lnea define el nombre de la funcin (pvt) y el nmero y orden de
parmetros de entrada (en el ejemplo, un parmetro: p) y el nmero y orden de parmetros
de salida o resultados
Si la funcin tiene ms de un parmetro de entrada, estos se separan por comas y si tiene ms
de un parmetro de salida se escribe la lista separada por comas y entre corchetes ([ ]).
Este sera un ejemplo general: function [x, y] = mifuncion (a, b, c)
Lnea H1: Se trata de una primera lnea comentada (empieza con %) tras la lnea de
definicin de la funcin. MATLAB muestra esta primera ayuda cuando usamos el comando
lookfor o pedimos ayuda sobre un directorio
Texto de ayuda: MATLAB muestra este texto junto con la lnea H1 cuando solicitamos ayuda
sobre una determinada funcin (help pvt). Se muestra el texto comentado hasta la primera
lnea en blanco o la primera lnea ejecutable. El resto de comentarios tras este bloque se
ignoran.
Cuerpo de la funcin: esta parte contiene las sentencias que realizan los clculos y asignan
valores a los parmetros de salida. La funcin opera sobre variables en su propio espacio de
trabajo, separado del espacio de trabajo de la lnea de comandos. Nombre de la funcin Los
nombres de las funciones deben empezar por una letra.
Por lo dems, pueden ser cualquier combinacin de letras, nmeros o signos. El nombre del
fichero (M-file) que contiene la funcin es el mismo nombre de la funcin seguido de la
extensin .m. pvt.m
Graficas
Para dibujar funciones de una variable, Matlab dispone de la funcin plot, con la siguiente
sintaxis:
plot(Y) Dibuja la grfica que toma los ndices de Y como valores en el eje x y las columnas de Y
como valores en el eje y. p
lot(x1,y1, ...) Une con una lnea todos los pares de la forma (xn,yn)
plot(X,Y) Si X e Y son vectores, dibuja las columnas/filas de X con respecto a las columnas/filas
de Y.
plot(M) Si M es una matriz, dibuja cada columna de M con respecto a su ndice.
plot dispone de argumentos opcionales que permiten especificar el tipo de lnea que se dibuja,
as como su color y el tipo de marcador para los puntos dibujados:
plot(X,Y, --r) Dibuja una lnea discontinua en rojo
plot(X,Y, s) Dibuja solo los puntos como cuadrados
plot(X,Y, +r) Dibuja solo los puntos como cruces en rojo
plot(X,Y, g) Dibuja una lnea continua en verde
Es posible configurar ciertos aspectos de las grficas, entre otros:
title(string) Establece la cadena string como ttulo de la grfica xlabel(string)
Establece la cadena string como etiqueta del eje x de la grfica ylabel(string)
Establece la cadena string como etiqueta del eje y de la grfica axis Controla la apariencia y
escala de los ejes. Presenta varias opciones
Software: Matlab
x(n)
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
10
15
20
n
25
30
Software: Matlab
35
40
0.8
0.6
0.4
x(n)
0.2
-0.2
-0.4
-0.6
-0.8
-1
0.2
0.4
0.6
0.8
1
n
1.2
1.4
1.6
1.8
Fig. 8.3 Grafica de seal continua sen(2*pi en t) sobrepuesta con seal discreta de sin(0.1*pi*n);
Fuente: Autor
Software: Matlab
Grafica de sen(2/PI en t)
1
x(t)
0.5
0
-0.5
-1
0.2
0.4
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
tiempo en segundos
Grafica de seal discreta sin (0.2*pi n)
1.8
1.8
x(n)
0.5
0
-0.5
-1
0.6
0.8
1
n
1.2
1.4
1.6
Fig. 8.4 Grafica de seal continua sen(2*pi en t) y seal discreta de sin(0.1*pi*n) en la misma ventana
Fuente: Autor
Software: Matlab
9.- Discusin
Podemos trabajar con diferentes partes de una matriz, al igual que se poda hacer con
vectores
Se utiliza las diferentes operaciones con vectores y matrices para su representacin
por ejemplo, obtener la inversa de una matriz.
Una de las caractersticas ms potentes de MATLAB para el anlisis de seales y datos es su
trazado de datos grficos. MATLAB,el comando bsico de trazado es la trama (t, x) del sistema,
que genera una trama de valores de x en comparacin con los valores de t en una figura
separada ventana los comandos plot para seales continuas y stem para seales discretas
adems xlabel y ylabel se utilizan para agregar texto al eje, y el title se utiliza para
proporcionar un ttulo en la parte superior del grfico casi todos los aspectos de una seal
como (estilo, tamao, color, etc.) puede cambiarse por medio de comandos apropiados adema
en tiempo discreto se puede cambiar el circulo pequeo al final de la lnea lleno o vacio.
MATLAB proporciona una capacidad de mostrar ms de un grfico de diferentes seales en
una misma ventana con el comando subplot as como hold on y hold off para intercalar
grficos en una misma ventana la utilizacin de herramientas de simulacin es de alta
importancia para el desarrollo profesional.
10.- Conclusiones
11.- Recomendaciones
Podemos trabajar con diferentes partes de una matriz, pero debemos tener
cuidado de hacer operaciones legales para filas y columnas
Para un mejor manejo de graficas tener en cuenta que se puede cambiar los diferentes
parmetros para lograr identificar de mejor manera la grfica con la que se est
trabajando adems de renombrar los ejes X e Y y el ttulo de la grfica.
12.- Bibliografa
[1] V. K. INGLE y J. G. PROAKIS, Digital Signal Processing using MATLAB, THIRD EDITION
ed., N. University, Ed., USA, 2012, p. 671.
[2] consulta pgina web
Tema 3: Vectores y matrices. Conceptos bsicos
http://www2.caminos.upm.es/Departamentos/matematicas/Fdistancia/PIE/matlab/te
masmatlab/TEMA%203.pdf
PRACTICA # 2
ASIGNATURA: PROCESAMIENTO DIGITAL DE SEALES
TIEMPO PLANIFICADO EN EL SILABO: 4 HORAS
TIEMPO DE LA PRCTICA POR GRUPO: 2 HORAS
NUMERO DE ESTUDIANTES POR GRUPO: 1 ESTUDIANTES
NMERO DE EQUIPOS: 6
INTEGRANTES: PAUL ALVAREZ
Generar
funciones
de
los
TIPOS DE SECUENCIAS
Secuencia de muestras por unidad:
Funcion impseq
function [x,n] = impseq(n0,n1,n2)
ejemplos
del
texto
del
captulo
%
%
%
%
n
Funcion stepseq
function [x,n] = stepseq(n0,n1,n2)
% Generates x(n) = u(n-n0); n1 <= n <= n2
% -----------------------------------------% [x,n] = stepseq(n0,n1,n2)
%
n = [n1:n2]; x = [(n-n0) >= 0];
stem(x);
OPERACIONES EN SECUENCIAS
Suma de seales
function [y,n] = sigadd(x1,n1,x2,n2)
% implements y(n) = x1(n)+x2(n)
% ----------------------------% [y,n] = sigadd(x1,n1,x2,n2)
% y = sum sequence over n, which includes n1 and n2
% x1 = first sequence over n1
% x2 = second sequence over n2 (n2 can be different from n1)
%
n = min(min(n1),min(n2)):max(max(n1),max(n2)); % duration of y(n)
y1 = zeros(1,length(n)); y2 = y1; % initialization
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % x1 with duration of y
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % x2 with duration of y
y = y1+y2; % sequence addition
Multiplicacion de seales
function [y,n] = sigmult(x1,n1,x2,n2)
% implements y(n) = x1(n)*x2(n)
% ----------------------------% [y,n] = sigmult(x1,n1,x2,n2)
% y = product sequence over n, which includes n1 and n2
% x1 = first sequence over n1
% x2 = second sequence over n2 (n2 can be different from n1)
n = min(min(n1),min(n2)):max(max(n1),max(n2)); % duration of y(n)
y1 = zeros(1,length(n)); y2 = y1; %
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % x1 with duration of y
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; % x2 with duration of y
y = y1 .* y2;
Desplazamiento
function [y,n] = sigshift(x,m,k) %% funcion de desplazamiento
% implements y(n) = x(n-k)
% ------------------------% [y,n] = sigshift(x,m,k)
%
n = m+k; y = x;
De Plegado
EXAMPLE 2.1 Generar y trazar cada una de las siguientes secuencias en el intervalo indicado.
a. x(n) = 2(n + 2) (n 4), 5 n 5.
b. x(n) = n[u(n)u(n10)]+10e0.3(n10)[u(n10)u(n20)], 0 n 20.
c. x(n) = cos(0.04n) + 0.2w(n), 0 n 50, donde w (n) es una secuencia aleatoria gaussiana
con media cero y varianza unidad.
d. x(n) = {..., 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, ...}; 10 n 9.
x(n) = 2(n + 2) (n 4), 5 n 5.
x = 2*impseq(-2,-5,5) - impseq(4,-5,5);
subplot(2,2,1);
stem(n,x);
title('secuencia del problema 2.1a')
xlabel('n'); ylabel('x(n)');
x(n) = n[u(n)u(n10)]+10e0.3(n10)[u(n10)u(n20)], 0 n 20.
n = [0:20]; x1 = n.*(stepseq(0,0,20)-stepseq(10,0,20));
x2 = 10*exp(-0.3*(n-10)).*(stepseq(10,0,20)-stepseq(20,0,20));
x = x1+x2;
subplot(2,2,3);
stem(n,x);
title('secuencia del problema 2.1b')
xlabel('n'); ylabel('x(n)');
x(n) = cos(0.04n) + 0.2w(n), 0 n 50,
n = [0:50]; x = cos(0.04*pi*n)+0.2*randn(size(n));
subplot(2,2,2);
stem(n,x);
title('secuencia del problema 2.1c')
xlabel('n'); ylabel('x(n)');
x(n) = {..., 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, 5, 4, 3, 2, 1, ...}; 10 n 9.
n = [-10:9];
x = [5,4,3,2,1];
xtilde = x' * ones(1,4);
xtilde = (xtilde(:))';
subplot(2,2,4);
stem(n,xtilde); title('secuencia del problema 2.1d')
xlabel('n'); ylabel('xtilde(n)');
n = -2:10; x = [1:7,6:-1:1];
[x11,n11] = sigshift(x,n,5);
[x12,n12] = sigshift(x,n,-4);
[x1,n1] = sigadd(2*x11,n11,-3*x12,n12);
subplot(2,1,1);
stem(n1,x1);
title('Secuencia del Ejemplo 2.2a')
xlabel('n1'); ylabel('x1(n)');
b. x2(n) = x(3 n) + x(n) x(n 2)
[x21,n21] = sigfold(x,n);
[x21,n21] = sigshift(x21,n21,3);
[x22,n22] = sigshift(x,n,2);
[x22,n22] = sigmult(x,n,x22,n22);
[x2,n2] = sigadd(x21,n21,x22,n22);
subplot(2,1,2);
stem(n2,x2);
title('Secuencia del Ejemplo 2.2b')
xlabel('n'); ylabel('x2(n)');
Ejemplo 2,4 Sea x (n) = u (n) - u (n - 10). Descomponer x (n) en componentes pares e impares.
n = [0:10];
x = stepseq(0,0,10)-stepseq(10,0,10);
[xe,xo,m] = evenodd(x,n);
subplot(2,2,1); stem(n,x);
title('Pulso Rectangular')
xlabel('n'); ylabel('x(n)');
axis([-10,10,0,1.2])
subplot(2,2,2); stem(m,xe);
title('Parte par')
xlabel('n'); ylabel('xe(n)');
axis([-10,10,0,1.2])
subplot(2,2,4); stem(m,xo);
title('Parte impar')
xlabel('n'); ylabel('xe(n)');
axis([-10,10,-0.6,0.6])
Funcion conv_m
function [y,ny] = conv_m(x,nx,h,nh)
% Modified convolution routine for signal processing
% -------------------------------------------------% [y,ny] = conv_m(x,nx,h,nh)
% [y,ny] = convolution result
% [x,nx] = first signal
% [h,nh] = second signal
%
nyb = nx(1)+nh(1); nye = nx(length(x)) + nh(length(h));
ny = [nyb:nye]; y = conv(x,h);
b.
c.
Estas secuencias surgen de muestrear una seal analgica siendo el n-simo nmero de la
secuencia el valor de la seal analgica Xa(t) en el intervalo nT. O sea: x[n]=Xa(nT) en el
intervalo
T es el periodo de muestreo 1/T = f muestreo En forma grfica
X[n] no est definida para valores no enteros de n
CONVOLUCION
Haciendo un resumen de cmo trabaja el sistema, el sistema cambia una seal de entrada en
una seal de salida. Primero, la seal de entrada se descompone en un juego de impulsos,
cada uno de los cuales pueden ser vistos y escalados y desplazados por una funcin .
Segundo, la salida resultante de cada impulso se escala y desplaza segn la respuesta impulso.
Tercero, la seal de salida resultante se encuentra aadiendo cada una de estas respuestas
escaladas y desplazadas individuales. Este es un mtodo grafico para realizar la convolucin
pero primero veremos lo que es la suma de convolucin. Se demuestra que: h[n-k]=h[-(k-h)] Si
10
10
5
0
-5
-3
-2
-1
1
0.5
Software: Matlab
10
2
1
x(n)
x(n)
0
-1
-1
-5
-2
0
5
n
secuencia del problema 2.1b
xtilde(n)
x(n)
10
6
4
2
0
20
40
60
n
secuencia del problema 2.1d
3
2
1
10
n
15
20
0
-10
-5
0
n
10
Software: Matlab
x1(n)
-20
-40
-10
-5
10
15
n1
x2(n)
30
20
10
0
-8
-6
-4
-2
2
n
Software: Matlab
10
12
parte real
parte inmaginaria
-2
-1
-4
-10
-5
0
n
magnitud
-2
-10
10
-5
0
n
Fase
10
-5
0
n
10
200
100
0
1
0
-10
-100
-5
0
n
10
-200
-10
Software: Matlab
Pulso Rectangular
Parte par
xe(n)
0.5
0
-10
-5
0
n
0.5
0
-10
10
-5
0
n
10
10
Parte impar
0.5
xe(n)
x(n)
-0.5
-10
-5
0
n
Fig. 8.4 Secuencias del problema 2.4 literales a,b,c descomposicin de seal en par e impar
Fuente: Autor
Software: Matlab
60
40
20
-20
-40
-60
10
12
Fig. 8.5 Convolucion de seal discreta x = [3, 11, 7, 0, -1, 4, 2]; h = [2, 3, 0, -5, 2, 1];
Fuente: Autor
Software: Matlab
y =
6
31
47
-51
-5
41
18
-22
-3
-2
-4
-60
-40
-20
20
40
60
Fig. 8.6 Convolucion de seal discreta x = [3, 11, 7, 0, -1, 4, 2]; nx = [-3:3];h = [2, 3, 0, -5, 2, 1];nh = [-1:4];
Fuente: Autor
Software: Matlab
Respuesta al impulso
1
h(n)
0.5
0
-0.5
-1
-20
20
20
40
60
n
Respuesta al escalon
80
100
120
80
100
120
s(n)
0
-20
40
60
n
Software: Matlab
Output sequence
8
7
6
y(n)
5
4
3
2
1
0
-5
10
15
20
25
n
30
35
40
45
50
Software: Matlab
9.- Discusin
En al presente practica se realiz graficas de seales denotadas por x (t), en la que la
variable t puede representar cualquier cantidad fsica
La seal discreta se denotada por x (n), en el que se intervalo de variable n y
representa instancias discretas en el tiempo que es una secuencia de nmeros y se
denota por una de las siguientes notaciones.
Se utilizan vectores como las muestras de informacin de posicin
Adems se utiliz diferentes funciones o secuencias de cdigo como Funcin impseq
,Funcin stepseq y operaciones de suma, multiplicacin,escalamiento,desplazamiento,
inversin de seal ,plegado y descomposicin de seales en su parte par e impar las
cuales se realizan para resolucin y representacin de problema en tiempo discreto en
el cual trabajaremos para realizar en inicio del procesamiento de estas seales
comenzando por representacin, operaciones ,Convolucion, ecuaciones en diferencias
para la respuestas al escaln y al impulso
10.- Conclusiones
Se pudo concluir que la creacin de funciones ,son esenciales para la reduccin
del cdigo al momento de hacer un ejercicio.
Para trabajar con seales discretas existen diferentes tipos de operaciones
como Convolucion que nos permite conocer la respuesta al impuso de un
sistema.
11.- Recomendaciones
12.- Bibliografa
[1] V. K. INGLE y J. G. PROAKIS, Digital Signal Processing using MATLAB, THIRD EDITION
ed., N. University, Ed., USA, 2012, p. 671.
[2] consulta pgina web , ELT 3952 PROCESAMIENETO DIGITAL DE SEALES
http://docentes.uto.edu.bo/jespinozaa/wp-content/uploads/texto_dsp.pdf