Professional Documents
Culture Documents
LPC Next
LPC Next
LPC Next
error(nargchk(1,2,nargin,'struct'))
if isempty(x)
error(generatemsgid('Empty'),'Input vector X should not be empty');
end
[m,n] = size(x);
if (n>1) && (m==1)
x = x(:);
[m,n] = size(x);
end
if nargin < 2,
N = m-1;
elseif N < 0,
% Check for N positive
error(generatemsgid('negativeOrder'), ...
'Order of the predictor should be a positive integer.');
end
% Check the input data type. Single precision is not supported.
try
chkinputdatatype(x,N);
catch ME
throwAsCaller(ME);
end
if (N > m),
error(generatemsgid('orderTooLarge'), '%s\n%s\n%s', ...
'X must be a vector with length greater or equal to the prediction order
.', ...
'If X is a matrix, the length of each column must be greater or equal to
', ...
'the prediction order.');
end
%
X
R
R
[a,e] = levinson(R,N);
% Return only real coefficients for the predictor if the input is real
for k = 1:n,
if isreal(x(:,k))
a(k,:) = real(a(k,:));
end
end