Set-up of a coherent receiver / comparison with Hilbert Transform: Error using phased.Rec​eiverPream​p/parenRef​erence Not enough input arguments. Expected 2 (in addition to System object), got 1.

1 view (last 30 days)
Hi everyone,
I am trying to compare the behavior of a coherent receiver and the Hilbert Transform. My code for the Hilbert transform is the following and works well:
fs = 1e4;
t = 0:1/fs:1;
x=2.5 + cos(2*pi*203*t) + sin(2*pi*721*t) + cos(2*pi*1001*t);
y = hilbert(x);
plot(t,real(y),t,imag(y))
xlim([0.01 0.03])
legend('real','imaginary')
title('hilbert Function')
But I have troubles computing the receiver:
fs = 1e4;
t = 0:1/fs:1;
receiver = phased.ReceiverPreamp('NoiseFigure',60,'SampleRate',fs,'PhaseNoiseInputPort',true,'NoiseComplexity', 'Complex');
x = 2.5 + cos(2*pi*203*t) + sin(2*pi*721*t) + cos(2*pi*1001*t);
y = receiver(x);
plot(t,real(y),t,imag(y))
xlim([0.01 0.03])
xlabel('Time (s)')
legend('real','imaginary')
title('Coherent Receiver')
I have the following error: Error using phased.ReceiverPreamp/parenReference. Not enough input arguments. Expected 2 (in addition to System object), got 1.
I don't know which argument Matlab expects.
Thank you in advance for your help!

Accepted Answer

Siriniharika Katukam
Siriniharika Katukam on 30 Oct 2019
Hi,
You have set the property “PhaseNoiseInputPort” to 'true'. The documentation page says that whenever you set it to 'true', you need to specify the phase noise for each incoming sample. So, pass the phase noise in the line (say for example k)
y = receiver(x,k);
This resolves the error you encountered. You can refer to the property from the following link.

More Answers (0)

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!