#include <HRFKLoop.h>
Public Member Functions | |
| virtual void | setArray (const ArrayStations &array) |
| virtual void | setGrid () |
Protected Member Functions | |
| virtual void | getPower (const Point2D &pos, double &beampower, double &semblance) |
| virtual void | initGridValues () |
| void HRFKLoopTask::getPower | ( | const Point2D & | pos, |
| double & | beampower, | ||
| double & | semblance | ||
| ) | [protected, virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_currentComponent, FKLoopTask::_grid, FKLoopTask::_nStations2, FKLoopTask::_process, ArrayCore::FrequencyBand::center(), ArrayCore::ArrayProcess::frequency(), ArrayCore::FKGridSearch::function(), TRACE, ArrayCore::FK::value(), ArrayCore::FrequencyBand::width(), QGpCoreTools::Point2D::x(), and QGpCoreTools::Point2D::y().
{
TRACE;
const FK * fk=_grid[_currentComponent]->function();
beampower=fk->value(pos.x(), pos.y());
semblance=beampower;
// Normalizations by number of stations or band width
const FrequencyBand& fb=_process->frequency();
double freqBandWidth= fb.width();
if(freqBandWidth > 0.0)
beampower=10.0 * log10(beampower/(0.5 * freqBandWidth * _nStations2) );
else
beampower=10.0 * log10(beampower/(fb.center() * _nStations2) );
}
| void HRFKLoopTask::initGridValues | ( | ) | [protected, virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_currentComponent, FKLoopTask::_grid, FKLoopTask::_process, ArrayCore::HRFK::crossCorrelationMatrix(), ArrayCore::HRFKParameters::damping(), ArrayCore::FKGridSearch::function(), ArrayCore::HRFK::initOperator(), ArrayCore::FKArrayProcess::parameters(), and TRACE.
{
TRACE;
const HRFKParameters * param=static_cast<const HRFKParameters *>(_process->parameters());
HRFK * fk=static_cast<HRFK *>(_grid[_currentComponent]->function());
fk->initOperator(fk->crossCorrelationMatrix(_currentComponent), param->damping());
}
| void HRFKLoopTask::setArray | ( | const ArrayStations & | array | ) | [virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_process, ArrayCore::ArrayProcess::setTimeRangeList(), and TRACE.
Referenced by HRFKLoop::newTask().
{
TRACE;
_process=new HRFKArrayProcess(array);
_process->setTimeRangeList(new TimeWindowList);
}
| void HRFKLoopTask::setGrid | ( | ) | [virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_grid, FKLoopTask::_loop, FKLoopTask::_process, ArrayCore::FKArrayProcess::function(), ArrayCore::FKGridSearch::function(), FKLoop::hasComponent(), ArrayCore::FKParameters::maximumSlowness(), ArrayCore::FKParameters::maximumWaveNumber(), ArrayCore::FKParameters::minimumWaveNumber(), ArrayCore::FKArrayProcess::parameters(), ArrayCore::FKGridSearch::setFunction(), ArrayCore::FKGridSearch::setGrid(), ArrayCore::FK::setMaximumSlowness(), and TRACE.
Referenced by HRFKLoop::newTask().
{
TRACE;
for(int iComp=0; iComp<3; iComp++) {
if(_loop->hasComponent(iComp)) {
_grid[iComp]=new HRFKGridSearch;
_grid[iComp]->setFunction(static_cast<HRFK *>(_process->function(iComp)));
const FKParameters * param=_process->parameters();
_grid[iComp]->setGrid(param->minimumWaveNumber(), param->maximumWaveNumber());
_grid[iComp]->function()->setMaximumSlowness(param->maximumSlowness());
}
}
}