Dsp Octave

Páginas: 11 (2603 palabras) Publicado: 24 de julio de 2012
Procesamiento Digital de Se˜ales
n
usando GNU Octave

Dr. Alfonso Alba Cadena
fac@galia.fc.uaslp.mx

Facultad de Ciencias
UASLP

GNU Octave...
• Es un lenguaje de alto nivel orientado al c´mputo num´rico
o
e
• Trabaja nativamente con vectores y matrices
• Es altamente compatible con Matlab
• Puede extenderse mediante funciones escritas en C/C++
• Es de distribuci´n gratuita
oOctave puede descargarse de http://www.octave.org

1

Operaciones con matrices y vectores
• En Octave se pueden definir matrices escribiendo
sus elementos entre corchetes.

• La coma separa los elementos en columnas, y el
punto y coma los separa en renglones.

Ejemplo: m = [1, 2, 3; 4, 5, 6] asigna a la variable m
la matriz
123
456

.

2

Acceso a los elementos de una matrizDada una matriz m se puede tener acceso a cualquier
elemento, rengl´n, columna, o sub-matriz de m:
o

• m(i,j) hace referencia a un elemento.

• m(i,:) hace referencia al i-´simo rengl´n.
e
o

• m(:,j) hace referencia a la j-´sima columna.
e

• m(i1:i2, j1:j2) hace referencia a una sub-matriz.
3

Aritm´tica de matrices
e
• Suma y resta: a + b, a - b

• Producto matricial: a* b

• Producto elemento por elemento: a .* b

• Transpuesta conjugada: a’

4

Matrices especiales
Las siguientes funciones de Octave devuelven matrices
de utilidad general.
• Identidad: eye(n, m)
• Unos: ones(n, m)
• Ceros: zeros(n, m)
• Ruido uniforme: rand(n, m)
• Ruido normal: randn(n, m)
• Vector de n valores equiespaciados: linspace(base, limit, n)
• Rango de ´
ındices:a:b (devuelve el vector [a, a+1, ..., b])
5

Ejercicios
Defina las siguientes matrices en Octave :


A=

1 2 −1
20 1



−1 1


, B= 2
0  , C = 3 · I3×3.
1 −2

Usando las matrices anteriores, calcule las siguientes
expresiones:

a) A × B
b) B × A − C
c) A + λN , donde λ = 0.1 y N es ruido uniforme
6

Funciones
Una funci´n de Octave toma cero o mas par´metros
o
a(escritos entre par´ntesis), realiza alg´n procedimiento,
e
u
y puede o no devolver alg´n resultado.
u
Ejemplos de funciones:
> cos(1)
ans = 0.54030
> ones(1, 5)
ans =
11111
> floor(mean([1, 2, 3, 4, 5]))
ans = 2
7

Definici´n de funciones
o
Uno puede escribir sus propias funciones de Octave
usando la siguiente sintaxis:
function resultado = nombre (parametros )
cuerpo de lafunci´n
o
end
Ejemplo:
> function y = cuad(x)
> y = x * x;
> end
> cuad(5)
ans = 25
8

Librer´ de funciones
ıas
Para poder utilizar una funci´n en el futuro, sin tener
o
que escribirla nuevamente, es necesario guardarla en un
archivo de texto con el mismo nombre que la funci´n y
o
extensi´n .m
o

# Archivo:
# Descripcion:

cuad.m
cuad(x) devuelve el cuadrado de xfunction y = cuad(x)
y = x * x;
end

9

Buenas pr´cticas de programaci´n
a
o
ıa
• Escribir funciones de librer´ para realizar tareas comunes.
• Dividir un problema grande en sub-problemas mas
peque˜os cuya implementaci´n sea sencilla.
n
o
• Agregar comentarios a las funciones de librer´ que
ıa
describan la tarea que realizan y los par´metros que
a
toman.
• Limitar las funciones alas tareas que deben realizar
de manera que sean claras y reutilizables.
10

Ejercicios:
1. Escribir una funci´n fact(x) que calcule y devuelva
o
el factorial de x. Para esto, investigar c´mo realizar
o
ciclos (for, while, etc.) en Octave .
2. Escribir una funci´n que tome como entrada dos
o
vectores y devuelva el producto punto. La funci´n
o
debe verificar primero que los vectorestengan la
misma longitud. Usar las estructuras if, for, y la
funci´n length().
o
3. Utilizando la funci´n anterior, escriba una funci´n
o
o

que calcule la norma de un vector x (dada por x · x
).
11

Se˜ales discretas en Octave
n
• Una se˜al discreta y finita x[n] se representa en Ocn
tave como un vector. En ocasiones es ´til obtener
u
un vector adicional que contenga el rango de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Octavas
  • Octavo
  • Octavo
  • Octave
  • octave
  • Octave
  • octavas
  • Octave

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS