필터 지우기
필터 지우기

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

조회 수: 4 (최근 30일)
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
Victor van der Wolf
Victor van der Wolf 2016년 12월 6일
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 2016년 12월 19일
편집: Star Strider 2016년 12월 19일
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

댓글을 달려면 로그인하십시오.

답변 (2개)

Star Strider
Star Strider 2016년 11월 25일
Have you seen the File Exchange contribution Window Utilities?

Paul McKenzie
Paul McKenzie 2016년 11월 28일
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.

카테고리

Help CenterFile Exchange에서 Chebyshev에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by