Sei sulla pagina 1di 9

Introduccin

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 de MathWorks, el cual domina en el ambiente acadmico e industrial con el uso y


desarrollo de un sinfin de aplicaciones, sin embargo, en el mbito acadmico (y no hay duda
que en el industrial tambin), se tiende a hacer uso de software sin licencia vlida, debido a que
. J re

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

usa software pirata.


Octave al ser de distribucin libre, puede modificarse bajo uso educacional, investigacin
o recreacin, adems su uso bajo LINUX, provee de una herramienta con mayor capacidad de
n en

procesamiento, velocidad, estabilidad y flexibilidad que bajo WINDOWS y superando, en mi


opinin personal a MATLAB, en todos los aspectos.
.e s

3.2 Instalacin de octave


M ta

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

Una vez elegida la distribucin de su preferencia instalar octave de repositorios, debera


instalar los siguientes paquetes (mnimos):
Gnuplot
General
Miscellaneuos
Signal
tsa
56 Introduccin a octave

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.

3.4 Comandos y estructuras bsicas


Se presentarn los comandos o instrucciones bsicas
58 Introduccin a octave

diary nombre.txt: Guardar los comandos ejecutados y salidas en la pantalla de termi-


nal en un archivo con nombre.txt.
diary off: Instruccin que cerrar el diario de instrucciones, es obligatorio cerrar el
diario, si no se coloca no se crear el archivo.
help comando: Se invoca la ayuda de octave para conocer que hace dicho comando, su
sintaxis y parmetros.

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

parmetros para dar formato a la grfica:


color: Se aade color a la curva representada, se debe colocar la incial del color en
n en

ingles: r-rojo, b-azul,g-verde, c-cyan, m-magenta,k-negro.


symbolcolor: Pueden aadirse simbolos para los puntos graficados: *,-,_,+,o,...,.
x1,y2,*r: Pueden aadirse ms curvas en la misma grfica, cada una de las curvas,
tendr sus propios parmetros.
.e s

.
subplot(f,c,indice),plot(...): Regresa una figura con una arreglo de figuras, el arreglo
M ta

estar determinado por el nmero de filas f y columnas c deseado, la grfica resultante


de plot se colocar en el indice deseado.
o

xlabel(Texto): Etiqueta con Texto el eje horizontal.


ylabel(Texto): Etiqueta con Texto el eje vertical.
N

title(Texto): Se coloca como ttulo de la grfica Texto.


axis: Modifica las propiedas de la grfica en cuanto a sus ejes, para ver sus diversos
parmetros teclear get(gca()), despus de generar su grfica.
Ejemplos de instrucciones
a=[ 1 2 3 4]; Se genera un vector con nombre a que tiene 4 elementos.
b=1:4; forma alternativa de crear un vector con nombre b con 4 elementos consecutivos.
b=1:2:8; forma alternativa de crear un vector con nombre b con 8 elementos consecutivos
3.5 Cdigos de ejemplo de Sistemas y Ecuacin de diferencias 59

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

3.5 Cdigos de ejemplo de Sistemas y Ecuacin de diferencias


n en

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

function [x,n] = impulso(n0,n1,n2)


M ta

n = [n1:n2]; x = [(n-n0) == 0];


o
N

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

function [x,n] = escalon(n0,n1,n2)

n = [n1:n2]; x = [(n-n0) >= 0];

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

% c >corrimiento(ejemplo: x[n+2], c=2, si x[n-4], c=-4


% factor >amplificacion, si se desea multiplicar por un escalar, , si es
unitario dejar como [].
n en

% inversa >+ -, indica si se hace el espejo de x[n] (ejemplo, x[-n+2], c=2, inversa=-)

if(isempty(amp) || (nargin<5) || (nargin==4))


amp=1;
.e s

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

 Ejemplo 3.5 Determinar la salida del siguiente sistema, x[n] = [2 0 3 0 0 1],


h[n] = [3 2 1] usando octave.
Este ejercicio ya o resolvimos previamente ahora mediante octave veremos la forma de
.e s

obtener la convolucin discreta.


M ta

La funcin conv(x,h), nos brinda la operacin convolucin y la ejecutamos con la siguiente


instruccin:
x = [2 0 3 0 0 1];
o

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

0,6y[n 1] = x[n] si x[n] = (0,4)n [n] y y[1] = 0 usando octave.


Ya lo resolvimos al obtener la respuesta completa y tabulamos el diagrama a bloques,
comprobaremos la respuesta con octave.
1. Debemos dar un vector de tiempo discreto >n = 0 : 20;
2. Indicar x[n] > xn = (0,4).n ;
3. Debemos obtener los coeficientes de la ecuacin de diferencias, recordamos la ecuacin

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

vectores de a y b que modelan a travs de la ecuacin general de diferencias el sistema y[n]. SI


x[n] = [1 4 0 2 3], d la solucin.
N

Agrupamos todos los coeficientes de salida del lado izquierdo y todos los coeficientes de la
entrada lado derecho :

y[n] y[n 1] = x[n] x[n 3]

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

1. Debemos dar un vector de tiempo discreto >n = 0 : 4;


2. Indicar x[n] > xn = [1 4 0 2 3];
3. Debemos obtener los coeficientes de la ecuacin de diferencias, recordamos la ecuacin

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

Potrebbero piacerti anche