%% Cargando datos de señal entera
% Cargar los conjuntos de datos que comprenden las señales medidas por
% cuatro instrumentos usando 8 y 16 bits A-to-D's dando como resultado
% datos guardados como int8, int16 y uint16. El tiempo es almacenado
como
% uint16.
load integersignal
% Observar las variables
whos Signal1 Signal2 Signal3 Signal4 Time1
%% Graficar Datos
% Primero vamos a graficar dos de las señales para observar los rangos
de
% señal
plot(Time1, Signal1, Time1, Signal2);
grid;
legend('Señal 1','Señal 2');
% Podemos ver que los valores estan en el rango -128 y 127, que es lo
que
% podríamos esperar para int8. Es probable que los valores necesiten
ser
% escalados para calcular el valor físico actual que la señal
representa en
% e.g. Volts.
%% Procesamiento de datos
% Podemos operar en aritmética con números enteros como +,-,* y /.
Digamos
% que deseamos encontrar la suma de las señales 1 y 2.
SumSig = Signal1 + Signal2; % Aquí sumamos las señales enteras.
%%
%Podemos encender las advertencias para que nos digan si la
aritmética se
%satura. En el caso de int8, esto va a ocurrir si el resultado de una
%operación esta por fuera del rango -128 a 127. Vamos a encender esas
%advertencias mediante el comando intwarning y ejecutar de nuevo
intwarning('on')
SumSig = Signal1 + Signal2; % Aqui sumamos de nuevo las señales.
%%
% Sin embargo realizando esta comprobación se ralentiza de forma
importante
% la ejecución. Es mejor activarla durante el desarrollo del algoritmo
y
% apagarla para la ejecución final. Ahora vamos a diagramar la suma de
% la señal y ver en donde se satura.
intwarning ('off')
cla;
plot(Time1, SumSig);
hold on;
Saturated = (SumSig == intmin('int8')) | (SumSig == intmax('int8')); %
% Encuentra en donde se ha saturado
plot(Time1(Saturated), SumSig(Saturated),'rd');grid;
hold off
%%
% Los marcadores muestran en donde esta señal se ha saturado.
%% Cargando Datos de Imagen Entera
% A continuación vamos a observar la aritmética sobre algunos datos de
% imagen.
street1=imread('street1.jpg'); % Carga el dato de imagen
street2=imread('street2.jpg');
whos street1 street2
%%
% En donde vemos que las imágenes son a color de 24 bitsalmacenadas
como
% tres daros planos de uint8.
%% Desplegando las Imágenes
% Desplegar la primera imagen
cla;
image(street1); % Despliega la imagen
axis equal; axis off
%%
% Desplegar la segunda imagen
image(street2); % Despliega la imagen
axis equal; axis off
%% Escalar una Imagen
% Podemos escalar la imagen mediante una constante de precisión doble
pero
% manteniendo la imagen almacenada como interos. Por ejemplo,
Opacado = 0.5 * street2; % Escala la imagen con una contante doble
pero cres un entero
whos Opacado
%%
subplot(1,2,1);
image(street2);
axis off equal tight
title('Original'); % Despliega la imagen
subplot(1,2,2);
image(Opacado);
axis off equal tight
title('Opacado') % Despliega la imagen
%% Agregar la Imágenes
% Podemos agregar las dos imágenes de la calle juntas y diagramar el
% resultado fantasmal
Combinado = street1 + Opacado; % Agrega las imágenes uint8
subplot(1,1,1)
cla;
image(Combinado); % Despliega la imagen
title('Combinado');
axis equal; axis off
%%________________Translation by Ataraxiainc