fourierbasis: Fourier Basis Functions

View source: R/fourierbasis.R

fourierbasisR Documentation

Fourier Basis Functions

Description

Evaluates the Fourier basis functions on a d-dimensional box with d-dimensional frequencies k_i at the d-dimensional coordinates x_j.

Usage

  fourierbasis(x, k, win = boxx(rep(list(0:1), ncol(k))))
  fourierbasisraw(x, k, boxlengths)

Arguments

x

Coordinates. A data.frame or matrix with n rows and d columns giving the d-dimensional coordinates.

k

Frequencies. A data.frame or matrix with m rows and d columns giving the frequencies of the Fourier-functions.

win

window (of class "owin", "box3" or "boxx") giving the d-dimensional box domain of the Fourier functions.

boxlengths

numeric giving the side lengths of the box domain of the Fourier functions.

Details

The result is an m by n matrix where the (i,j)'th entry is the d-dimensional Fourier basis function with frequency k_i evaluated at the point x_j, i.e.,

\frac{1}{\sqrt{|W|}} \exp(2\pi i \sum{l=1}^d k_{i,l} x_{j,l}/L_l)

where L_l, l=1,...,d are the box side lengths and |W| is the volume of the domain (window/box). Note that the algorithm does not check whether the coordinates given in x are contained in the given box. Actually the box is only used to determine the side lengths and volume of the domain for normalization.

The stripped down faster version fourierbasisraw doesn't do checking or conversion of arguments and requires x and k to be matrices.

Value

An m by n matrix of complex values.

Author(s)

\adrian \rolf

and \ege

Examples

## 27 rows of three dimensional Fourier frequencies:
k <- expand.grid(-1:1,-1:1, -1:1)
## Two random points in the three dimensional unit box:
x <- rbind(runif(3),runif(3))
## 27 by 2 resulting matrix:
v <- fourierbasis(x, k)
head(v)

spatstat.geom documentation built on Oct. 20, 2023, 9:06 a.m.