- fixed jitter in H estimation
- consider power boost in params - RX: cleaned up - TX: cleaned up git-svn-id: http://moon:8086/svn/matlab/trunk@44 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
+12
-22
@@ -148,15 +148,6 @@ for k=1:K,
|
||||
Xlast = X;
|
||||
end
|
||||
|
||||
df_track = mean(df_track_(10:200))
|
||||
mean_df_fine = mean(df_fine_, 2)
|
||||
mu_Hp = mean(abs(Hp_'))'
|
||||
sigma_Hp = var(abs(Hp_'))'
|
||||
SNR_Hp = -10*log10(sigma_Hp)'
|
||||
|
||||
G = (conj(Hp)*1)./(abs(Hp).^2 * 1 + sigma_Hp)
|
||||
Hp_1 = 1./Hp
|
||||
|
||||
if ~isempty(cp_off_)
|
||||
figure;
|
||||
plot(0:length(cp_off_)-1, cp_off_, 0:length(cp_off_)-1, cp_off*ones(size(cp_off_)), 'r-'); grid; title('cp_{off}')
|
||||
@@ -220,20 +211,16 @@ W = calcWiener(drm_mode, drm_bw);
|
||||
|
||||
figure;
|
||||
% Detect scattered gain pilots
|
||||
sym_count = 0;
|
||||
start = skip_syms+frame_start
|
||||
symbol_counter = 0;
|
||||
win_count = 0;
|
||||
start = skip_syms+frame_start;
|
||||
H = zeros(N, 1);
|
||||
H = [];
|
||||
sym_H = [];
|
||||
sym_out = [];
|
||||
kk = 1;
|
||||
G = [];
|
||||
bin = c2i(N, 13);
|
||||
Hraw = [];
|
||||
|
||||
symbols_per_frame = 15;
|
||||
symbols_per_frame = ofdm_drm_params.nspf;
|
||||
symbols_to_delay = ofdm_drm_params.y;
|
||||
symbol_counter = 0;
|
||||
frames_per_window = 2*ofdm_drm_params.y
|
||||
H_gain_cell = cell (frames_per_window, 1);
|
||||
H_gain_carriers_cell = cell (frames_per_window, 1);
|
||||
@@ -244,14 +231,16 @@ for k=start:length(Z_)
|
||||
n = rem(nn, ofdm_drm_params.y);
|
||||
m = floor(nn/ofdm_drm_params.y);
|
||||
|
||||
[carrier_gain, phi_gain, mag_gain] = getRefGain(ofdm_drm_params, ofdm_spec_occ, symbol_counter); symbol_counter = symbol_counter + 1;
|
||||
[carrier_gain, phi_gain, mag_gain] = getRefGain(ofdm_drm_params, ofdm_spec_occ, symbol_counter);
|
||||
carrier_gain_bins = c2i(N, carrier_gain);
|
||||
Hp = Z_(carrier_gain_bins, k)./(mag_gain.*exp(j*2*pi*phi_gain/1024)).';
|
||||
|
||||
H_gain_cell{win_count+1} = transpose(Z_(carrier_gain_bins, k)./(mag_gain.*exp(j*2*pi*phi_gain/1024)).');
|
||||
ii = 1+mod(0+win_count+(0:frames_per_window-1), frames_per_window);
|
||||
ii = 1+mod(n+(0:frames_per_window-1), frames_per_window);
|
||||
H_gain = [H_gain_cell{ii}];
|
||||
H_gain_carriers_cell{win_count+1} = carrier_gain;
|
||||
|
||||
str = sprintf('Frame %d, SymCount %d, winCount %d, n=%d', k, symbol_counter, win_count, n);
|
||||
if length(H_gain) == 208
|
||||
if 1
|
||||
H = H_gain*W{n+1};
|
||||
@@ -259,16 +248,16 @@ for k=start:length(Z_)
|
||||
sym_out(:, kk) = ZZ ./ H;
|
||||
if 1
|
||||
subplot(2, 1, 1)
|
||||
plot(0:length(H)-1, abs(H)); grid; title('abs(H)'); axis([0 length(H)-1 0 15+0*max(abs(H))]);
|
||||
plot(0:length(H)-1, abs(H)); grid; title('abs(H)'); axis([0 length(H)-1 0 15+0*max(abs(H))]); title(str);
|
||||
subplot(2, 1, 2)
|
||||
plot(0:length(H)-1, angle(H)); grid; title('phi(H)'); axis([0 length(H)-1 -4 4]);
|
||||
plot(0:length(H)-1, angle(H)); grid; title('phi(H)'); axis([0 length(H)-1 -4 4]); title(str);
|
||||
else
|
||||
hold on;
|
||||
plot(sym_out(:, kk), '+');
|
||||
hold off;
|
||||
grid; title('Sym');
|
||||
end
|
||||
pause(0.01);
|
||||
pause(0.025);
|
||||
else
|
||||
ii = [H_gain_carriers_cell{1:6}]
|
||||
H = H_gain;
|
||||
@@ -282,6 +271,7 @@ for k=start:length(Z_)
|
||||
end
|
||||
kk = kk + 1;
|
||||
win_count = mod(win_count+1, frames_per_window);
|
||||
symbol_counter = symbol_counter + 1;
|
||||
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user