【问题标题】:Random integer in MATLABMATLAB中的随机整数
【发布时间】:2013-05-17 15:25:05
【问题描述】:

我需要使用矩形 16QAM 调制方案生成一个包含 0 到 15 的 40320 个整数的随机数字消息的输入信号,其中至少有 101 个错误,以确定误码率。

如何在 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);

【问题讨论】:

    标签: string algorithm matlab matrix


    【解决方案1】:

    据我了解,您所需要的只是一个长度为 40320 的向量,其中包含区间 [1, 15] 中的随机整数。如果是这样,您只需要:

    my_vector = randi(15 + 1, [1, 40320]) - 1;
    

    请说明您需要的是什么,以防这不是您想要的。

    【讨论】:

    • 感谢您的回复,但是我正在尝试实现 16QAM 格雷码排列,以便模拟运行直到发生 101 位错误,以便我计算各种 Eb/No 值的 BER(误码率)
    猜你喜欢
    • 2018-04-16
    • 2019-04-13
    • 1970-01-01
    • 2018-01-28
    • 2011-02-27
    • 2018-02-01
    • 1970-01-01
    相关资源
    最近更新 更多