1. Procesamiento de señales, imágenes y visión artificial con MatLab “ Quien no se resuelve a cultivar el hábito de pensar, se pierde el mayor placer de la vida” Thomas A. Edison
3. Señal sinusoidal de 50 Hz Fs=1000; t = (0:1/Fs:1)'; y = sin(2*pi*50*t); plot(t(1:50),y(1:50)) Le aumentamos ruido 1: t = (0:0.001:1)'; y = sin(2*pi*50*t); yn = y + 0.05*randn(size(t)); figure plot(t(1:50),yn(1:50))
4. Dos señales sinusoidales y ruido t = (0:0.001:1)'; y = sin(2*pi*50*t) + 2*sin(2*pi*120*t); yn = y + 0.5*randn(size(t)); plot(t(1:50),yn(1:50)) Le aumentamos ruido 2: close all; clear all; Fs = 100; t = 0:1/Fs:1; y1 = sin(2*pi*t*3)+.25*rand*sin(2*pi*t*40); plot(t,y1)
5. % Función SINC: x = linspace(-5,5); y = sinc(x); plot(x,y) Señal diente de sierra: Fs = 10000; t = 0:1/Fs:1.5; x = sawtooth(2*pi*50*t); figure plot(t,x), axis([0 0.2 -1 1])
6. SEÑAL CHIRP: (ver help chirp) % 2 secs de chirp muestreada a 1kHz % Inicie en DC y alcance 150Hz en t=1sec t=0:0.001:2; y=chirp(t,0,1,150); figure; plot(t,y) Figure; specgram(y,256,1E3,256,250); % 2 secs de chirp muestreada a 1kHz % Inicie en 100 Hz y alcance 200Hz en t=1sec t=0:0.001:2; y=chirp(t,100,1,200); figure; plot(t,y) figure; specgram(y,128,1E3,128,120);
7. SEÑAL murciélago: % señal de murciélago: % grabada con una frecuencia de muestreo de 230.4 kHz close all; clear all; load bat % sonido externo a matlab …. sound(bat,23400) t0=linspace(0,2500/2304,2500); plot(t0,bat); xlabel('Time [ms]'); % load handel %sonido que viene con matlab %dónde está? % sound(y,Fs) % % t=(0:length(y)-1)/Fs; % plot(t,y)
8. SONIDO CON LA CHIRP: Fs=1000; t=0:1/Fs:6; %6 seg. de duración. y=chirp(t,100,2,200); sound(y,Fs) figure; plot(t,y) figure; specgram(y,128,1E3,128,120);
9. Salvas de estados y variables Comando “ save ” Se emplea para guardar en disco las variables particulares que existan en este. Sintaxis ( ver help ): save (‘filename’, ‘var-1’, ..., ‘var-n’, formato); save nombre_de_variable.txt variable –ascii save señales y1 y2 y3 ; % se guarda como .mat save señales.txt y1 y2 y3 -ascii; % se guarda como .txt
10. Salvas de estados y variables Comando “ load ” Permite cargar variables existentes en un archivo en el espacio de trabajo. Al hacer load, se puede ver las variables recuperadas en el espacio de trabajo ( workspace ) Sintaxis: load ‘filename.mat’ ‘var-1’ ... ‘var-n’;
14. Deber 4: Paso de datos MATLAB ------- Archivo.txt Archivo.txt ------- MATLAB En matlab: generar una señal de seno, otra de coseno y otra de seno más coseno. Escoger las frecuencias que ustedes quieran. Guardar las tres señales en un archivo .txt Seguidamente, en el mismo programa, leer el archivo de texto anterior y poner las tres señales en tres axes diferentes.
15.
16. Ejemplos: rand (números randómicos uniformemente distrib.) -10 dB (0.316): close all; clear all; Fs = 100; t = 0:1/Fs:1; y1 = sin(2*pi*t*3)+rand(size(t))/ 0.316; plot(t,y1) YA NO ES VISIBLE 3dB(1.41): close all; clear all; Fs = 100; t = 0:1/Fs:1; y1 = sin(2*pi*t*3)+rand(size(t))/1.41; plot(t,y1) ES VISIBLE -3dB (0.707): close all; clear all; Fs = 100; t = 0:1/Fs:1; y1 = sin(2*pi*t*3)+rand(size(t))/ 0.707; plot(t,y1) SIGUE SIENDO VISIBLE
17. Distribución uniforme vs distribución normal % Comparación entre distribución uniforme vs distribución normal: close all clear all x1=rand(10000,1); %números al azar uniformemente distribuidos media1=mean(x1) desviacion_estandar1=std(x1) plot(x1) title('números al azar uniformemente distribuidos') figure histfit(x1) % histograma con ajuste gaussiano superimpuesto title('números al azar uniformemente distribuidos') x2=randn(10000,1); %números al azar normalmente distribuidos media2=mean(x2) desviacion_estandar2=std(x2) figure plot(x2) title('números al azar normalmente distribuidos') figure histfit(x2) %histograma con ajuste gaussiano superimpuesto Rand: genera números al azar entre 0 y 1 uniformemente distribuidos Randn: genera números al azar normalmente distribución con media 0 y desviación estándar 1.
19. close all clear all t = (0:0.001:1); y = sin(2*pi*50*t); % + 2*sin(2*pi*120*t); yn1 = y + 0.5*rand(size(t)); yn2 = y + 0.5*randn(size(t)); plot(t,y) title('señal original') figure plot(t,yn1) title('señal original + ruido dist. uniformemente') figure plot(t,yn2) title('señal original + ruido dist. normalmente')
22. Generalización de la ubicación: % Generalización: clear all close all M=-2; % límite inferior N=3; % límite superior K=0; % ubicación del pulso n=M:N; % base de tiempos y=[zeros(1,K-M) 1 zeros(1,N-K)] stem(n,y) % Generalización: clear all close all M=-4; % límite inferior N=5; % límite superior K=3; % ubicación del pulso n=-2:3; % base de tiempos y=[zeros(1,K-M) 1 zeros(1,N-K)] stem(n,y)
23. Función paso unitario (u[n]) de longitud L: % 1. Paso unitario: clear all close all M=0; % límite inferior N=7; % límite superior K=1; % inicio de los pulsos n=M:N; y=[zeros(1,K-M) ones(1,N-K+1)] stem(n,y) % Paso unitario desplazado: clear all close all M=0; % límite inferior N=10; % límite superior K=5; % inicio de los pulsos n=M:N; y=[zeros(1,K-M) ones(1,N-K+1)] stem(n,y)