phased.Receiver Noise Figure and SNR ratio
I’m trying to verify the definition of the Noise factor (or Noise figure, if in db) , i.e.
at the input and output of a receiver modelled as a phased.Receiver matlab system object.
rng(1, "twister"); % for repeatability
fs = 100e6;
f = 100e3;
time_array = 0:1/fs:1/f;
waveform = sin(2*pi*f*time_array);
SNR_i = 30; %dB
input = awgn(waveform, SNR_i, ‘measured’);
noise_input = input – waveform;
SNR_i = snr(waveform, noise_input); % So far, so good
gain = 30; %dB
noiseFigure = 20;
refTemp = 290;
rec = phased.Receiver(‘Gain’, gain, …
‘NoiseMethod’, ‘Noise figure’, …
‘NoiseFigure’, noiseFigure, …
‘ReferenceTemperature’, refTemp, …
‘SampleRate’, fs);
output = rec(input);
amplifiedSignalNoNoise = waveform*db2mag(gain);
plot(time_array, real(output)); hold on
plot(time_array, amplifiedSignalNoNoise, ‘LineWidth’, 2); hold off
noise_output = output – amplifiedSignalNoNoise;
SNR_o = snr(amplifiedSignalNoNoise, noise_output);
Unfortunately, I don’t find the 20 dB of Noise Figure when doing SNR_i – SNR_o. Same problem arrives if I use phased.Transmitter or phased.ReceiverPreamp. What am I missing?I’m trying to verify the definition of the Noise factor (or Noise figure, if in db) , i.e.
at the input and output of a receiver modelled as a phased.Receiver matlab system object.
rng(1, "twister"); % for repeatability
fs = 100e6;
f = 100e3;
time_array = 0:1/fs:1/f;
waveform = sin(2*pi*f*time_array);
SNR_i = 30; %dB
input = awgn(waveform, SNR_i, ‘measured’);
noise_input = input – waveform;
SNR_i = snr(waveform, noise_input); % So far, so good
gain = 30; %dB
noiseFigure = 20;
refTemp = 290;
rec = phased.Receiver(‘Gain’, gain, …
‘NoiseMethod’, ‘Noise figure’, …
‘NoiseFigure’, noiseFigure, …
‘ReferenceTemperature’, refTemp, …
‘SampleRate’, fs);
output = rec(input);
amplifiedSignalNoNoise = waveform*db2mag(gain);
plot(time_array, real(output)); hold on
plot(time_array, amplifiedSignalNoNoise, ‘LineWidth’, 2); hold off
noise_output = output – amplifiedSignalNoNoise;
SNR_o = snr(amplifiedSignalNoNoise, noise_output);
Unfortunately, I don’t find the 20 dB of Noise Figure when doing SNR_i – SNR_o. Same problem arrives if I use phased.Transmitter or phased.ReceiverPreamp. What am I missing? I’m trying to verify the definition of the Noise factor (or Noise figure, if in db) , i.e.
at the input and output of a receiver modelled as a phased.Receiver matlab system object.
rng(1, "twister"); % for repeatability
fs = 100e6;
f = 100e3;
time_array = 0:1/fs:1/f;
waveform = sin(2*pi*f*time_array);
SNR_i = 30; %dB
input = awgn(waveform, SNR_i, ‘measured’);
noise_input = input – waveform;
SNR_i = snr(waveform, noise_input); % So far, so good
gain = 30; %dB
noiseFigure = 20;
refTemp = 290;
rec = phased.Receiver(‘Gain’, gain, …
‘NoiseMethod’, ‘Noise figure’, …
‘NoiseFigure’, noiseFigure, …
‘ReferenceTemperature’, refTemp, …
‘SampleRate’, fs);
output = rec(input);
amplifiedSignalNoNoise = waveform*db2mag(gain);
plot(time_array, real(output)); hold on
plot(time_array, amplifiedSignalNoNoise, ‘LineWidth’, 2); hold off
noise_output = output – amplifiedSignalNoNoise;
SNR_o = snr(amplifiedSignalNoNoise, noise_output);
Unfortunately, I don’t find the 20 dB of Noise Figure when doing SNR_i – SNR_o. Same problem arrives if I use phased.Transmitter or phased.ReceiverPreamp. What am I missing? snr, phased.receiver MATLAB Answers — New Questions