From 452fd4b646ae58872a80882e4faa206042543c1f Mon Sep 17 00:00:00 2001 From: drowe67 Date: Mon, 26 Dec 2016 05:25:59 +0000 Subject: [PATCH] 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 --- codec2-dev/octave/newamp1_batch.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 -- 2.25.1