spatstat (version 1.58-2)

fourierbasis: 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.

Value

An m by n matrix of complex values.

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.

Examples

Run this code
# NOT RUN {
## 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)
# }

Run the code above in your browser using DataCamp Workspace