You are on page 1of 13

Amplitude

MUS421/EE367B Lecture 3 FFT Windows

Outline

March 28, 2005

Rectangular, Hann, Hamming

MLT Sine

Blackman-Harris Window Family

Kaiser

Chebyshev

Bartlett

Poisson

Gaussian

Optimal Windows

1

This result is plotted below: DFT of a Rectangular Window of length M = 11
12
10
8
6
4
2
0
−2
−4
−3
−2
−1
0
1
2
3
Normalized Frequency
Amplitude

Note that this is the complete window transform, not just its magnitude. We obtain real window transforms like this only for symmetric, zero-phase windows.

3

The Rectangular Window

In Lecture 0, we looked at the rectangular window: 1,
|n| ≥ M−1
2
w R (n)
= ∆
0, otherwise
Zero−Phase Rectangular Window − M = 21
1
0.8
0.6
0.4
0.2
0
−20
−15
−10
−5
0
5
10
15
20

Time (samples)

The window transform was found to be 2
W R (ω) = sin M ω
sin ω
2

=

M · asinc M (ω)

(1)

where asinc M (ω) denotes the aliased sinc function.

asinc M (ω)

=

sin(M ω/2)

M · sin(ω/2)

2

More generally, we may plot both the magnitude and phase of the window versus frequency: DFT of a Rectangular Window − M = 11
11
10
9
8
7
6
5
4
3
2
1
−3
−2
−1
0
1
2
3
Normalized Frequency
Phase of Rectangular Window Transform (M = 11)
3.5343
3.1416
2.7489
2.3562
1.9635
1.5708
1.1781
0.7854
0.3927
Main Lobe
0
−0.3927
−3
−2
−1
0
1
2
3
Normalized Frequency
Amplitude

4

Amplitude (dB)

In audio work, we more typically plot the window transform magnitude on a decibel (dB) scale:

DFT of a Rectangular Window − M = 11 0
−5
main lobe
−10
13 dB down
−15
sidelobes
sidelobes
−20
−25
−30
−35
nulls
nulls
−40
−3
−2
−1
0
1
2
3
Normalized Frequency
Magnitude (dB)

5

Sidelobe Roll-Oﬀ Rate

In general, if the ﬁrst n derivatives of a continuous function w(t) exist (i.e., they are ﬁnite and uniquely deﬁned), then its Fourier Transform magnitude is asymptotically proportional to

|W(ω)| constant

ω n+1

(as ω → ∞)

Proof: Papoulis, Signal Analysis, McGraw-Hill, 1977

Thus, we have the following rule-of-thumb:

n derivatives ↔ −6(n + 1) dB per octave roll-oﬀ rate

(since 20 log 10 (2) = 6.0205999

This is also 20(n + 1) dB per decade.

To apply this result, we normally only need to look at the window’s endpoints. The interior of the window is usually diﬀerentiable of all orders.

Examples:

.).

Amplitude discontinuity ↔ −6 dB/octave roll-oﬀ

Slope discontinuity ↔ −12 dB/octave roll-oﬀ

Curvature discontinuity ↔ −18 dB/octave roll-oﬀ

For discrete-time windows, the roll-oﬀ rate slows down at high frequencies due to aliasing.

7

Since the DTFT of the rectangular window approximates the sinc function, it should “roll oﬀ” at approximately 6 dB per octave, as veriﬁed in the log-log plot below: DFT of a Rectangular Window − M = 20
0
−6.0206
Ideal −6 dB per octave
line
−12.0412
−18.0618
Partial
Main
−24.0824
Lobe
−30.103
−36.1236
−42.1442
−48.1648
−54.1854
0.1
0.2
0.4
0.8
1.6
3.2
6.4

As the sampling rate approaches inﬁnity, the rectangular window transform converges exactly to the sinc function. Therefore, the departure of the roll-oﬀ from that of the sinc function can be ascribed to aliasing in the frequency domain, due to sampling in the time domain.

6

In summary, the DTFT of the M -sample rectangular window is proportional to the ‘aliased sinc function’:

asinc M (ωT)

=

sin(ωM T /2)

M

sin(πf M T ) MπfT

· sin(ωT /2)

=

Some important points:

sinc(f M T )

Zero crossings at integer multiples of M

= 2π

M

where M

length M DFT

= 2π

M

= frequency sampling interval for a

Main lobe width is 2Ω M = 4π

M

As M gets bigger, the mainlobe narrows (better frequency resolution)

M has no eﬀect on the height of the side lobes (Same as the “Gibbs phenomenon” for Fourier series)

First sidelobe only 13 dB down from main-lobe peak

Side lobes roll oﬀ at approximately 6dB per octave

A phase term arises when we shift the window to make it causal, while the window transform is real in the zero-phase case (i.e., centered about time 0)

8

Generalized Hamming Window Family

Consider the following picture in the frequency domain: 0.5
0.4
0.3
0.2
0.1
0
−0.1
−0.2
−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
2.5
Amplitude

ω/M

We have added 2 extra aliased sinc functions (shifted), which results in the following behavior:

There is some cancellation of the side lobes

The width of the main lobe is doubled

9

Hann or Hanning or Raised Cosine

The Hann window is deﬁned by the settings α = 1/2 and β = 1/4: 1
1
w H (n) = w R (n)
2 cos(Ω M n) = w R (n) cos 2 Ω M n
2 +
2
Hann Window, M = 21
1
0.8
0.6
0.4
0.2
0
−20
−15
−10
−5
0
5
10
15
20
Amplitude

Time (samples) 0
−10
−20
−31.5 dB
−30
−40
−50
−60
−70
−3
−2
−1
−2
0
2
1
2
3
M+1
M+1
Magnitude (dB)

11

In terms of the rectangular window transform W R (ω) = M · asinc M (ω) (zero-phase, unit-amplitude case), this can be written as:

W H (ω) = αW R (ω) + βW R (ω M ) + βW R (ω + Ω M )

Using the Shift Theorem, we can take the inverse transform of the above equation:

w H = αw R (n) + βe j M n w R (n) + βe j M n w R (n)

=

w R (n) α + 2β cos 2πn

M

Choosing various parameters for α and β result in diﬀerent windows in the generalized Hamming family, some of which have names.

10

Hann window properties:

Mainlobe is 4Ω M wide

1st side lobe is at -31dB

Side lobes roll oﬀ at approx. 18dB / octave

Hamming

This window is determined by optimizing over α and β in such a way as to reduce the worst-case side lobe level.

Doing this, results in the following values:

α = .54

β = (1 α)/2 (for unit time-domain peak amplitude)

12

Hamming Window

Hamming Window, M = 21 1
0.8
0.6
0.4
0.2
0
−20
−15
−10
−5
0
5
10
15
20
Amplitude

Time (samples) 0
−10
−20
−30
−40.6 dB
−40
−50
−60
−70
−3
−2
−1
−2
0
2
1
2
3
M−1
M−1
Magnitude (dB)

13

Longer Hamming Window

Hamming Window, M = 101 1
0.8
0.6
0.4
0.2
0
−100
−80
−60
−40
−20
0
20
40
60
80
100
Amplitude

Time (samples) 0
−10
−20
−30
−40
−42.7
dB
−50
−60
−70
−3
−2
−1
−2
2
0
1
2
3
M−1 M−1
Magnitude (dB)

Since the side-lobes nearest the main lobe are most aﬀected by the Hamming optimization, we now have a larger frequency region over which the spectral envelope looks like that of the asinc function (an “aliased -6 dB/octave roll-oﬀ”).

The side-lobe level (-42.7 dB) is also improved over that of the shorter window (-40.6 dB).

15

Hamming Window Properties

Discontinuous “slam to zero” at endpoints

main lobe is 4Ω M

Roll oﬀ is approx. 6 dB / octave (aliased)

1st side lobe is improved over Hann

side lobes closer to “equal ripple”

Note: The Hamming window could also be called the “Chebyshev Generalized Hamming Window”. This is because the Hamming window minimizes the sidelobe level within the family. Chebyshev-type designs generally exhibit equiripple error behavior, since the worst-case error (sidelobe level in this case) is minimized.

14

Window Transform Summary

Window Transforms, Window length = 20 0
Rectangular
−10
−20
−30
−40
−50
−60
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Magnitude (dB 0 )

Normalized Frequency (cycles per sample) 0
Hanning
−10
−20
−30
−40
−50
−60
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Magnitude (dB 0 )

