www.gusucode.com > signal 工具箱matlab源码程序 > signal/+fspecs/@audioweightingwt/setcmessageweightingmask.m

    function setcmessageweightingmask(this) 
%SETCMESSAGEWEIGHTINGMASK   Set the mask for C-Message Weighting.

%   Copyright 2009 The MathWorks, Inc.

% C-Message Weighting mask as defined in ITU-T 0.41 standard


% Mask without interpolation used in measurements
Aspec = [-55.7 -42.5 -25.1 -16.3 -11.2 -7.7 -5 -2.8 -1.3 -0.3 0 -0.4 -0.7 -1.2 -1.3 -1.1 -1.1 -2 -3 -5.1 -7.1 -14.6 -22.3 -28.7].';
Fspec = [60 (100:100:1000) 1200 1300 1500 1800 2000 2500 2800 3000 3300 3500 4000 4500 5000].';
tolspec = [2 2 2 2 ones(1,6) 0.05 ones(1,8) 2 2 3 3 3].';
AmaskSpec = repmat(Aspec,1,2)+[tolspec -tolspec];

% Mask with interpolation used in the design of the filters
interpFactor = 100;
[Fv Av] = interpfreqpoints(this,[60 100],[-55.7 -42.5],interpFactor, 'log');
F = [Fv.' ; Fspec(3:end)];
Amask = [Av.' ; Aspec(3:end)];
tol = [2*ones(size(Av.')) ; tolspec(3:end)];
A = repmat(Amask,1,2)+[tol -tol];


this.Fmask = Fspec;
this.Amask = AmaskSpec;

this.FmaskInterp = F;
this.AmaskInterp = A;

% [EOF]