📄 ltmin.m
字号:
function LTmin = LTmin(LTg, NumberOfBands) %% Authors: Fabien A.P. Petitcolas (fapp2@cl.cam.ac.uk)% Teddy Furon (furont@thmulti.com)%% Changes:% Michael Arnold (arnold@igd.fhg.de)% Fraunhofer Institute for Computer Graphics (IGD) % % References: % [1] Information technology -- Coding of moving pictures and associated % audio for digital storage media at up to 1,5 Mbits/s -- Part3: audio. % British standard. BSI, London. October 1993.Implementation of % ISO/IEC 11172-3:1993. BSI, London. First edition 1993-08-01. %% Legal notice: % This computer program is based on ISO/IEC 11172-3:1993, Information % technology -- Coding of moving pictures and associated audio for digital % storage media at up to about 1,5 Mbit/s -- Part 3: Audio, with the % permission of ISO. Copies of this standards can be purchased from the % British Standards Institution, 389 Chiswick High Road, GB-London W4 4AL, % Telephone:+ 44 181 996 90 00, Telefax:+ 44 181 996 74 00 or from ISO, % postal box 56, CH-1211 Geneva 20, Telephone +41 22 749 0111, Telefax % +4122 734 1079. Copyright remains with ISO. %----------------------------------------------------------------------------% LTmin = LTmin(LTg, NumberOfBands) % % Find the minimum of the global masking threshold for each subband. % [1, pp. 114] % % -- INPUT --% LTq: Vector with (106 for fs = 44.1 kHz?) elements containing the loudness% threshold values in dB.% % NumberOfBands: Integer value. For Blocksize = 512 samples this value is% one of the elements of the array [16, 32, 64, 128, 256].% % -- OUTPUT --% LTmin: Vector with FFT_SIZE/2 elements containing the minium loudness% threshold values in dB.% ------------%% See also Global_masking_threshold%--------------------------------------------------------------------------- global Map FFT_SIZE% Calculate the size of each sub-bandSubbandWidth = (FFT_SIZE / 2) / NumberOfBands;if SubbandWidth == 1 LTmin = LTg( Map(1:FFT_SIZE/2)' );else % Build indexing matrix for calculation of the minimum. B = reshape(A,m,n) % returns the m-by-n matrix B whose elements are taken column-wise from A. An % error results if A does not have m*n elements. ind = reshape(1:FFT_SIZE/2, SubbandWidth, NumberOfBands); % Map matrix ind to matrix containing as elements the 106 non-linear % distributed coefficients. Index LTg array with ind matrix to create matrix % containing the LTg values in the corresponding columns. table = LTg( Map(ind) ); % Compute minimum of each column LTmin = min(table); end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -