Documentos de Académico
Documentos de Profesional
Documentos de Cultura
5.1 INTRODUCCIN
5.2 XXXXXX
En esta apartado se mostrar una descripcin detallada de la herramienta de aprendizaje nombre
del tutorial. Antes comenzar, para conocer la aplicacin, en la Figura 5.1 se muestran las distintas
partes de nombre del tutorial.
Figura 5.1
Figura 5.4
El botn Coeficientes representa grficamente los coeficientes de la ventana de anlisis del
prototipo del filtro paso bajo proporcionados por el estndar ISO [], se presentan en la figura 5.5.
Figura 5.5
El botn Resp en Frec representa grficamente la respuesta en frecuencia de la banda del filtro
seleccionado, esta eleccin de la banda la realiza el usuario y pertenece al intervalo de valores
[1..32], un ejemplo queda reflejado en la Figura 5.5.
Figura 5.5
En el ejemplo, se muestra la banda de frecuencias recogidas para la primera subbanda. Como puede
verse, no recoge las frecuencias cercanas a la componente continua. Eso no es un problema en la
prctica, es ms, el estndar ISO para MPEG-3, aconseja la inclusin de un filtro paso alto con una
frecuencia de corte de 2 a 10 Hz. De esta forma, se evita una innecesaria alta tasa binaria para la
subbanda inferior, y aumenta la calidad de audio en general.
La frecuencia de muestreo de la seal PCM es de 44.1 kHz, por lo tanto cada subbanda tendr
aproximadamente 44100/32 = 1378 Hz de ancho, y una frecuencia central, fc = (fm/64)*n, para
n=1..32. Estas subbandas estn igualmente espaciadas en frecuencia, y no reflejan exactamente las
bandas crticas del odo.
La implementacin en Matlab de este bloque es la siguiente:
%valor pertenece al
intervalo[1..32] ser introducido
por el usuario.
%H son los coeficientes del filtro
prototipo proporcionados por el
estndar.
V=filtrosub(valor,H);
fvtool(V,'Fs',44100);
function V=filtrosub(k,H)
for n=1:512
V(n)=H(n)*cos(((2*k + 1)*(n-16)*pi)/64);
end
end
H es un vector de coeficientes de 512 elementos que corresponde con la respuesta prototipo del
filtro paso bajo, proporcionados por el estndar que quedan recogidos en el Anexo 1. fvtool es una
herramienta proporcionada por la librera de Matlab, que sirve para representa la magnitud de la
respuesta del filtro a partir de los coeficientes de la funcin de transferencia del mismo.
Para justificar la implementacin de este bloque del codificador se recuerda que en el captulo 2
la salida del filtro que se concluy fue:
63 7
S t [i ]= M [i][k ]C [k 64j]x [k 64j] Eq 5.1
k=0 j=0
Donde:
i es el ndice de la subbanda comprendido desde 0 a 31.
S t [i ] es la muestra de salida para la subbanda i en el tiempo t, donde t es un
mltiplo de 32 intervalos de la muestra de audio.
C[n] es uno de los 512 coeficientes de la ventana de anlisis defino por el estndar.
x[n] es una muestra de audio de entrada perteneciente al bffer de 512 muestras.
2i1k 16 son los coeficientes de la matriz de anlisis.
M [i][ k ]=cos [ ]
64
Donde:
x[t] es una muestra de audio en un tiempo t.
2i1k 16
H i [n]=h [n]cos[ ]
64
con h[n]= -C[n], si la parte entera de (n/64) es impar,
o h[n] = C[n] en el
caso contrario, para n = 0 hasta 511.
De esta forma cada subbanda del banco de filtros tiene su propio filtro pasa banda
correspondiente a la respuesta al impulso Hi[n]. Esta ecuacin es la que se ha utilizado en el
algoritmo filtrosub(..) para mostrar la magnitud de la respuesta en frecuencia en cada banda.
TRANSFORMADA DISCRETA DEL COSENO-MDCT
Este bloque presenta la ventana grfica mostrada en la Figura 5.6. Consta de una breve
explicacin sobre la MDCT, un diagrama de bloques que muestra el comportamiento del mismo y
una figura explicativa con los tipos de ventana posibles: normal, short, start y stop.
Figura 5.6
Figura 5.7
En este bloque, se subdivide cada una de las 32 bandas (salidas del banco de filtros) mediante
una transformacin DCT Modificada, con el 50% de solapamiento, sobre 18 puntos (lneas de
frecuencia) de la seal que se corresponde a lo que denominamos en el captulo 2 como grnulo.
Esta subdivisin consigue una mejor resolucin en frecuencia con respecto a las bandas crticas.
Con una fm=44.1 kHz de la seal de audio PCM, el nmero mximo de componentes en
frecuencia es: 32 x 18 = 576, obteniendo una resolucin en frecuencia (ancho de banda) de:
fm/ 2
= 38,28 Hz en cada banda.
576
Como se aprecia en la Figura 5.7, se muestran los coeficientes obtenidos tras aplicar la MDCT y
reducir el aliasing introducido por el banco de filtros en el bloque anterior y por el solapamiento del
50% introducido en la MDCT.
La implementacin en Matlab del bloque MDCT es la correspondiente:
global S;
MDCT = [];
U = S(19:36,:);
for gr=1:2
for sub = 1:32
end
end
if gr == 1
xp = [U(1:18,sub); S(1:18,sub)];
else
xp = S(1:36,sub);
end
z = xp' .* sin((pi/36)*(0.5:35.5));
En cada subbanda, los 18 valores de salida del grnulo anterior (almacenados en U) y los 18
valores de salida del grnulo actual se ensamblan en un bloque de 36 muestras (vector xp). En caso
de que el grnulo sea el segundo, para cada subbanda, la matriz S es procesada directamente.
En la implementacin solo se ha tenido en cuenta el tipo de bloque normal para el
enventanado de la seal.
La reduccin de aliasing se procesa de la siguiente forma:
function MDCTSin = Aliasing(MDCT)
%ALIASING Reduce el aliasing introducido por la MDCT.
%
MDCTSin = [];
MDCTcs = zeros(8,2);
MDCTca = zeros(8,2);
for i = 11:18:551
end
Para entender mejor estos dos bloques del codificador la Figura 5.8 muestra un esquema resumen
de lo visto hasta ahora.
Figura 5.9
El espectro slo tiene 512 valores debido a la simetra de la FFT. La cantidad de puntos sobre los
que se realiza la transformada son 1024 segn el estndar ISO. Con el fin de ofrecer una cobertura
completa al realizar la FFT, se escogen las 1024 muestras centrales de las 1152.
function F = Analisis_fft(vector)
s=vector(65:1088);
F = (abs(fft(s .* h))/1024);
F = F(1:512);
end
MODELO PSICOACSTICO
Este bloque del Codificador MPEG-3, presenta la ventana grfica mostrada en la Figura 5.10. En
ella se observa una breve introduccin al Modelo psicoacstico y un esquema que resume el
fenmeno del enmascarmiento, concepto bsico y primordial debe ser conocido para entender la
aplicacin de este modelo.
Figura 5.10
Figura 5.11
La muestras frecuenciales son cuantificadas y codificadas dentro de 2 lazos de iteracin que
tienen lugar en el codificador. Los lazos de iteracin cuantifican las muestras de salida del bloque
MDCT de acuerdo a varias demandas. Como ya se enunci en el captulo 2, existen 2 lazos de
iteracin: el lazo interno y el lazo externo.
En el lazo interno se cuantifica el vector de muestras de entrada que provienen de la MDCT y se
incrementa el tamao del paso del cuantificador hasta que el vector de muestras de salida pueda ser
codificado con el nmero de bits disponible.
En el lazo externo se chequea la distorsin de cada SCF band (bandas de factor de escala) y, si la
mxima distorsin permisible se excede, se amplifica los la SCF band y se invoca nuevamente el
lazo interno.
Las bandas de factor de escala (scalefactor band) se utilizan para moldear el ruido de
cuantificacin de acuerdo al umbral de enmascaramiento global. Existen tablas que indican el
nmero de particiones que van a cada una de esas bandas de factor de escala. El sistema comienza
con un factor por defecto de 1.0 para cada banda. Si el ruido de cuantificacin en una determinada
banda excede el umbral de enmascaramiento global (ruido permitido) obtenido del modelo
psicoacstico, el factor de escala para esta banda se ajusta para reducir el ruido de cuantificacin.
Luego el ciclo externo se encarga de verificar si el factor de escala para cada subbanda tiene ms
distorsin que la permitida (ruido en la seal codificada), comparando cada banda del factor de
escala (scalefactor band) con los datos previamente calculados en el anlisis psicoacstico.
Parmetros de entrada:
vector XR(1..576) es el vector de muestras subbanda obtenido tras el bloque MDCT
system_const es la constante del sistema
SFBT es la matriz que proporciona las bandas del factor de escala
Parmetros de salida:
IX es el vector de valores espectrales cuantificados (sin tener en cuenta el signo de XR)
IS es el vector de valores espectrales cuantificados (teniendo en cuenta el signo de XR)
SHT es la matriz que contiene las 3 tablas de Huffman seleccionadas para codificar las 3
subregiones de la regin big_values
overall_bitsum representa la cantidad de bits que se usan para codificar los valores
cuantificados
count1table_select indica la tabla de Huffman escogida para codificar los cudruplos de
de valores pertenecientes a la regin count1
big_values es la cantidad de valores espectrales, contados por pares, ubicados en las bajas
frecuencias
region0_count es la cantidad de bandas del factor de escala (disminuidas en 1) incluidas
en region0
region1_count es la cantidad de bandas del factor de escala (disminuidas en 1) incluidas
en region1
table_select es el vector que incluye el nmero de las tablas de Huffman usadas para
codificar region0, region1 y region2
qquant y quantanf son los valores usados para el intervalo de cuantificacin
rlb es el vector que indica cuntos bits deben usarse para codificar cada uno de los valores
adicionales en cada una de las 3 subregiones en que se divide big_values(el valor adicional
es necesario si el valor mximo de la subregin es mayor que 15)
count1 es la cantidad de cudruplos incluidos en la regin count1 (regin intermedia del
vector IX)
fe es el vector que indica el principio de cada una de las 3 subregiones en que se divide
big_values
ff es el vector que indica el final de cada una de las 3 subregiones en que se divide
big_values
function [IX,IS,SHT,overall_bitsum,count1table_select,big_values,region0_count,
region1_count,table_select,qquant,quantanf,rlb,count1,fe,ff] = ...
Ciclo_interno(XR,system_const,SFBT)
% Inicializacin de variables.
sfm = exp(sum(log(XR.^2))/576)/(sum(XR.^2)/576); % Calcula la planura
espectral.
quantanf = system_const*log(sfm); % Seleccin del intervalo de cuantizacin.
qquant = 0; % Seleccin del intervalo de cuantizacin.
% Cuando todos los valores del vector IX son cero, se termina el Ciclo Interno.
if IX == 0
count1table_select = 0;
big_values = 0;
region0_count = 0;
region1_count = 0;
table_select = zeros(1,3);
overall_bitsum = 0;
SHT = zeros(256,6);
rlb = zeros(1,3);
count1 = 0;
fe = ones(1,3);
ff = ones(1,3);
return
else
% Limita a (8191 + 15) el valor mximo de los componentes del vector IX.
while max(IX) > 8206,
qquant = qquant+1;
IX = round((abs(XR)/(2^((qquant+quantanf)/4))) .^ 0.75 - 0.0946);
IS = sign(XR).*IX;
end
Parmetros de entrada:
SFBT es la matriz de las bandas del factor de escala
IX es el vector de valores espectrales cuantificados
qquant y quantanf son los valores usados para el intervalo de cuantificacin obtenido en el
ciclo interno
scalefac_scale es un factor logartmico de cuantificacin para los factores de escala
Parmetros de salida:
XFSF es el vector de la distorsin en cada una de las bandas del factor de escala
preflag indica si la opcin de prenfasis ha sido utilizada o no
Ambos ciclos son ejecutados para realizar tanto la cuantificacin no unifrome como la
codificacin huffman. La implementacin del proceso completo se muestra a continuacin:
system_const = 8; % Reinicia el valor de la constante del sistema.
% Tabla de las bandas del factor de escala segn el estndar (Para bloques
largos y 44.1 kHz) proporcionada por la ISO.
SFBT = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21;
4 4 4 4 4 4 6 6 8 8 10 12 16 20 24 28 34 42 50 54 76;
1 5 9 13 17 21 25 31 37 45 53 63 75 91 111 135 163 197 239 289 343;
4 8 12 16 20 24 30 36 44 52 62 74 90 110 134 162 196 238 288 342 418];
end
Si cualquiera de las bandas del factor de escala tiene ms ruido que el mximo permitido, se
amplifica esa banda de factor de escala, decrementa el tamao del paso del cuantificador para las
mismas y ejecuta ambos ciclos (el interno y el externo) de nuevo. Las llamadas a los ciclos terminan
cuando una de las siguientes condiciones se cumple:
Ninguna de las bandas del factor de escala tiene una distorsin mayor a la permitida.
Si la siguiente iteracin amplifica ms de lo permitido.
Todas las bandas han sido amplificadas al menos una vez.
A N L IS IS E S P E C T R A L
ID E N T IF IC A C I N D E
EN M AS C AR AD O R E S T O N ALE S Y
N O - T O N A L E S ( R U ID O S A S )
R E O R G A N IZ A C I N D E
EN M ASCAR AD OR ES
C LC U LO D E LO S U M BR ALE S
D E E N M A S C A R A M IE N T O
IN D IV ID U A L
C LC U LO D EL
E N M A S C A R A M IE N T O
GLOBAL
Figura 5.13
Se ha implementado el Modelo Psicoacstico I, segn las especificaciones de la ISO 11172-3, este
modelo es usado en MPEG para la capa I y II; aunque realizando varios cambios, se ha ajustado
para la capa III ( mp3 ).
El Modelo Psicoacstico I determina el mximo nivel de ruido permitido en cada subbanda, de
tal forma que por debajo de este nivel, resulta inaudible cualquier componente ruidosa, y por tanto
puede ser despreciada. Este valor determinar la cantidad mxima de ruido de cuantificacin.
Para concretar, la finalidad de este bloque es estimar el umbral de enmascaramiento global
mediante la combinacin de los umbrales de enmascaramiento individual de componentes tonales y
no-tonales. Se separan las componentes tonales de las componentes de ruido en la seal de audio
debido a que cada componente presenta un tipo de enmascaramiento diferente.
El modelo I identifica las componentes tonales basado en los picos locales del espectro de
potencias. Despus de procesar todas las componentes tonales, el modelo concentra los valores
espectrales restantes en una nica componente no-tonal por banda crtica. El ndice de frecuencia de
cada una de estas componentes no-tonales es el valor ms cercano a la media geomtrica de la
banda crtica a la cual pertenece cada componente no-tonal.
p=const+10.*log10((abs(fft(muestras,longfft))).^2);
end
Figura 5.14
1. Si P(k) > P(k - 1) y P(k) >= P(k + 1) siendo P(k) una lnea espectral
Por cada lnea espectral que cumpla con estos criterios, se listan los siguientes parmetros:
. El ndice k de la lnea espectral
. La bandera tonal (tonal flag)
1
. P TM k =10log 10 100.1P k j dB
j=1
Despus de procesar todas las componentes tonales, el modelo concentra los valores
espectrales restantes en una nica componente no-tonal por banda crtica. El ndice de
frecuencia de cada una de estas componentes no-tonales es el valor ms cercano a la media
geomtrica de la banda crtica a la cual pertenece cada componente no-tonal.
Los siguientes parmetros son listados:
. El ndice K de la lnea espectral ms cerca de la media geomtrica de la banda crtica
. La bandera No tonal (NON Tonal Flag)
0.1P j
. P NM k =10log 10 10 dB
j
subplot(2,1,2);
stem(b(tonoloc), tono_dsp(tonoloc), 'x');
hold on;
plot(b, potencia, 'b');
plot(b, UAA, 'r--');
xlabel('Frecuencia (Bark)');
ylabel('Magnitud (SPL)');
title('Componentes Tonales Enmascarantes');
grid;
ruido_dsp=zeros(1,length(tono_dsp));
limitinf=1;%limite inferior de la banda crtica
limitsup=max(find(b<1));%limite superior de la banda crtica
figure;
ruidoloc=find(ruido_dsp);
subplot(2,1,1);
stem(f(ruidoloc), ruido_dsp(ruidoloc), 'o');
hold on;
plot(f, potencia, 'b');
plot(f, UAA, 'r--');
xlabel('Frecuencia (Hz)');
ylabel('Magnitud (SPL)');
title('Componentes No-Tonales (Ruidosas) Enmascarantes');
grid;
subplot(2,1,2);
stem(b(ruidoloc), ruido_dsp(ruidoloc), 'o');
hold on;
plot(b, potencia, 'b');
plot(b, UAA, 'r--');
xlabel('Frecuencia (Bark)');
ylabel('Magnitud (SPL)');
title('Componentes No-Tonales (Ruidosas) Enmascarantes');
grid;
Figura 5.15
I. Si una componente enmascarante tonal o no-tonal se encuentra por debajo del umbral de
audicin, se elimina; ya que no seremos capaces de percibir ningn sonido por debajo de
dicho umbral.
II. Si dentro de una banda crtica a una distancia de 0.5 bark (por arriba o por debajo de dicha
banda), se encuentran dos componentes enmascarantes (tonales o no-tonales), una de ellas
ser eliminada, la ms dbil.
Este ultimo criterio, se puede entender como fenmeno de enmascaramiento. Existen tres
tipos de enmascaramiento: Ruido enmascara tono (NMT), tono enmascara ruido(TMN) y
ruido enmascara ruido (NMN), conceptos que se estudiaron en el captulo 3.
tono_dsp_sobre_UAA=tono_dsp.*(tono_dsp>UAA);
ruido_dsp_sobre_UAA=ruido_dsp.*(ruido_dsp>UAA);
% Los enmascaradores que permanecen deben ser chequeados para comprobar si
%alguno de ellos estn en el ancho de banda de una banda crtica. En caso
%afirmativo, solo el de mayor potencia importa, los otros pueden igualarse a
%cero.
% recorrer la lista de enmascaradores
for j=1:length(UAA),
tono_encontrado=0;
ruido_encontrado=0;
end
if (ruido_dsp_sobre_UAA(j)>0)
ruido_encontrado=1;
end
% Si un enmascarador ha sido detectado
if (tono_encontrado | ruido_encontrado)
enmascarador_loc_bark = b(j);
% determina los umbrales superior e inferior de la banda crtica.
crit_bw_inf = enmascarador_loc_bark-0.5;
crit_bw_sup = enmascarador_loc_bark+0.5;
% determina qu valores corresponden a esos ndices
inf_loc = max(find(b<crit_bw_inf));
if (isempty(inf_loc))
inf_loc=1;
else
inf_loc=inf_loc+1;
end
sup_loc = max(find(b<crit_bw_sup));
% en este punto, conocemos la localizacin del enmascarador y su banda crtica.
%Dependiando de qu tipo de enmascarador es.
% Recorremos y eliminamos los enmascaradores de menor potencia dentro de la
%banda crtica.
% recorrer el ancho de banda de la banda crtica
for k=inf_loc:sup_loc,
if (tono_encontrado)
% encontrar otros tonos enmascaradores dentro del ancho de banda de la banda
crtica
if ((tono_dsp_sobre_UAA(j) < tono_dsp_sobre_UAA(k)) & (k ~= j)),
tono_dsp_sobre_UAA(j)=0;
break;
elseif (k ~= j)
tono_dsp_sobre_UAA(k)=0;
end
% encontrar ruidos enmascaradores en la banda crtica.
if (tono_dsp_sobre_UAA(j) < ruido_dsp_sobre_UAA(k)),
tono_dsp_sobre_UAA(j)=0;
break;
else
ruido_dsp_sobre_UAA(k)=0;
end
elseif (ruido_encontrado)
% encontrar otros ruidos enmascaradores en la banda crtica
if ((ruido_dsp_sobre_UAA(j) < ruido_dsp_sobre_UAA(k)) & (k ~= j))
ruido_dsp_sobre_UAA(j)=0;
break;
elseif (k ~= j)
ruido_dsp_sobre_UAA(k)=0;
end
% encontrar tonos enmascaradores en la banda crtica
if (ruido_dsp_sobre_UAA(j) < tono_dsp_sobre_UAA(k)),
ruido_dsp_sobre_UAA(j)=0;
break;
else
tono_dsp_sobre_UAA(k)=0;
end
end
end
end
end
end
Figura 5.16
T NM i , j= P NM j 0.175z j SF i , j 2.025 dB
function
[umbrtonal,umbnotonal]=umbral_individual(Umbral_absoluto_enmascaramiento,
densidad_espectral_potencia_tono,densidad_espectral_potencia_ruido,
frecuencias_en_bark)
%devuelve los umbrales tonales,no-tonales para reutilizacion del algoritmo en
el siguiente paso
% El umbral absoluto toma el umbral absoluto de audicin, as como las
densidades espectrales de ruido y tonos para determinal el umbral de
enmascaramiento individual. Este mtodo supone que los efectos de
enmascaramiento son aditivos, de manera que las mscaras de todos los
enmascaradores y los umbrales absolutos se suman conjuntamente.
% Se inicializa a cero
umbrtonal=zeros(1,length(potencia_tono));
figure;
hold on;
plot(b(find(potencia_tono)), potencia_tono(find(potencia_tono)), 'rx');
grid;
% recorremos la lista de tonos
for k=find(potencia_tono)
% Determina los umbrales de enmascaramiento alrededor del tono
[umbral, start]=umbral_enmascaramiento(1,k,potencia_tono(k),b);
plot(b(start:start+length(umbral)-1), umbral);
grid;
% suma la potencia del umbral a temp en el rango de frecuencia adecuado
umbrtonal(start:start+length(umbral)-1)=umbrtonal(start:start+length(umbral)-
1)+dbinv(umbral);
end
plot(b,10*log10(umbrtonal), 'c');
xlabel('Frecuencia (Bark)');
ylabel('Energa (dB)');
title('Umbral de Enmascaramiento Tonal');
grid;
umbrnotonal=zeros(1,length(potencia_ruido));
figure;
hold on;
plot(b(find(potencia_ruido)), potencia_ruido(find(potencia_ruido)), 'ro');
grid;
% recorremos la lista de ruido
for k=find(potencia_ruido)
% determina el umbral de enmascaraminto alrededor del ruido enmascarador
[umbral, start]=umbral_enmascaramiento(0,k,potencia_ruido(k),b);
plot(b(start:start+length(umbral)-1), umbral);
grid;
% suma la potencia del umbral a temp en el rango de frecuencia adecuado
umbrnotonal(start:start+length(umbral)-1)=
umbrnotonal(start:start+length(umbral)-1)+dbinv(umbral);
end
plot(b,10*log10(umbrnotonal), 'c');
xlabel('Frecuencia (Bark)');
ylabel('Energa (dB)');
title('Umbral de Enmascaramiento No-Tonal');
grid;
if (tipo==0)
% se calcula el umbral de enmascaramiento ruidoso o no-tonal
umbral=P-.175*b(j)+SF-2.025;
else
% se calcula el umbral de enmascaramiento tonal
umbral=P-.275*b(j)+SF-6.025;
end
comienzo=limitinf;
% -----------------------------------------------------------------
function dispersion = funcion_dispersin(intervalo_enmasc, potencia, inf, sup,
b)
% envergadura_alrededor_del_enmascarante = funcion_dispersin(intervalo_enmasc,
potencia_enmasc,limite_inf, limite_sup, bark)
%
% funcion_dispersin toma el intervalo de la componente enmascarante y su
potencia para determinar la funcin de dispersin alrededor del mismo.
%Esta funcin indica el nivel mnimo que deben alcanzar las frecuencias
%cercanas antes de que sean detectables por el oido humano
%Se usa la funcion de dispersion para determinar si una seal es audible por
encima de la componente enmascarante.
% deltaz es la diferencia en barks entre la localizacin de una componente
enmascarada (zi) y una enmascarante(zj) deltaz= zi-zj
zj_bark=b(intervalo_enmasc);
for i=inf:sup,
zi_bark=b(i);
deltaz=zi-zj;
L M
0.1T q i 0.1T TM i ,l 0.1T NM i ,m
T g i= 10log 10 10 10 10 dB
l=1 m=1
temp1=zeros(1,length(potencia_tono));
for k=find(potencia_tono),
[thres, start]=mask_threshold(1,k,potencia_tono(k),b);
temp1(start:start+length(thres)-1)=temp1(start:start+length(thres)-
1)+dbinv(thres);
end
temp2=zeros(1,length(potencia_ruido));
for k=find(potencia_ruido),
[thres, start]=mask_threshold(0,k,potencia_ruido(k),b);
temp2(start:start+length(thres)-1)=temp2(start:start+length(thres)-
1)+dbinv(thres);
end
temp=temp1+temp2;
for k=1:length(UAA),
temp(k)=temp(k)+dbinv(UAA(k));
end
total=10*log10(temp)
En la Figura 5.18 se aprecia el resultado final al modelo psicoacstico, determinar el umbral
de enmascaramiento global para cada subbanda.
Figura 5.18