Added mrd4 encoder
authorbaobrien <baobrien@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 23 Oct 2015 16:57:05 +0000 (16:57 +0000)
committerbaobrien <baobrien@01035d8c-6547-0410-b346-abe4f91aad63>
Fri, 23 Oct 2015 16:57:05 +0000 (16:57 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@2468 01035d8c-6547-0410-b346-abe4f91aad63

codec2-dev/octave/fsk4.m

index 95720dcbfdddd5a90c5fd94c71f307e47798640b..2b832b4c3ba57f62642ade77f33aeb912d2ee758 100644 (file)
@@ -148,6 +148,27 @@ function bits = fsk4_demod_thing(fsk4_states, rx)
   end
 endfunction
 
+function dat = bitreps(in,M)
+  for i=1:length(in)
+    dat(1+(i-1)*M:i*M) = in(i);
+  end
+endfunction
+
+function syms = mrd4(bits)
+  syms = zeros(1,length(bits));
+  rd=0;
+  lastsym=0;
+  for n = (1:length(bits))
+    bit = bits(n);
+    sp = 1+(bit*2.0);
+    [x,v] = min(abs([rd+sp rd-sp]));
+    ssel = [sp -sp](v);
+    if(ssel == lastsym)ssel = -ssel;endif
+    syms(n) = ssel;
+    rd = rd + ssel;
+    lastsym = ssel;
+  end
+endfunction
 
 function out = fold_sum(in,l)
   sublen = floor(length(in)/l);