diff options
Diffstat (limited to 'octave/codec2_demo.m')
| -rw-r--r-- | octave/codec2_demo.m | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/octave/codec2_demo.m b/octave/codec2_demo.m deleted file mode 100644 index 0f3950b..0000000 --- a/octave/codec2_demo.m +++ /dev/null @@ -1,108 +0,0 @@ -% Copyright David Rowe 2012 -% This program is distributed under the terms of the GNU General Public License -% Version 2 -% -% codec2_demo.m - -% Designed as an educational tool to explain the operation of Codec 2 -% for conference and user group presentations on a projector. An -% alternative to static overhead slides. -% -% Derived from codec2-dev/octave/plamp.m -% -% usage: -% octave:1> plamp("../src/hts2a",40) -% -% Then press: -% c - to cycle through the wavform being displayed on the figure -% n - next frame -% b - back one frame -% -% tip: hold down n or b to animate the display -% -% The text files used as input are generated using c2sim: -% -% /codec2-dev/src$ c2sim ../raw/hts2a.raw --dump hts2a -% -% The Codec 2 README explains how to build c2sim with dump files -% enabled. - -function codec2_demo(samname, f) - - sn_name = strcat(samname,"_sn.txt"); - Sn = load(sn_name); - - sw_name = strcat(samname,"_sw.txt"); - Sw = load(sw_name); - - model_name = strcat(samname,"_model.txt"); - model = load(model_name); - - figure(1); - - k = ' '; - wf = "Sn"; - do - - if strcmp(wf,"Sn") - clf; - s = [ Sn(2*f-1,:) Sn(2*f,:) ]; - plot(s); - axis([1 length(s) -20000 20000]); - end - - if (strcmp(wf,"Sw")) - clf; - plot((0:255)*4000/256, Sw(f,:),";Sw;"); - end - - if strcmp(wf,"SwAm") - Wo = model(f,1); - L = model(f,2); - Am = model(f,3:(L+2)); - plot((0:255)*4000/256, Sw(f,:),";Sw;"); - hold on; - plot((1:L)*Wo*4000/pi, 20*log10(Am),"+;Am;r"); - axis([1 4000 -10 80]); - hold off; - end - - if strcmp(wf,"Am") - Wo = model(f,1); - L = model(f,2); - Am = model(f,3:(L+2)); - plot((1:L)*Wo*4000/pi, 20*log10(Am),"+;Am;r"); - axis([1 4000 -10 80]); - end - - % interactive menu - - printf("\rframe: %d menu: n-next b-back w-cycle window q-quit", f); - fflush(stdout); - k = kbhit(); - if (k == 'n') - f = f + 1; - end - if (k == 'b') - f = f - 1; - end - if (k == 'w') - if strcmp(wf,"Sn") - next_wf = "Sw"; - end - if strcmp(wf,"Sw") - next_wf = "SwAm"; - end - if strcmp(wf,"SwAm") - next_wf = "Am"; - end - if strcmp(wf,"Am") - next_wf = "Sn"; - end - wf = next_wf; - end - - until (k == 'q') - printf("\n"); - -endfunction |
