• VICKU
    了解作者
  • matlab
    开发工具
  • 27KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 10
    下载次数
  • 2017-11-15 00:28
    上传日期
IMPLEMENTING MIMO WIRELESS SYSTEM
MU-MIMO.zip
  • MU-MIMO
  • power_model_define.m
    1.4KB
  • dof_max_twonet.m
    2.7KB
  • bf_gain_cal_mimo.m
    1.1KB
  • eigen_bf_w_cal.m
    1.5KB
  • cap_cal_twonet.m
    2.8KB
  • warplab_simu_twonet.m
    4.1KB
  • client_cal_bf_fb_antsel.m
    1.5KB
  • wl_generateSTS.m
    943B
  • wl_findLTS_barker.m
    3KB
  • warplab_eval_twonet.m
    46.7KB
  • conj_bf_w_cal.m
    377B
  • mumimo_energy.m
    855B
  • bf_snr_cal_mimo.m
    894B
  • protocol_define.m
    548B
  • null_bf_w_cal.m
    913B
  • ia_w_cal.m
    1.5KB
  • client_cal_bf_fb.m
    2.1KB
  • bf_gain_cal_miso.m
    962B
  • mumimo_cap.m
    1.7KB
  • eigen_null_bf_w_cal.m
    1.5KB
  • wl_findLTS_80211.m
    3.7KB
  • batch_exp.m
    288B
  • bfw_opt_twonet.m
    3.3KB
  • snr_improvement.m
    777B
  • channel_generate.m
    804B
  • wl_generateLTS_barker.m
    1.3KB
  • wl_define_hang.m
    36B
  • wl_generateLTS_80211.m
    1001B
  • bf_w_norm.m
    372B
  • power_management.m
    5.3KB
  • capacity_drop.m
    868B
