Stretch processor for linear FM waveform
The StretchProcessor object performs stretch processing on data from a linear FM waveform.
To perform stretch processing:
H = phased.StretchProcessor creates a stretch processor System object™, H. The object performs stretch processing on data from a linear FM waveform.
H = phased.StretchProcessor(Name,Value) creates a stretch processor object, H, with additional options specified by one or more Name,Value pair arguments. Name is a property name, and Value is the corresponding value. Name must appear inside single quotes (''). You can specify several name-value pair arguments in any order as Name1,Value1,…,NameN,ValueN.
Specify the sample rate, in hertz, as a positive scalar. The quantity (SampleRate ./ PRF) is a scalar or vector that must contain only integers. The default value of this property corresponds to 1 MHz.
Specify the length of each pulse (in seconds) as a positive scalar. The value must satisfy PulseWidth <= 1./PRF.
Pulse repetition frequency
Specify the pulse repetition frequency (in hertz) as a scalar or a row vector. The default value of this property corresponds to 10 kHz.
To implement a constant PRF, specify PRF as a positive scalar. To implement a staggered PRF, specify PRF as a row vector with positive elements. When PRF is a vector, the output pulses use successive elements of the vector as the PRF. If the last element of the vector is reached, the process continues cyclically with the first element of the vector.
The value of this property must satisfy these constraints:
FM sweep slope
Specify the slope of the linear FM sweeping, in hertz per second, as a scalar.
Location of FM sweep interval
Specify the linear FM sweeping interval using the value 'Positive' or 'Symmetric'. If SweepInterval is 'Positive', the waveform sweeps in the interval between 0 and B, where B is the sweeping bandwidth. If SweepInterval is 'Symmetric', the waveform sweeps in the interval between –B/2 and B/2.
Signal propagation speed
Specify the propagation speed of the signal, in meters per second, as a positive scalar.
Default: Speed of light
Reference range of stretch processing
Specify the center of ranges of interest, in meters, as a positive scalar. The reference range must be within the unambiguous range of one pulse. This property is tunable.
Span of ranges of interest
Specify the length of the interval for ranges of interest, in meters, as a positive scalar. The range span is centered at the range value specified in the ReferenceRange property.
|clone||Create stretch processor with same property values|
|getNumInputs||Number of expected inputs to step method|
|getNumOutputs||Number of outputs from step method|
|isLocked||Locked status for input attributes and nontunable properties|
|release||Allow property value and input characteristics changes|
|step||Perform stretch processing for linear FM waveform|
Use stretch processing to locate a target at a range of 4950 m.
Simulate the signal.
hwav = phased.LinearFMWaveform; x = step(hwav); c = 3e8; r = 4950; num_sample = r/(c/(2*hwav.SampleRate)); x = circshift(x,num_sample);
Perform stretch processing.
hs = getStretchProcessor(hwav,5000,200,c); y = step(hs,x);
Plot the spectrum of the resulting signal.
[Pxx,F] = periodogram(y,,2048,hs.SampleRate,'centered'); plot(F/1000,10*log10(Pxx)); grid; xlabel('Frequency (kHz)'); ylabel('Power/Frequency (dB/Hz)'); title('Periodogram Power Spectrum Density Estimate');
Detect the range.
[~,rngidx] = findpeaks(pow2db(Pxx/max(Pxx)),... 'MinPeakHeight',-5); rngfreq = F(rngidx); re = stretchfreq2rng(rngfreq,hs.SweepSlope,... hs.ReferenceRange,c);