Tarea 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Análisis de la Densidad Espectral de

Energía (DEE) y el Cálculo del Ancho


de Banda de Señales de Voz

ALUMNO: Espinoza Francia Jesus


Código: 18190137
Curso: Comunicación analógica
Tema: Tarea N°3

2024
Introducción
El presente informe se centra en el análisis de la densidad espectral de energía (DEE) y el cálculo del
ancho de banda de diversas señales de voz. Este análisis es esencial en el campo de procesamiento de
señales, ya que permite comprender mejor las características frecuenciales de las señales de audio, lo
cual es crucial para aplicaciones en telecomunicaciones, reconocimiento de voz y otras áreas de
ingeniería.

Para llevar a cabo este análisis, se desarrollaron y emplearon dos scripts en MATLAB/Octave. Estos
scripts procesan archivos de audio para obtener y analizar la DEE y, a partir de estos datos, calcular el
ancho de banda. A continuación, se describen brevemente las variables y parámetros clave utilizados en
el proceso:

Frecuencia de Muestreo (fs): Se utilizó una frecuencia de muestreo de 44.1 kHz, que es una tasa
estándar para señales de audio de alta calidad. Esta frecuencia es suficiente para capturar las
características frecuenciales de la voz humana.

Ventana de Hamming: Para calcular la DEE, se empleó una ventana de Hamming con un tamaño de 1024
muestras. La ventana de Hamming es útil porque reduce el efecto de las discontinuidades en los bordes
de las muestras de audio, minimizando las fugas espectrales.

Tamaño de la FFT (nfft): Se utilizó un tamaño de FFT de 1024, que ofrece un buen equilibrio entre la
resolución frecuencial y el tiempo de cómputo. Este tamaño permite obtener una representación detallada
del contenido frecuencial de las señales de audio.

Umbral en dB para el Ancho de Banda (threshold_dB): Para determinar el ancho de banda, se definió un
umbral de -30 dB por debajo del valor máximo de la DEE. Este umbral ayuda a identificar las frecuencias
más significativas de la señal y excluir el ruido de fondo y otras componentes menos relevantes.

Archivos de Audio: Se procesaron varios archivos de audio, incluyendo vocales simples y frases
completas. Esto permitió comparar las características frecuenciales de diferentes tipos de señales de voz.

El análisis y procesamiento de las señales de audio se realizó en dos etapas principales: primero, el
cálculo y la graficación de la DEE para cada archivo de audio, y segundo, el cálculo del ancho de banda a
partir de los datos de la DEE. Los resultados se representaron gráficamente y se almacenaron en
archivos de texto para su posterior análisis.

A través de este informe, se pretende demostrar cómo las técnicas de procesamiento de señales pueden
aplicarse para extraer información relevante sobre las características frecuenciales de las señales de voz,
y cómo estos datos pueden ser utilizados para diversas aplicaciones prácticas.
1. Descripción del Método Empleado

En este informe, se analiza la densidad espectral de energía (DEE) y se calcula el ancho de banda de
diversas señales de voz. Se desarrollaron dos scripts en MATLAB/Octave para procesar los archivos de
audio y obtener la DEE y el ancho de banda.

a.Primero grabamos los audios usando Audacity:

Cálculo de la DEE:

Se cargan los archivos de audio.

Se verifica la frecuencia de muestreo y se convierte a mono si es necesario.

b.Después de generar el prmier script guardamos los siguientes archivos txt de cada grafica de cada
audio

Se utiliza la función pwelch para calcular la DEE con una ventana de Hamming y un tamaño de FFT de
1024.

Se grafican los resultados y se guardan en archivos de texto.

Cálculo del Ancho de Banda:

Se cargan los datos de la DEE desde los archivos de texto y se procesan en el segundo script

Se define un umbral de -30 dB por debajo del valor máximo de la DEE.

Se identifican las frecuencias que superan el umbral y se calcula el ancho de banda

Se grafican los resultados y se guardan en un archivo de texto.


3. Códigos y gráficos

CÓDIGO EMPLEADO EN OCTAVE

Script para Calcular la DEE

El primer script procesa los archivos de audio para calcular y graficar la DEE. A continuación se muestra el
código utilizado:::

% Archivos de audio a procesar (reemplaza con tus propios archivos)

archivos_audio = {'a.wav', 'e.wav', 'i.wav', 'o.wav', 'u.wav', 'comunicaciones.wav', 'tengohambre.wav'};

% Parámetros

fs = 44100; % Frecuencia de muestreo en Hz (44.1 kHz)

ventana = hamming(1024); % Ventana para la FFT

nfft = 1024; % Tamaño de la FFT

% Procesamiento de cada archivo de audio

for i = 1:length(archivos_audio)

% Cargar el archivo de audio

[audio, fs_audio] = audioread(archivos_audio{i});

% Verificar la frecuencia de muestreo

if fs_audio ~= fs

error('La frecuencia de muestreo del archivo de audio no coincide con %d Hz.', fs);

end

% Si el archivo de audio tiene múltiples canales, tomar solo uno

if size(audio, 2) > 1

audio = audio(:, 1); % Tomar solo el primer canal

end

% Calcular la DEE

[S, f] = pwelch(audio, ventana, 0, nfft, fs);

DEE = 10 * log10(S); % Convertir a decibeles

% Graficar la DEE

figure;
plot(f/1000, DEE); % Eje horizontal en kHz

xlabel('Frecuencia (kHz)');

ylabel('DEE (dB)');

title(sprintf('DEE de %s', archivos_audio{i}));

% Guardar los datos de la DEE en un archivo de texto

nombre_archivo = sprintf('DEE_%s.txt', archivos_audio{i});

dlmwrite(nombre_archivo, [f DEE], 'delimiter', '\t', 'precision', '%.6f');

