Sunteți pe pagina 1din 20

Informe

Michael Prado- Jonathan Villarreal


TITULO: COMPONENTES DE LA FRECUENCIA Y TEORIA DEL ENVENTANADO
OBJETIVO:
 Conocer la frecuencia de sonido de audios.
 Reconocer la calidad de las señales muestreadas.
 Reconocer y amplificar el aprendizaje de la teoría de muestreo y
frecuencias en sonidos de la naturaleza.
 Conocer el uso del enventanado, periodogramas simples y
modificados.
DESARROLLO:
PROBLEMA: CONOCER LOS CONTENIDOS DE FRECUENCIA MÁS ALTA DE
AUDIOS.
TEORÍA:
Introducción a la Teoría del Procesamiento Digital de Señales de Audio
Transformada de Fourier Discreta
Análisis espectral de señales, enventanado, derramamiento y resolución,
tipo de ventanas, relleno de ceros.
ANÁLISIS ESPECTRAL DE SEÑALES
Es común que la información de interés esté codificada en los componentes
sinusoidales que forman la señal, debido a la naturaleza oscilatoria de
muchos fenómenos físicos (e.g. vibración de cuerdas vocales en la voz).
Muchas veces la forma de la señal en el tiempo no es relevante, sino que la
información clave está en la frecuencia, amplitud y fase de los componentes
sinusoidales.
Análisis espectral de señales.

Ejemplo:
Promedio de la DFT de varias tramas sucesivas de 512 muestras.
Ejemplo:
Reconstrucción a partir de espectro promediado.

Resolver componentes cercanos en frecuencia: cantidad de


puntos de la DFT determina resolución = fs/N.
Resolver componentes cercanos en frecuencia: cantidad de
puntos de la DFT determina resolución = fs/N cuánto más
cercanos dos componentes, se necesitan más muestras para
poder discriminarlos.
Sinusoide coincidente con
base de la DFT:

Sinusoide no coincidente
con base de la DFT:
Sinusoide coincidente con base de la DFT: un único punto en
frecuencia
Sinusoide no coincidente con base de la DFT: pico extendido a
componentes vecinos (derramamiento)
Alternativa: usar ventana de suavizado

Sinusoide coincidente con base de la DFT: un único punto en


frecuencia
Sinusoide no coincidente con base de la DFT: pico extendido a
componentes
vecinos (derramamiento)
Alternativa: usar ventana de suavizado
Efectos: se asemejan más los picos se reduce el derramamiento
se reduce la resolución.
Enventanado: compromiso entre resolución y derramamiento.
SEÑAL ESPECTRO
sinusoide discreta infinita. pico infinitesimalmente
1) enventanado: angosto.
producto de la señal con 1) efecto del enventanado:
ventana suavizante convolución de espectro de la
señal infinita con sólo unos señal con espectro de la
pocos valores no nulos ventana
2) seleccionar sólo N puntos: espectro continuo (infinitos
incluir los puntos no nulos ... valores ente frecuencia 0 y
pero también pueden incluirse 0.5)
una cantidad de puntos nulos 2) efecto de discretizado:
corresponde a N valores de
frecuencia entre 0 y 0.5
(muestreo del espectro
continuo),
se acercan los puntos en el
espectro.

Efecto de la ventana
Sinusoide enventanada
Espectro: espectro de la ventana centrado en la delta
Efecto:
 ensanchamiento del pico
 derramamiento espectral

Sinusoide enventanada
Espectro: espectro de la ventana centrado en la delta
Efecto:
 ensanchamiento del pico
 derramamiento espectral
Compromiso:
 ancho lóbulo principal (resolución)
 amplitud de lóbulos secundarios (derramamiento)

Comparación de espectro de ventanas:Rectangular, Hanning,


Blackman y Flat-Top.
Comparación de ventanas para sinusoides cercanas (0.1 y
0.15): Rectangular, Hanning, Blackman y Flat-Top
Ventanas en el tiempo:
Rectangular:
v(n) = 1
Hann:
v(n) = a0 – a1 cos(2pn/N)
con a0 = 0.5, a1 = 0.5
Hamming:
v(n) = a0 – a1 cos(2pn/N)
con a0 = 0.54, a1 = 0.56
Comparación de ventanas en el tiempo: Hanning, Blackman,
Flat-Top y Hamming

