-3
为了确定误码率,我需要使用矩形16QAM调制方案生成一个随机数字消息的输入信号,该消息由从0到15的40320个整数组成,最小误差为101个。MATLAB中的随机整数
如何在Matlab中实现这个功能?到目前为止,我已经写了这些代码。任何人都可以启发我吗?
M=16; %signal constellation size
log2M =log2(M); %number of bits per symbol
N= 40320; %No of random integers sent
coderate =1;% FEC not required
MinNoErr =101; %Minimum no of received symbol error
MaxNoErr =11e9; %Maximum no of received symbol error
nsamp =1; %No of samples per symbol
B= randi([1, M-1],N,1); % Random integer data stream
% Modulate
hMod = comm.RectangularQAMModulator(M); % Create a 16-QAM modulator
txqam = modulate(modem.qammod(M),B);% Modulate using 16-QAM.
txqam =T; %transmited signal
% Send signal over an AWGN channel
EbNo = [5:1:15]; % In dB
SNR = EbNo + 10*log10(log2M*coderate) - 10*log10(nsamp);
hChan = comm.AWGNChannel('NoiseMethod', 'Signal to noise ratio (SNR)', ...
'SNR',SNR);
hChan.SignalPower = (T' * T)/ length(T);
ynoisy = step(hChan,T);
感谢您的回应,但我试图实现16QAM格雷码排列,使模拟运行,直到发生101位错误,使我能够计算各种Eb/No值的BER(误码率) – Dammy