% Again we start by defining the common simulation parameters
frmLen = 100; % frame length
maxNumErrs = 300; % maximum number of errors
maxNumPackets = 3000; % maximum number of packets
EbNo = 0:2:12; % Eb/No varying to 12 dB 七个点
N = 2; % number of Tx antennas
M = 2; % number of Rx antennas
pLen = 8; % number of pilot symbols per frame
W = hadamard(pLen); %阿达玛H = hadamard(n) returns the Hadamard matrix of order n N阶阿达玛矩阵H=[1 1;-1 1]通原
pilots = W(:, 1:N); % orthogonal set per transmit antenna正交集
hStr = RandStream('mt19937ar', 'Seed', 55408);%Create a local random stream to be used by random number generators for repeatability.作为MALAB
%Create BPSK mod-demod objects
P=2; %modulate order
bpskmod = modem.pskmod('M', P, 'SymbolOrder', 'Gray');%产生一个调制器对象,进制数M为P,码元星座映射类型为灰度映射
bpskdemod = modem.pskdemod(bpskmod);%解调对象的值取自PSK
%%
% and set up the simulation.
% Pre-allocate variables for speed
tx2 = zeros(frmLen, N); r = zeros(pLen + frmLen, M);
H = zeros(pLen + frmLen, N, M);
H_e = zeros(frmLen, N, M);
z_e = zeros(frmLen, M); z1_e = zeros(frmLen/N, M); z2_e = z1_e;
BER22_e = zeros(1, length(EbNo));
%%
% Set up a figure for visualizing BER results
h=gcf; grid on; hold on; %Clear current figure window
set(gca,'yscale','log','xlim',[EbNo(1), EbNo(end)],'ylim',[1e-4 1]);
xlabel('Eb/No (dB)'); ylabel('BER'); set(h,'NumberTitle','off');
set(h,'Name','Orthogonal Space-Time Block Coding');
set(h, 'renderer', 'zbuffer'); title('G2-coded 2x2 System');
% Loop over several EbNo points
for idx = 1:length(EbNo) %index索引
numPackets = 0; totNumErr22_e = 0;
% Loop till the number of errors exceed 'maxNumErrs'直到超出最大误码数or the
% maximum number of packets have been simulated
for zct_i = 1:3000
if totNumErr22_e < maxNumErrs
data = randi(hStr, [0 P-1], frmLen, 1); % data vector per user
%randi产生均匀分布伪随机整数r = randi(s,[imin,imax],...)取值范围在imin imax之间,randi使那些值取自s
% per channel
tx = modulate(bpskmod, data); % BPSK modulation
% Alamouti Space-Time Block Encoder, G2, full rate
% G2 = [s1 s2; -s2* s1*]
s1 = tx(1:N:end); s2 = tx(2:N:end);
tx2(1:N:end, :) = [s1 s2];
tx2(2:N:end, :) = [-conj(s2) conj(s1)];
% Prepend pilot symbols for each frame
transmit = [pilots; tx2];%分号表不同行 调制编码后加入导频符号,频域数据加导频 基于空频域的导频结构
%参课本P21MIMO多天线。。。
%平坦瑞利衰落信道移动台接收到的信号为g(t)=gc(t)+jgs(t);当入射波数N比较大时,gc(t)gs(t)近似高斯分布
% Create the Rayleigh distributed channel response matrix
H(1, :, :) = (randn(hStr, N, M) + 1i*randn(hStr, N, M))/sqrt(2);%a =randn(),H(1,:,:)=[a+ia]/sqrt(2)]很有可能为正弦叠加法的Jakes模型
%sqrt(1/2)是用来将能量进行归一化的。因为实部和虚部都是方差为1的高斯变量,其模就是sqrt(2)了。
% assume held constant for the whole frame and pilot symbols保持为常数
H = H(ones(pLen + frmLen, 1), :, :);
% Received signal for each Rx antenna
% with pilot symbols transmitted
for i = 1:M
% with normalized( 归一化) Tx power
r(:, i) = awgn(sum(H(:, :, i).*transmit, 2)/sqrt(N), ...
EbNo(idx), 0, hStr);
end
% Channel Estimation
% For each link => N*M estimates
for n = 1:N %设置一帧中的第一时隙中H的值
H_e(1, n, :) = (r(1:pLen, :).' * pilots(:, n))./pLen;
end
% assume held constant for the whole frame
H_e = H_e(ones(frmLen, 1), :, :);
% Combiner合成器 using estimated channel %用信道估计得到的H的估计值用于解码,使解码更精确
heidx = 1:N:length(H_e);
for i = 1:M
z1_e(:, i) = r(pLen+1:N:end, i).* conj(H_e(heidx, 1, i)) + ...
conj(r(pLen+2:N:end, i)).* H_e(heidx, 2, i);
z2_e(:, i) = r(pLen+1:N:end, i).* conj(H_e(heidx, 2, i)) - ...
conj(r(pLen+2:N:end, i)).* H_e(heidx, 1, i);
end
z_e(1:N:end, :) = z1_e; z_e(2:N:end, :) = z2_e;
% ML Detector (minimum Euclidean distance)
demod22_e = demodulate(bpskdemod, sum(z_e, 2)); % estimated
% Determine errors
numPackets = numPackets + 1;
totNumErr22_e = totNumErr22_e + biterr(demod22_e, data);
end
end % end of FOR loop for numPacket
% Calculate BER for current idx
% for estimated channel
BER22_e(idx) = totNumErr22_e/(numPackets*frmLen);
% Plot results
semilogy(EbNo(1:idx), BER22_e(1:idx), 'ro');
legend(['Channel estimated with ' num2str(pLen) ' pilot symbols/frame']);
drawnow;
end % end of for loop for EbNo
% Perform curve曲线 fitting and replot the results
fitBER22_e = berfit(EbNo, BER22_e);
semilogy(EbNo, fitBER22_e, 'r'); hold off;%曲线倾斜度表示分集增益
MIMO.rar_简单MIMO
版权申诉
103 浏览量
2022-09-23
12:56:32
上传
评论
收藏 3KB RAR 举报
APei
- 粉丝: 63
- 资源: 1万+