RELLENO DE CEROS
Considerar además de las muestras dadas por el enventanado,
una cierta
cantidad de muestras nulas Corresponde a un muestreo más
denso del espectro continuo. Equivale a una interpolación de
valores en frecuencia usando las muestras no nulas de la señal, ya
que las muestras nulas no intervienen en el cálculo de la DFT.

Comparación de espectro de sinusoides al agregar relleno de


ceros
DESARROLLO:
PARTE 1:

SESION 1: Generación de la señal.


Para un canal telefónico de voz es suficiente tomar 8.000 muestras por segundo, o, lo
que es lo mismo, una muestra cada 125 μseg. Esto es así porque, de acuerdo con el
teorema de muestreo, si se toman muestras de una señal eléctrica continua a intervalos
regulares y con una frecuencia doble a la frecuencia máxima que se quiera muestrear,
dichas muestras contendrán toda la información necesaria para reconstruir la señal
original.

Asi en Matlab:
Mostrando la generación de la señal y el análisis de en audiorecorder.
Código en Matlab (Parte 1):
%parte 1
clc, close all, clear all
% Declaracion de valores de período y frecuencia
fmax=400;
duracion=2;
fs=10*fmax;
ts=1/fs;
tn=0:ts:duracion;
A=0.25;
nbits=24;
channels=1;
B=0.01;%REDUCIR EL VOLUMEN
%eje del tiempo o variable independiente
%Amplitud de la señal
yn=A*sin(2*pi*tn*100)+sin(2*pi*tn*200)+sin(2*pi*tn*300)+sin(2*pi*tn*40
0);
%visualización
subplot(1,4,1)
plot(tn,yn)
xlim([0 0.05])
N=length(yn);
nFFt=2;
while nFFt<N
nFFt=nFFt*16;
end
f=linspace(0,fs,nFFt);
Periodigrama=abs(fft(yn,nFFt));
subplot(1,4,2)
plot(f,Periodigrama)
axis([0 max(fs)/2 0 max(Periodigrama)])

%%%
while(1)
%generacion del sonido
sound(yn,fs)
%Iniciacion de la grabacion del audio
grabacion=audiorecorder(fs,nbits,channels);
%funcion de control de la grabacion
recordblocking(grabacion,duracion);

%definicion del tamaño de los datos


datos_sig=getaudiodata(grabacion,'double');
L=length(datos_sig);
t=linspace(0,duracion,L);
subplot(1,4,3)
plot(t,datos_sig)
xlim([0.2 0.3])
pause(2)
%periodo modificado
N=length(datos_sig);
nFFt=2;
while nFFt<N
nFFt=nFFt*nbits;
end
f=linspace(0,fs,nFFt);
Periodigrama=abs(fft(datos_sig,nFFt));
subplot(1,4,4)
plot(f,Periodigrama)
axis([0 max(f)/2 0 max(Periodigrama)])
pause(5)
Grabacion=0;
datos_sig=0;
Periodigrama=0;
end

PARTE 2:
En esta parte con la ayuda del hadware Arduino y de su implementación, más el
sofware en Matlab, generamos la señal y lo graficamos mediante el periodograma
modificado, explicado en la teoría.
Código en Matlab:
clc, close all, clear all
% Declaracion de valores de período y frecuencia
A=0.25; %Amplitud de la señal
fmax=400;
duracion=5;
fs=192000;
ts=1/fs;
tn=0:ts:duracion;

%Parametros de grabacion
nbits=24;%frecuencia de muestreo calidad tipo CD
channels=1;%monofonico

%Generacion de la señal
yn=sin(2*pi*tn*100)+sin(2*pi*tn*200)+sin(2*pi*tn*300)+sin(2*pi*tn*400)
;
subplot(2,2,1)
plot(tn,yn)
title('Señal generada')
xlabel('tiempo(s)')
ylabel('amplitud')
xlim([0 0.5])
drawnow

