Up Conversion and Down Conversion in Phased Array Toolbox

19 vues (au cours des 30 derniers jours)
Waseem
Waseem le 23 Jan 2024
Commenté : George le 29 Jan 2024
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.

Réponse acceptée

George
George le 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 commentaires
Waseem
Waseem le 25 Jan 2024
Modifié(e) : Waseem le 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 le 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.

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by