2 epn señales y efectos falta con y sin gui

25
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

Transcript of 2 epn señales y efectos falta con y sin gui

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

GENERACI”N DE SEÑALES

Señal sinusoidal de 50 HzFs=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))

Dos señales sinusoidales y ruidot = (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)

% 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])

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);

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)

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);

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 .matsave señales.txt y1 y2 y3 -ascii; % se guarda como .txt

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’;

Paso de datos

EXCEL -------- MATLAB

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.

RELACI”N SEÑAL A RUIDO

- Señal: onda de interés

- Ruido: todo lo demás

- Cálculo de la relación señal a ruido:

- Relación señal a ruido (en escala lineal):

Ejemplos:

20 dB: valor RMS de la señal fue 10 veces el valor RMS del ruido (10 20/20 )

-20 dB: valor RMS de la señal fue 1/10 del valor RMS del ruido.

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

Distribución uniforme vs distribución normal

% Comparación entre distribución uniforme vs distribución normal:close allclear all

x1=rand(10000,1); %números al azar uniformemente distribuidosmedia1=mean(x1)desviacion_estandar1=std(x1)plot(x1)title('números al azar uniformemente distribuidos')figurehistfit(x1) % histograma con ajuste gaussiano superimpuestotitle('números al azar uniformemente distribuidos')

x2=randn(10000,1); %números al azar normalmente distribuidosmedia2=mean(x2)desviacion_estandar2=std(x2)figureplot(x2)title('números al azar normalmente distribuidos')figurehistfit(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.

Resultados:

media1 = 0.5007

desviacion_estandar1 = 0.288

media2 = 1.1073e-004

desviacion_estandar2 = 1.0012

close allclear 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')figureplot(t,yn1)title('señal original + ruido dist. uniformemente')figureplot(t,yn2)title('señal original + ruido dist. normalmente')

EJERCICIO:

Señales particulares (plot vs stem):

% Generación de señales particulares:

% 1. Impulso unitario:

n=-2:3; % abscisas (eje de tiempos)y=[0 0 1 0 0 0]; % ordenadas (alturas)stem(n,y)figureplot(n,y)

Generalización de la ubicación:

% Generalización:clear allclose allM=-2; % límite inferiorN=3; % límite superiorK=0; % ubicación del pulson=M:N; % base de tiemposy=[zeros(1,K-M) 1 zeros(1,N-K)]stem(n,y)

% Generalización:clear allclose allM=-4; % límite inferiorN=5; % límite superiorK=3; % ubicación del pulson=-2:3; % base de tiemposy=[zeros(1,K-M) 1 zeros(1,N-K)]stem(n,y)

Función paso unitario (u[n]) de longitud L:

% 1. Paso unitario:clear allclose all

M=0; % límite inferiorN=7; % límite superiorK=1; % inicio de los pulsosn=M:N;y=[zeros(1,K-M) ones(1,N-K+1)]stem(n,y)

% Paso unitario desplazado:

clear allclose all

M=0; % límite inferiorN=10; % límite superiorK=5; % inicio de los pulsosn=M:N;y=[zeros(1,K-M) ones(1,N-K+1)]stem(n,y)

Efectos

- Ver programas (cool edit y DJ)

- Hacer efectos en matlab (amplitud, eco, velocidad)

Fin del segundo día