⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generate_received_data.m

📁 implement basic routines in Matlab and Octave (currently using Matlab R13) for simulating adaptive b
💻 M
字号:
function [R_int, R_smi_int_only, R_smi_int_and_desired, r, W_MVDR_Ideal, W_MVDR_smi_int_only, W_MVDR_smi_int_and_desired, desired_data_used] = ...
        generate_received_data(N, s, SV, Interferers_Power_ABS, interference_data, desired_data, dl_coeff, Noise_Power_ABS)

       
% Generate the interferer only covariance matrix
if(size(SV,2) == 0)
    R_int=eye(N);
else
    R_int=(SV*Interferers_Power_ABS*SV')+eye(N); % Normalized with noise level = unity  -  Noise only covariance matrix
end
R_int_inv=inv(R_int); % Calculate once and use twice
W_MVDR_Ideal = (R_int_inv*s)/(s'*R_int_inv*s); % Optimal MVDR wt vector

% Process only interference data
if(size(SV,2) == 0)
    r = zeros(N, size(desired_data, 2));
else
    r = SV * interference_data; % Interference and noise only    r_zero_mean = r - diag(mean(r.'))*ones(size(r));  R_smi_int_only = (1/size(r_zero_mean,2))*(r_zero_mean*r_zero_mean');% + 5e10 * eye(size(r,1));    %R_smi_int_only = cov(r');
end
r = r + Noise_Power_ABS .* ( randn(size(r)) + j*randn(size(r)) );
R_smi_int_only = (1/size(r,2))*(r*r') + dl_coeff*eye(size(r,1));    %
%R_smi_int_only = cov(r') + dl_coeff*eye(size(r,1));
R_smi_inv_int_only = inv(R_smi_int_only);
W_MVDR_smi_int_only = (R_smi_inv_int_only*s)/(s'*R_smi_inv_int_only*s); % Optimal MVDR wt vector

% Build the channel impulse response
T=2;
B=0.35;
t=0:7;
myfilt = exp(-j*2*pi*0.015)*rc(t-0.00025*T, T, B) + 0.008*exp(-j*2*pi*0.06)*rc(t-T, T, B)
myfilt = [1 0 0 0 0 0 0 0]
desired_data_channeled = conv(myfilt, desired_data);
desired_data_channeled=desired_data_channeled(floor((size(desired_data_channeled,2)-size(desired_data,2))/2):(floor((size(desired_data_channeled,2)-size(desired_data,2))/2)+size(desired_data,2)-1))
%desired_data_channeled=desired_data_channeled(1:size(desired_data,2));
%desired_data_channeled = desired_data;

% Process both desired and interference data
r = r + s * desired_data_channeled; % Noise + desired signal    r_zero_mean = r - diag(mean(r.'))*ones(size(r));  R_smi_int_and_desired = (1/size(r_zero_mean,2))*(r_zero_mean*r_zero_mean');% + 5e10 * eye(size(r,1));    %R_smi_int_and_desired= cov(r');
R_smi_int_and_desired = (1/size(r,2))*(r*r') + dl_coeff*eye(size(r,1));    %R_smi_int_and_desired= cov(r');
%R_smi_int_and_desired = cov(r') + dl_coeff*eye(size(r,1));    %R_smi_int_and_desired= cov(r');
R_smi_inv_int_and_desired = inv(R_smi_int_and_desired);
W_MVDR_smi_int_and_desired = (R_smi_inv_int_and_desired*s)/(s'*R_smi_inv_int_and_desired*s); % Optimal MVDR wt vector

desired_data_used = desired_data;

⌨️ 快捷键说明

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