MATLAB: Phase Noise on QPSK Signal

Communications Toolboxr2016a to r2016b

I am working with MATLAB R2016a. When I attempt to execute the below code I get the following error:
Array formation and parentheses-style indexing with objects of class
'comm.QPSKModulator' is not allowed. Use objects of class
'comm.QPSKModulator' only as scalars or use a cell array.
Error in qpskemv (line 23)
x = qpskModulator(d);
CODE:
qpskModulator = comm.QPSKModulator;
phNoise = comm.PhaseNoise('Level',-55,'FrequencyOffset',20,'SampleRate',1000);
d = randi([0 3],1000,1);
x = qpskModulator(d);
y = phNoise(x);
There is a note stating of course: "Starting in R2016b, instead of using the step method to perform the operation defined by the System objectâ„¢, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operation"
Can anyone tell me how to use this step to correct the above code?

Best Answer

As the note suggests, y = obj(x) is equivalent to y = step(obj,x) starting R2016b. In R2016a, y = step(obj,x) is the correct syntax. Replace these two lines -
x = qpskModulator(d);
y = phNoise(x);
with -
x = step(qpskModulator,d);
y = step(phNoise,x);
Thanks,
Chandresh
Related Question