discrete fourier transform - svcl · 2008-05-13 · the discrete-space fourier transform 2 • as...

35
Discrete Fourier Transform Nuno Vasconcelos UCSD

Upload: others

Post on 24-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

  • Discrete Fourier Transform

    Nuno VasconcelosUCSD

  • The Discrete-Space Fourier Transform

    2

    • as in 1D, an important concept in linear system analysis is that of the Fourier transform

    • the Discrete-Space Fourier Transform is the 2D extension of the Discrete-Time Fourier Transform

    • note that this is a continuous function of frequency– inconvenient to evaluate numerically in DSP hardware– we need a discrete version– this is the 2D Discrete Fourier Transform (2D-DFT)

    • before that we consider the sampling problem

    2121221

    2121

    2211

    2211

    1 2

    ),()2(

    1],[

    ],[),(

    ωωωωπ

    ωω

    ωω

    ωω

    ddeeXnnx

    eennxX

    njnj

    njnj

    n n

    ∫∫

    ∑∑

    =

    = −−

  • Sampling in 2D

    • consider an analog signal xc(t1,t2) and let its analog Fourier transform be Xc(Ω1,Ω2)– we use capital Ω to emphasize that this is analog frequency

    • sample with period (T1,T2) to obtain a discrete-space signal

    222111 ;2121),(],[

    TntTntcttxnnx

    ===

    3

  • Sampling in 2D

    • relationship between the Discrete-Space FT of x[n1,n2]and the FT of xc(t1,t2) is simple extension of 1D result

    DSFT of x[n1,n2] FT of xc(ω1,ω2) “discrete spectrum” “analog spectrum”

    • Discrete Space spectrum is sum of replicas of analog spectrum– in the “base replica” the analog frequency Ω1 (Ω2) is mapped

    into the digital frequency Ω1T1 (Ω2T2)– discrete spectrum has periodicity (2π,2π)

    ∑ ∑∞

    −∞=

    −∞=⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛ −−=

    1 2 1

    11

    1

    11

    2121

    2,21),(r r

    c Tr

    TrX

    TTX πωπωωω

    4

  • For exampleω2

    ω1

    Ω’T1

    Ω”T2

    ω1

    ω1

    Ω’

    2π−Ω”T2

    2π2π

    2π−Ω’T1

    Ω2

    Ω1

    Ω’

    Ω”

    2

    1

    ''''''

    TT

    Ω=→ΩΩ=→Ω

    βα

    • no aliasing if

    ⇔⎩⎨⎧

    Ω−≤ΩΩ−≤Ω

    22

    11

    '2'''2'TTTT

    ππ

    ⎩⎨⎧

    Ω≤Ω≤

    ⇔''/'/

    2

    1

    ππ

    TT

    5

  • Aliasing• the frequency (Ω’/π,Ω’’/π)

    is the critical sampling frequency

    • below it we havealiasing

    • this is just like the 1D case, but now there are more possibilities for overlap

    ω2

    ω1

    6

  • Reconstruction

    7

    • if there is no aliasing we can recover the signal in a way similar to the 1D case

    • note: in 2D there are many more possibilities than in 1D– e.g. the sampling grid does not have to be rectangular, e.g.

    hexagonal sampling when T2 = T1/sqrt(3) and

    – in practice, however, one usually adopts the rectangular grid

    ( )

    ( )

    ( )

    ( )∑ ∑∞

    −∞=

    −∞= −

    −=

    1 2222

    2

    2222

    1111

    1111

    2121

    sinsin],[),(

    n nc

    TntT

    TntT

    TntT

    TntTnnxtty π

    π

    π

    π

    ⎩⎨⎧

    = ==otherwise0

    odd or even both21;2121

    ,),(],[ 222111

    nnttxnnx TntTntc

  • 8

    • a sequence of images obtained by down-sampling without any filtering

    • aliasing: the low-frequency parts are replicated throughout the low-res image

  • The role of smoothing

    none

    some

    a lot

    • too little leads to aliasing• too much leads to loss of information 9

  • Aliasing in video• video frames are the result of temporal sampling

    – fast moving objects are above the critical frequency– above a certain speed they are aliased and appear to move

    backwards– this was common in old western movies and become known as

    the “wagon wheel” effect– here is an example: super-resolution increases the frame rate

    and eliminates aliasing

    from “Space-TimeResolution in Video” by E. Shechtman, Y. Caspi and M. Irani

    (PAMI 2005).

    10

  • 2D-DFT

    11

    • the 2D-DFT is obtained by sampling the DSFT at regular frequency intervals

    • this turns out to make the 2D-DFT somewhat harder to work with than the DSFT– it is the same as in 1D– you might remember that the inverse transform of the product of

    two DFTs is not the convolution of the associated signals– but, instead, the “circular convolution”– where does this come from?

    • it is better understood by first considering the 2D Discrete Fourier Series (2D-DFS)

    22

    211

    12,22121

    ),(],[k

    Nk

    NXkkX πωπωωω ===

  • 2D-DFS• it is the natural representation for a periodic sequence• a sequence x[n1,n2] is periodic of period N1xN2 if

    • note that

    • makes no sense for a periodic signal– the sum will be infinite for any pair r1,r2– neither the 2D DSFT or the Z-transform will work here

    [ ] [ ][ ] 21221

    21121

    , ,, ,,

    nnNnnxnNnxnnx

    ∀+=+=

    ∑ ∑∞

    −∞=

    −∞=

    −−=1 2

    21212121 ],[),(

    n n

    jnjn rrnnxrrX

    12

  • 2D-DFS• the 2D-DFS solves this problem• it is based on the observation that

    – any periodic sequence can be represented as a weighted sum of complex exponentials of the form

    – this is a simple consequence of the fact that

    – is an orthonormal basis of the space of periodic sequences

    ( )10 ,10 ,,

    22

    11

    22

    21

    222

    111

    −≤≤−≤≤××

    NkNkeekkX

    nkN

    jnkN

    j ππ

    10 ,10 , 221122

    222

    111 −≤≤−≤≤× NkNkee

    nkN

    jnkN

    j ππ

    13

  • 2D-DFS• the 2D-DFS relates x[n1,n2] and X[k1,k2]

    • note that X[k1,k2] is also periodic outside

    • like the DSFT, – properties of the 2D-DFS are identical to those of the 1D-DFS– with the straightforward extension of separability

    ( ) [ ]

    [ ] [ ] 2221111

    1

    2

    2

    222

    111

    1

    1

    2

    2

    221

    0

    1

    021

    2121

    221

    0

    1

    02121

    ,1,

    ,,

    nkN

    jnkN

    jN

    k

    N

    k

    nkN

    jnkN

    jN

    n

    N

    n

    eekkXNN

    nnx

    eennxkkX

    ππ

    ππ

    ∑∑

    ∑∑−

    =

    =

    −−−

    =

    =

    =

    =

    10 ,10 2211 −≤≤−≤≤ NkNk

    14

  • Periodic convolution• like the Fourier transform,

    – the inverse transform of multiplication is convolution

    – however, we have to be careful about how we define convolution– since the sequences have no end, the standard definition

    makes no sense– e.g. if x and h are both positive sequences, this will allways be

    infinite

    [ ] [ ] ( ) ( )2121

    2121 ,,,, kkYkkXnnxnnxDFS

    ×↔∗

    ],[],[],[ 221121211 2

    knknhkkxnnyk k

    −−= ∑ ∑∞

    −∞=

    −∞=

    15

  • Periodic convolution• to deal with this, we introduce the idea of periodic

    convolution• instead of the regular definition

    • which, from now on, we refer to as linear convolution• periodic convolution only considers one period of our

    sequences

    • the only difference is in the summation limits

    ],[ ],[* 2211211 2

    knknhkkxyxk k

    −−= ∑ ∑∞

    −∞=

    −∞=

    ],[ ],[ 22111

    0

    1

    021

    1

    1

    2

    2

    knknhkkxhxN

    k

    N

    k−−= ∑ ∑

    =

    =

    o

    16

  • Periodic convolution• this is simple, but produces a convolution which is

    substantially different• let’s go back to our example, now assuming that the

    sequences have period (N1=3,N2=2)

    • as before, we need four steps

    n1

    n2

    n1

    n2

    (1) (2)

    17

    *(3) (4)

    (1) (2)

    (3) (4)

    (1) (2)

    (3) (4)

    (1) (2)

    (3) (4)

    ],[ 21 nnx ],[ 21 nnh

  • Periodic convolution• step 1): express sequences in terms of (k1, k2), and

    consider one period only

    we next proceed exactly as before

    k1

    k2

    k1

    k2

    (1) (2)

    (3) (4)

    ],[ ],[ 22111

    0

    1

    021

    1

    1

    2

    2

    knknhkkxhxN

    k

    N

    k

    −−= ∑ ∑−

    =

    =

    o

    ],[ 21 kkx ],[ 21 kkh

    18

  • Periodic convolution• step 2): invert h(k1, k2)

    k1

    k2

    (1)(2)

    (3)(4)

    ],[],[ 2121 kkhkkg −−=

    k1

    k2

    (1) (2)

    (3) (4)

    ],[ 21 kkh

    k1

    k2

    (1) (2)

    (3) (4)

    ],[ 21 kkh −

    1

    2

    ],[ ],[ 22111

    0

    1

    021

    1

    1

    2

    2

    knknhkkxhxN

    k

    N

    k

    −−= ∑ ∑−

    =

    =

    o

    19

  • Periodic convolution• step 3): shift g(k1, k2) by (n1, n2)

    ],[ ],[ 22111

    0

    1

    021

    1

    1

    2

    2

    knknhkkxhxN

    k

    N

    k

    −−= ∑ ∑−

    =

    =

    o

    k1

    k2

    (1)(2)

    (3)(4)

    k2(1)(2)

    (3)(4)

    n

    n2

    this sendswhatever is at (0,0) to (n1,n2)

    k11

    ],[],[

    2211

    2211

    knknhnknkg−−

    =−−

    ],[],[ 2121 kkhkkg −−=

    20

  • Periodic convolution• e.g. for (n1,n2) = (1,0)

    the next step would be to point-wise multiply the two signals and sum

    k1

    k2

    (1)(2)

    (3)(4)

    n1

    n2

    k1

    k2

    ],[ 21 kkx],[

    ],[

    2211

    2211

    knknhnknkg−−

    =−−

    ],[ ],[ 22111

    0

    1

    021

    1

    1

    2

    2

    knknhkkxhxN

    k

    N

    k

    −−= ∑ ∑−

    =

    =

    o

    21

  • Periodic convolution• this is where we depart from linear convolution• remember that the sequences are periodic, and we really

    only care about what happens in the fundamental period• we use the periodicity to fill the values missing in the

    flipped sequence

    k1

    k2

    (1)(2)

    (3)(4)

    n1

    n2

    ],[ 2211 knknh −−

    k1

    k2

    (1) (2)

    (4)(3)

    =

    ],[ 2211 knknh −−

    22

  • Periodic convolution• step 4): we can finally point-wise multiply the two signals

    and sum

    – e.g. for (n1,n2) = (1,0)

    k1

    k2

    ],[ 21 kkx

    x =k1

    k2

    ],[ 21 nny

    ],[ ],[ 22111

    0

    1

    021

    1

    1

    2

    2

    knknhkkxhxN

    k

    N

    k

    −−= ∑ ∑−

    =

    =

    o

    k1

    k2

    (1) (2)

    (4)

    ],[ 2211 knknh −−

    (3)3x1+1x1=4

    23

  • Periodic convolution

    24

    • note: the sequence that results from the convolution is also periodic

    • it is important to keep in mind what we have done– we work with a single period (the

    fundamental period) to make things manageable– but remember that we have periodic sequences– it is like if we were peeking through a window– if we shift, or flip the sequence we need to remember that – the sequence does not simply move out of the window, but the

    next period walks in!!!– note, that this

    can make thefundamentalperiod changeconsiderably

    k1

    k2

    k1

    k2

    shiftby

    (1,1)

  • Discrete Fourier Transform• all of this is interesting,

    – but why do I care about periodic sequences?– all images are finite, I could never have such a sequence

    • while this is true– the DFS is the easiest route to learn about the discrete Fourier

    transform (DFT)

    • recall that the DFT is obtained by sampling the DSFT

    – we know that when we sample in space we have aliasing in frequency

    – well, the same happens when we sample in frequency: we get aliasing in time

    22

    211

    12,22121

    ),(],[k

    Nk

    NXkkX πωπωωω ===

    25

  • Discrete Fourier Transform

    26

    • this means that– even if we have a finite sequence– when we compute the DFT we are effectively working with a

    periodic sequence

    • you may recall from 1D signal processing that– when you multiply two DFTs, you do not get convolution in time– but instead something called circular convolution– this is strange: when I flip a signal (e.g. convolution) it wraps

    around the sequence borders– well, in 2D it gets much stranger

    • the only way I know how to understand this is to– think about the underlying periodic sequence– establish a connection between the DFT and the DFS of that

    sequence– use what we have seen for the DFS to help me out with the DFT

  • Discrete Fourier Transform• let’s start by the relation between DFT and DFS• the DFT is defined as

    (here X(ω1,ω2) is the DSFT) which can be written as

    22

    211

    12,22121

    ),(],[k

    Nk

    NXkkX πωπωωω ===

    [ ] [ ]

    [ ] [ ]⎪⎩

    ⎪⎨

  • Discrete Fourier Transform• comparing this

    with the DFS

    [ ] [ ]

    [ ] [ ]⎪⎩

    ⎪⎨

  • Discrete Fourier Transform• we see that inside the boxes

    the two transforms are exactly the same• if we define the indicator function of the box

    • we can write

    22

    11

    00

    NkNk

  • Discrete Fourier Transform• note from

    that working in the DFT domain is equivalent to– working in the DFS domain– extracting the fundamental period at the end

    • we can summarize this as

    • in this way, I can work with the DFT without having to worry about aliasing

    [ ] [ ] [ ]212121 ,,, 21 nnRnnxnnx NN ×= [ ] [ ] [ ]212121 ,,, 21 kkRkkXkkX NN ×=

    [ ] [ ] [ ] [ ]2121

    2121 ,

    ,,

    , kkXkkXnnxnnx

    truncate

    eperiodiciz

    DFS

    eperiodiciz

    truncate←→

    ↔←→

    30

  • Discrete Fourier Transform

    • this trick can be used to derive all the DFT properties• e.g. what is the inverse transform of a phase shift?

    – let’s follow the steps

    – 1) periodicize: this causes the same phase shift in the DFS

    [ ] [ ] [ ] [ ]2121

    2121 ,

    ,,

    , kkXkkXnnxnnx

    truncate

    eperiodiciz

    DFS

    eperiodiciz

    truncate←→

    ↔←→

    [ ] [ ] 22211122

    2121 ,,mk

    Njmk

    Nj

    eekkXkkYππ

    −−

    =

    [ ] [ ] 22211122

    2121 ,,mk

    Njmk

    Nj

    eekkXkkYππ

    −−

    =

    31

  • Discrete Fourier Transform

    [ ] [ ] [ ] [ ]2121

    2121 ,

    ,,

    , kkXkkXnnxnnx

    truncate

    eperiodiciz

    DFS

    eperiodiciz

    truncate←→

    ↔←→

    – 2) compute the inverse DFS: it follows from the properties of the DFS (page 142 on Lim) that we get a shift in space

    – 3) truncate: the inverse DFT is equal to one period of the shifted periodic extension of the sequence

    – in summary, the new sequence is obtained by making the original periodic, shifting, and taking the fundamental period

    [ ] [ ]221121 ,, mnmnxnny −−=

    [ ] [ ] [ ]21221121 ,,, 21 nnRmnmnxnny NN ×−−=

    32

  • Example

    • note that what leaves on one end, enters on the other

    k1

    k2

    shift by (1,1)

    k1

    k2

    periodicize

    k1

    k2

    k1

    k2

    truncate

    33

  • Example• for this reason it is called a circular shift

    • note that this is way more complicated than in 1D• to get it right we really have to think in terms of the

    periodic extension of the sequence• we will see that this shows up in the properties of the

    DFT, • namely that convolution becomes circular convolution

    k1

    k2

    k1

    k2

    circular shift by (1,1)

    34

  • 35