1. Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
    Dismiss Notice

HANN & RECTANGULAR WINDOWING

Discussion in 'Mathematics and Physics' started by derick007, Dec 5, 2015.

  1. derick007

    derick007 Member

    Joined:
    Feb 5, 2013
    Messages:
    89
    Likes:
    1
    Location:
    NORTHERN IRELAND, UK
    I have been using excel to calculate the power spectrums for both HANN and RECTANGULAR windowing with :

    N - 1
    DFT = X(K) =1/N x(n) ( cos (2πnk/N) - j sin (2πnk/N) )
    n = 0

    HANN x(n) = 0.5 (1 - cos (2πn/(N-1)))

    RECTANGULAR x(n) =1

    The RECTANGULAR function turns out to be ok, with 0 dB at 0 Hz. However I am having difficulty with the HANN function. It would appear from what I read online this should also be 0 dB at 0 Hz ? However when I use excel and the formulae above I get -6 dB at 0 Hz, which to be honest is what I would expect. Which is correct for the HANN function, 0 dB or -6 dB at 0 Hz ? If it is 0 dB, why do I get -6 dB ? If it is -6 dB, why do all these resources online quote 0 dB ?
     
  2. MrAl

    MrAl Well-Known Member Most Helpful Member

    Joined:
    Sep 7, 2008
    Messages:
    11,029
    Likes:
    951
    Location:
    NJ
    Hi,

    I am not entirely sure what you are doing but i get 0db.

    From Wikipedia if we have N=9 then to do 0Hz we need to use n=4. With N=9 and n=4 we get 0db with the 'cosine' formula.
     
  3. derick007

    derick007 Member

    Joined:
    Feb 5, 2013
    Messages:
    89
    Likes:
    1
    Location:
    NORTHERN IRELAND, UK
    Hi Mr Al,

    For the Hann function I get the following 9 samples in the time domain :

    x(0) = 0, x(1) = 0.146, x(2) = 0.5, x(3) = 0.854, x(4) = 1, x(5) = 0.854, x(6) = 0.5, x(7) = 0.146, x(8) = 0 ;N = 9

    Considering both positive and negative frequencies, DFT transforms this to

    X(0) = 4, X(1) = -2.19 – j0.8, X(2) =0.16 + j0.14, X(3) = 0.03 + j0.05, X(4) = 0.0027 + j0.015, X(5) = 0.0027 – j0.015, X(6) = 0.03 – j0.05, X(7) = 0.16 –j0.14, X(8) = -2.19 + j0.8

    |X(0)|/N = 4/9 = 0.444v = 0.2 watts = 22.95 dBm = dc or average value. MATLAB = 30 dBm

    PEAK ;|X(1)|/N = 2.33/9 = 0.26v (pk) = 0.0676 watt (pk) = 18.3 dBm (pk) MATLAB = 23.98 dBm

    RMS ; |X(1)|/N = 2.33/9 = 0.26v (pk) = 0.26/√2 v (rms) = 0.184 watt (rms) = 22.65 dBm (rms) MATLAB = 23.98 dBm

    PEAK ;|X(2)|/N = 0.21/9 = 0.023v (pk) = 0.00053 watt (pk) = -2.76 dBm (pk) MATLAB = -32.99 dBm

    RMS ; |X(2)|/N = 0.21/9 = 0.023v (pk) = 0.023/√2 v (rms) = 0.00027 watt (rms) = -5.78 dBm (rms) MATLAB = -32.99 dBm

    I built a very simple model in MATLAB, Simulink (no coding required) consisting of a signal generator, an oscilloscope and a spectrum analyser.

    The MATLAB readings above were taken from a power spectrum plot in the spectrum analyser – not sure if they are peak/rms.

    As you can see none of my calculations match either what you say above or the readings MATLAB produces. I suspect I am not calculating X(f) correctly see page 2 of the attached pdf.
     

    Attached Files:

Share This Page