converted decoder interpolation to use 2 points rather than 3, to simplify C port...
authordrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 26 Dec 2016 05:25:59 +0000 (05:25 +0000)
committerdrowe67 <drowe67@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 26 Dec 2016 05:25:59 +0000 (05:25 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2945 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/newamp1_batch.m

index ef537e01e0771b8322150b4882b3a50cfd5ab975..65da0ddfbf6016c904c9ec203c0c48542b6c3456 100644 (file)
@@ -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