%% MIMO-OFDM Precoding with Phased Arrays
%
% This example shows how phased arrays are used in a MIMO-OFDM
% communication system employing beamforming. Using components from
% Communications Toolbox(TM) and Phased Array System Toolbox(TM), it models
% the radiating elements that comprise a transmitter and the front-end
% receiver components, for a MIMO-OFDM communication system. With
% user-specified parameters, you can validate the performance of the system
% in terms of bit error rate and constellations for different spatial
% locations and array sizes.
%
% The example uses functions and System objects(TM) from
% Communications Toolbox and Phased Array System Toolbox and requires
%
% * WINNER II Channel Model for Communications Toolbox
% Copyright 2016-2020 The MathWorks, Inc.
%% Introduction
%
% MIMO-OFDM systems are the norm in current wireless systems (e.g. 5G NR,
% LTE, WLAN) due to their robustness to frequency-selective channels and
% high data rates enabled. With ever-increasing demands on data rates
% supported, these systems are getting more complex and larger in
% configurations with increasing number of antenna elements, and resources
% (subcarriers) allocated.
%
% With antenna arrays and spatial multiplexing, efficient techniques to
% realize the transmissions are necessary [ <#19 6> ]. Beamforming is one
% such technique, that is employed to improve the signal to noise ratio
% (SNR) which ultimately improves the system performance, as measured here
% in terms of bit error rate (BER) [ <#19 1> ].
%
% This example illustrates an asymmetric MIMO-OFDM single-user system where
% the maximum number of antenna elements on transmit and receive ends can
% be 1024 and 32 respectively, with up to 16 independent data streams. It
% models a spatial channel where the array locations and antenna patterns
% are incorporated into the overall system design. For simplicity, a single
% point-to-point link (one base station communicating with one mobile user)
% is modeled. The link uses channel sounding to provide the transmitter
% with the channel information it needs for beamforming.
%
% The example offers the choice of a few spatially defined channel models,
% specifically a WINNER II Channel model and a scattering-based model, both
% of which account for the transmit/receive spatial locations and antenna
% patterns.
s = rng(61); % Set RNG state for repeatability
%% System Parameters
%
% Define parameters for the system. These parameters can be modified to
% explore their impact on the system.
% Single-user system with multiple streams
prm.numUsers = 1; % Number of users
prm.numSTS = 16; % Number of independent data streams, 4/8/16/32/64
prm.numTx = 32; % Number of transmit antennas
prm.numRx = 16; % Number of receive antennas
prm.bitsPerSubCarrier = 6; % 2: QPSK, 4: 16QAM, 6: 64QAM, 8: 256QAM
prm.numDataSymbols = 10; % Number of OFDM data symbols
prm.fc = 4e9; % 4 GHz system
prm.chanSRate = 100e6; % Channel sampling rate, 100 Msps
prm.ChanType = 'Scattering'; % Channel options: 'WINNER', 'Scattering',
% 'ScatteringFcn', 'StaticFlat'
prm.NFig = 5; % Noise figure, dB
% Array locations and angles
prm.posTx = [0;0;0]; % BS/Transmit array position, [x;y;z], meters
prm.mobileRange = 300; % meters
% Angles specified as [azimuth;elevation], az=[-90 90], el=[-90 90]
prm.mobileAngle = [33; 0]; % degrees
prm.steeringAngle = [30; -20]; % Transmit steering angle (close to mobileAngle)
prm.enSteering = true; % Enable/disable steering
%%
% Parameters to define the OFDM modulation employed for the system are
% specified below.
prm.FFTLength = 256;
prm.CyclicPrefixLength = 64;
prm.numCarriers = 234;
prm.NumGuardBandCarriers = [7 6];
prm.PilotCarrierIndices = [26 54 90 118 140 168 204 232];
nonDataIdx = [(1:prm.NumGuardBandCarriers(1))'; prm.FFTLength/2+1; ...
(prm.FFTLength-prm.NumGuardBandCarriers(2)+1:prm.FFTLength)'; ...
prm.PilotCarrierIndices.';];
prm.CarriersLocations = setdiff((1:prm.FFTLength)',sort(nonDataIdx));
numTx = prm.numTx;
numRx = prm.numRx;
numSTS = prm.numSTS;
prm.numFrmBits = numSTS*prm.numDataSymbols*prm.numCarriers* ...
prm.bitsPerSubCarrier*1/3-6; % Account for termination bits
prm.modMode = 2^prm.bitsPerSubCarrier; % Modulation order
% Account for channel filter delay
prm.numPadZeros = 3*(prm.FFTLength+prm.CyclicPrefixLength);
% Get transmit and receive array information
prm.numSTSVec = numSTS;
[isTxURA,expFactorTx,isRxURA,expFactorRx] = helperArrayInfo(prm,true);
%%
% The processing for channel sounding, data transmission and reception
% modeled in the example are shown in the following block diagrams.
%
% <<../MIMOOFDMPrecodingDiagram.png>>
%%
% The free space path loss is calculated based on the base station and
% mobile station positions for the spatially-aware system modeled.
prm.cLight = physconst('LightSpeed');
prm.lambda = prm.cLight/prm.fc;
% Mobile position
[xRx,yRx,zRx] = sph2cart(deg2rad(prm.mobileAngle(1)),...
deg2rad(prm.mobileAngle(2)),prm.mobileRange);
prm.posRx = [xRx;yRx;zRx];
[toRxRange,toRxAng] = rangeangle(prm.posTx,prm.posRx);
spLoss = fspl(toRxRange,prm.lambda);
gainFactor = 1;
%% Channel Sounding
%
% For a spatially multiplexed system, availability of channel information
% at the transmitter allows for precoding to be applied to maximize
% the signal energy in the direction and channel of interest. Under the
% assumption of a slowly varying channel, this is facilitated by sounding
% the channel first, wherein for a reference transmission, the receiver
% estimates the channel and feeds this information back to the transmitter.
%
% For the chosen system, a preamble signal is sent over all transmitting
% antenna elements, and processed at the receiver accounting for the
% channel. The receiver components perform pre-amplification, OFDM
% demodulation, frequency domain channel estimation, and calculation of the
% feedback weights based on channel diagonalization using singular value
% decomposition (SVD) per data subcarrier.
% Generate the preamble signal
preambleSigSTS = helperGenPreamble(prm);
% repeat over numTx
preambleSig = zeros(size(preambleSigSTS,1),numTx);
for i = 1:numSTS
preambleSig(:,(i-1)*expFactorTx+(1:expFactorTx)) = ...
repmat(preambleSigSTS(:,i),1,expFactorTx);
end
% Transmit preamble over channel
[rxPreSig,chanDelay] = helperApplyChannel(preambleSig,prm,spLoss);
% Front-end amplifier gain and thermal noise
rxPreAmp = phased.ReceiverPreamp( ...
'Gain',gainFactor*spLoss, ... % account for path loss
'NoiseFigure',prm.NFig, ...
'ReferenceTemperature',290, ...
'SampleRate',prm.chanSRate);
rxPreSigAmp = rxPreAmp(rxPreSig);
rxPreSigAmp = rxPreSigAmp * ... % scale power
(sqrt(prm.FFTLength-sum(prm.NumGuardBandCarriers)-1)/(prm.FFTLength));
% OFDM Demodulation
demodulatorOFDM = comm.OFDMDemodulator( ...
'FFTLength',prm.FFTLength, ...
'NumGuardBandCarriers',prm.NumGuardBandCarriers.', ...
'RemoveDCCarrier',true, ...
'PilotOutputPort',true, ...
'PilotCarrierIndices',prm.PilotCarrierIndices.', ...
'CyclicPrefixLength',prm.CyclicPrefixLength, ...
'NumSymbols',numSTS, ... % preamble symbols alone
'NumReceiveAntennas',numRx);
rxOFDM = demodulatorOFDM( ...
rxPreSigAmp(chanDelay+1:end-(prm.numPadZeros-chanDelay),:));
% Channel estimation from preamble
% numCarr, numSTS, numRx
hD = helperMIMOChannelEstimate(rxOFDM(:,1:numSTS,:),prm);
% Calculate the feedback weights
v = diagbfweights(hD);
%%
% For conciseness in presentation, front-end synchronization including
% carrier and timing recovery are assumed. The weights computed using
% |diagbfweights| are hence fed back to the transmitter, for subsequent
% application for the actual data transmissi
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
一、前言 本例显示了相控阵在采用波束成形的MIMO-OFDM通信系统中的使用。它使用通信工具箱和相控阵系统工具箱中的组件,对组成发射器和前端接收器组件的辐射元件进行建模,用于MIMO-OFDM通信系统。使用用户指定的参数,您可以根据不同空间位置和阵列大小的误码率和星座来验证系统的性能。 二、介绍 MIMO-OFDM系统是当前无线系统(例如5G NR,LTE,WLAN)的常态,因为它们对频率选择信道和启用的高数据速率具有鲁棒性。随着对支持数据速率的要求不断提高,这些系统的配置变得越来越复杂和庞大,天线元件数量和分配的资源(子载波)越来越多。 对于天线阵列和空间复用,实现传输的有效技术是必要的[6]。波束成形就是这样一种技术,用于提高信噪比(SNR),最终提高系统性能,此处以误码率(BER)[1]来衡量。 本例 说明 一个 非 对称 MIMO-OFDM 单 用户 系统, 其中 发射 端 和 接收 端 的 天线 元件 数量 可 分别 为 1024 个 和 32 个, 最多 16 个 独立 的 数据 流。它对空间信道进行建模,其中阵列位置和天线方向图被整合到整个系统设计中。
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 10 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
- tangxin_1272023-05-02总算找到了自己想要的资源,对自己的启发很大,感谢分享~
- Lau师傅2023-08-24资源和描述一致,质量不错,解决了我的问题,感谢资源主。
- m0_629867552023-06-14资源质量不错,和资源描述一致,内容详细,对我很有用。
![avatar](https://profile-avatar.csdnimg.cn/628454e4fe8c40a08e43ee539a1172c6_weixin_45770896.jpg!1)
珞瑜·
- 粉丝: 11w+
- 资源: 500
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
下载权益
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
C知道特权
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
VIP文章
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
课程特权
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)