BERtool showing "Too many input arguements"

조회 수: 9 (최근 30일)
Dharmik Bhanushali
Dharmik Bhanushali 2021년 5월 6일
답변: Shiva Kalyan Diwakaruni 2021년 5월 12일
here is the code.On running this fuction code in BERTool/BER Analysis i get some error(read title for the error msg)
function [ber, bits]=WNproj(EbNo, maxNumErrs, maxNumBits)
%% Constants
FRM=2048;
Trellis=poly2trellis(4, [13 15], 13);
Indices=randperm(FRM);
M=4;k=log2(M);
R= FRM/(3* FRM + 4*3);
snr = EbNo + 10*log10(k) + 10*log10(R);
noise_var = 10.^(-snr/10);
%% Initializations
persistent Modulator AWGN DeModulator BitError TurboEncoder TurboDecoder
if isempty(Modulator)
Modulator = comm.QPSKModulator('BitInput',true);
AWGN = comm.AWGNChannel;
DeModulator = comm.QPSKDemodulator('BitOutput',true);
BitError = comm.ErrorRate;
TurboEncoder=comm.TurboEncoder('TrellisStructure',Trellis,'InterleaverIndices',Indices);
TurboDecoder=comm.TurboDecoder('TrellisStructure',Trellis,'InterleaverIndices',Indices,'NumIterations',6);
end
%% Processsing loop modeling transmitter, channel model and receiver
AWGN.EbNo=snr;
numErrs = 0; numBits = 0;results=zeros(3,1);
while ((numErrs < maxNumErrs) && (numBits < maxNumBits))
% Transmitter
u = randi([0 1], FRM,1); % Random bits generator
encoded = TurboEncoder.step(u); % Turbo Encoder
mod_sig = Modulator.step(encoded); % QPSK Modulator
% Channel
rx_sig = AWGN.step(mod_sig); % AWGN channel
% Receiver
demod = DeModulator.step(rx_sig, noise_var); % Soft-decision QPSK Demodulator
decoded = TurboDecoder.step(-demod); % Turbo Decoder
y = decoded(1:FRM); % Compute output bits
results = BitError.step(u, y); % Update BER
numErrs = results(2);
numBits = results(3);
end
%% Clean up & collect results
ber = results(1); bits= results(3);
reset(BitError);

답변 (1개)

Shiva Kalyan Diwakaruni
Shiva Kalyan Diwakaruni 2021년 5월 12일
Hi,
demod = DeModulator.step(rx_sig, noise_var); uses soft decision demodulation and noise variance VAR. This syntax applies when you set the BitOutput property to true, the DecisionMethod property to Approximate log-likelihood ratio or Log-likelihood ratio, and the VarianceSource property to Input port. The data type of input VAR must be double or single precision.
Hence in your code BitOutput property is set to true but the DecisionMethod property also should be set to Approximate log-likelihood ratio or Log-likelihood ratio, and the VarianceSource property should be set to Input port
Hope it helps.

카테고리

Help CenterFile Exchange에서 Modulation에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by