Hi, I am trying to see ofdm_frame _acquisition.cc code. Here to find the training symbol phase difference, the code subtracts one symbol from another and takes norm function like norm(symbol[i]-symbol[i+2]). But how will that give the phase difference. Now symbol[i] and symbol[i+2] are complex values. How will we get the phase by taking the norm of the same.
secondly how is coarse frequency calculated in the code. The code here multiplies the knownsymbol phase *received symbol phase like in the below code. void digital_ofdm_frame_acquisition::correlate(const gr_complex *symbol, int zeros_on_left) { unsigned int i,j; std::fill(d_symbol_phase_diff.begin(), d_symbol_phase_diff.end(), 0); for(i = 0; i < d_fft_length-2; i++) { d_symbol_phase_diff[i] = norm(symbol[i] - symbol[i+2]); } // sweep through all possible/allowed frequency offsets and select the best int index = 0; float max = 0, sum=0; for(i = zeros_on_left - d_freq_shift_len; i < zeros_on_left + d_freq_shift_len; i++) { sum = 0; for(j = 0; j < d_occupied_carriers; j++) { sum += (d_known_phase_diff[j] * d_symbol_phase_diff[i+j]); } if(sum > max) { max = sum; index = i; } } // set the coarse frequency offset relative to the edge of the occupied tones d_coarse_freq = index - zeros_on_left; } can anybody please tell me how the formula in the code explains the coarse frequency estimation algorithm. The paper by schmidl and cox gives some maximisation formula to calculate it. So i am confused about it. -- Regards Karan Talasila
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio