step() for constant gamma clutter

조회 수: 2 (최근 30일)
Chris Jagielski
Chris Jagielski 2015년 10월 2일
댓글: Chris Jagielski 2015년 10월 13일
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
Chris Jagielski
Chris Jagielski 2015년 10월 5일
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 2015년 10월 13일
Is anyone able to duplicate this? Perhaps I am using it wrong, any guidance would be very helpful.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Pulsed Waveforms에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by