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

1 visualización (últimos 30 días)
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 comentarios
Victor van der Wolf
Victor van der Wolf el 6 de Dic. de 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 el 19 de Dic. de 2016
Editada: Star Strider el 19 de Dic. de 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

Iniciar sesión para comentar.

Respuestas (2)

Star Strider
Star Strider el 25 de Nov. de 2016
Have you seen the File Exchange contribution Window Utilities?

Paul McKenzie
Paul McKenzie el 28 de Nov. de 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.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by