📄 mimo_channel.m
字号:
function out_bits = MIMO_channel(in_bits,Mr,L,Q,SNR)
h1 = [0.150+0.0187i 0.0747+0.0825i 0.2241+0.2469i -0.0148-0.0151i;...
0.124+0.0261i 0.0934+0.0844i 0.1905+0.2099i -0.0160-0.0175i;...
0.199+0.0336i 0.1120+0.1236i 0.1569+0.1692i -0.0147-0.1199i;...
0.173+0.0411i 0.1307+0.1255i 0.1233+0.1285i -0.0134-0.1423i;...
0.150+0.1187i 0.2747+0.2825i 0.2241+0.2469i -0.0448-0.0751i;...
0.124+0.1261i 0.2934+0.2844i 0.2905+0.2099i -0.0560-0.0975i];
% subchannel coefficients of subsystem 1
h2 = [0.04+0.017i 0.056+0.007i 0.126+0.020i -0.047+0.010i -0.013-0.041i 0.069-0.100i;...
0.10+0.020i 0.065+0.008i 0.104+0.019i -0.043+0.006i 0.010-0.062i 0.004-0.034i;...
0.07+0.030i 0.074+0.010i 0.082+0.018i -0.039+0.001i 0.034-0.084i 0.039-0.100i;...
0.04+0.030i 0.082+0.012i 0.061+0.017i -0.034-0.019i 0.058-0.067i -0.061-0.065i;...
0.04+0.027i 0.026+0.027i 0.226+0.220i -0.247+0.210i -0.213-0.241i 0.069-0.100i;...
0.10+0.220i 0.265+0.208i 0.204+0.219i -0.243+0.206i 0.210-0.262i 0.004-0.034i];
% subchannel coefficients of subsystem 2
col = size(in_bits,2);
out_bits = zeros(Mr,col+L);
L1 = size(h1,2)-1;
L2 = size(h2,2)-1;
for row = 1:Mr
subC1 = [h1(row,:) zeros(1,L-L1)];
subC2 = [h2(row,:) zeros(1,L-L2)];
out_bits(row,:) = conv(subC1,in_bits(1,:))+conv(subC2,in_bits(2,:));
end
out_bits = out_bits(:,L+1:L+Q);
%---------------------------------
% Add noise
%---------------------------------
noise = randn(size(out_bits)).^exp(j*rand(size(out_bits))*2*pi);
powX = norm(out_bits,'fro').^2;
powN = norm(noise,'fro').^2;
noise = noise*sqrt(powX/powN)/10^(SNR/20);
out_bits = out_bits+noise;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -