[calcWiener]
- calc W_pilots [RX] - added delta_freq for tracking (Zwischenstand) git-svn-id: http://moon:8086/svn/matlab/trunk@52 801c6759-fa7c-4059-a304-17956f83a07c
This commit is contained in:
+26
-8
@@ -1,4 +1,4 @@
|
||||
function W_syms = calcWiener(drm_mode, drm_bw)
|
||||
function [W_syms, W_pilots] = calcWiener(drm_mode, drm_bw)
|
||||
% calcWiener('B', '10k');
|
||||
|
||||
[params, spec_occ] = drm_params(drm_mode, drm_bw);
|
||||
@@ -23,6 +23,7 @@ f_D_max = f_cut_t*12000/Ns/2
|
||||
tau_max = f_cut_k*Nu/12000/2
|
||||
|
||||
W_syms = cell( params.y, 1 );
|
||||
W_pilots = cell( params.y, 1 );
|
||||
|
||||
for d=0:window_delay-1
|
||||
k2_pos = [];
|
||||
@@ -33,12 +34,14 @@ for d=0:window_delay-1
|
||||
k2_pos = [k2_pos c]; % length = window_delay*frames_per_window
|
||||
t2_pos = [t2_pos ones(1, length(c))*(s)]; % length = window_delay*frames_per_window
|
||||
ref_gain_a = [ref_gain_a a];
|
||||
end
|
||||
end
|
||||
num_gain_ref_per_window = length(k2_pos);
|
||||
carriers = spec_occ.kmin:spec_occ.kmax;
|
||||
|
||||
PHI = zeros(length(k2_pos));
|
||||
PHI = zeros(num_gain_ref_per_window);
|
||||
% PHI
|
||||
for k1=1:length(k2_pos)
|
||||
k2 = [1:length(k2_pos)];
|
||||
for k1=1:num_gain_ref_per_window
|
||||
k2 = [1:num_gain_ref_per_window];
|
||||
k1_pos = k2_pos(k1);
|
||||
t1_pos = t2_pos(k1);
|
||||
PHI(k1,k2) = sinc(f_cut_k*(k1_pos-k2_pos)) .* sinc(f_cut_t*(t1_pos-t2_pos));
|
||||
@@ -47,14 +50,29 @@ for d=0:window_delay-1
|
||||
|
||||
PHI_inv = inv(PHI);
|
||||
|
||||
THETA = zeros(1, length(k2_pos));
|
||||
% W_Syms
|
||||
THETA = zeros(1, num_gain_ref_per_window);
|
||||
% THETA
|
||||
carriers = spec_occ.kmin:spec_occ.kmax;
|
||||
for k1=1:length(carriers)
|
||||
k2 = [1:length(k2_pos)];
|
||||
k2 = [1:num_gain_ref_per_window];
|
||||
k1_pos = carriers(k1);
|
||||
t1_pos = window_delay;
|
||||
THETA(k2) = sinc(f_cut_k*(k1_pos-k2_pos)) .* sinc(f_cut_t*(t1_pos-t2_pos));
|
||||
W_syms{d+1}(:, k1) = transpose( THETA*PHI_inv );
|
||||
end
|
||||
|
||||
% W_Pilots
|
||||
[c, p, a] = getRefGain(params, spec_occ, d);
|
||||
|
||||
THETA = zeros(1, num_gain_ref_per_window);
|
||||
% THETA
|
||||
for k1=1:length(c)
|
||||
k2 = [1:length(k2_pos)];
|
||||
k1_pos = c(k1);
|
||||
t1_pos = frames_per_window-1;
|
||||
THETA(k2) = sinc(f_cut_k*(k1_pos-k2_pos)) .* sinc(f_cut_t*(t1_pos-t2_pos));
|
||||
W_pilots{d+1}(:, k1) = transpose( THETA*PHI_inv );
|
||||
end
|
||||
end
|
||||
W_syms
|
||||
W_pilots
|
||||
Reference in New Issue
Block a user