Sei sulla pagina 1di 6

REPASO PARA LA PRUEBA

[muestras, Fs]= wavread('nombre_audio.wav');


[muestras, Fs]= audioread('nombre_del_audio.mp3');

visualizacion de arreglo de muestras


plot(muestras)

% Seal discreta en tiempo


x=1:1:length(muestras);
xt=x/Fs;
plot(xt,muestras)

%escuchar la seal
sound(muestras,Fs)

%muestras alteradas
k=2;
muestras_alteradas=k*muestras;

Ejemplo 1

Generar una onda sinusoidal de 50HZ y que dure 5 seg

duracion = 5;
f = 100;
T = 1/f;
% tiempo entre muestras
Ts = 0.1*T;
Fs=1/Ts;
% eje de tiempo
t=Ts:Ts:duracion;
%vector de muestras o de amplitudes
vector_muestras=sin(2*pi*f*t);

%graficas
stem(t,vector_muestras);
plot(t,vector_muestras,'--o')

%graficar los primeros 1000 puntos


figure
plot(t(1:1000),vector_muestras(1:1000));

Generar una onda cuadrada

%Datos
Fo=100;
To=1/Fo;
Dur=30;
%Calculos
Ts=0.01*To;
Fs=1/Ts;
t=Ts:Ts:Dur;
;%Determina el ancho de cada onda cuadrada
ciclo_util=50
%Grafica

vector_muestra=square(2*pi*Fo*t,ciclo_util);

plot(t,vector_muestra)

Generar una onda triangular

f=str2double(get(handles.edit1,'String'));
D=str2double(get(handles.edit2,'String'));
a=str2double(get(handles.edit3,'String'));

porcentaje=str2double(get(handles.edit5,'String'));

t=1/f; %encontramos el periodo


ts=0.1*t; %establecemos el tiempo entre muestras
T=ts:ts:D; %establecemos el eje del tiempo
Y=a*sawtooth(2*pi*f*T,porcentaje/100);

Diente de sierra

f=str2double(get(handles.edit1,'String'));
D=str2double(get(handles.edit2,'String'));
a=str2double(get(handles.edit3,'String'));

t=1/f; %encontramos el periodo


ts=0.1*t; %establecemos el tiempo entre muestras
T=ts:ts:D; %establecemos el eje del tiempo
Y=a*sawtooth(2*pi*f*T);
plot(T,Y)

Rectidicador de media onda

f=str2double(get(handles.edit1,'String'));
D=str2double(get(handles.edit2,'String'));
a=str2double(get(handles.edit3,'String'));
porcentaje=str2double(get(handles.edit5,'String'));
t=1/f; %encontramos el periodo
ts=0.1*t; %establecemos el tiempo entre muestras
T=ts:ts:D; %establecemos el eje del tiempo
Y=a*sin(2*pi*f*T); % establecemos la funcion cuadrada
ny=length(Y);
for i=1:ny
if Y(i)>=0
Y(i)= Y(i)
else
Y(i)=0
end
i=i+1;
end
plot(T,Y)
Rectidicador de onda completa

f=str2double(get(handles.edit1,'String'));
D=str2double(get(handles.edit2,'String'));
a=str2double(get(handles.edit3,'String'));
porcentaje=str2double(get(handles.edit5,'String'));
t=1/f; %encontramos el periodo
ts=0.1*t; %establecemos el tiempo entre muestras
T=ts:ts:D; %establecemos el eje del tiempo
Y=a*sin(2*pi*f*T); % establecemos la funcion cuadrada
ny=length(Y);
for i=1:ny
if Y(i)>=0
Y(i)= Y(i)
else
Y(i)= -Y(i)
end
i=i+1;
end
plot(T,Y),grid,title('funcion'),xlabel('Tiempo'),ylabel('Amplitud')
axes(handles.axes1)
sound (Y)

Seal mixta senoidal y triangular

fmax=20*fo;% ya que no se conoce la fmax


Fs=50*fmax; % aplicar el teorema del muestreo

t=1/Fs:1/Fs:5; %eje de tiempos

%SEAL SENO
y=sin(2*pi*fo*t); %eje de amplitudes

%SENAL TRIANGULAR 50%-50%


y1=sawtooth(2*pi*(2*fo)*t,0.5); %eje de amplitudes
offset=1; % valor del offset para movilizar la seal en el eje Y
y1=y1+offset;%agregar el offset
y1=y1/2;%divido amplitud para 2

tamano_y=length(y);% obtencion del tamao del vector del eje de


amplitudes

for i=1 : tamano_y


if y(i)>=0
y(i)=y(i); % si la amplitud de la senoidal es positiva queda
igual
else
y(i)= y1(i); %si la amplitud de la senoidal es negativa la
reemplazo por la triangular
end

i=i+1; % aumento el contador

end

%GRAFICACION
plot(t,y);
ylim([-0.5 1.5]);%poner limites al eje Y
grid on; %activar el mallado
xlabel('Tiempo [s]'); ylabel('amplitud'); %nombres a los ejes
title('SENAL COMBINADA'); %colocar titulo a la grafica

