Copyright | [2012..2020] The Accelerate Team |
---|---|
License | BSD3 |
Maintainer | Trevor L. McDonell <trevor.mcdonell@gmail.com> |
Stability | experimental |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
These transforms allow the centering of the frequency domain of a DFT such that the zero frequency is in the middle. The centering transform, when performed on the input of a DFT, will cause zero frequency to be centred in the middle. The shifting transform however takes the output of a DFT to give the same result. Therefore the relationship between the two is:
fft(center(X)) = shift(fft(X))
Synopsis
- centre1D :: (RealFloat e, FromIntegral Int e) => Acc (Array DIM1 (Complex e)) -> Acc (Array DIM1 (Complex e))
- centre2D :: (RealFloat e, FromIntegral Int e) => Acc (Array DIM2 (Complex e)) -> Acc (Array DIM2 (Complex e))
- centre3D :: (RealFloat e, FromIntegral Int e) => Acc (Array DIM3 (Complex e)) -> Acc (Array DIM3 (Complex e))
- shift1D :: Elt e => Acc (Vector e) -> Acc (Vector e)
- shift2D :: Elt e => Acc (Array DIM2 e) -> Acc (Array DIM2 e)
- shift3D :: Elt e => Acc (Array DIM3 e) -> Acc (Array DIM3 e)
- ishift1D :: Elt e => Acc (Vector e) -> Acc (Vector e)
- ishift2D :: Elt e => Acc (Array DIM2 e) -> Acc (Array DIM2 e)
- ishift3D :: Elt e => Acc (Array DIM3 e) -> Acc (Array DIM3 e)
Documentation
centre1D :: (RealFloat e, FromIntegral Int e) => Acc (Array DIM1 (Complex e)) -> Acc (Array DIM1 (Complex e)) Source #
Apply the centring transform to a vector
centre2D :: (RealFloat e, FromIntegral Int e) => Acc (Array DIM2 (Complex e)) -> Acc (Array DIM2 (Complex e)) Source #
Apply the centring transform to a matrix
centre3D :: (RealFloat e, FromIntegral Int e) => Acc (Array DIM3 (Complex e)) -> Acc (Array DIM3 (Complex e)) Source #
Apply the centring transform to a 3D array
shift1D :: Elt e => Acc (Vector e) -> Acc (Vector e) Source #
Apply the shifting transform to a vector
shift2D :: Elt e => Acc (Array DIM2 e) -> Acc (Array DIM2 e) Source #
Apply the shifting transform to a 2D array
shift3D :: Elt e => Acc (Array DIM3 e) -> Acc (Array DIM3 e) Source #
Apply the shifting transform to a 3D array
ishift1D :: Elt e => Acc (Vector e) -> Acc (Vector e) Source #
The inverse of the shift1D function, such that > ishift1D (shift1D v) = ishift1D (shift1D v) = v for all vectors