denoising-historical-data/PQevalAudio/Patt/PQmodPatt.m
2021-08-30 18:42:12 +03:00

35 lines
778 B
Matlab

function [M, ERavg, Fmem] = PQmodPatt (Es, Fmem)
% Modulation pattern processing
% P. Kabal $Revision: 1.1 $ $Date: 2003/12/07 13:35:09 $
persistent Nc a b Fss
if (isempty (Nc))
Fs = 48000;
NF = 2048;
Fss = Fs / (NF/2);
[Nc, fc] = PQCB ('Basic');
t100 = 0.050;
t0 = 0.008;
[a, b] = PQtConst (t100, t0, fc, Fss);
end
% Allocate memory
M = zeros (2, Nc);
e = 0.3;
for (i = 1:2)
for (m = 0:Nc-1)
Ee = Es(i,m+1)^e;
Fmem.DE(i,m+1) = a(m+1) * Fmem.DE(i,m+1) ...
+ b(m+1) * Fss * abs (Ee - Fmem.Ese(i,m+1));
Fmem.Eavg(i,m+1) = a(m+1) * Fmem.Eavg(i,m+1) + b(m+1) * Ee;
Fmem.Ese(i,m+1) = Ee;
M(i,m+1) = Fmem.DE(i,m+1) / (1 + Fmem.Eavg(i,m+1)/0.3);
end
end
ERavg = Fmem.Eavg(1,:);