Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Instalacin de octave
Linux
Windows
Ejecucin
Linux
Windows
Comandos y estructuras bsicas
Cdigos de ejemplo de Sistemas y Ecua-
cin de diferencias
as o
C ibr
lo
til
in e l
3 Introduccin a octave
uc d
3.1
ld n
Introduccin
r a ci
En procesamiento digital de seales es necesario utilizar un software que ayude a demostrar
y aplicar los conocimientos adquiridos en el curso. Una vez que se tiene el diseo, simulacin de
ie ra
un sistema, se plasma en un tarjeta de desarrollo, CI o mediante FPGAs, por ello es necesario
introducirnos a OCTAVE.
Octave es un paquete de herramientas de distribucin libre, naci como contrapeso a
av pa
MATLAB con toolbox y dems paquetes adicionales conlleva a un importante gasto econmico,
esto sin duda atenta contra la tica del futuro profesional y tambin de la institucin donde se
C p
Octave funciona bajo una ventana de comandos en una terminal, sin embargo puede usarse
bajo tres modos que se describirn a continuacin.
o
3.2.1 Linux
N
Si su distribucin es debian puede utilizar sinaptic para facilitar la instalacin. Deber tener
su sistema actualizado.
3.2.2 Windows
1. Descargar el paquete https://sourceforge.net/projects/octave/files/ (win-
dows binaries version for windows visual studio), deber instalar los siguientes paquetes
as o
(mnimos):
Gnuplot
C ibr
lo
General
Miscellaneuos
til
Signal
in e l
tsa
2. Una vez instalado el paquete Octave, descargar e instalar el paquete Ghostscript
http://www.ghostscript.com/download/gsdnld.html (de acuerdo a la arquitectura
uc d
del sistema operativo x86 o x64).
3. Aadir una variable de entorno del sistema de Windows. Panel de control Sistema y
ld n
seguridad Sistema Configuracin avanzada del sistema Variables de entorno
Variables del sistema; se debe editar (aadir) a la variable Path la ubicacin del binario de
ghostscript (poner atencin a la ubicacin de acuerdo a la arquitectura), por ejemplo:
r a ci
ie ra
av pa
. J re
Es importante este punto ya que si se omite la instalacin ser bsica sin las funciones adecuadas
para el curso.
C p
3.3 Ejecucin
n en
3.3.1 Linux
Existen diversas formas de invocar y usar octave en linux:
1. En una terminal teclear octave"
.e s
M ta
o
N
3.4 Comandos y estructuras bsicas 57
2. En una terminal teclear octave force-gui", (doble guin medio antes de force), se abrir
una ventana con panel de navegacin , workspace, file browser, command history, and
command window.
as o
C ibr
lo
til
in e l
uc d
ld n
r a ci
ie ra
3. Usar un editor de textos (sugiero gedit), empotrar una terminal en la parte inferior y
seleccionar resaltar comandos para octave, quedado de la siguiente forma:
av pa
. J re
C p
n en
.e s
M ta
o
N
3.3.2 Windows
En una terminal teclear octave", windows+R octave.
as o
clc: Limpia la pantalla de comando (command window).
whos: Despliega las variables, su tamao, tipo de variable y dimenciones.
C ibr
lo
clear variable all: Limpia el valor de la variable, si se coloca all borra todas las
variables del workspace actual.
til
figure, figure(valor):Crea una nueva figura, la segunda instruccin se indica que nmero
in e l
de figura se crear.
clf: Limpia la figura de la ventana actual, borrando configuracin de la misma.
y=ones(filas,columnas): Produce un arreglo de unos con las dimensiones indicadas
uc d
por filas y columnas.
y=eye(n): Produce una matriz identidad cuadrada de orden n.
y=zeros(filas,columnas): Produce un arreglo de ceros con las dimensiones indicadas
ld n
por filas y columnas.
[f,c]=size(variable): Regresa las dimenciones en filas y columnas de la variable.
y=rows(variable):Regresa las el nmero de filas de la variable.
r a ci
y=columns(variable):Regresa las el nmero de columns de la variable.
y=find(variable): Regresa los ndices donde los valores de variable son mayores que
ie ra
1.
[x,y]=find(variable): Regresa las coordenadas donde los valores de variable son ma-
av pa
yores que 1.
x=find(variable==valor): Regresa los ndices donde los valores de variable son
iguales a valor.
x=find(variable>=valor & variable2<=valor2): Regresa los ndices que cumpla
. J re
un intervalo.
plot(x,y,parametros): Regresa la grfica de la variable x vs y. Se pueden aadir
C p
.
subplot(f,c,indice),plot(...): Regresa una figura con una arreglo de figuras, el arreglo
M ta
en pasos de 2.
c=[1 2 3; 4 5 6; 7 8 9]; se genera una matriz c.
d=a(1); se pide un valor especfico de un vector o matriz indicado el indice deseado.
e=c(1,3); similar al anterior pero brindando las coordenadas.
I=[a b]; concatenacin de arreglos.
k=I; transpuesta de un arreglo.
as o
h=c(:); se convierte la matriz c en un vector columna.
g=3*a; multiplicacin de un escalar por un arreglo.
C ibr
lo
a=c;
n=a*c; multiplicacin de arreglos, debe recordar la restriccin para multipplicar dos
til
matrices.
in e l
m=a.*c, multiplicacin punto a punto (elemento a elemento) de dos matrices, no confundir
con multiplicacin de matrices.
stem(b,b,parmetros); grfica en impulsos recorridos y ponderados, acepta los mismo
uc d
parmetros que plot.
print(nombre archivo.extension), guarda la grfica actual como un archivo con el nom-
bre archivo y una extensin, se acepta png,jpg,pdf, se guarda en el directorio de
ld n
trabajo actual.
function: En octave se pueden realizar funciones o subrutinas, con la siguiente sintaxis:
function variable salida=nombre funcion(parmetro 1,parmetro 2,...,parmetro n)
r a ci
instruccion 1
ie ra
instruccion 2
..
.
av pa
instruccion n
endfunction
. J re
C p
Ejemplos de cdigos
Ejemplo 3.1 Funcin que obtiene una impulso unitario con corrimiento n0, en un intervalo de
tiempo discreto n1 n n2 ,
.e s
figure,
stem(n,x), xlabel(n),ylabel(x[n]);
endfunction
Ejemplo 3.2 Funcin que obtiene una escaln unitario con corrimiento n0, en un intervalo de
tiempo discreto n1 n n2 ,
60 Introduccin a octave
figure,
stem(n,x), xlabel(n),ylabel(x[n]);
as o
endfunction
C ibr
lo
Ejemplo 3.3 Funcin que obtiene una escaln unitario con corrimiento n0, en un intervalo de
til
tiempo discreto n1 n n2 ,
in e l
function [x,n] = exponencial(a,C,n0,n1,n2)
uc d
% C a(nn0)
n = [n1:n2]; x = [(n-n0) >= 0];
ld n
x=C*a. n;
r a ci
figure,
stem(n,x), xlabel(n),ylabel(x[n]);
ie ra
endfunction
av pa
Ejemplo 3.4 La siguiente funcin realiza el corrimiento de cualquier funcin especificada por
x. function [y,corrim]=corrimiento(x,n,c,amp,inversa)
. J re
% x >secuencia x[n]
% n >tiempo discreto
C p
% inversa >+ -, indica si se hace el espejo de x[n] (ejemplo, x[-n+2], c=2, inversa=-)
endif
M ta
if (isempty(c))
o
c=0;
endif
N
if (mod(length(x),2)==0)
x=[x 0]; n=[n n(end)+1];
endif
if (inversa==+)
corrim=n-(c);
else
3.5 Cdigos de ejemplo de Sistemas y Ecuacin de diferencias 61
corrim=-fliplr(n)+c;
endif
if (inversa==+)
y=x;
else
as o
y=fliplr(x);
endif
C ibr
lo
y=amp.*y;
til
in e l
subplot(2,1,1), stem(n,x),
axis([min(min(n,ncorrim))-2 (max(max(n,ncorrim)))+2 min(x)-1 max(x)+2]),
title(sprintf(x[n]))
uc d
subplot(2,1,2), stem(corrim,y),
axis([min(min(n,ncorrim))-2 (max(max(n,ncorrim)))+2 min(x)-1 max(x)+2]),
ld n
title(sprintf(strcat(x[,inversa,n+,num2str(c),)])))
endfunction
r a ci
Puede llamar a la funcin con los siguientes ejemplos:
ie ra
%x[n-3] [y,n]=corrimiento([2:7],[-2:1:3],-3,[],+);
av pa
%x[n+2] [y,n]=corrimiento([2:7],[-2:1:3],2,[],+);
%x[-n] [y,n]=corrimiento([2:7],[-2:1:3],0,[],-);
. J re
%x[-n+1] [y,n]=corrimiento([2:7],[-2:1:3],1,[],-);
C p
%x[-n-2] [y,n]=corrimiento([2:7],[-2:1:3],-,[],+);
n en
h = [3 2 1];
N
y = conv(x, h)
El resultado que brinda octave es:
>y=
6 4 11 6 3 3 2 1
Podemos observar que el tiempo discreto n = 0, lo podemos obtener al sumar cuantas
muestras antes de cero se tienen (en este caso son dos muestras), por lo que la muestra al tiempo
n = 0 es en 11.
Ejemplo 3.6 Obtener la salida del sistema modelado por la ecuacin de diferencias y[n]
62 Introduccin a octave
as o
2.34. DOnde los coeficientes a corresponde a los coeficientes de las muestras de la salida
y b a los coeficientes de las muestras de la entrada.
C ibr
lo
a = [1 0,6];
b = [1 0];
til
4. Dado que tenemos una condicin inicial, se debe colocar un vector de CI: > z f =
in e l
f iltic(b, a,CI, xn);, donde CI=0.
5. Usaremos la instruccin filter: > yn = f ilter(b, a, xn, z f );.
6. Graficamos: > subplot(2, 1, 1), stem(n, yn,0 r0 );
uc d
7. Comprobamos evaluando la respuesta completa obtenida en clases anteriores:
>yT n = 3 (0,6).n 2 (0,4).n ;.
8. Graficamos: > subplot(2, 1, 2), stem(n, yT n,0 b0 );
ld n
+
r a ci
ie ra
av pa
. J re
C p
n en
.e s
M ta
Ejemplo 3.7 Dada la ecuacin de diferencias: y[n] = y[n 1] + x[n] x[n 3] hallar los
o
Agrupamos todos los coeficientes de salida del lado izquierdo y todos los coeficientes de la
entrada lado derecho :
Tomamos los coeficientes de lado izquierdo para forma el vector, aqui deben poner atencin
que los vectores a y b deben tener la misma longitud de acuerdo a las muestras recorridas
3.5 Cdigos de ejemplo de Sistemas y Ecuacin de diferencias 63
a = 1 -1 0 0
b = 1 0 0 -1
as o
2.34. DOnde los coeficientes a corresponde a los coeficientes de las muestras de la salida
C ibr
y b a los coeficientes de las muestras de la entrada.
lo
a = [1 1 0 0];
b = [1 0 0 1];
til
4. Usaremos la instruccin filter: > yn = f ilter(b, a, xn, 0);, donde la condicin inicial es 0.
in e l
5. Graficamos: > subplot(2, 1, 1), stem(n, yn,0 r0 );
n y[n]
uc d
0 y[0]=y[-1] +x[0]-x[-3]= 1
1 y[1]=y[0] +x[1]-x[-2]= 1+4=5
ld n
2 y[2]=y[1] +x[2]-x[-1]= 5+0=5
3 y[3]=y[2] +x[3]-x[0]= 5+2-1=6
4 y[4]=y[3] +x[4]-x[1]= 6+3-4=5
r a ci
.. .. ..
. . .
ie ra
av pa
. J re
C p
n en
.e s
M ta
o
N