diff options
author | trondeau <trondeau@221aa14e-8319-0410-a670-987f0aec2ac5> | 2007-06-04 16:08:44 +0000 |
---|---|---|
committer | trondeau <trondeau@221aa14e-8319-0410-a670-987f0aec2ac5> | 2007-06-04 16:08:44 +0000 |
commit | c7dbfcc7d78275f76d8c2a8ef21e3100721874be (patch) | |
tree | c57b7b49ba153b6858a86de8714c2737f55bbc26 /gnuradio-examples/python/ofdm/ofdm_sync.m | |
parent | d476abb6debdf8ef5c0adf97af50a9b704605e2a (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.m | 28 |
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 |