---
title: "FourierSequenceTransform"
language: "en"
type: "Symbol"
summary: "FourierSequenceTransform[expr, n, \\[Omega]] gives the Fourier sequence transform of expr. FourierSequenceTransform[expr, {n1, n2, ...}, {\\[Omega]1, \\[Omega]2, ...}] gives the multidimensional Fourier sequence transform."
keywords: 
- DTFT
- TDFT
- discrete-time Fourier transform
- sampled Fourier transform
- sequence Fourier transform
- discrete Fourier transform
- discrete-time signal
- sequence transform
- summation transform
canonical_url: "https://reference.wolfram.com/language/ref/FourierSequenceTransform.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Fourier Analysis"
    link: "https://reference.wolfram.com/language/guide/FourierAnalysis.en.md"
  - 
    title: "Discrete Calculus"
    link: "https://reference.wolfram.com/language/guide/DiscreteCalculus.en.md"
  - 
    title: "Summation Transforms"
    link: "https://reference.wolfram.com/language/guide/SummationTransforms.en.md"
  - 
    title: "Integral Transforms"
    link: "https://reference.wolfram.com/language/guide/IntegralTransforms.en.md"
  - 
    title: "Analytic Number Theory"
    link: "https://reference.wolfram.com/language/guide/AnalyticNumberTheory.en.md"
  - 
    title: "Signal Visualization & Analysis"
    link: "https://reference.wolfram.com/language/guide/SignalAnalysis.en.md"
related_functions: 
  - 
    title: "InverseFourierSequenceTransform"
    link: "https://reference.wolfram.com/language/ref/InverseFourierSequenceTransform.en.md"
  - 
    title: "Fourier"
    link: "https://reference.wolfram.com/language/ref/Fourier.en.md"
  - 
    title: "FourierTransform"
    link: "https://reference.wolfram.com/language/ref/FourierTransform.en.md"
  - 
    title: "FourierCoefficient"
    link: "https://reference.wolfram.com/language/ref/FourierCoefficient.en.md"
  - 
    title: "ZTransform"
    link: "https://reference.wolfram.com/language/ref/ZTransform.en.md"
  - 
    title: "BilateralZTransform"
    link: "https://reference.wolfram.com/language/ref/BilateralZTransform.en.md"
  - 
    title: "DiscreteConvolve"
    link: "https://reference.wolfram.com/language/ref/DiscreteConvolve.en.md"
  - 
    title: "Sum"
    link: "https://reference.wolfram.com/language/ref/Sum.en.md"
---
# FourierSequenceTransform

FourierSequenceTransform[expr, n, ω] gives the Fourier sequence transform of expr.

FourierSequenceTransform[expr, {n1, n2, …}, {ω1, ω2, …}] gives the multidimensional Fourier sequence transform.

## Details and Options

* ``FourierSequenceTransform`` is also known as discrete-time Fourier transform (DTFT).

* ``FourierSequenceTransform[expr, n, ω]`` takes a sequence whose ``n``$$^{\text{th}}$$ term is given by ``expr``, and yields a function of the continuous parameter ``ω``.

* The Fourier sequence transform of $f(n)$ is by default defined to be $\sum _{n=-\infty }^{\infty } f(n) e^{-i n \omega }$.

* The Fourier sequence transform of $f(n)$ is by default periodic with a period of $2\pi$.

* The multidimensional transform of $f\left(n_1,n_2,\ldots \right)$ is defined to be $\sum _{n_1=-\infty }^{\infty } \sum _{n_2=-\infty }^{\infty } \cdots  f\left(n_1,n_2,\ldots \right) e^{-i \left(n_1 \omega _1+n_2 \omega _2+\cdots
\right)}$.

* The following options can be given:

|                     |               |                                                                   |
| ------------------- | ------------- | ----------------------------------------------------------------- |
| Assumptions         | \$Assumptions | assumptions on parameters                                         |
| FourierParameters   | {1, 1}        | parameters to define the discrete-time Fourier transform          |
| GenerateConditions  | False         | whether to generate results that involve conditions on parameters |

* Common settings for ``FourierParameters`` include:

|     |     |     |
| --- | --- | --- |
| {1, 1} | $\sum _{n=-\infty }^{\infty } f(n) e^{-i n \omega }$ | default settings |
| {1, 2Pi} | $\sum _{n=-\infty }^{\infty } f(n) e^{-i 2 \pi  n \omega }$ | period 1 |
| {a, b} | $\left\| \frac{b}{2 \pi }\right\| ^{\frac{1-a}{2}}\sum _{n=-\infty }^{\infty } f(n) e^{-i b n \omega }$ | general setting |

## Examples (13)

### Basic Examples (2)

Find the discrete-time Fourier transform of a simple signal:

```wl
In[1]:= FourierSequenceTransform[(1 / 2) ^ n UnitStep[n], n, ω]

Out[1]= (2 E^I ω/-1 + 2 E^I ω)

In[2]:= LogPlot[Abs[%], {ω, 0, 4Pi}]

Out[2]= [image]
```

---

Find a bivariate discrete-time Fourier transform:

```wl
In[1]:= FourierSequenceTransform[(1 / 2) ^ n1(1 / 3) ^ n2 UnitStep[n1, n2], {n1, n2}, {ω1, ω2}]

Out[1]= (6 E^I (ω1 + ω2)/(-1 + 2 E^I ω1) (-1 + 3 E^I ω2))

In[2]:= Plot3D[Abs[%], {ω1, 0, 4Pi}, {ω2, 0, 4Pi}]

Out[2]= [image]
```

### Scope (4)

Compute the transform for each frequency ``ω`` :

```wl
In[1]:= F = FourierSequenceTransform[Sin[n 2Pi / 3](2 / 3) ^ n UnitStep[n], n, ω]

Out[1]= (3 Sqrt[3] E^I ω/4 + 6 E^I ω + 9 E^2 I ω)
```

Plot the power spectrum:

```wl
In[2]:= LogPlot[Abs[F] ^ 2, {ω, 0, 2π}, Ticks -> {{0, π, 2π}, Automatic}]

Out[2]= [image]
```

The phase:

```wl
In[3]:= Plot[Arg[F], {ω, 0, 2π}, Ticks -> {{0, π, 2π}, Automatic}]

Out[3]= [image]
```

Plot both spectrum and phase using color:

```wl
In[4]:= LogPlot[Abs[F] ^ 2, {ω, 0, 2π}, Ticks -> {{0, π, 2π}, Automatic}, ColorFunction -> Function[ω, Evaluate@Hue[Arg[F] / (2Pi) + 1 / 2]], ColorFunctionScaling -> False, Filling -> Axis]

Out[4]= [image]
```

---

Constant:

```wl
In[1]:= FourierSequenceTransform[1, n, ω]

Out[1]= DiracComb[(ω/2 π)]
```

Periodic:

```wl
In[2]:= FourierSequenceTransform[Exp[I n ], n, ω]

Out[2]= DiracComb[(-1 + ω/2 π)]

In[3]:= FourierSequenceTransform[Cos[5n], n, ω]

Out[3]= (1/2) (DiracComb[(-5 + ω/2 π)] + DiracComb[(5 + ω/2 π)])

In[4]:= FourierSequenceTransform[Sin[n ω0], n, ω, Assumptions -> ω0∈Reals]

Out[4]= -(1/2) I (DiracComb[(ω - ω0/2 π)] - DiracComb[(ω + ω0/2 π)])

In[5]:= FourierSequenceTransform[Mod[n, 3], n, ω]

Out[5]= DiracComb[(ω/2 π)] + (1/3) (2 E^-(2 I π/3) + E^(2 I π/3)) DiracComb[(-(4 π/3) + ω/2 π)] + (1/3) (E^-(2 I π/3) + 2 E^(2 I π/3)) DiracComb[(-(2 π/3) + ω/2 π)]
```

Impulse:

```wl
In[6]:= FourierSequenceTransform[DiscreteDelta[n], n, ω]

Out[6]= 1

In[7]:= FourierSequenceTransform[DiscreteDelta[n - n0], n, ω]

Out[7]= E^-I n0 ω
```

Exponential:

```wl
In[8]:= FourierSequenceTransform[a ^ n UnitStep[n], n, ω]

Out[8]= (E^I ω/-a + E^I ω)

In[9]:= FourierSequenceTransform[a ^ n UnitStep[-1 - n], n, ω]

Out[9]= -(E^I ω/-a + E^I ω)
```

Exponential polynomial:

