sinc_dop_rv.m

来自「802.11n WLAN PHY Simulation models of」· M 代码 · 共 40 行

M
40
字号
function [out_val, snc_dlys, snc_idxs] = sinc_dop_rv(snc_dlys, snc_idxs, upfac)
% Function to generate sinc-interpolated, Doppler-filtered Gaussian RV's
global dop_idx dop_buf;

j=sqrt(-1);

% Sinc interp. parameters
n_dlys = 12;
upfac = 1724008;

if (length(snc_idxs)==1)
    % Generate first 256 samples of Doppler-filtered, Rayleigh fading sim.    
    dop_buf = rayleigh_dop(0);
    dop_idx = 1; % reset buffer
    
    % init. sinc interp indices
    snc_idxs = -upfac*(-n_dlys/2:n_dlys/2-1); 
    % init. sinc interp delay line (Gaussian RV's)
    snc_dlys = dop_buf(dop_idx:(dop_idx+n_dlys-1));
    dop_idx = dop_idx + n_dlys;
end

% Run upsampling filter
out_val = sum(sinc(snc_idxs/upfac).*snc_dlys);

% Delay lines for upsampling
snc_idxs = snc_idxs + 1;
if (snc_idxs(n_dlys/2+1) >= upfac)
    snc_idxs = snc_idxs - upfac;
    % adjust delayline
    snc_dlys(1:end-1) = snc_dlys(2:end);
    % add new sample
    snc_dlys(end) = dop_buf(dop_idx);
    dop_idx = dop_idx + 1;
    if (dop_idx>256)
        dop_buf = rayleigh_dop(0);
        dop_idx = 1; % reset buffer
    end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?