MATLAB Answers

Decision Feedback Equalizer Crashes Matlab with InputSamplesPerSymbol option

8 views (last 30 days)
Arda Karaca
Arda Karaca on 3 May 2021
Commented: Arda Karaca on 16 May 2021
I make use of Decision Feedback Equalizer from Communications Toolbox with PAM-2 (OOK) signal. In my setup each symbol has 10 samples and I used "InputSamplesPerSymbol" parameter in the equalizer initializaiton.
DFE compiles succesfully however when I call the DFE with data, MATLAB crashes without any warnings/errors/output.
I have tried this on another setup as well and the result is no different. What can be a potential cause and what would be a possible workaround or a solution?
%% Generate Samples
numTrainSymbols = 200;
numDataSymbols = 1800;
numSamples = 10;
trainingSymbols = real(pammod(randi([0 1],numTrainSymbols,1),2));
dataSymbols = real(pammod(randi([0 1],numDataSymbols,1),2));
stream = repelem([trainingSymbols; dataSymbols], numSamples);
SNR = 20;
ch_out = awgn(stream, 20);
%% Input Data
dfeq = comm.DecisionFeedbackEqualizer('Algorithm','LMS', ...
'NumForwardTaps',5,...
'NumFeedbackTaps',4,...
'ReferenceTap',5,...
"Constellation", [-1 1], ...
'StepSize',0.001, ...
"InputSamplesPerSymbol", numSamples);
[y, err, weights] = dfeq(ch_out, trainingSymbols);

Accepted Answer

Sindhu Karri
Sindhu Karri on 13 May 2021
Hii,
I tried to run the code in MATLAB R2021a and it gave the following error message.
numTrainSymbols = 200;
numDataSymbols = 1800;
numSamples = 10;
trainingSymbols = real(pammod(randi([0 1],numTrainSymbols,1),2));
dataSymbols = real(pammod(randi([0 1],numDataSymbols,1),2));
stream = repelem([trainingSymbols; dataSymbols], numSamples);
SNR = 20;
ch_out = awgn(stream, 20);
%% Input Data
dfeq = comm.DecisionFeedbackEqualizer('Algorithm','LMS', ...
'NumForwardTaps',5,...
'NumFeedbackTaps',4,...
'ReferenceTap',5,...
"Constellation", [-1 1], ...
'StepSize',0.001, ...
"InputSamplesPerSymbol", numSamples);
[y, err, weights] = dfeq(ch_out, trainingSymbols);
Error using comm.DecisionFeedbackEqualizer/validatePropertiesImpl (line 166)
NumForwardTaps must be greater than or equal to InputSamplesPerSymbol.
Changing the value of 'NumForwardTaps' property to some value like 15 which is greater that numSamples helps to resolve the issue.
When I executed the same code in R2020a MATLAB crashes.So,I recommend you to update the MATLAB since this issue fixed in later releases.
Refer to below link to update the MATLAB
Hope this helps!!
  1 Comment
Arda Karaca
Arda Karaca on 16 May 2021
Exactly. I later contacted MATLAB technical support. They let me know that 2020a does not check for inputs properly and this issue is later fixed in the new version. Thank you for your reply!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!