From: drowe67 Date: Tue, 25 Jul 2017 23:46:13 +0000 (+0000) Subject: moved back to parabolic interpolator, so we can have C and Octave using exctly the... X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=a71bae9f4bbd47845374c693cc10b5294a348c58;p=freetel-svn-tracking.git moved back to parabolic interpolator, so we can have C and Octave using exctly the same algorithm git-svn-id: https://svn.code.sf.net/p/freetel/code@3332 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/octave/c2wideband_batch.m b/codec2-dev/octave/c2wideband_batch.m index 863cda65..f8785456 100644 --- a/codec2-dev/octave/c2wideband_batch.m +++ b/codec2-dev/octave/c2wideband_batch.m @@ -271,10 +271,14 @@ function [model_ rate_K_surface] = experiment_rate_K_dct2(model, plots=1) sumnz(n) = qn; end + fg = 1; + + figure(fg++); clf; mesh(rate_K_surface); title('rate K surface block'); + if plots - figure(4); clf; plot(sumnz); hold on; + figure(fg++); clf; plot(sumnz); hold on; plot([1 length(sumnz)],[mean(sumnz) mean(sumnz)]); hold off; title('Non Zero'); - figure(5); clf; plot(dct2_sd); title('DCT SD'); + figure(fg++); clf; plot(dct2_sd); title('DCT SD'); end printf("average dct spectral distortion: %3.2f dB\n", mean(dct2_sd)); printf("mean number of coeffs/DCT: %3.2f/%d\n", mean(sumnz), Nt*K); @@ -286,7 +290,7 @@ function [model_ rate_K_surface] = experiment_rate_K_dct2(model, plots=1) dist = std((rate_K_surface_(1:dec:Nblocks*Nt*dec,:) - rate_K_surface(1:dec:Nblocks*Nt*dec,:))'); if plots - figure(1); clf; plot(dist); title('Rate K SD'); + figure(fg++); clf; plot(dist); title('Rate K SD'); printf("Rate K spectral distortion mean: %3.2f dB var: %3.2f\n", mean(dist), var(dist)); end endfunction diff --git a/codec2-dev/octave/newamp.m b/codec2-dev/octave/newamp.m index 805282b8..164dcb25 100644 --- a/codec2-dev/octave/newamp.m +++ b/codec2-dev/octave/newamp.m @@ -518,8 +518,8 @@ function [rate_K_surface rate_K_sample_freqs_kHz] = resample_const_rate_f(model, rate_L_sample_freqs_kHz = (1:L)*Wo*Fs/(2000*pi); - rate_K_surface(f,:) = interp1([0 rate_L_sample_freqs_kHz (Fs/2000)], [AmdB(1) AmdB AmdB(L)], rate_K_sample_freqs_kHz, "spline"); - %rate_K_surface(f,:) = interp_para(rate_L_sample_freqs_kHz, AmdB, Fs/(2*1000), rate_K_sample_freqs_kHz); + %rate_K_surface(f,:) = interp1([0 rate_L_sample_freqs_kHz (Fs/2000)], [AmdB(1) AmdB AmdB(L)], rate_K_sample_freqs_kHz, "spline"); + rate_K_surface(f,:) = interp_para(rate_L_sample_freqs_kHz, AmdB, Fs/(2*1000), rate_K_sample_freqs_kHz); %printf("%d\n", f); end @@ -602,6 +602,9 @@ function [model_ AmdB_] = resample_rate_L(model, rate_K_surface, rate_K_sample_f % dealing with end effects is an ongoing issue.....need a better solution + AmdB_(f,1:L) = interp_para(rate_K_sample_freqs_kHz, rate_K_surface(f,:), Fs/(2*1000), rate_L_sample_freqs_kHz); + +#{ if pad_end AmdB_(f,1:L) = interp1([0 rate_K_sample_freqs_kHz Fs/2000], [rate_K_surface(f,1) rate_K_surface(f,:) rate_K_surface(f,K)], @@ -613,6 +616,7 @@ function [model_ AmdB_] = resample_rate_L(model, rate_K_surface, rate_K_sample_f rate_L_sample_freqs_kHz, "spline"); end +#} %AmdB_(f,1:L) = interp_para(rate_K_sample_freqs_kHz, rate_K_surface(f,:), Fs/(2*1000), rate_L_sample_freqs_kHz); %printf("f: %d %f %f %f\n", f, rate_K_sample_freqs_kHz(1), rate_L_sample_freqs_kHz(1), AmdB_(1));