- plot raw H
- plot FAC syms

[CalcWiener]
- added sigma to PHI
- fixed fd_max and tau_max


git-svn-id: http://moon:8086/svn/matlab/trunk@47 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
2015-05-01 09:57:24 +00:00
parent b6e651271f
commit 248acd843e
2 changed files with 57 additions and 31 deletions
+42 -28
View File
@@ -224,6 +224,27 @@ symbols_to_delay = ofdm_drm_params.y;
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);
H_raw = zeros(length(ofdm_spec_occ.kmin:ofdm_spec_occ.kmax),1);
fac_cell_list = ...
{
[],
[],
[13, 25, 43, 55, 67],
[15, 27, 45, 57, 69],
[17, 29, 47, 59, 71],
[19, 31, 49, 61, 73],
[9, 21, 33, 51, 63, 75],
[11, 23, 35, 53, 65, 77],
[13, 25, 37, 55, 67, 79],
[15, 27, 39, 57, 69, 81],
[17, 29, 41, 59, 71, 83],
[19, 31, 43, 61, 73],
[21, 33, 45, 63, 75],
[23, 35, 47, 65, 77],
[]
};
carriers = ofdm_spec_occ.kmin:ofdm_spec_occ.kmax;
carrier_indexes = c2i(N, carriers);
for k=start:length(Z_)
%shifted symbol index
@@ -234,7 +255,7 @@ for k=start:length(Z_)
[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_raw(carrier_gain_bins) = Hp;
H_gain_cell{win_count+1} = transpose(Z_(carrier_gain_bins, k)./(mag_gain.*exp(j*2*pi*phi_gain/1024)).');
ii = 1+mod(n+(0:frames_per_window-1), frames_per_window);
H_gain = [H_gain_cell{ii}];
@@ -242,41 +263,34 @@ for k=start:length(Z_)
str = sprintf('Frame %d, SymCount %d, winCount %d, n=%d', k, symbol_counter, win_count, n);
if length(H_gain) == 208
H = H_gain*W{n+1};
ZZ = Z_(carrier_indexes, k).';
sym_eq = ZZ ./ H;
sym_out(:, kk) = sym_eq;
if 1
H = H_gain*W{n+1};
ZZ = Z_(c2i(N, ofdm_spec_occ.kmin:ofdm_spec_occ.kmax), k).';
sym_out(:, kk) = ZZ ./ H;
if 1
subplot(2, 1, 1)
plot(ofdm_spec_occ.kmin:ofdm_spec_occ.kmax, abs(H)); grid; title('abs(H)'); axis([ofdm_spec_occ.kmin ofdm_spec_occ.kmax 0 15+0*max(abs(H))]); title(str);
subplot(2, 1, 2)
plot(ofdm_spec_occ.kmin:ofdm_spec_occ.kmax, angle(H)); grid; title('phi(H)'); axis([ofdm_spec_occ.kmin ofdm_spec_occ.kmax -4 4]); title(str);
else
hold on;
plot(sym_out(:, kk), '+');
hold off;
grid; title('Sym');
end
pause(0.01);
else
ii = [H_gain_carriers_cell{1:6}]
H = H_gain;
sym_out(:, kk) = 0;
subplot(2, 1, 1)
plot(abs(H)); grid; title('abs(H)');
subplot(2, 1, 2)
plot(angle(H)); grid; title('phi(H)');
H_raw(1:2:N) = H_raw(2:2:N);
subplot(2, 1, 1)
plot(carriers, abs(H_raw(carrier_indexes)), 'b-', carriers, abs(H), 'r-'); grid; title('abs(H)'); axis([ofdm_spec_occ.kmin ofdm_spec_occ.kmax 0 15+0*max(abs(H))]); title(str);
subplot(2, 1, 2)
plot(carriers, angle(H_raw(carrier_indexes)), 'b-', carriers, angle(H), 'r-'); grid; title('phi(H)'); axis([ofdm_spec_occ.kmin ofdm_spec_occ.kmax -4 4]); title(str);
pause(0.01);
else
fac_c = fac_cell_list{symbol_counter+1};
if (~isempty(fac_c))
fac_i = fac_c - ofdm_spec_occ.kmin + 1;
hold on;
plot(sym_eq(fac_i), '.', 'MarkerSize', 4);
pause(0.01);
hold off;
grid; title('FAC'); axis([-1.5 1.5 -1.5 1.5]);
end
end
end
kk = kk + 1;
win_count = mod(win_count+1, frames_per_window);
symbol_counter = symbol_counter + 1;
symbol_counter = mod(symbol_counter + 1, symbols_per_frame);
end
figure;
plot(real(sym_H'), imag(sym_H'), '+'); grid; title('Sym_{H}'); axis([-1.5 1.5 -1.5 1.5]);
function Y = spec_order(N, X)
Y = [X(N/2+1:N)' X(1:N/2)']';