Select Git revision
BeamFormerPreprocessingStep.cc
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
BeamFormerPreprocessingStep.cc 4.95 KiB
//# BeamFormerPreprocessingStep.cc
//# Copyright (C) 2012-2013 ASTRON (Netherlands Institute for Radio Astronomy)
//# P.O. Box 2, 7990 AA Dwingeloo, The Netherlands
//#
//# This file is part of the LOFAR software suite.
//# The LOFAR software suite is free software: you can redistribute it and/or
//# modify it under the terms of the GNU General Public License as published
//# by the Free Software Foundation, either version 3 of the License, or
//# (at your option) any later version.
//#
//# The LOFAR software suite is distributed in the hope that it will be useful,
//# but WITHOUT ANY WARRANTY; without even the implied warranty of
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//# GNU General Public License for more details.
//#
//# You should have received a copy of the GNU General Public License along
//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>.
//#
//# $Id$
#include <lofar_config.h>
#include "BeamFormerPreprocessingStep.h"
#include <GPUProc/global_defines.h>
#include <GPUProc/gpu_wrapper.h>
#include <GPUProc/Flagger.h>
#include <CoInterface/Parset.h>
#include <ApplCommon/PosixTime.h>
#include <Common/LofarLogger.h>
#include <iomanip>
namespace LOFAR
{
namespace Cobalt
{
BeamFormerPreprocessingStep::Factories::Factories(const Parset &ps) :
intToFloat(IntToFloatKernel::Parameters(
ps,
ps.settings.beamFormer.nrDelayCompensationChannels > 1,
true)),
firstFFT(FFT_Kernel::Parameters(
ps.settings.beamFormer.nrDelayCompensationChannels,
ps.settings.beamFormer.antennaFieldNames.size() * NR_POLARIZATIONS * ps.settings.blockSize,
true,
"FFT (beamformer, 1st)")),
fftShift(FFTShiftKernel::Parameters(ps,
ps.settings.beamFormer.antennaFieldNames.size(),
ps.settings.beamFormer.nrDelayCompensationChannels,
"FFT-shift (beamformer)")),
zeroing(ZeroingKernel::Parameters(ps,
ps.settings.beamFormer.antennaFieldNames.size(),
ps.settings.beamFormer.nrDelayCompensationChannels,
"Zeroing (beamformer)")),
delayCompensation(DelayAndBandPassKernel::Parameters(ps, false)),
bandPassCorrection(BandPassCorrectionKernel::Parameters(ps))
{
}
BeamFormerPreprocessingStep::BeamFormerPreprocessingStep(
const Parset &parset,
gpu::Stream &i_queue,
gpu::Context &context,
Factories &factories,