Function Repository Resource:

# FourierShift

Shift the zero-frequency term to the center of the spectrum

Contributed by: Yong-an Lu
 ResourceFunction["FourierShift"][data] rearranges a Fourier transform data by shifting the zero-frequency term to the center of the array. ResourceFunction["FourierShift"][data,dim] operates along the dimension dim of data.

## Details and Options

In optics, the zero-frequency term appears in the center of spectrum.
For Fourier, the zero-frequency term appears at position 1 in the resulting list; ResourceFunction["FourierShift"] moves it to the middle.

## Examples

### Basic Examples (4)

Swap the left and right halves of a vector:

 In[1]:=
 Out[1]=

If a vector has an odd number of elements, then the shift moves the first element to the center:

 In[2]:=
 Out[2]=

Swap the first quadrant of the matrix with the third, and the second quadrant with the fourth:

 In[3]:=
 Out[3]=

Swap halves of each column of matrix:

 In[4]:=
 Out[4]=

Swap halves of each row instead:

 In[5]:=
 Out[5]=

### Scope (2)

FourierShift can be applied to a multidimensional array:

 In[6]:=
 Out[6]=

The dimension can be any valid part specification:

 In[7]:=
 Out[7]=
 In[8]:=
 Out[8]=

### Properties and Relations (2)

For Fourier, the zero-frequency term appears at position 1 in the resulting list:

 In[9]:=
 Out[8]=

FourierShift shifts zero-frequency term to center of spectrum:

 In[10]:=
 Out[10]=

### Possible Issues (2)

FourierShift does not support ragged arrays:

 In[11]:=
 Out[11]=

Calling FourierShift twice does not necessarily reconstruct the original input:

 In[12]:=
 Out[12]=

Yong-an Lu

## Version History

• 1.0.0 – 10 October 2019