summaryrefslogtreecommitdiff
path: root/gnuradio-examples/python/ofdm/ofdm_sync.m
diff options
context:
space:
mode:
authortrondeau <trondeau@221aa14e-8319-0410-a670-987f0aec2ac5>2007-06-04 16:08:44 +0000
committertrondeau <trondeau@221aa14e-8319-0410-a670-987f0aec2ac5>2007-06-04 16:08:44 +0000
commitc7dbfcc7d78275f76d8c2a8ef21e3100721874be (patch)
treec57b7b49ba153b6858a86de8714c2737f55bbc26 /gnuradio-examples/python/ofdm/ofdm_sync.m
parentd476abb6debdf8ef5c0adf97af50a9b704605e2a (diff)
merge ordm/receiver branch -r5574:5659. Reworks OFDM receiver with refactored OFDM blocks. A few bug fixes for other blocks have also been slipped in.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@5661 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gnuradio-examples/python/ofdm/ofdm_sync.m')
-rw-r--r--gnuradio-examples/python/ofdm/ofdm_sync.m28
1 files changed, 28 insertions, 0 deletions
diff --git a/gnuradio-examples/python/ofdm/ofdm_sync.m b/gnuradio-examples/python/ofdm/ofdm_sync.m
new file mode 100644
index 0000000000..d5df421373
--- /dev/null
+++ b/gnuradio-examples/python/ofdm/ofdm_sync.m
@@ -0,0 +1,28 @@
+%
+
+function [theta, g, g1, k, h] = ofdm_sync(signal,SNR,FFTSIZE,CPLEN)
+
+ rho = SNR/(SNR+1);
+
+ d = abs(signal).^2;
+ g = [ zeros(1,FFTSIZE) signal(1:max(size(signal))-FFTSIZE) ];
+ g1 = conj(g);
+ f = abs(g).^2;
+ c = d + f;
+ moving_sum_taps = rho/2 * ones(1,CPLEN);
+ b = conv(c,moving_sum_taps);
+ b = b(1:max(size(signal)));
+ %b = b(CPLEN:max(size(b)));
+
+ k = g1 .* signal;
+
+ moving_sum_taps2 = ones(1, CPLEN);
+ h = conv(k,moving_sum_taps2);
+ h = h(1:max(size(signal)));
+ %h = h(CPLEN:max(size(h)));
+
+ a = abs(h);
+
+ theta = a-b;
+
+endfunction