Subarray Simulation have different output by using similar method
Afficher commentaires plus anciens
Hi there
Currently, we want simulation a radar platform with 2 recv channels and 1 trx channel. Each channel is hooked with a subarray. Each subarray is a 6 by 3 array with the isotropic antenna. The following is the code for building this radar platform. As the code shown, we are using two methods to build the receiving array: "ula_r" and "ula_r2". From the attached figure, we can see that the power level of two received signal, rxsig and rxsig2, are different.
So my question is, which array I may use to simulate, "ula_r" or "ula_r2"?
I am using MATLAB 2017a
Thanks Xining Yu
clear
close all
fc = 24e9;
fs = 150e6;
c = physconst('LightSpeed');
lambda = c/fc;
spacing = lambda*6.4;
IsoTro = phased.IsotropicAntennaElement('FrequencyRange',[10e9,50e9],...
'BackBaffled',true);
%construct subarray
subarray = phased.URA('Element',IsoTro,'Size',[3 6],'ElementSpacing',[lambda/2, lambda/2]);
[embpattern, az, el] = pattern(subarray,fc);
ant_sub = phased.CustomAntennaElement('FrequencyVector',[10e9,50e9],...
'AzimuthAngles',az,...
'ElevationAngles',el,...
'MagnitudePattern',embpattern,...
'PhasePattern',zeros(size(embpattern)));
% waveform
waveform = phased.FMCWWaveform('SweepTime',1e-3,'SweepBandwidth',150e6,...
'SampleRate',fs);
%%one transmitter
tx_ppower = db2pow(6.2)*1e-3; % convert 6.2dBm in watts
transmitter = phased.Transmitter('PeakPower',tx_ppower,'Gain',0);
radiator = phased.Radiator('Sensor',ant_sub,'OperatingFrequency',fc);
%%two receivers
N=2;
ula_r = phased.ReplicatedSubarray('Subarray',subarray,'GridSize',[1 N],'GridSpacing' ,[spacing,spacing]);
% Another way to construct receiving array
ula_r2 = phased.ULA('Element',ant_sub,'NumElements',N,'ElementSpacing',spacing);
rx_gain = 12; % in dB
rx_nf = 10; % in dB
receiver = phased.ReceiverPreamp('Gain',rx_gain,'NoiseFigure',rx_nf, 'SampleRate',fs);
collector = phased.Collector('Sensor',ula_r,'OperatingFrequency',fc);
collector2 = phased.Collector('Sensor',ula_r2,'OperatingFrequency',fc);
% Transmit FMCW waveform
sig = waveform();
txsig = transmitter(sig);
txsig = radiator(txsig,0);
% the received radar return
rxsig = collector(txsig,0);
rxsig = receiver(rxsig);
rxsig2 = collector2(txsig,0);
rxsig2 = receiver(rxsig2);
figure(1)
plot(abs(rxsig(:,1)))
title('rxsig')
figure(2)
plot(abs(rxsig2(:,1)))
title('rxsig2')


Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Transmitters and Receivers dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!