Generate a random sequence of PAM-4 but with values -1,-0.33,0.33,1

17 views (last 30 days)
How to create a random PAM-4 signal with amplitude values of -1, -.033, 0.33, 1?

Answers (1)

the cyclist
the cyclist on 15 Jan 2023
Edited: the cyclist on 15 Jan 2023
I didn't research PAM-4 enough to know whether each element is independent from prior values. The following code will generate a sequence of a specified length, randomly (and independently) selecting each element from the list of amplitudes. Maybe that is what you need, or you can adapt the idea.
% Set a random number generator seed
rng(2)
% Set the signal length and amplitude list
signalLength = 7;
amplitudeValues = [1, -.033, 0.33, 1];
% Generate a random index into the amplitude list
idx = randi(numel(amplitudeValues),signalLength,1);
% Get the amplitudes
signal = amplitudeValues(idx)
signal = 1×7
-0.0330 1.0000 0.3300 -0.0330 -0.0330 -0.0330 1.0000
If you have the Statistics and Machine Learning Toolbox, you could use randsample to simplify the syntax:
signalLength = 7;
amplitudeValues = [1, -.033, 0.33, 1];
signal = randsample(amplitudeValues,signalLength,true)
signal = 1×7
0.3300 -0.0330 -0.0330 0.3300 0.3300 1.0000 0.3300

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!