STIR 6.5.0
stir::RampFilter Class Reference

The ramp filter used for (2D) FBP. More...

#include "stir/analytic/FBP2D/RampFilter.h"

Inheritance diagram for stir::RampFilter:

Public Member Functions

 RampFilter (float sampledist_v, int length_v, float alpha_v=1, float fc_v=.5)
virtual std::string parameter_info () const
Public Member Functions inherited from stir::ArrayFilterUsingRealDFTWithPadding< 1, float >
 ArrayFilterUsingRealDFTWithPadding ()
 Default constructor (trivial kernel).
Succeeded set_kernel (const Array< num_dimensions, float > &real_filter_kernel)
 set the real kernel coefficients
Succeeded set_kernel_in_frequency_space (const Array< num_dimensions, std::complex< float > > &kernel_in_frequency_space)
 set the complex kernel coefficients
bool is_trivial () const override
 checks if the kernel corresponds to a trivial filter operation
Public Member Functions inherited from stir::ArrayFunctionObject_2ArgumentImplementation< num_dimensions, float >
void operator() (Array< num_dimensions, float > &array) const override
 in-place modification of array, implemented inline
Public Member Functions inherited from stir::ArrayFunctionObject< num_dimensions, float >
virtual Succeeded get_influencing_indices (IndexRange< num_dimensions > &influencing_indices, const IndexRange< num_dimensions > &output_indices) const
 sets the range of indices that influences the result in a set of coordinates output_indices
virtual Succeeded get_influenced_indices (IndexRange< num_dimensions > &influenced_indices, const IndexRange< num_dimensions > &input_indices) const
 sets the range of indices that gets influenced by a set of coordinate input_indices
Public Member Functions inherited from stir::TimedObject
void reset_timers ()
 reset all timers kept by this object
void stop_timers () const
 stop all timers kept by this object
void start_timers (bool do_reset=false) const
 start all timers kept by this object
double get_CPU_timer_value () const
 get current value of the CPU timer (since first use or last reset)
double get_wall_clock_timer_value () const
 get current value of the wall-clock timer (since first use or last reset)

Additional Inherited Members

Protected Member Functions inherited from stir::ArrayFilterUsingRealDFTWithPadding< 1, float >
void do_it (Array< num_dimensions, float > &out_array, const Array< num_dimensions, float > &in_array) const override
 Performs the convolution.
Protected Attributes inherited from stir::ArrayFilterUsingRealDFTWithPadding< 1, float >
Array< num_dimensions, std::complex< float > > kernel_in_frequency_space

Detailed Description

The ramp filter used for (2D) FBP.

The filter has 2 parameters: a cut-off frequency fc and alpha which specifies the usual Hamming window (although I'm not so sure about the terminology here). So, for the "ramp filter" alpha =1. In frequency space, something like (from RampFilter.cxx)

(alpha + (1 - alpha) * cos(_PI * f / fc))
#define _PI
The constant pi to high precision.
Definition common.h:141

The actual implementation works differently to overcome problems with defining the ramp in frequency space (with a well-known DC offset as consequence). We therefore compute the ramp*Hanning in "ordinary" space in continuous form, do the sampling there, and then DFT it.


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