aboutsummaryrefslogtreecommitdiff
path: root/octave/pulse.m
diff options
context:
space:
mode:
Diffstat (limited to 'octave/pulse.m')
-rw-r--r--octave/pulse.m37
1 files changed, 37 insertions, 0 deletions
diff --git a/octave/pulse.m b/octave/pulse.m
new file mode 100644
index 0000000..223389e
--- /dev/null
+++ b/octave/pulse.m
@@ -0,0 +1,37 @@
+% pulse.m
+% David Rowe August 2009
+%
+% Experiments with human pulse perception for sinusoidal codecs
+
+function pulse(samname)
+
+ A = 1000;
+ K = 16000;
+ N = 80;
+ frames = K/N;
+ s = zeros(1,K);
+
+ for f=1:frames
+ % lets try placing np random pulses in every frame
+
+ P = 20 + (160-20)*rand(1,1);
+ Wo = 2*pi/P;
+ L = floor(pi/Wo);
+ sf = zeros(1,N);
+ for m=1:L/2:L
+ pos = floor(rand(1,1)*N)+1;
+ %pos = 50;
+ for l=m:m+L/2-1
+ sf = sf + A*cos(l*Wo*((f-1)*N+1:f*N) - pos*l*Wo);
+ endfor
+ endfor
+ s((f-1)*N+1:f*N) = sf;
+ endfor
+
+ plot(s(1:250));
+
+ fs=fopen(samname,"wb");
+ fwrite(fs,s,"short");
+ fclose(fs);
+endfunction
+