blah2
A real-time passive radar
Ambiguity Class Reference

A class to implement a ambiguity map processing. More...

#include <Ambiguity.h>

Collaboration diagram for Ambiguity:
Collaboration graph

Classes

struct  PerformanceStats
 

Public Types

using Complex = std::complex< double >
 

Public Member Functions

 Ambiguity (int32_t delayMin, int32_t delayMax, int32_t dopplerMin, int32_t dopplerMax, uint32_t fs, uint32_t n, bool roundHamming=false)
 Constructor. More...
 
 ~Ambiguity ()
 Destructor. More...
 
Map< Complex > * process (IqData *x, IqData *y)
 Implement the ambiguity processor. More...
 
double doppler_middle () const
 
uint16_t delay_bin_count () const
 
uint16_t doppler_bin_count () const
 
uint16_t corr_samples_per_pulse () const
 
double cpi_length_seconds () const
 
uint32_t fft_bin_count () const
 
PerformanceStats get_latest_performance () const
 

Private Attributes

int32_t delayMin_
 Minimum delay (bins). More...
 
int32_t delayMax_
 Maximum delay (bins). More...
 
int32_t dopplerMin_
 Minimum Doppler (Hz). More...
 
int32_t dopplerMax_
 Maximum Doppler (Hz). More...
 
uint32_t fs_
 Sampling frequency (Hz). More...
 
uint32_t nSamples_
 Number of samples. More...
 
double dopplerMiddle_
 Center of Doppler bins (Hz). More...
 
uint16_t nDelayBins_
 Number of delay bins. More...
 
uint16_t nDopplerBins_
 Number of Doppler bins. More...
 
uint16_t nCorr_
 Number of correlation samples per pulse. More...
 
double cpi_
 True CPI time (s). More...
 
fftw_plan fftXi_
 FFTW plans for ambiguity processing. More...
 
fftw_plan fftYi_
 
fftw_plan fftZi_
 
fftw_plan fftDoppler_
 
uint32_t nfft_
 Number of samples to perform FFT per pulse. More...
 
std::unique_ptr< Map< Complex > > map_
 Map to store result. More...
 
PerformanceStats latest_performance_
 
std::vector< ComplexdataXi_
 FFTW storage for ambiguity processing. More...
 
std::vector< ComplexdataYi_
 FFTW storage for ambiguity processing. More...
 
std::vector< ComplexdataZi_
 FFTW storage for ambiguity processing. More...
 
std::vector< ComplexdataCorr_
 FFTW storage for ambiguity processing. More...
 
std::vector< ComplexdataDoppler_
 FFTW storage for ambiguity processing. More...
 
std::vector< Complexcorr_
 Vector storage for ambiguity processing. More...
 
std::vector< ComplexdelayProfile_
 Vector storage for ambiguity processing. More...
 

Detailed Description

A class to implement a ambiguity map processing.

Implements a the batches algorithm as described in Principles of Modern Radar, Volume II, Chapter 17. See Fundamentals of Radar Signal Processing (Richards) for more on the pulse-Doppler processing method.

Author
30hours
Todo:
Ambiguity maps are still offset by 1 bin.

Member Typedef Documentation

◆ Complex

using Ambiguity::Complex = std::complex<double>

Constructor & Destructor Documentation

◆ Ambiguity()

Ambiguity::Ambiguity ( int32_t  delayMin,
int32_t  delayMax,
int32_t  dopplerMin,
int32_t  dopplerMax,
uint32_t  fs,
uint32_t  n,
bool  roundHamming = false 
)

Constructor.

Parameters
delayMinMinimum delay (bins).
delayMaxMaximum delay (bins).
dopplerMinMinimum Doppler (Hz).
dopplerMaxMaximum Doppler (Hz).
fsSampling frequency (Hz).
nNumber of samples.
roundHammingRound the correlation FFT length to a Hamming number for performance
Returns
The object.

◆ ~Ambiguity()

Ambiguity::~Ambiguity ( )

Destructor.

Returns
Void.

Member Function Documentation

◆ corr_samples_per_pulse()

uint16_t Ambiguity::corr_samples_per_pulse ( ) const
inline

◆ cpi_length_seconds()

double Ambiguity::cpi_length_seconds ( ) const
inline

◆ delay_bin_count()

uint16_t Ambiguity::delay_bin_count ( ) const
inline

◆ doppler_bin_count()

uint16_t Ambiguity::doppler_bin_count ( ) const
inline

◆ doppler_middle()

double Ambiguity::doppler_middle ( ) const
inline

◆ fft_bin_count()

uint32_t Ambiguity::fft_bin_count ( ) const
inline

◆ get_latest_performance()

PerformanceStats Ambiguity::get_latest_performance ( ) const
inline

◆ process()

Map< std::complex< double > > * Ambiguity::process ( IqData x,
IqData y 
)

Implement the ambiguity processor.

Parameters
xReference samples.
ySurveillance samples.
Returns
Ambiguity map data of IQ samples.

Member Data Documentation

◆ corr_

std::vector<Complex> Ambiguity::corr_
private

Vector storage for ambiguity processing.

◆ cpi_

double Ambiguity::cpi_
private

True CPI time (s).

◆ dataCorr_

std::vector<Complex> Ambiguity::dataCorr_
private

FFTW storage for ambiguity processing.

◆ dataDoppler_

std::vector<Complex> Ambiguity::dataDoppler_
private

FFTW storage for ambiguity processing.

◆ dataXi_

std::vector<Complex> Ambiguity::dataXi_
private

FFTW storage for ambiguity processing.

◆ dataYi_

std::vector<Complex> Ambiguity::dataYi_
private

FFTW storage for ambiguity processing.

◆ dataZi_

std::vector<Complex> Ambiguity::dataZi_
private

FFTW storage for ambiguity processing.

◆ delayMax_

int32_t Ambiguity::delayMax_
private

Maximum delay (bins).

◆ delayMin_

int32_t Ambiguity::delayMin_
private

Minimum delay (bins).

◆ delayProfile_

std::vector<Complex> Ambiguity::delayProfile_
private

Vector storage for ambiguity processing.

◆ dopplerMax_

int32_t Ambiguity::dopplerMax_
private

Maximum Doppler (Hz).

◆ dopplerMiddle_

double Ambiguity::dopplerMiddle_
private

Center of Doppler bins (Hz).

◆ dopplerMin_

int32_t Ambiguity::dopplerMin_
private

Minimum Doppler (Hz).

◆ fftDoppler_

fftw_plan Ambiguity::fftDoppler_
private

◆ fftXi_

fftw_plan Ambiguity::fftXi_
private

FFTW plans for ambiguity processing.

◆ fftYi_

fftw_plan Ambiguity::fftYi_
private

◆ fftZi_

fftw_plan Ambiguity::fftZi_
private

◆ fs_

uint32_t Ambiguity::fs_
private

Sampling frequency (Hz).

◆ latest_performance_

PerformanceStats Ambiguity::latest_performance_
private

◆ map_

std::unique_ptr<Map<Complex> > Ambiguity::map_
private

Map to store result.

◆ nCorr_

uint16_t Ambiguity::nCorr_
private

Number of correlation samples per pulse.

◆ nDelayBins_

uint16_t Ambiguity::nDelayBins_
private

Number of delay bins.

◆ nDopplerBins_

uint16_t Ambiguity::nDopplerBins_
private

Number of Doppler bins.

◆ nfft_

uint32_t Ambiguity::nfft_
private

Number of samples to perform FFT per pulse.

◆ nSamples_

uint32_t Ambiguity::nSamples_
private

Number of samples.


The documentation for this class was generated from the following files: