Está en la página 1de 25

“Quien no se resuelve a cultivar el hábito de

pensar, se pierde el mayor placer de la vida”


Thomas A. Edison

Procesamiento de señales con MatLab


GENERACIÓN DE SEÑALES
Señal sinusoidal de 50 Hz Le aumentamos ruido 1:
Fs=1000; t = (0:0.001:1)';
t = (0:1/Fs:1)'; y = sin(2*pi*50*t);
y = sin(2*pi*50*t); yn = y + 0.05*randn(size(t));
plot(t(1:50),y(1:50)) figure
plot(t(1:50),yn(1:50))
Le aumentamos ruido 2:
Dos señales sinusoidales y ruido
close all; t = (0:0.001:1)';
clear all; y = sin(2*pi*50*t) + 2*sin(2*pi*120*t);
yn = y + 0.5*randn(size(t));
Fs = 100;
plot(t(1:50),yn(1:50))
t = 0:1/Fs:1;
y1 = sin(2*pi*t*3)+.25*rand*sin(2*pi*t*40);
plot(t,y1)
Señal diente de sierra: % Función SINC:
Fs = 10000; x = linspace(-5,5);
t = 0:1/Fs:1.5; y = sinc(x);
x = sawtooth(2*pi*50*t); plot(x,y)
figure
plot(t,x), axis([0 0.2 -1 1])
SEÑAL CHIRP: (ver help chirp)
% 2 secs de chirp muestreada a 1kHz
% 2 secs de chirp muestreada a 1kHz
% Inicie en DC y alcance 150Hz en t=1sec
% Inicie en 100 Hz y alcance 200Hz en t=1sec
t=0:0.001:2;
t=0:0.001:2;
y=chirp(t,0,1,150); figure; plot(t,y)
y=chirp(t,100,1,200); figure; plot(t,y)
Figure; specgram(y,256,1E3,256,250); figure; specgram(y,128,1E3,128,120);
SEÑAL murciélago:

% señal de murciélago: % load handel %sonido que viene con matlab %dónde está?
% grabada con una frecuencia de muestreo de 230.4 kHz % sound(y,Fs)
%
close all;
clear all; % t=(0:length(y)-1)/Fs;
% plot(t,y)
load bat % sonido externo a matlab ….
sound(bat,23400)
t0=linspace(0,2500/2304,2500);
plot(t0,bat); xlabel('Time [ms]');
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 .mat


save 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.)

3dB(1.41): -3dB (0.707): -10 dB (0.316):


close all; close all; close all;
clear all; clear all; clear all;

Fs = 100; Fs = 100; Fs = 100;


t = 0:1/Fs:1; t = 0:1/Fs:1; t = 0:1/Fs:1;
y1 = sin(2*pi*t*3)+rand(size(t))/1.41; y1 = sin(2*pi*t*3)+rand(size(t))/ 0.707; y1 = sin(2*pi*t*3)+rand(size(t))/ 0.316;
plot(t,y1) plot(t,y1) plot(t,y1)

ES VISIBLE SIGUE SIENDO VISIBLE YA NO ES VISIBLE


Distribución uniforme vs distribución normal

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.

% 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
Resultados:

media1 = 0.5007

desviacion_estandar1 = 0.288

media2 = 1.1073e-004

desviacion_estandar2 = 1.0012
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')
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)
figure
plot(n,y)
Generalización de la ubicación:
% Generalización: % Generalización:
clear all clear all
close all close all
M=-2; % límite inferior M=-4; % límite inferior
N=3; % límite superior N=5; % límite superior
K=0; % ubicación del pulso K=3; % ubicación del pulso
n=M:N; % base de tiempos n=-2:3; % base de tiempos
y=[zeros(1,K-M) 1 zeros(1,N-K)] y=[zeros(1,K-M) 1 zeros(1,N-K)]
stem(n,y) stem(n,y)
Función paso unitario (u[n]) de longitud L:

% 1. Paso unitario: % Paso unitario desplazado:


clear all
close all clear all
close all
M=0; % límite inferior
N=7; % límite superior M=0; % límite inferior
K=1; % inicio de los pulsos N=10; % límite superior
n=M:N; K=5; % inicio de los pulsos
y=[zeros(1,K-M) ones(1,N-K+1)] n=M:N;
stem(n,y) y=[zeros(1,K-M) ones(1,N-K+1)]
stem(n,y)
EFECTO ALIASING
• ANALIZAR EL VIDEO PROPUESTO EN
EL SIGUIENTE ENLACE :
https://media.upv.es/#/portal/video/cffde360-7
401-11e5-9386-233c610b4cdc

• Escribir un informe de los diferentes tipos


de aliasing explicado en el video
DEMOSTRACION REAL
MANIPULACION DE SEÑALES
• MANIPULACION DE SEÑAL DE
DIRECTIVIDAD DE UNA ANTENA EN
MATLAB.
• PRACTICA DE OBSERVACION

También podría gustarte