lpfilt.m

来自「ITU-T G.723.1 Speech Coder: Matlab imple」· M 代码 · 共 78 行

M
78
字号
function [xh, DecoderMem] = LPFilt (FMode, es, LSFC, DecoderMem, DecoderPar)% LP synthesis filter and formant postfilter% $Id: LPFilt.m 1.7 2004/08/03 G.723.1-v2r1a $LSubframe = DecoderPar.LSubframe;NSubframe = length (LSubframe);% Generate the interpolated LP parameters (one vector for each subframe)[aQI, DecoderMem] = Gen_aQI (FMode, LSFC, DecoderMem, DecoderPar.LSFpar);% Generate the output samplesSMem = DecoderMem.SMem;PFmem = DecoderMem.PF;j = 0;for (i = 1:NSubframe)  N = LSubframe(i);  % LP synthesis filter  [xs, SMem] = PZFilter (1, aQI(:,i), es(j+1:j+N), SMem);  % Formant postfilter  if (DecoderPar.PFpar.enable)    [xs, PFmem] = FPostFilter (xs, aQI(:,i), PFmem, DecoderPar.PFpar);  end  xh(j+1:j+N,1) = xs;  j = j + N;endDecoderMem.SMem = SMem;DecoderMem.PF = PFmem;return% ----------function [aQI, DecoderMem] = Gen_aQI (FMode, LSFC, DecoderMem, LSFpar)% Generate the interpolated LP parameters% - The previous quantized LSF's are in DecoderMem.lsfQ.% - The previous quantized LSF's from a non-PLC frame are in%   DecoderMem.CNG.lsfSID.% - For FMode equal to 1 or 2, the LSF codes are input. The%   interpolated LSF's are created from the previous LSF's and %   the current LSF's.% - For a null CNG frame, interpolation is between the previous LSF's%   and lsfSID. These differ only immediately after a PLC frame.% - For a PLC frame, interpolation is between the previous LSF's and%   a default value.lsfQ = DecoderMem.lsfQ;if (FMode == 0)         % Data file input  aQI = LSFC;           % Input is already LP parameterselseif (FMode == 4)     % Null frame  aQI = LSFxLPI (DecoderMem.CNG.lsfP, lsfQ, LSFpar);elseif (FMode == 5)     % PLC frame  [aQI, lsfQ] = LSFCxLPI ([], lsfQ, LSFpar);else                    % MP, ACELP, or SID frame  [aQI, lsfQ] = LSFCxLPI (LSFC, lsfQ, LSFpar);endif (FMode == 4)  lsfQ = DecoderMem.CNG.lsfP;elseif (FMode ~= 5)  % Update the last non-PLC LSF vector  DecoderMem.CNG.lsfP = lsfQ;endDecoderMem.lsfQ = lsfQ;return

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?