Imported Upstream version 3.2.2
[debian/gnuradio] / gnuradio-examples / python / ofdm / ofdm_sync.m
1 %
2
3 function [theta, g, g1, k, h] = ofdm_sync(signal,SNR,FFTSIZE,CPLEN)
4
5   rho = SNR/(SNR+1);
6
7   d = abs(signal).^2;
8   g = [ zeros(1,FFTSIZE) signal(1:max(size(signal))-FFTSIZE) ];
9   g1 = conj(g);
10   f = abs(g).^2;
11   c = d + f;
12   moving_sum_taps = rho/2 * ones(1,CPLEN);
13   b = conv(c,moving_sum_taps);
14   b = b(1:max(size(signal)));
15   %b = b(CPLEN:max(size(b)));
16   
17   k = g1 .* signal;
18
19   moving_sum_taps2 = ones(1, CPLEN);
20   h = conv(k,moving_sum_taps2);
21   h = h(1:max(size(signal)));
22   %h = h(CPLEN:max(size(h)));
23   
24   a = abs(h);
25   
26   theta = a-b;
27
28 endfunction