Normalized Frequency (cycles per sample) 0
Hamming
−10
−20
−30
−40
−50
−60
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Magnitude (dB 0 )

Normalized Frequency (cycles per sample)

16

The MLT Sine Window

The Modulated Lapped Transform (MLT) uses the sine window :

w(n) = sin n + 1 2

2M ,

π

n = 0, 1, 2,

, 2M 1 .

Used in MPEG-1, Layer 3 (MP3 format), MPEG-2 AAC, MPEG-4

Sidelobes 24 dB down

Asymptotically optimal coding gain

17

Frequency-Domain Implementation

The Blackman-Harris window family can be very eﬃciently implemented in the frequency domain as a (2L 1)-point convolution with the spectrum of the unwindowed data. Examples:

Take an M -point DFT

Convolve the DFT data with the 3-point smoother [1/4, 1/2, 1/4] to implement a Hann window

Note that the Hann window requires no multiplies in linear ﬁxed-point data formats

Implement any Blackman window as a 5-point smoother in the frequency domain

19

Blackman-Harris Window Family

The Blackman-Harris family of windows is basically a generalization of the Hamming family.

In the case of the Hamming family, we constructed a summation of 3 shifted sinc functions.

The Blackman/Harris family is derived by considering a more general summation of shifted sinc functions:

w B (n) = w R (n)

L1

l=0

α l cos(lM n)

where M = 2π/M, n = (M 1)/2,

Special Cases:

(M 1)/2 (M odd).

L = 1 Rectangular

L = 2 Generalized Hamming

L = 3 Blackman Family

18

Classic Blackman

The so-called “Blackman Window” is the speciﬁc case in which α 0 = 0.42 α 1 = 0.5, and α 2 = 0.08

Properties:

Sidelobes roll oﬀ about 18dB per octave (as T 0)

• −58dB sidelobe level (worst case)

One degree of freedom used to increase the roll-oﬀ rate from 6dB/octave to 18 dB per octave

One degree of freedom used to minimize sidelobes

One degree of freedom used to scale the window

Matlab:

N =

101;

L

=

3;

No2

=

(N-1)/2;

n=-No2:No2;

 ws = zeros(L,3*N); z = zeros(1,N); for l=0:L-1

ws(l+1,:)

=

[z,cos(l*2*pi*n/N),z];

end

alpha

w =

=

alpha

[0.42,0.5,0.08];

*

ws;

%

Classic

Blackman

20

Amplitude

Magnitude (dB)

Classic Blackman Window and Transform

Three-Term Blackman-Harris Properties:
Classic Blackman Window: M = 51
1
0.8
0.6
• α 0 = 0.4243801 α 1 = 0.4973406, and
α 2 = 0.0782793.
0.4
• Side-lobe level 71.48 dB.
0.2
0
20
40
60
80
100
120
140
Time (samples)
• Side lobes roll oﬀ ≈ 6dB per octave in the absence of
aliasing (like rectangular and Hamming).
Amplitude 0
−20
−40
−60
−80
−100
−120
100
200
300
400
500
600
700
800
900
1000
Magnitude (dB)

Frequency (bins)

21

Three-Term Blackman-Harris Window and Transform

Three−Term Blackman−Harris Window: M = 51 1
0.8
0.6
0.4
0.2
0
20
40
60
80
100
120
140
Amplitude

Time (samples) 0
−20
−40
−60
−80
−100
−120
100
200
300
400
500
600
700
800
900
1000
Magnitude (dB)

Frequency (bins)

23

All degrees of freedom (scaling aside) are used to minimize side lobes (like Hamming).

Matlab:

N =

101;

L

=

3;

No2

=

(N-1)/2;

n=-No2:No2;

 ws = zeros(L,3*N); z = zeros(1,N); for l=0:L-1

ws(l+1,:)

=

[z,cos(l*2*pi*n/N),z];

end

% 3-term

alpha

w

=

Blackman-Harris(-Nuttall):

[0.4243801,

*

ws;

0.4973406,

=

0.0782793];

alpha

22

Longer Three-Term Blackman-Harris Window and Transform

Three−Term Blackman−Harris Window: M = 301 1
0.8
0.6
0.4
0.2
0
100 200
300
400
500
600
700
800
900

Time (samples) 0
200 400
600
800
1000
1200
1400
1600

−20

