Up Conversion and Down Conversion in Phased Array Toolbox

19 views (last 30 days)
I would like to know if I need to Up convert my signal from Baseband to Operating frequency or just need to input my Baseband Signal to phased.array radiator object??? if I upconvert my signal and then down convert the output signal. Then it gives me wrong results of Doppler shift.

Accepted Answer

George
George on 24 Jan 2024
Hi Waseem, you just need to input your baseband signal to the radiator object.
If you look at the phased.Radiator object, you will notice an 'OperatingFrequency' property. The underlying assumption of the phased.Radiator object is that your signal data is the baseband signal which modulates a carrier frequency.
  4 Comments
Waseem
Waseem on 25 Jan 2024
Edited: Waseem on 25 Jan 2024
I am mixing the complex Baseband Signal with carrier signal using IQ modulation in first stage and then mixing with another carrier signal using only cos and then filtering out the image. Then this signal is fed to radiator. I am also upsampling the signal to match the carrier signal sampling frequency.
%%
close all; clear; clc;
PW = 3.33e-6;
PRF = 30e3;
BW = 30e6;
fs_BB = 90e6;
waveform = phased.LinearFMWaveform('SampleRate',fs_BB,'PulseWidth',PW,'PRF',PRF,'SweepBandwidth', BW,'SweepDirection','Up',...
'Envelope','Rectangular','OutputFormat','Pulses','NumPulses',1);
Baseband = waveform();
N = size(Baseband,1);
%%
up_freq = 395e6;
fs = 1.17e9; % Sample rate
x_up_sampled = interp(Baseband, 13);
N_1 = size(x_up_sampled,1);
sinewave = dsp.SineWave('Frequency',up_freq,'SampleRate',fs,'SamplesPerFrame',N_1);
coswave = dsp.SineWave('Frequency',up_freq,'SampleRate',fs, 'PhaseOffset', pi/2 , 'SamplesPerFrame',N_1);
xCos = coswave();
xSin = sinewave();
x_up = xCos .* real(x_up_sampled) + xSin .* imag(x_up_sampled);
%%
up_freq_2 = 9.62e9;
fs_2 = 32.76e9;
x_up_sampled_2 = interp(x_up, 28);
N_2 = size(x_up_sampled_2,1);
coswave = dsp.SineWave('Frequency',up_freq_2,'SampleRate',fs_2, 'PhaseOffset', pi/2 , 'SamplesPerFrame',N_2);
xCos = coswave();
xUp2 = xCos .* x_up_sampled_2;
[sig,d] = bandpass(xUp2, [9.985 10.015]*1e9, fs_2, 'StopbandAttenuation', 120);
George
George on 29 Jan 2024
Hi Waseem - thanks for providing this information, now I understand what you are doing.
It seems that the phased.Radiator does not provide any support for propagating unmodulated signals. Therefore, I think that the phased.Radiator will only work with your baseband signal, with the OperatingFrequency property set to the final carrier frequency of the transmitted signal.

Sign in to comment.

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!