GENERAR UNA ONDA CUADRADA CON 10 ARMNICOS

CDIGO
clc
closeall
clearall
t=0:.02:4*3.14;
y=zeros(10,length(t));
x=zeros(size(t));
%pasosparaaumentarlosarmnicos
fork=1:2:10
x=x+sin(k*t)/k;
end
plot(x)
title('construirlaondacuadradaconelfenomenodeGibbs')

CON 1000 ARMONICOS


CDIGO
clc
closeall
clearall
t=0:.02:4*3.14;
y=zeros(10,length(t));
x=zeros(size(t));
%pasosparaaumentarlosarmnicos
fork=1:2:1000
x=x+sin(k*t)/k;
end
plot(x)
title('construirlaondacuadradaconelfenomenodeGibbs')

Como se muestre dos canales a la vez

%muestreo a la frecuencia mas alta


duracion=5;
f1=50;
f2=100;
%periodo ala mayor de las frecuencias
T=1/f2;
Ts=0.1*T;

Fs=1/Ts;
t=Ts:Ts:duracion;

v1=sin(2*pi*f1*t);
v2=sin(2*pi*f2*t);
vt=[v1;v2];%no hay problema si son vectores filas o columnas
vt = vt';
sound(vt,Fs)

FUNCION SINC
clc
clear all
close all
t=-10:0.01:10;
y1=sinc(t);
y2=sinc(pi*t)./(pi*t);
figure
stem(t,y1)
figure
stem(t,y2)

Teorema del Muestreo

Fs>2*fmax

Ejemplo

1. Y1= sent(1Hz)
2. Fs>2*fmaz(1Hz)=2muestras/seg

Fs >2*AB=200 [muestras/seg]
DEMOSTRACIN DEL EFECTO DE ALIASING:
Teniendo 3 tonos (de 150, 340 y 460 Hz), suponemos intencionalmente
que la Fmax es 200 para ver qu ocurre en el momento del muestreo:

clc, clear all, close all

%% Representacin de seales analgicas:


Fmax_a = 460;
Fs_a = (10)*Fmax_a; %sobre muestreo para simular la seal analgica

duracion = 2; % duracin en segundos


% Eje de tiempo analgico
ta = 0:1/Fs_a:duracion; % duracin = 2 seg

% Simulacin de seales analgicas de 150, 340 y 460 Hz:


xa1 = cos(2*pi*150*ta+pi/3);
xa2 = cos(2*pi*340*ta-pi/3);
xa3 = cos(2*pi*400*ta+pi/3);

%% Representacin de seales discretas:

% Vamos a muestrear de modo que solo la F1 CUMPLA con el Teorema del


Muestreo,
% las otras dos INCUMPLIRN el teorema:

Fmax_d = 200; % con esta, solo quedar bien muestreada la f1 de 150 Hz


Fs_d = 2*Fmax_d; % Respetamos el Teorema del Muestreo (para la f1)

% Eje de tiempo discreto (nTs):


tn = 0:1/Fs_d:duracion; % misma duracin = 2 seg

% Simulacin de seales discretas:


xn1 = cos(2*pi*150*tn+pi/3); % f1=150 Hz
xn2 = cos(2*pi*340*tn-pi/3); % f2=340 Hz
xn3 = cos(2*pi*460*tn+pi/3); % f3=460 Hz

%% Grficos superpuestos de analgicas y discretas:


plot (ta, xa1)
hold on
stem(tn,xn1,'r')
xlabel('t(segundos)')
title('Seal analgica 1 (f1 = 150 Hz) muestreada a 400 Hz --> cumple:
Fs >= 2*150=300')

figure
plot (ta, xa2)
hold on
stem(tn,xn2,'r')
xlabel('t(segundos)')
title('Seal analgica 2 (f1 = 340 Hz) muestreada a 400 Hz -->
INCUMPLE')

figure
plot (ta, xa3)
hold on
stem(tn,xn3,'r')
xlabel('t(segundos)')
title('Seal analgica 3 (f1 = 460 Hz) muestreada a 400 Hz -->
INCUMPLE')

%% RECUPERACIN AUDITIVA PARA F1 = 150 Hz:


% Aumentar duracin a 2 segundos y
% Comentar los grficos
sound(xa1,Fs_a) %seal analgica de F1 = 150 Hz
pause
sound(xn1,Fs_d) %seal muestreada a 400 Hz --> CUMPLE EL TEOREMA
pause

%% RECUPERACIN AUDITIVA PARA F2 = 340 Hz:


ESTAS DEBEN SONAR DIFERENTES POR INCUMPLEN EL TEOREMA DE MUSTREO
sound(xa2,Fs_a) %seal analgica de F2 = 340 Hz
pause
sound(xn2,Fs_d) %seal muestreada a 200 Hz --> INCUMPLE EL TEOREMA
pause

%% RECUPERACIN AUDITIVA PARA F3 = 460 Hz:


sound(xa3,Fs_a) %seal analgica de F3 = 460 Hz
pause
sound(xn3,Fs_d) %seal muestreada a 200 Hz --> INCUMPLE EL TEOREMA

Potrebbero piacerti anche