内容介绍
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Name: warplab_eval_twonet.m % Authur: Hang Yu (RECG, Rice University) % In this script, we evaluate the performance of CoaCa for a MU-MIMO % network with two cells %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc; clear; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Network topology %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Number of APs (do not change this as we evaluate the two-cell case) NUMAPS = 2; % Number of antennas on each AP (must be no greater than four) M1 = 1; M2 = 1; % Number of clients in each cell (each client is equipped with 4 antennas) NUMCLIENTS1 = 1; NUMCLIENTS2 = 1; % Number of antennas on each client N1 = [4]; N2 = [4]; % Number of warp nodes % Each client has up to four antennas so that a single WARP board is enough % NUMNODES = 2 + NUMCLIENTS1 + NUMCLIENTS2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 1.0 Set up the WARPLab experiment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Create a vector of node objects nodes = wl_initNodes(NUMNODES); % AP nodes nodes_AP = nodes(1:2); % Client nodes nodes_client = nodes(3:end); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 1.1 Set up triggers for each AP and client node %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Create a UDP broadcast trigger and tell the master AP node to be ready for it eth_trig = wl_trigger_eth_udp_broadcast; wl_triggerManagerCmd(nodes_AP(1), 'add_ethernet_trigger', [eth_trig]); % Read Trigger IDs into workspace (using the master AP node, but consistent % across all nodes) [T_IN_ETH,T_IN_ENERGY,T_IN_AGCDONE,T_IN_REG,T_IN_D0,T_IN_D1,T_IN_D2,T_IN_D3] = wl_getTriggerInputIDs(nodes_AP(1)); [T_OUT_BASEBAND,T_OUT_AGC,T_OUT_D0,T_OUT_D1,T_OUT_D2,T_OUT_D3] = wl_getTriggerOutputIDs(nodes_AP(1)); % For the master AP node, we will allow Ethernet to trigger the buffer % baseband, the AGC, and debug0 (which is mapped to pin 8 on the debug % header) nodes_AP(1).wl_triggerManagerCmd('output_config_input_selection',[T_OUT_BASEBAND,T_OUT_AGC,T_OUT_D0],[T_IN_ETH]); nodes_AP(1).wl_triggerManagerCmd('output_config_delay',[T_OUT_BASEBAND,T_OUT_AGC],[56.25]); %56.25ns delay for debounce - WARPLab 7.2.0 % For the other AP nodes, we will allow debug3 (mapped to pin 15 on the % debug header) to trigger the buffer baseband, and the AGC nodes_AP(2).wl_triggerManagerCmd('output_config_input_selection',[T_OUT_BASEBAND,T_OUT_AGC],[T_IN_D3]); nodes_AP(2).wl_triggerManagerCmd('input_config_debounce_mode',[T_IN_D3],'enable'); % For the client nodes, we will use the RSSI/eth trigger % nodes_client.wl_triggerManagerCmd('output_config_input_selection',[T_OUT_BASEBAND,T_OUT_AGC],[T_IN_ENERGY]); % nodes_client.wl_triggerManagerCmd('energy_config_busy_threshold', 100); wl_triggerManagerCmd(nodes_client, 'add_ethernet_trigger', [eth_trig]); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 1.2 Set up other parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Get IDs for the interfaces on the boards. Since this example assumes each % board has the same interface capabilities, we only need to get the IDs % from one of the boards [RFA,RFB,RFC,RFD] = wl_getInterfaceIDs(nodes(1)); % Set up the interface for the experiment wl_interfaceCmd(nodes,'RF_ALL','tx_gains',1,15); wl_interfaceCmd(nodes,'RF_ALL','channel',2.4,14); % Use AGC or MGC USE_AGC = false; tx_rx_jitter = 200; % Number of jitter samples in the RX capture if(USE_AGC) wl_interfaceCmd(nodes,'RF_ALL','rx_gain_mode','automatic'); wl_basebandCmd(nodes,'agc_target',-10); wl_basebandCmd(nodes,'agc_trig_delay',tx_rx_jitter); wl_basebandCmd(nodes,'agc_dco',true); else wl_interfaceCmd(nodes,'RF_ALL','rx_gain_mode','manual'); RxGainRF = 3; %Rx RF Gain in [1:3] RxGainBB = 15; %Rx Baseband Gain in [0:31] wl_interfaceCmd(nodes,'RF_ALL','rx_gains',RxGainRF,RxGainBB); end % We will use the transmitter's I/Q buffer size to determine how long our % transmission can be txLength = nodes_AP(1).baseband.txIQLen; % Set up the baseband for the experiment wl_basebandCmd(nodes,'tx_delay',0); wl_basebandCmd(nodes,'tx_length',txLength); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 2.0 Channel sounding configuration %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Load global definitions wl_define_hang, % Number of transmit antennas % To reduce the channel sounding delay, we send a single jumbo NDP frame % from AP1 and AP2 together, so that the number of transmit antennas is % equal to that on AP1 and AP2 combined Num_Tx = M1 + M2; % Number of receive antennas Num_Rx = 4; % Beamforming method Bf_Method = ZEROFORCING; % The samples to be transmitted are structured in the following way: % Sounding Packet = [Preamble Pilots Payload] = [STS LTS GIS Pilots Payload] % Short Training: 320 samples % Long Training: 320 smaples % Guard Interval: 32 smaples % Preamble: Short Training + Long Training + Guard Interval = 672 samples % Pilots: Number of samples varies depending on the parameters specified below % Payload: Number of payload samples varies % Modulation parameters for the Payload mod = 4; % Size of signal constellation k = log2(mod); % Number of bits per symbol Num_Samp_PerSymb = 8; % Oversampling rate or number of samples per symbol % Num_Samp_PerSymb = 128; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 2.1 Generate pilots, STS and LTS to form the NDP frame %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Sampling frequency Ts = 1 / (wl_basebandCmd(nodes(1), 'tx_buff_clk_freq')); Ts_RSSI = 1 / (wl_basebandCmd(nodes(1), 'rx_rssi_clk_freq')); % Long training symbols [LTS_up2, LTS_time_up2, LTS_time, LTS_freq, scale_LTS] = wl_generateLTS_80211; % Short traning symbols [STS_up2, STS_time_up2, STS_time, STS_freq, scale_STS] = wl_generateSTS; STS_up2 = [STS_up2]; % Guard interval symbols GIS = zeros(1,64); % Length of the preamble and pilot symbols Num_STS = length(STS_up2); % Number of short training samples Num_LTS = length(LTS_up2); % Number of long training samples Num_GIS = length(GIS); % Number of guard interval samples Num_Preambles = Num_STS + Num_LTS + Num_GIS; % Number of total preamble samples Num_Pilots_PerAnt = 256; % Number of pilot samples per antenna Num_Pilots = Num_Pilots_PerAnt * Num_Tx; % Number of total pilot samples % Pilot samples: sent from the first till the last antenna of the AP % The first antenna is always on the master AP node % We send narrowband signals, with the bandwidth of 625KHz t = 0 : Ts : (Num_Pilots_PerAnt-1)*Ts; % Create frequency vector for sweep fmin = 1e6; fmax = 1e6 + 625e3; % Second derivative of phase is slope of linear increase of frequency with % time d2phase_dt = (fmax-fmin)/t(end); % Integrate twice to get phase as a function of time phase_t = (1/2) * d2phase_dt * t.^2 + fmin * t; Pilot_tone = exp(1i*2*pi*phase_t); % Pilot_tone = exp(1i*2*pi*1.25e6*t); % Single frequency signals Pilot_zero = zeros(1, Num_Pilots_PerAnt); % Generate pilot symbols for each radio of the AP % Each radio send time-orthogonal pilots Pilots = cell(1, Num_Tx); for m = 1 : Num_Tx if m == 1 Pilots{m} = [Pilot_tone, zeros(1, Num_Pilots_PerAnt * (Num_Tx-1))]; else Pilots{m} = circshift(Pilots{1},[1, Num_Pilots_PerAnt * (m-1)]); end end % Define number of payload samples % 100 samples reserved for jitter Max_Num_Samp_Payload = txLength - Num_Preambles -
评论
    相关推荐
    • J6_2012--Kalman-interpolation.zip
      卡尔曼滤波器进行信道估计的一篇文章,适用于OFDM-MIMO系统。
    • obs_kalman.rar
      Kalman observer for MIMO systems
    • Kalman.rar
      在数据有丢失的情况下,用kalman滤波实现状态估计
    • mjmjf.zip
      Various kalman filter design, GSM is GMSK modulation signal generation, MIMO OFDM matlab simulation.
    • Hybrid_MIMO_Kalman.rar
      mmwave precoding paper with a code
    • jaopen.zip
      MIMO OFDM matlab仿真,各种kalman滤波器的设计,计算多重分形非趋势波动分析。
    • pp.rar
      Multiple-input–multiple-output (MIMO) systems can provide high data rate wireless services in a rich scattering environment. In this paper, we study one of the proposals for MIMO systems, the Bell...
    • MIMO 多用户检测技术的实现
      基于MATLAB的MI-MO多用户检测技术的实现
    • latest_alpha_1_1_1.zip
      This is my new special effects program, check it out!
    • USB-COM(HL340).rar
      usb转串口,找了很久才找到,现在别的地方很难下到,要不用不了,我这个可以用 HL340D 的