N=length(yn);
nFFt=nbits;
while nFFt<N
nFFt=nFFt*nbits;
end
%Rango de la frecuencia
f=linspace(0,fs,nFFt);
%Periodigrama normal
Periodigrama=abs(fft(yn,nFFt));
subplot(2,2,2)
plot(f,Periodigrama)
title('Periodograma de la señal modoficada')
axis([0 fs/2 0 max(Periodigrama)])
drawnow
%%%%%
Sing=zeros(fs,1);
i=1;
while(1)
sound(yn,fs)
%salida del audio
S=0;
delete(instrfind({'port'},{'COM1'}));
puerto=serial('COM1');
puerto.BaudeRate=192000;
fopen(puerto);
while(i<=fs)
Sing=fscanf(puerto,'%d');
S(i)=Sing(1)*5/1024;

%%%%%
ta=linspace(0,duracion,length(5));
subplot(2,2,3)
plot(ta,S)
xlim([0 5])
drawnow
%%%periodograma modificado
N=length(S);
nFFt=2;
while nFFt<N
nFFt=nFFt*nbits;
end
%Definicion del rango de la frecuencia
f=linspace(0,fs,nFFt);

%Periodograma normal
Periodigrama=abs(fft(S,nFFt));
subplot(2,2,4)
plot(f,Periodigrama)
axis([0 max(f)/2 0 max(Periodigrama)])
drawnow
i;
i=i+1;
end
i=1;
S=0;
Periodigrama=0;
end
fclose(puerto);
delete(puerto);

PARTE 3:
Utilización del periodograma modificado y la teoría del enventanado.
El “Periodograma Modificado” usa una ventana no-rectangular y por lo tanto tiene que
ser escalado para dar cuenta de la perdida de potencia debido a la ventana. Este
escalamiento es requerido para hacer el Periodograma Modificado asintóticamente sin
desplazamiento: donde el factor de escalamiento es (U=1 para una ventana rectangular)
Como en el periodograma normal, la TF discreta es usada (FFT).

Asi en Matlab:

Así nos el periodograma modificado nos ayuda a visualizar de una mejor manera
como se van extendiendo la distorsión de la onda en una milésima escala de
afectación o movimiento.

Código en Matlab (Parte 3):


clc, clear all,close all
% Declaracion de valores de período y frecuencia
duracion=1;
fmax=300;
fs=10*fmax;
ts=1/fs;
tn=0:ts:duracion;
yn=sin(2*pi*100*tn)+0.005*sin(2*pi*200*tn)+0.005*sin(2*pi*300*tn)+0.00
5*sin(2*pi*400*tn);
sound(yn,fs);

%periodigrama modificado
N=length(yn);
nFFt=2;
while nFFt<N
nFFt=32*nFFt*2;
end
%periodigrama simple
P1=abs(fft(yn,nFFt));
f=linspace(0,fs,nFFt);
%periodigrama modificado
%generacion de ventanas
ventana1=blackmanharris(length(yn));
ventana2=hanning(length(yn));
%enventanado de la señal
yn1_env=yn.*ventana1';
yn2_env=yn.*ventana2';
%periodigrama simple vs modificado
p1_m=abs(fft(yn1_env,nFFt));
p2_m=abs(fft(yn2_env,nFFt));
figure
subplot(2,1,1)
plot(f,P1);
title('Periodograma simple')
subplot(2,1,2)
hold on
plot(f, 10*log10(p1_m),'b');
plot(f, 10*log10(p2_m),'g');
title('Periodigrama modificado')
xlabel('Frecuencia(Hz)');
ylabel('Potencia');
legend('Periodigrama modificado-Hanning','Periodograma-
modificado.BH4t')
axis([0 fs/2 0 max(10*log10(P1))]);

Bibliografía:
 http://www.dicis.ugto.mx/profesores/arturogp/documentos/Analisis
%20Espectral/Lectura%205%20-%20Analisis%20Espectral.pdf

 https://www.eumus.edu.uy/eme/ensenanza/electivas/dsp/presentaci
ones/clase06.pdf

S-ar putea să vă placă și