−40

−60

−80

−100

−120

Frequency (bins)

24

Power-of-Cosine

w(n) = w R (n) cos L πn ,

M

n

M 1

2

, M 1

2

L = 0, 1, 2,

ﬁrst L terms of its Taylor expansion, evaluated at the endpoints are identically 0

roll-oﬀ rate 6(L + 1)dB/octave

L = 0 Rectangular window

L = 1 MLT sine window

L = 2 Hann window (“raised cosine” = “cos 2 ”)

L = 3 Alternate Blackman (max roll-oﬀ rate)

Thus, cos L windows parametrize Lth-order Blackman-Harris windows conﬁgured so as to use all L degrees of freedom to maximize roll-oﬀ rate.

25

Poisson (“Exponential”)

w P (n) = w R (n)e α

|n|

(M 1)/2

where: α determines the time constant ( τ =

Poisson Window M = 51

M

2α

) 1
0.9
0.8
alpha = 1
0.7
0.6
0.5
0.4
0.3
0.2
alpha = 10
0.1
0
-20
-10
0
10
20
Amplitude

time (samples)

In the z-plane, the Poisson window has the eﬀect of contracting the unit circle. Applied to a causal signal h(n) having z transform H(z), we have

27

Miscellaneous Windows

Bartlett (“Triangular”)

w(n) = w R (n) 1

|n| − 1)/2

