|
From: | Aditya Dhananjay |
Subject: | Re: [Discuss-gnuradio] references using in ofdm_equalizer_simpledfe |
Date: | Thu, 4 Sep 2014 11:45:34 -0400 |
Hi Aditya,
What's use of pilot symbols in "ofdm_equalizer_simpledfe" ?
I just found pilot symbols update their carrier's channel state, but didn't find what's the use of these pilot channel state, seems them has no relate with data symbol, data symbol also only use themselves to update channel state.
for (int i = 0; i < n_sym; i++) {
for (int k = 0; k < d_fft_len; k++) {
if (!d_occupied_carriers[k]) {
continue;
}
if (!d_pilot_carriers.empty() && d_pilot_carriers[d_pilot_carr_set][k]) {
======> //didn't find any use of these channel state in pilot carriers <=========
//seems has not relate with data symbol
d_channel_state[k] = d_alpha * d_channel_state[k]
+ (1-d_alpha) * frame[i*d_fft_len + k]
/ d_pilot_symbols[d_pilot_carr_set][k];
frame[i*d_fft_len+k] = d_pilot_symbols[d_pilot_carr_set][k];
} else {
sym_eq = frame[i*d_fft_len+k] / d_channel_state[k];
d_constellation->
map_to_points(d_constellation->
decision_maker(&sym_eq), &sym_est);
d_channel_state[k] = d_alpha * d_channel_state[k]
+ (1-d_alpha) * frame[i*d_fft_len + k] / sym_est;
frame[i*d_fft_len+k] = sym_est;
}
}
if (!d_pilot_carriers.empty()) {
d_pilot_carr_set = (d_pilot_carr_set + 1) % d_pilot_carriers.size();
}
}
[Prev in Thread] | Current Thread | [Next in Thread] |