Upload
litronix
View
214
Download
2
Embed Size (px)
DESCRIPTION
Programa de diseño matematico para el analisis general de las señales o funciones digitales
Citation preview
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una herramienta de
software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de
programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows, Mac
OS X y GNU/Linux .
Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de
datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI)
y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El
paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a
saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de
usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de
herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets).
Es un software muy usado en universidades y centros de investigación y desarrollo. En los
últimos años ha aumentado el número de prestaciones, como la de programar
directamente procesadores digitales de señal o crear código VHDL.
Índice
[ocultar]
1 Historia 2 Sintaxis
o 2.1 Ejemplos 2.1.1 Hello World 2.1.2 Diseño de filtros digitales
3 Cajas de herramientas y paquetes de bloques 4 Limitaciones y alternativas 5 Llamar funciones C y Fortran 6 Véase también 7 Referencias 8 Enlaces externos
Historia[editar]
Fue creado por el matemático y programador de computadoras Cleve Moler en 1984,
surgiendo la primera versión con la idea de emplear paquetes de subrutinas escritas
en Fortran en los cursos de álgebra lineal y análisis numérico, sin necesidad de escribir
programas en dicho lenguaje. El lenguaje de programación M fue creado en 1970 para
proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin tener que
usar Fortran.
En 2004, se estimaba que MATLAB era empleado por más de un millón de personas en
ámbitos académicos y empresariales.1
Sintaxis[editar]
MATLAB es un programa de cálculo numérico diseñado para trabajar con matrices. Por tanto,
será más eficiente si se diseñan los algoritmos en términos de matrices yvectores.
Ejemplos[editar]
Hello World[editar]
Éste es el tradicional programa Hola && nada % Muestra el mensaje. Hola mundo </source>
Diseño de filtros digitales[editar]
En este ejemplo se diseña un filtro digital paso bajo de Butterworth y se muestra el módulo de
su espectro además incluimos otro ejemplo de un tren de deltas para el análisis espectral:
close all % Cierra todas las
ventanas.
clear all % Borra todas las
variables del espacio de trabajo.
clc % Limpia la pantalla.
Fc=200; % Frecuencia de corte.
Fm=1000; % Frecuencia de
muestreo.
BT=100; % Banda de transición.
Rs=40; % Ganancias.
rs=10^(-Rs/20);
Rp=2;
rp=(10^(Rp/20)-1)/(10^(Rp/20)+1);
[n1b,wn1]=buttord(2*Fc/Fm,2*(Fc+BT)/Fm,Rp,Rs); % Orden del filtro
(función buttord).
[B1,A1]=butter(n1b,wn1); % Coeficientes del
filtro (función butter).
h1=freqz(B1,A1); % Respuesta en
frecuencia (función freqz).
plot(abs(h1)) % Representación de la
respuesta.
Archivo: otro ejemplo Serie trigonométrica de tren de pulsos positivos y negativos.
n=input('número de sumandos= ');
% se crea una serie de pulsos para el procesado de señales y sistemas en
el mundo de las telecomunicaciones
t=-2:.01:2;
pulso=zeros(1,length(t));
for k=1:n
pulso=pulso+sin(2*(2*k-1)*pi*t)/(2*k-1);
end
plot(t,pulso)
grid
Ejemplo
La función exponencial ex puede ser definida de diversas maneras equivalentes entre sí, como
una serie infinita. En particular podemos definirla como una serie de
potencias: Ahora resolveremos
la función exponencial de la matriz (m), en el editor de Matlab.
close all % Cierra todas las
ventanas.
clear all % Borra todas las
variables del espacio de trabajo.
clc % Limpia la pantalla.
m=[5 6;6 7]; %Declaramos la matriz m
e=zeros(2,2); %Declaramos una matriz
de ceros de 2x2
for k=(1:30) %Iniciamos un for de k=1
supongamos hasta 30
e=e+(m^k)/factorial(k) %Introducimos la
ecuación como serie de potencias
end %Terminamos el for
Cajas de herramientas y paquetes de bloques[editar]
Las funcionalidades de Matlab se agrupan en más de 35 cajas de herramientas y paquetes de
bloques (para Simulink), clasificadas en las siguientes categorías:2
MATLAB (Cajas de herramientas) Simulink
Matemáticas y Optimización Modelado de punto fijo
Estadística y Análisis de datos Modelado basado en eventos
Diseño de sistemas de control y
análisisModelado físico
Procesado de señal y comunicaciones Gráficos de simulación
Procesado de imagen Diseño de sistemas de control y análisis
Pruebas y medidas Procesado de señal y comunicaciones
Biología computacional Generación de código
Modelado y análisis financiero Prototipos de control rápido y SW/HW HIL
Desarrollo de aplicaciones Tarjetas integradas
Informes y conexión a bases de datos Verificación, validación y comprobación
Limitaciones y alternativas[editar]
Durante mucho tiempo hubo críticas porque MATLAB es un producto propietario de The
Mathworks, y los usuarios están sujetos y bloqueados al vendedor. Recientemente se ha
proporcionado una herramienta adicional llamada MATLAB Builder bajo la sección de
herramientas "Application Deployment" para utilizar funciones MATLAB como archivos de
biblioteca que pueden ser usados con ambientes de construcción de aplicación .NET o Java.
Pero la desventaja es que el computador donde la aplicación tiene que ser utilizada necesita
MCR(MATLAB Component Runtime) para que los archivos MATLAB funcionen correctamente.
MCR se puede distribuir libremente con los archivos de biblioteca generados por el compilador
MATLAB.
LabVIEW
GNU Octave , software libre similar a matlab.
SAS
Scilab
Mathcad
SciPy & Numerical Python
Lenguaje R
Álgebra computacional :
Véase Anexo:Programas de álgebra computacional
Llamar funciones C y Fortran[editar]
MATLAB puede llamar funciones y subrutinas escritas en C o Fortran. Se crea una función
envoltorio que permite que sean pasados y devueltos tipos de datos de MATLAB. Los archivos
objeto dinámicamente cargables creados compilando esas funciones se denominan "MEX-
files", aunque la extensión de nombre de archivo depende del sistema operativo y del
procesador.
function [fa,dfa]=funcion_y_derivada(x)
fa=0;
n=1;
h=1;
dfa=0;
while (n <= (10*(x-(1/2))^2) + 10)
fa=fa+(((-x^2)^n)/factorial(2*n));
h=h/2;
dfa=dfa+(((((-(x+h)^2)^n)/factorial(2*n))-(((-
x^2)^n)/factorial(2*n)))/h);
n=n+1;
end
function v=aproxima_derivada2(funci,a)
syms x;
i=1;
h=1;
v(i)=(subs(funci,a+h)+subs(funci,a-h)-(2*subs(funci,a)))/(h^2);
error=1;
while(error>1e-10)
h=h/2;
i=i+1;
v(i)=(subs(funci,a+h)+subs(funci,a-h)-(2*subs(funci,a)))/(h^2);
error= abs(v(i)-v(i-1));
end