(M

Convolution of two half-length rectangular windows

Window transform is sinc 2 =

First sidelobe twice as far down as rect (-26 dB)

Main lobe twice as wide as that of a rectangular window having the same length (same as that of a half-length rect used to make it)

Often applied to sample correlations of ﬁnite data

Also called the “tent function”

26 H P (z) =
[w(n)h(n)]z −n
n=0
=
αn
α
h(n)e −
M/2 z −n
(let r = e
M/2 )
n=0
=
h(n)z −n r −n =
h(n)(zr) −n
n=0
n=0
= H(zr)
z - plane
r 1

28

Hann-Poisson (“No Sidelobes”)

w(n) = 1

2 1 + cos π

n 1)/2 e α (M |n|

(M 1)/2

Poisson window times Hann window (exponential times raised cosine)

“No sidelobes” for α 2

Valuable for “hill climbing” optimization methods (gradient-based)

 Matlab: function [w,h,p] = hannpoisson(M,alpha)

%HANNPOISSON

-

Length

M

Hann-Poisson

window

 Mo2 = (M-1)/2; n=(-Mo2:Mo2)’; scl = alpha / Mo2;

p =

scl2

exp(-scl*abs(n));

=

pi

/

Mo2;

 h = 0.5*(1+cos(scl2*n)); w = p.*h;

29

Hann-Poisson Slope and Curvature

Slope and Curvature of DTFT dB Magnitude, Hann−Poisson Window, M = 21, Alpha = 2.0 0.03
0.02
0.01
0
−0.01
−0.02
−0.03
−4
−3
−2
−1
0
1
2
3
4
ωT
5 x 10 −5
0
−5
−4
−3
−2
−1
0
1
2
3
4
ωT
dB Magnitude Slope
dB Magnitude Curvature

31

Hann-Poisson Window and Transform

Hann−Poisson Window, M = 21, Alpha = 2.0 1
0.8
0.6
0.4
0.2
0
−20
−15
−10
−5
0
5
10
15
20
Amplitude

Time (samples) 0
−10
−20
−30
−40
Magnitude (dB) −3
−2
−1
0
1
2
3
ωT
30
Slope and Curvature for Larger Alpha
Slope and Curvature of DTFT dB Magnitude, Hann−Poisson Window, M = 21, Alpha = 3.0
0.02
0.01
0
−0.01
−0.02
−4
−3
−2
−1
0
1
2
3
4
ωT
dB Magnitude Slope 2 x 10 −5
0
−2
−4
−4
−3
−2
−1
0
1
2
3
4
ωT
dB Magnitude Curvature

32

Side Lobe Level (SLL)

Kaiser

Question: How do we use all M degrees of freedom (sample values) in an M -point window w(n) to obtain W (ω) δ(ω) in some optimal sense?

The Kaiser window maximizes the energy in the main lobe of the window.

max

w

main lobe energy total energy

The functions which maximize this ratio are known as prolate spheroidal wave functions.

Kaiser discovered an approximation based upon Bessel functions:

w K (n) =

I 0 β 1

n

M/2 2

  0,

I 0 (β)

,

M1

2

n M1

2

elsewhere

The transform of this window is:

33

SLL vs Main Lobe Width for the Kaiser Window ( =0,0.5,1,

,4) −10
=
= 0
−20
−30
−40
−50
−60
−70
−80
−90
= 4.0
−100
1
1.5
2
2.5
3
3.5
4
4.5

Main lobe width in units of rectangular−window main−lobe widths

β is equal to 1/2 ‘time-bandwidth product’

β trades oﬀ side lobe level for main lobe width larger β lower S.L.L., wider mainlobe

35

W(ω k ) =

M

sinh β 2 Mω k

2

2

0 (β)

I

β 2 k

2

2

where I 0 is a Bessel function of the ﬁrst kind, and is equal to

I 0 (x) =

(x/2) k k!

(x/2) k

k=0

k=0

(Compare this with e x/2 =

k!

2

.)

Note: Sometimes you see the Kaiser window parameterized by α where β = πα

34

β = [0, 2, 4, 6, 8, 10]

Length 50 Kaiser windows, 6 betas between 0 and 10 1.2
= 0
1
0.8
= 2
= 10
0.6
0.4
= 4
0.2
0
0
5
10
15
20
25
30
35
40
45
50
Amplitude

Time (samples)

36

dB

dB

dB

dB

dB

dB

dB

dB

dB

dB

β = [0, 2, 4, 6, 8, 10]

Length 50 Kaiser windows, 6 betas between 0 and 10 0
= 0
−50
−100
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0 0
Normalized Frequency (cycles per sample)
= 2
−50
−100
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0 0
Normalized Frequency (cycles per sample)
= 4
−50
−100
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0 0
Normalized Frequency (cycles per sample)
= 6
−50
−100
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0 0
Normalized Frequency (cycles per sample)
= 8
−50
−100
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0 0
Normalized Frequency (cycles per sample)
= 10
−50
−100
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5

Normalized Frequency (cycles per sample)

37

Kaiser Windows and Transforms α = [1, 2, 3]
(β = [π, 2π, 3π])
1
0
= 1
= 1
0.5
−50
0
−100
−50
0
50
−2
0
2
Time (samples)
ωT
1
0
= 2
= 2
0.5
−50
0
−100
−50
0
50
−2
0
2
Time (samples)
ωT
1
0
= 3
= 3
0.5
−50
0
−100
−50
0
50
−2
0
2
Time (samples)
ωT
Amplitude
Amplitude
Amplitude
Magnitude (dB)
Magnitude (dB)
Magnitude (dB)

39

M

= [20, 30, 40, 50]

Kaiser window transforms, 4 window lengths between 20 and 50, beta=4 0
−20
M = 20
−40
−60
0 0.05
0.1
0.15
0.2
0.25
0 Normalized Frequency (cycles per sample)
−20
M = 30
−40
−60
0 0.05
0.1
0.15
0.2
0.25
0 Normalized Frequency (cycles per sample)
−20
M = 40
−40
−60
0 0.05
0.1
0.15
0.2
0.25
0 Normalized Frequency (cycles per sample)
−20
M = 50
−40
−60
0 0.05
0.1
0.15
0.2
0.25

Normalized Frequency (cycles per sample)

38

Chebyshev

Minimize the Chebyshev norm of the side lobes:

min w sidelobes(W ) = min w {max ω>ω c |W(ω)|}

Alternatively, minimize main lobe width subject to a

sidelobe spec:

max (ω c )

w

|W (ω) |≤ c α , ∀|ω|≥ω c

Closed-Form Window Transform:

W(ω k ) = cos M cos 1 β cos πk

M

cosh M cosh 1 (β)

β

= cosh M cosh 1 (10 α ) ,

1

, (|k| ≤ M 1)

(α 2, 3, 4)

[Note error in text, which says “β = cosh 1 [· · · ]”]

Window w = IDFT(W ) [zero-phase case]

or IDFT of (1) k W(ω k ) for causal case

α controls sidelobe level (“stopband ripple”):

Side-Lobe Level in dB = 20α.

smaller ripple larger ω c

see matlab function “chebwin(M,ripple)”

also called the Dolph-Chebyshev Window

40

Chebyshev Window, Length 31, Ripple -40 dB

Length 31 Chebyshev window 1
0.8
0.6
0.4
0.2
0
Amplitude −25
−20
−15
−10
−5
0
5
10
15
20
25
Time (samples)
10
0
−10
−20
−30
rip = 40.0 dB
−40
−50
−60
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Magnitude (dB)

Normalized Frequency (cycles/sample)

41

Chebyshev Window, Length 101, Ripple -40 dB

Length 101 Chebyshev window 1
0.8
0.6
0.4
0.2
0
Amplitude −60
−40
−20
0
20
40
60
Time (samples)
10
0
−10
−20
−30
rip = 40.0 dB
−40
−50
−60
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Magnitude (dB)

Normalized Frequency (cycles/sample)

43

Chebyshev Window, Length 31, Ripple -200 dB

Length 31 Chebyshev window 1
0.8
0.6
0.4
0.2
0
Amplitude −25
−20
−15
−10
−5
0
5
10
15
20
25
Time (samples)
0
−50
−100
−150
rip = 200.0 dB
−200
−250
−300
−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
Magnitude (dB)

Normalized Frequency (cycles/sample)

42

Chebyshev and Hamming Windows Compared

DFT of Chebyshev and Hamming Window: M = 31, Ripple = −42 dB 0
Chebyshev
Hamming
−10
−20
−30
−40
−50
−60
−70
−3
−2
−1
0
1
2
3
Magnitude (dB)

For the comparison, we set the ripple parameter for chebwin to 42 dB:

window

=

[

chebwin(31,42)’

44

zeros(1,1024-31)

];

Gaussian

The Gaussian “bell curve” is the only smooth function that transforms to itself:

1

σ 2π e t 2 / 2σ 2 e ω 2 / 2(1) 2

It also achieves the minimum time-bandwidth product

σ t σ ω = σ × (1) = 1

when “width” of a function is deﬁned as the square root of its second central moment. For even functions w(t),

σ t

=

−∞

t

2 w(t)dt.

Since the true Gaussian function has inﬁnite duration, in practice we must window it with some ﬁnite window, or at least truncate it.

Philippe Depalle suggests using a triangular window raised to some power α for this purpose.

This choice preserves the absence of sidelobes for suﬃciently large α. It also preserves non-negativity of the transform

45

Gaussian Window and Transform

Gaussian Window, M = 21, Sigma = M/8 1
0.8
0.6
0.4
0.2
0
−20
−15
−10
−5
0
5
10
15
20
Amplitude

Time (samples) 0
DTFT
Parabola
−20
−40
−60
−80
−100
−3
−2
−1
0
1
2
3
ωT
Magnitude (dB)

47

The Gaussian Window in Spectral Modeling

Special Property: On a dB scale, the Gaussian is quadratic parabolic interpolation of a sampled

Gaussian transform

Conjecture: Quadratic interpolation of spectral peaks is generally more accurate on a log-magnitude scale (e.g., dB) than on a linear magnitude scale. This has been veriﬁed in a number of cases, and no counter-examples are yet known. Exercise: Prove this is true for the rectangular window.

is

exact.

Matlab for the Gaussian Window

function

[w]

=

gausswin(M,sigma)

n=(-(M-1)/2:(M-1)/2)’;

w

=

exp(-n.*n./(2*sigma.*sigma));

46

Optimal Windows

Generally we desire

W(ω) δ(ω)

Best results are obtained by formulating this as an FIR ﬁlter design problem.

In general, both time-domain and frequency-domain speciﬁcations are needed.

Equivalently, both magnitude and phase speciﬁcations are necessary in the frequency domain.

48

Optimal Windows for Audio Coding

Recently, numerically optimized windows have been developed by Dolby which achieve the following objectives:

Narrow the window in time

Smooth the onset and decay in time

Reduce sidelobes below the worst-case masking threshold

Windows in Graphics

1 http://www.cg.tuwien.ac.at/studentwork/CESCG99/TTheussl/paper.html

49

Conclusion

There is rarely a closed form expression for an optimal window in practice.

The hardest task is formulating the ideal error criterion.

Given an error criterion, it is usually straightforward to minimize it numerically with respect to the window samples w.

50