-
大小: 45KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-10
- 语言: Matlab
- 标签: Matlab MIMO QPSK Detections Codedsystem
资源简介
在Matlab的平台上,应用QPSK调制,以及3种不同的探测方法,实现并模拟了2x2的MIMO功能.
代码片段和文件信息
%% SOURCE CODE FOR MIMO ML WITH QPSK MODULATION %%
% ----------------------------------------------------------------------------------------------------------------
N = 10^4; % number of bits or symbols
Eb_N0_dB = [0:30]; % multiple Eb/N0 values
nTx = 2;
nRx = 2;
for ii = 1:length(Eb_N0_dB)
% Transmitter
ip = rand(1N)>0.5; % generating 01 with equal probability
iq = randn(1N)>0.5;
s = 2*ip-1; % QPSK modulation
sq = -2*iq+1;
s = s-1i*sq;
sMod = kron(sones(nRx1)); %
sMod = reshape(sMod[nRxnTxN/nTx]); % grouping in [nRxnTxN/NTx ] matrix
h = 1/sqrt(2)*[randn(nRxnTxN/nTx) + 1i*randn(nRxnTxN/nTx)]; % Rayleigh channel
n = 1/sqrt(2)*[randn(nRxN/nTx) + 1i*randn(nRxN/nTx)]; % white gaussian noise
% Channel and noise Noise addition
y = squeeze(sum(h.*sMod2)) + 10^(-Eb_N0_dB(ii)/20)*n;
% Maximum Likelihood Receiver
% ----------------------------
% if [s1 s2 ] = [-1-1 -1-1]
sHat1 = [-1-1i -1-1i];
sHat1 = repmat(sHat1[1 N/2]);
sHat1Mod = kron(sHat1ones(nRx1));
sHat1Mod = reshape(sHat1Mod[nRxnTxN/nTx]);
zHat1 = squeeze(sum(h.*sHat1Mod2)) ;
J1 = sum(abs(y - zHat1)1);
% if [s1 s2 ] = [-1 -1 -1 1]
sHat2 = [-1-1i -1+1i];
sHat2 = repmat(sHat2[1 N/2]);
sHat2Mod = kron(sHat2ones(nRx1));
sHat2Mod = reshape(sHat2Mod[nRxnTxN/nTx]);
zHat2 = squeeze(sum(h.*sHat2Mod2)) ;
J2 = sum(abs(y - zHat2)1);
% if [s1 s2 ] = [-1 -1 1 -1]
sHat3 = [-1-1i 1-1i];
sHat3 = repmat(sHat3[1 N/2]);
sHat3Mod = kron(sHat3ones(nRx1));
sHat3Mod = reshape(sHat3Mod[nRxnTxN/nTx]);
zHat3 = squeeze(sum(h.*sHat3Mod2)) ;
J3 = sum(abs(y - zHat3)1);
% if [s1 s2] = [-1 -1 1 1]
sHat4 = [-1-1i 1+1i];
sHat4 = repmat(sHat4[1 N/2]);
sHat4Mod = kron(sHat4ones(nRx1));
sHat4Mod = reshape(sHat4Mod[nRxnTxN/nTx]);
zHat4 = squeeze(sum(h.*sHat4Mod2)) ;
J4 = sum(abs(y - zHat4)1);
% if [s1 s2 ] = [-1 1 -1 -1]
sHat5 = [-1+1i -1-1i];
sHat5 = repmat(sHat5[1 N/2]);
sHat5Mod = kron(sHat5ones(nRx1));
sHat5Mod = reshape(sHat5Mod[nRxnTxN/nTx]);
zHat5 = squeeze(sum(h.*sHat5Mod2)) ;
J5 = sum(abs(y - zHat5)1);
% if [s1 s2] = [-1 1 -1 1]
sHat6 = [-1+1i -1+1i];
sHat6 = repmat(sHat6[1 N/2]);
sHat6Mod = kron(sHat6ones(nRx1));
sHat6Mod = reshape(sHat6Mod[nRxnTxN/nTx]);
zHat6 = squeeze(sum(h.*sHat6Mod2)) ;
J6 = sum(abs(y - zHat6)1);
% if [s1 s2 ] = [-1 1 1 -1]
sHat7 = [-1+1i 1-1i];
sHat7 = repmat(sHat7[1 N/2]);
sHat7Mod = kron(sHat7ones(nRx1));
sHat7Mod = reshape(sHat7Mod[nRxnTxN/nTx]);
zHat7 = squeeze(sum(h.*sHat7Mod2)) ;
J7 = sum(abs(y - zHat7)1);
% if [s1 s2] = [-1 1 1 1]
sHat8 = [-1+1i 1+1i];
sHat8 = repmat(sHat8[1 N/2]);
sHat8Mod = kron(sHat
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12277 2013-04-15 04:51 Project_2\Comparison_cZF_ZF_BER.fig
文件 6945 2013-04-15 04:43 Project_2\ML_BER.fig
文件 6579 2013-04-15 04:30 Project_2\ML_QPSK_MIMO.m
文件 6988 2013-04-15 04:44 Project_2\MMSE_BER.fig
文件 2656 2013-04-15 04:34 Project_2\MMSE_QPSK_MIMO.m
文件 7041 2013-04-15 04:53 Project_2\ZF_Coded_BER.fig
文件 4795 2013-04-15 04:39 Project_2\ZF_Coded_QPSK_MIMO.m
文件 2602 2013-04-15 04:52 Project_2\ZF_QPSK_MIMO.m
文件 7001 2013-04-15 04:43 Project_2\ZF_Uncoded_BER.fig
目录 0 2013-04-15 04:53 Project_2
----------- --------- ---------- ----- ----
56884 10
- 上一篇:模糊控制simuli
nk - 下一篇:ODCSK正交差分混沌键控的matlab仿真
相关资源
- ODCSK正交差分混沌键控的matlab仿真
-
模糊控制simuli
nk - MATLAB实现电力系统牛顿拉弗逊法潮流
- 不同模拟滤波器设计matlab代码
- 数字滤波器设计(冲激响应不变法与
- matlab 天气预报获取程序
- UKF 无迹卡尔曼滤波源程序 matlab
- 基于MATLAB的排队问题仿真.PDF
- 四叉树分割的示意图(matlab)
- 最小二乘拟合matlab程序
- 数字基带传输系统的MATLAB仿真实现2
- MATLAB YALMIP工具箱调用cplex求解TSPTW
- 变调不变速语言处理程序
- 使用扩展卡尔曼滤波训练的神经网络
- 图像分割matlab程序
- IMM算法卡尔曼滤波matlab仿真
- newmark法计算结构响应
- MATLAB脉冲响应不变法设计IIR巴特沃斯
- Viterbi的matlab程序
- 基于MATLAB的M-PSK数字基带通信系统仿真
- 巴特沃兹滤波器m文件,有实验介绍和
- 区域生长分割matlab实现
- Matlab指纹图像分割实验报告
- 无人驾驶车辆模型预测控制配套matl
- 基于matlab的QPSK仿真
- OFDM基于循环前缀的最大似然同步算法
- 结构动力学编程matlab
- 排队理论 Matlab仿真
- gmm matlab 代码
- 卡尔曼滤波跟踪视频目标matlab程序
评论
共有 条评论