mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 01:26:58 +00:00
Working codec2 support
This commit is contained in:
50
libs/libcodec2/octave/phase2.m
Normal file
50
libs/libcodec2/octave/phase2.m
Normal file
@@ -0,0 +1,50 @@
|
||||
% phase2.m
|
||||
% David Rowe Sep 2009
|
||||
% experiments with phase for sinusoidal codecs, looking at phase
|
||||
% of excitation with real Am samples from hts1
|
||||
|
||||
function phase2(samname, png)
|
||||
N = 16000;
|
||||
|
||||
f=45;
|
||||
model = load("../src/hts1a_model.txt");
|
||||
phase = load("../src/hts1a_phase_phase.txt");
|
||||
Wo = model(f,1);
|
||||
P=2*pi/Wo;
|
||||
L = model(f,2);
|
||||
A = model(f,3:(L+2));
|
||||
phi = phase(f,1:L);
|
||||
phi = zeros(1,L);
|
||||
for m=L/2:L
|
||||
phi(m) = 2*pi*rand(1,1);
|
||||
end
|
||||
|
||||
s = zeros(1,N);
|
||||
|
||||
for m=1:L
|
||||
s_m = A(m)*cos(m*Wo*(0:(N-1)) + phi(m));
|
||||
s = s + s_m;
|
||||
endfor
|
||||
|
||||
figure(1);
|
||||
clf;
|
||||
plot(s(1:250));
|
||||
|
||||
fs=fopen(samname,"wb");
|
||||
fwrite(fs,s,"short");
|
||||
fclose(fs);
|
||||
|
||||
if (nargin == 2)
|
||||
% small image to fit blog
|
||||
|
||||
__gnuplot_set__ terminal png size 450,300
|
||||
ss = sprintf("__gnuplot_set__ output \"%s.png\"", samname);
|
||||
eval(ss)
|
||||
replot;
|
||||
|
||||
% for some reason I need this to stop large plot getting wiped
|
||||
__gnuplot_set__ output "/dev/null"
|
||||
endif
|
||||
|
||||
endfunction
|
||||
|
Reference in New Issue
Block a user