```wl
In[10]:= FourierSequenceTransform[(n + 1)a ^ n UnitStep[n], n, ω]

Out[10]= (1/(1 - a E^-I ω)^2)

In[11]:= FourierSequenceTransform[(n + 2)(n + 1) a ^ n UnitStep[n], n, ω]

Out[11]= (2 E^3 I ω/(-a + E^I ω)^3)
```

---

Rational sequence:

```wl
In[1]:= FourierSequenceTransform[1 / (2n + 1) ^ 2, n, ω]

Out[1]= (1/4) (LerchPhi[E^-I ω, 2, (1/2)] + E^I ω LerchPhi[E^I ω, 2, (1/2)])
```

Rational-trigonometric:

```wl
In[2]:= FourierSequenceTransform[Sin[n] / (3n + 1), n, ω]

Out[2]= -(1/4) I E^-I (2 E^I Hypergeometric2F1[(1/3), 1, (4/3), E^-I (-1 + ω)] - 2 E^I Hypergeometric2F1[(1/3), 1, (4/3), E^-I (1 + ω)] - E^I ω Hypergeometric2F1[(2/3), 1, (5/3), E^I (-1 + ω)] + E^2 I + I ω Hypergeometric2F1[(2/3), 1, (5/3), E^I (1 + ω)])
```

Hypergeometric terms:

```wl
In[3]:= FourierSequenceTransform[1 / n! UnitStep[n], n, ω]

Out[3]= E^E^-I ω

In[4]:= FourierSequenceTransform[2 ^ n / (CatalanNumber[n]n!) UnitStep[n], n, ω]

Out[4]= (1/4) E^-I ω (2 + 4 E^I ω + E^(E^-I ω/2) Sqrt[E^-I ω] Sqrt[2 π] Erf[(Sqrt[E^-I ω]/Sqrt[2])] + 3 E^(E^-I ω/2) + I ω Sqrt[E^-I ω] Sqrt[2 π] Erf[(Sqrt[E^-I ω]/Sqrt[2])])
```

---

Multivariate sequences:

```wl
In[1]:= FourierSequenceTransform[E ^ (-n1)(1 / 5) ^ n2 UnitStep[n1, n2], {n1, n2}, {ω1, ω2}]

Out[1]= (5 E^I (-I + ω1 + ω2)/(-1 + E^1 + I ω1) (-1 + 5 E^I ω2))

In[2]:= FourierSequenceTransform[Mod[n1 + n2, 2], {n1, n2}, {ω1, ω2}]

Out[2]= (1/2) (-DiracComb[(π - ω1/2 π)] DiracComb[(π - ω2/2 π)] + DiracComb[(ω1/2 π)] DiracComb[(ω2/2 π)])
```

### Options (2)

#### FourierParameters (1)

Use a non-default setting for ``FourierParameters`` :

```wl
In[1]:= FourierSequenceTransform[a ^ n UnitStep[n], n, ω, FourierParameters -> {1, -2π}]

Out[1]= -(1/-1 + a E^2 I π ω)
```

#### GenerateConditions (1)

Obtain conditions on parameters:

```wl
In[1]:= FourierSequenceTransform[Piecewise[{{a^n, n ≥ 0}, {b^n, n < 0}}], n, ω, GenerateConditions -> True, Assumptions -> ω∈Reals]

Out[1]=
ConditionalExpression[((a - b)*E^(I*ω))/((-a + E^(I*ω))*(-b + E^(I*ω))), 
 Abs[a] < 1 && Abs[b] > 1]
```

### Properties & Relations (5)

``FourierSequenceTransform`` is defined by a doubly infinite sum:

```wl
In[1]:= f = Piecewise[{{a^n, n ≥ 0}, {b^n, n < 0}}]

Out[1]= Piecewise[{{a^n, n >= 0}, {b^n, n < 0}}, 0]

In[2]:= {FourierSequenceTransform[f, n, ω], Sum[f Exp[-I n ω], {n, -∞, ∞}]}

Out[2]= {((a - b) E^I ω/(-a + E^I ω) (-b + E^I ω)), ((a - b) E^I ω/(-a + E^I ω) (-b + E^I ω))}
```

---

``FourierSequenceTransform`` and ``InverseFourierSequenceTransform`` are inverses:

