From: drowe67 Date: Mon, 26 Dec 2016 05:25:59 +0000 (+0000) Subject: converted decoder interpolation to use 2 points rather than 3, to simplify C port... X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=452fd4b646ae58872a80882e4faa206042543c1f;p=freetel-svn-tracking.git converted decoder interpolation to use 2 points rather than 3, to simplify C port. Sounds OK git-svn-id: https://svn.code.sf.net/p/freetel/code@2945 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/octave/newamp1_batch.m b/codec2-dev/octave/newamp1_batch.m index ef537e01..65da0ddf 100644 --- a/codec2-dev/octave/newamp1_batch.m +++ b/codec2-dev/octave/newamp1_batch.m @@ -230,7 +230,7 @@ function [model_ voicing_ indexes] = experiment_rate_K_dec(model, voicing) sample_points = [f m f+M]; resample_points = f:f+M-1; for k=1:K - interpolated_surface_(resample_points,k) = interp1(sample_points, [left_vec(k) centre_vec(k) right_vec(k)], resample_points, "spline", 0); + interpolated_surface_(resample_points,k) = interp1(sample_points, [left_vec(k) centre_vec(k) right_vec(k)], resample_points, "linear", 0); end end @@ -340,15 +340,17 @@ function [model_ voicing_] = model_from_indexes(indexes) % interpolation, or using 3 or 4 points but shift of M/2=4 frames. interpolated_surface_ = zeros(frames, K); - for f=1:M:frames-M + for f=1:M/2:frames-M left_vec = surface_(f,:); m = f+M/2; centre_vec = surface_(m,:); right_vec = surface_(f+M,:); - sample_points = [f m f+M]; + %sample_points = [f m f+M]; + sample_points = [f m]; resample_points = f:f+M-1; for k=1:K - interpolated_surface_(resample_points,k) = interp1(sample_points, [left_vec(k) centre_vec(k) right_vec(k)], resample_points, "spline", 0); + % interpolated_surface_(resample_points,k) = interp1(sample_points, [left_vec(k) centre_vec(k) right_vec(k)], resample_points, "spline", 0); + interpolated_surface_(resample_points,k) = interp1(sample_points, [left_vec(k) centre_vec(k)], resample_points, "spline", 0); end end