step() for constant gamma clutter

2 vues (au cours des 30 derniers jours)
Chris Jagielski
Chris Jagielski le 2 Oct 2015
Commenté : Chris Jagielski le 13 Oct 2015
Hello,
I am running some code with the constant gamma clutter step() function. My waveform is changed to "sample" output, not the default "pulse" output.
When I run the step function twice in a row, the first time I get my correct MxN matrix (M number of samples, N number of antenna elements in my array). However, the second sequential step() gives an incorrectly sized matrix.
The third time in a row, it's correct MxN again, and so on.
How can I try to troubleshoot this?
Thank you for any ideas!
  3 commentaires
Chris Jagielski
Chris Jagielski le 5 Oct 2015
Yes: it's lengthy but here it is.
if true
% test code
%
% this shows that calling step twice on the clutter model creates an issue
% where the size of the output matrices are different each time
%
% 5 October 2015
%
%
% ver
% ----------------------------------------------------------------------------------------------------
% MATLAB Version: 8.3.0.532 (R2014a)
% MATLAB License Number: ••••••
% Operating System: Linux 3.5.0-37-generic #58~precise1-Ubuntu SMP Wed Jul 10 17:48:11 UTC 2013 x86_64
% Java Version: Java 1.7.0_11-b21 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
% ----------------------------------------------------------------------------------------------------
% MATLAB Version 8.3 (R2014a)
% Communications System Toolbox Version 5.6 (R2014a)
% Curve Fitting Toolbox Version 3.4.1 (R2014a)
% DSP System Toolbox Version 8.6 (R2014a)
% Fixed-Point Designer Version 4.2 (R2014a)
% Instrument Control Toolbox Version 3.5 (R2014a)
% Mapping Toolbox Version 4.0.1 (R2014a)
% Parallel Computing Toolbox Version 6.4 (R2014a)
% Phased Array System Toolbox Version 2.2 (R2014a)
% Signal Processing Toolbox Version 6.21 (R2014a)
% Statistics Toolbox Version 9.0 (R2014a)
%
clear all
c = physconst('LightSpeed');
fc = 10e9;
numSamples = 100;
targetVel = [10 10 10];
targetPos = [3700 10 700];
max_unambiguous_range = 15000; %[m] this affects the PRF
range_resolution_required = 50; %[m] this affects the pulse BW
tx_gain = 20; %[dB]
platformheight = 500; %[m]
txPos = [0; 0; platformheight];
txVel = [0; 0; 0];
platformDirection = [0;0];
pulse_bw = c/(2*range_resolution_required); % Pulse bandwidth [Hz]
pulse_width = 10/pulse_bw; % Pulse width [seconds]
prf = c/(2*max_unambiguous_range); % Pulse repetition frequency
fs = 10*pulse_bw; % Sampling rate [Hz]
myFreqValues = [0 1e20];
myFreqResponses = [0 0];
Az = -180:1:180;
El = -90:1:90;
AzEl_RadPattern = ones(length(El),length(Az));
h_antenna = phased.CustomAntennaElement(...
'AzimuthAngles',Az,...
'ElevationAngles',El,...
'RadiationPattern',AzEl_RadPattern,...
'FrequencyVector',myFreqValues,...
'FrequencyResponse',myFreqResponses);
trgamma = surfacegamma('flatland');
rx_speed = sqrt((txVel(1))^2 + (txVel(2))^2 + (txVel(3))^2);
h_clutter = phased.ConstantGammaClutter(...
'Sensor',h_antenna,...
'PropagationSpeed',c,...
'OperatingFrequency',fc,...
'SampleRate',fs,...
'TransmitSignalInputPort',true,...
'PRF',prf,...
'Gamma',trgamma,...
'PlatformHeight',platformheight,...
'PlatformSpeed',rx_speed,...
'PlatformDirection',platformDirection,...
'BroadsideDepressionAngle',0,...
'MaximumRange',max_unambiguous_range,...
'AzimuthCoverage',360,...
'PatchAzimuthWidth',10,...
'SeedSource','Property',...
'Seed',2015,...
'OutputFormat','Samples',...
'NumSamples',numSamples);
h_wave = phased.LinearFMWaveform(...
'PulseWidth',pulse_width,...
'PRF',prf,...
'SweepBandwidth',pulse_bw,...
'SampleRate',fs,...
'OutputFormat','Samples',...
'NumSamples',numSamples);
h_tx = phased.Transmitter(...
'Gain', tx_gain, ...
'LossFactor', 0, ...
'PeakPower', 500, ...
'InUseOutputPort', true, ...
'CoherentOnTransmit', false, ...
'PhaseNoiseOutputPort', true );
% -------------------------------------------------------
% Generate pulse
x = step(h_wave);
% Transmit pulse
release(h_tx);
[s, tx_status, pnoise] = step(h_tx,x);
% Y = step(H,X) specifies the transmit signal in X. Transmit signal refers
% to the output of the transmitter while it is on during a given pulse.
% This syntax is available when you set the TransmitSignalInputPort
% property to true.
csig1 = step(h_clutter,s(abs(s)>0));
csig2 = step(h_clutter,s(abs(s)>0));
csig3 = step(h_clutter,s(abs(s)>0));
csig4 = step(h_clutter,s(abs(s)>0));
size(csig1)
size(csig2)
size(csig3)
size(csig4)
% Note that the size changes!
end
Chris Jagielski
Chris Jagielski le 13 Oct 2015
Is anyone able to duplicate this? Perhaps I am using it wrong, any guidance would be very helpful.

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by