%% Set simulation parametrs & initialize parameter structures commlteMIMO_params; [prmLTEPDSCH, prmLTEDLSCH, prmMdl] = commlteMIMO_initialize(txMode, ... chanBW, contReg, modType, Eqmode,numTx, numRx,cRate,maxIter, fullDecode, chanMdl, corrLvl, ... chEstOn, snrdB, maxNumErrs, maxNumBits); clear txMode chanBW contReg modType Eqmode numTx numRx cRate maxIter fullDecode chanMdl corrLvl chEstOn snrdB maxNumErrs maxNumBits %% disp('Simulating the LTE Mode 2: Multiple Tx & Rx antrennas with transmit diversity'); zReport_data_rate(prmLTEPDSCH, prmLTEDLSCH); hPBer = comm.ErrorRate; snrdB=prmMdl.snrdB; maxNumErrs=prmMdl.maxNumErrs; maxNumBits=prmMdl.maxNumBits; %% Simulation loop nS = 0; % Slot number, one of [0:2:18] Measures = zeros(3,1); %initialize BER output while (( Measures(2)< maxNumErrs) && (Measures(3) < maxNumBits)) [dataIn, dataOut, txSig, rxSig, dataRx, yRec, csr] = ... commlteMIMO_TD_step(nS, snrdB, prmLTEDLSCH, prmLTEPDSCH, prmMdl); % Calculate bit errors Measures = step(hPBer, dataIn, dataOut); % Visualize constellations and spectrum if visualsOn, zVisualize( prmLTEPDSCH, txSig, rxSig, yRec, dataRx, csr, nS);end; % Update subframe number nS = nS + 2; if nS > 19, nS = mod(nS, 20); end; end disp(Measures);
时间: 2023-12-04 16:03:02 浏览: 86
这段Matlab代码是LTE系统的仿真程序。首先通过调用函数commlteMIMO_params和commlteMIMO_initialize来设置仿真参数和初始化参数结构。然后通过调用函数zReport_data_rate来输出PDSCH和DLSCH的数据速率。
接着定义了一个comm.ErrorRate对象hPBer用于计算误码率。将参数snrdB、maxNumErrs和maxNumBits赋值给相应的变量。
然后进入仿真循环,通过调用函数commlteMIMO_TD_step来模拟LTE系统的传输过程。在每个时隙结束时,调用step函数计算误码率。如果开启了可视化选项,调用函数zVisualize来显示星座图和频谱。最后更新时隙号nS,直到误码率或者比特数达到最大值为止。
最后通过disp函数输出误码率和比特数。
阅读全文