```wl
In[1]:= InverseFourierSequenceTransform[FourierSequenceTransform[f[n], n, ω], ω, n]

Out[1]= f[n]

In[2]:= FourierSequenceTransform[InverseFourierSequenceTransform[g[ω], ω, n], n, ω]

Out[2]= g[ω]

In[3]:= FourierSequenceTransform[a ^ n UnitStep[n], n, ω]

Out[3]= (E^I ω/-a + E^I ω)

In[4]:= InverseFourierSequenceTransform[%, ω, n]

Out[4]= Piecewise[{{a^n, n > -1}}, 0]

In[5]:= Simplify[% - a ^ n UnitStep[n], n∈Integers]

Out[5]= 0
```

---

``FourierSequenceTransform`` is closely related to ``ZTransform``:

```wl
In[1]:= {FourierSequenceTransform[a ^ n UnitStep[n], n, ω], ZTransform[a ^ n, n, Exp[I ω]]}

Out[1]= {(E^I ω/-a + E^I ω), (E^I ω/-a + E^I ω)}
```

A discrete analog of ``FourierTransform`` being closely related to ``LaplaceTransform``:

```wl
In[2]:= {Sqrt[2π]FourierTransform[Exp[-a t] UnitStep[t], t, ω], LaplaceTransform[Exp[-a t] UnitStep[t], t, -I ω]}

Out[2]= {(1/a - I ω), (1/a - I ω)}
```

---

``FourierSequenceTransform`` provides a $q$-analog generating function:

```wl
In[1]:= FourierSequenceTransform[a ^ n UnitStep[n], n, ω] /. Exp[I ω] -> q

Out[1]= (q/-a + q)

In[2]:= GeneratingFunction[a ^ n UnitStep[n], n, 1 / q]

Out[2]= (1/1 - (a/q))

In[3]:= Simplify[%% - %]

Out[3]= 0
```

---

``FourierSequenceTransform`` is closely related to ``BilateralZTransform`` :

```wl
In[1]:= {BilateralZTransform[UnitStep[n + 1]3^-n, n, Exp[I ω], Assumptions -> ω∈Reals], FourierSequenceTransform[UnitStep[n + 1]3^-n, n, ω]}

Out[1]= {(9 E^2 I ω/-1 + 3 E^I ω), (9 E^2 I ω/-1 + 3 E^I ω)}

In[2]:= {BilateralZTransform[5^-Abs[n + 1], n, Exp[I ω], Assumptions -> ω∈Reals], FourierSequenceTransform[5^-Abs[n + 1], n, ω]}

Out[2]= {-(24 E^2 I ω/5 - 26 E^I ω + 5 E^2 I ω), -(24 E^2 I ω/5 - 26 E^I ω + 5 E^2 I ω)}
```

## See Also

* [`InverseFourierSequenceTransform`](https://reference.wolfram.com/language/ref/InverseFourierSequenceTransform.en.md)
* [`Fourier`](https://reference.wolfram.com/language/ref/Fourier.en.md)
* [`FourierTransform`](https://reference.wolfram.com/language/ref/FourierTransform.en.md)
* [`FourierCoefficient`](https://reference.wolfram.com/language/ref/FourierCoefficient.en.md)
* [`ZTransform`](https://reference.wolfram.com/language/ref/ZTransform.en.md)
* [`BilateralZTransform`](https://reference.wolfram.com/language/ref/BilateralZTransform.en.md)
* [`DiscreteConvolve`](https://reference.wolfram.com/language/ref/DiscreteConvolve.en.md)
* [`Sum`](https://reference.wolfram.com/language/ref/Sum.en.md)

## Related Guides

* [Fourier Analysis](https://reference.wolfram.com/language/guide/FourierAnalysis.en.md)
* [Discrete Calculus](https://reference.wolfram.com/language/guide/DiscreteCalculus.en.md)
* [Summation Transforms](https://reference.wolfram.com/language/guide/SummationTransforms.en.md)
* [Integral Transforms](https://reference.wolfram.com/language/guide/IntegralTransforms.en.md)
* [Analytic Number Theory](https://reference.wolfram.com/language/guide/AnalyticNumberTheory.en.md)
* [Signal Visualization & Analysis](https://reference.wolfram.com/language/guide/SignalAnalysis.en.md)

## History

* [Introduced in 2008 (7.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn70.en.md)