File Exchange

image thumbnail

Calculate Wigner distribution

version 1.0 (1.75 KB) by

Calculates the 2D Wigner distribution of a complex function.

7 Ratings



View License

W = mywigner(Ex)

W = output Wigner distribution
Ex = Input electric field (MUST be a column vector

W = Int(-inf..inf){E(x+y)E(x-y)exp[2ixy]}
E(x+y) & E(x-y) are calculated via a FFT (fast Fourier transform) using the
shift theorem. The integration is performed via a FFT. Thus it is important for the data to satisfy the sampling theorem:
dy = 2*pi/X X = span of all x-values dy = y resolution
dx = 2*pi/Y Y = span of all y-values dx = x resolution
The data must be completely contained within the range x(0)..x(N-1) & y(0)..y(N-1) (i.e. the function must fall to zero within this range).

Comments and Ratings (9)

your delay is always half of the signal
the matrix can be too large
for chirp test the max locations should be at phase 2*f*b*t but the max is alwayes at the center

Adam Wyatt

Adam Wyatt (view profile)

You have to think what you are doing - given data of length N, the Wigner distribution is N^2, so clearly with N=10^5, N^2 = 10^10 - you're not going to ever be able to make such a Wigner distribution.

However, it is possible that you do not need the Wigner distribution over the whole temporal and spectral domains. Unfortunately I have not implemented this yet.


i am working on seismic data that has a total length of almost 100000 data point.When i am running wigner distribution it is showing 'out of memory'.

VictorF Dios

The user has to add a multiplication for incr_x in order to preserve the energy of the signal.

Herliyani Hasanah

Very good

kim ngan tran

ashutosh singh

MATLAB Release
MATLAB 7.4 (R2007a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video