end

VOCAL A

VOCAL E
VOCAL I

VOCAL O
VOCAL U

“COMUNICACIONES”
“TENGO HAMBRE”

ANCHOS DE BANDA
Script para Calcular el Ancho de Banda
El segundo script procesa los archivos de texto con la DEE calculada para determinar
el ancho de banda de cada señal de voz. El código utilizado es el siguiente:

% calcular_ancho_banda.m

% Archivos de DEE a procesar

archivos_DEE = {'DEE_a.wav.txt', 'DEE_e.wav.txt', 'DEE_i.wav.txt', 'DEE_o.wav.txt', 'DEE_u.wav.txt',


'DEE_comunicaciones.wav.txt', 'DEE_tengohambre.wav.txt'};

% Umbral en dB para calcular el ancho de banda

threshold_dB = -30;

% Inicializar el registro de resultados

resultados_ancho_banda = cell(length(archivos_DEE), 2);


% Procesamiento de cada archivo de DEE

for i = 1:length(archivos_DEE)

% Cargar los datos de la DEE desde el archivo de texto

datos_DEE = dlmread(archivos_DEE{i}, '\t');

% Separar las frecuencias y la DEE

f = datos_DEE(:, 1);

DEE = datos_DEE(:, 2);

% Calcular el ancho de banda

DEE_max = max(DEE);

DEE_threshold = DEE_max + threshold_dB;

idx_ancho_banda = find(DEE > DEE_threshold);

f_ancho_banda = f(idx_ancho_banda);

if ~isempty(f_ancho_banda)

ancho_banda = f_ancho_banda(end) - f_ancho_banda(1);

else

ancho_banda = 0;

end

% Registrar los resultados

[~, nombre_archivo, ~] = fileparts(archivos_DEE{i});

resultados_ancho_banda{i, 1} = nombre_archivo;

resultados_ancho_banda{i, 2} = ancho_banda;

% Graficar la DEE y el ancho de banda

figure;

plot(f/1000, DEE); % Eje horizontal en kHz

xlabel('Frecuencia (kHz)');

ylabel('DEE (dB)');

title(sprintf('DEE de %s', nombre_archivo));

% Mostrar el ancho de banda en el gráfico

hold on;
% Dibujar la línea de umbral

plot([min(f) max(f)]/1000, [DEE_threshold DEE_threshold], '--r', 'DisplayName', 'Threshold');

if ~isempty(f_ancho_banda)

% Dibujar líneas verticales para el ancho de banda

plot([f_ancho_banda(1) f_ancho_banda(1)]/1000, ylim, '--g', 'DisplayName', 'BW Start');

plot([f_ancho_banda(end) f_ancho_banda(end)]/1000, ylim, '--g', 'DisplayName', 'BW End');

% Añadir texto para mostrar el ancho de banda

text((f_ancho_banda(1) + f_ancho_banda(end))/2000, DEE_threshold - 10, sprintf('Ancho de Banda: %.2f Hz',


ancho_banda), 'Color', 'b', 'FontSize', 10);

end

hold off;

end

% Guardar los resultados del ancho de banda en un archivo de texto

fid = fopen('resultados_ancho_banda.txt', 'w');

for i = 1:length(resultados_ancho_banda)

fprintf(fid, '%s\t%.6f\n', resultados_ancho_banda{i, 1}, resultados_ancho_banda{i, 2});

end

fclose(fid);

% Mostrar los resultados en la consola

disp('Resultados del Ancho de Banda (Hz):');

disp(resultados_ancho_banda);

Salida:
VOCAL A

VOCAL E
VOCAL I

VOCAL O
VOCAL U

“COMUNICACIONES”
“TENGO HAMBRE”

4. Análisis de los Resultados

A partir de las gráficas y los cálculos del ancho de banda, se pueden hacer las siguientes observaciones:

Variabilidad del Ancho de Banda: Las vocales simples (a.wav, e.wav, i.wav, o.wav, u.wav) tienen anchos
de banda relativamente pequeños, lo cual es consistente con su naturaleza tonal y armónica. En
contraste, las frases completas (comunicaciones.wav, tengohambre.wav) presentan anchos de banda
mayores debido a la complejidad y la variabilidad del contenido de la señal.

Relación con el Umbral: La selección del umbral en -30 dB por debajo del pico de la DEE fue adecuada
para distinguir las partes significativas de la señal. Sin embargo, es posible que diferentes señales
requieran ajustes en este umbral para obtener resultados óptimos.

5. Conclusiones y Recomendaciones

Conclusiones:

El método empleado para calcular la DEE y el ancho de banda de las señales de voz fue eficaz y
proporcionó resultados coherentes con la naturaleza de las señales procesadas.

La variabilidad en el ancho de banda refleja las diferencias en la complejidad de las señales, con las
vocales simples mostrando anchos de banda menores y las frases completas mostrando anchos de
banda mayores.

Recomendaciones:

Ajustar el umbral de -30 dB dependiendo de la señal específica para obtener resultados más precisos.

Ampliar el análisis a un conjunto más diverso de señales de voz para validar la generalización del método.

Considerar el uso de ventanas y tamaños de FFT diferentes para investigar su impacto en la DEE y el
cálculo del ancho de banda.
6. Bibliografía

Welch, P. (1967). The use of fast Fourier transform for the estimation of power spectra: A method based on
time averaging over short, modified periodograms. IEEE Transactions on Audio and Electroacoustics,
15(2), 70-73.

Harris, F. J. (1978). On the use of windows for harmonic analysis with the discrete Fourier transform.
Proceedings of the IEEE, 66(1), 51-83.

Oppenheim, A. V., & Schafer, R. W. (2009). Discrete-Time Signal Processing (3rd Edition). Prentice Hall.

También podría gustarte