Is there a Barcilon-Temes window function that works as well as in harris's classic paper?

2 views (last 30 days)
The batrhewin.m function on the matlab server is not it! harris;s recipe for barcilon-temes doesn't seem to work, but then his recipe for dolph-chebyshev doesn't work either.
  5 Comments
Victor van der Wolf
Victor van der Wolf on 6 Dec 2016
Read your reply again, here's some aditional info:
My version does use the formula for the frequency domain and then does an idft to construct the filter in the time domain.
a=3.0 --> -48 dB
a=3.5 --> -58 dB
a=4.0 --> -68 dB
So, I'm getting the Harris numbers, except at 3.0. Will we ever get it right?
Paul McKenzie
Paul McKenzie on 19 Dec 2016
Edited: Star Strider on 19 Dec 2016
I finally got a version to work, but I had to add a step to remove the window's pedestal. Then I got the same result that Victor got, namely that harris's result for a=3.0 is optimistic by 5 dB. I think that harris did not oversample the spectrum adequately; if you look at his graph for a=3.0, you can just make out a sidelobe at -48 dB that is mushed into the mainlobe. My Barcilon-Temes function is shown below:
function w=bartemwin(N,a,s)
%w=bartemwin(N,a,s) computes N-pt Barcilon-Temes window with parameter a,
% using procedure from harris's paper, but with pedestal adjustment to 0.
% Comparison of sidelobe levels of this function to harris's results:
% a this function harris
% 3.0 -47.2 dB -53 dB (perhaps -48 dB?)
% 3.5 -57.4 dB -58 dB
% 4.0 -67.6 dB -68 dB
% It appears that harris's result for a=3 may be somewhat optimistic,
% perhaps the result of inadequate oversampling of the spectrum. This is
% consistent with the expectation that an increase of a by 0.5 should lower
% the sidelobe level by about 10 dB.
%INPUTS:
% N # points of window
% a suppression parameter
% s symmetry flag (s==0 is asymmetric, s~=0 is symmetric)
%OUTPUT:
% w N-point Barcilon-Temes window
%P. McKenzie Dec 2016
if nargin<3||isempty(s),s=1;end
B=10^a;C=acosh(B);A=sinh(C);beta=cosh(C/N);
H=(N-1)/2;k=[0:floor(H),-ceil(H):-1].'; %indices for N spectral points
y=N*acos(beta*cos(pi*k/N)); %y(k)
W=(-1).^k.*(A*cos(y)+(B/C)*(y.*sin(y)))./((C+A*B)*(1+(y/C).^2));
W(1)=W(1)-real(sum(W)); %adjust pedestal to 0
if s;W=W.*exp(1j*k*(pi/N));end; %make window symmetric
w=real(ifft(W))*N;w=w/max(w); %ifft to time domain, normalize

Sign in to comment.

Answers (2)

Star Strider
Star Strider on 25 Nov 2016
Have you seen the File Exchange contribution Window Utilities?

Paul McKenzie
Paul McKenzie on 28 Nov 2016
In Windows Utilities, the only function claiming to be a Barcilon-Temes window is the aforementioned barthewin.m function. While it may be a window, it does not result in sidelobe levels comparable to the results shown in Harris's paper.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!