Abstract
The discrete Fourier transform (DFT) is carried out on a bounded time interval, which is equivalent to multiplying a signal under analysis by a rectangular window whose spectrum has the largest (among the other windows) side lobes. As a result, the effect called spectral leakage occurs. Multiplying the signal by the smoothing window reduces the splatter of its spectral components. There are several dozen variants of window functions as the DFT is used in a variety of problems. Of particular interest is the unique flat-top window, which is employed in broadband applications. In this study, we propose a new adjustable window with a quasi-rectangular spectrum and a method to reduce the level of the spectrum’s side lobes.
Similar content being viewed by others
REFERENCES
V. P. Dvorkovich and A. V. Dvorkovich, Window Functions for Harmonic Analysis of Signals (Tekhnosfera, Moscow, 2016) [in Russian].
I. S. Gradshtein and I. M. Ryzhik, Table of Integrals, Series, and Products (Fizmatlit, Moscow, 1963; Academic, New York, 1980).
V. I. Smirnov, Course of Higher Mathematics (BKhV-Peterburg, St. Petersburg, 2010; Addison-Wesley, Reading, Mass., 1964), Vol. 3.
Author information
Authors and Affiliations
Corresponding author
Additional information
Translated by Yu. Kornienko
Appendices
Hereinafter, the listing format of the programs is preserved.
APPENDIX A
Hereinafter, the listing format of the programs is preserved.
The Roots of Generalized Laguerre Polynomial \(L_{N}^{{\left( {\frac{1}{2}} \right)}}\left( {{{t}^{2}}} \right)\)
laguerreL(3,0.5,t^2)/laguerreL(3,0.5,0) = –0.0761905t^6 + 0.8 t^4 – 2. t^2 + 1
\({{r}_{{1,2}}}\) = ±0.816288, \({{r}_{{3,4}}}\) = ±1.67355, \({{r}_{{5,6}}}\) = ±2.65196
laguerreL(4,0.5,t^2)/laguerreL(4,0.5,0) = 1/945(16. t^8 – 288. t^6 + 1512. t^4 – 2520. t^2 + 945)
\({{r}_{{1,2}}}\) = ±0.723551, \({{r}_{{3,4}}}\) = ±1.46855, \({{r}_{{5,6}}} = \) ±2.26658, \({{r}_{{7,8}}}\) = ±3.19099
laguerreL(5,0.5,t^2)/laguerreL(5,0.5,0) = –0.0030784 t^10 + 0.0846561 t^8 – 0.761905 t^6 + 2.66667 t^4 – 3.33333 t^2 + 1
\({{r}_{{1,2}}}\) = ±0.65681, \({{r}_{{3,4}}}\) = ±1.32656, \({{r}_{{5,6}}}\) = ±2.02595, \({{r}_{{7,8}}}\) = ±2.78329, \({{r}_{{9,10}}}\) = ±3.66847
laguerreL(6,0.5,t^2)/laguerreL(6,0.5,0)= 0.0004736 t^12 – 0.0184704 t^10 + 0.253968 t^8 – 1.52381 t^6 + 4. t^4 – 4. t^2 + 1
\({{r}_{{1,2}}}\) = ±0.605764, \({{r}_{{3,4}}}\) = ±1.22006, \({{r}_{{5,6}}}\) = ±1.85311, \({{r}_{{7,8}}}\) = ±2.51974, \({{r}_{{9,10}}}\) = ±3.24661, \({{r}_{{11,12}}}\) = ±4.10134
laguerreL(7,0.5,t^2)/laguerreL(7,0.5,0) = –0.0000631467 t^14 + 0.0033152 t^12 – 0.0646465 t^10 + 0.592593 t^8 – 2.66667 t^6 + 5.6 t^4 – 4.66667 t^2 + 1
\({{r}_{{1,2}}}\) = ±0.56507, \({{r}_{{3,4}}}\) = ±1.13612, \(~{{r}_{{5,6}}}\) = ±1.71999, \({{r}_{{7,8}}}\) = ±2.32573, \({{r}_{{9,10}}}\) = ±2.96717, \({{r}_{{11,12}}}\) = ±3.66995, \({{r}_{{13,14}}}\) = ±4.49999
laguerreL(8,0.5,t^2)/laguerreL(8,0.5,0) = 1/135 (0.00100292 t^16 – 0.0681985 t^14 + 1.79021 t^12 – 23.2727 t^10 + 160. t^8 – 576. t^6 + 1008. t^4 – 720. t^2 + 135)
\({{r}_{{1,2}}}\) = ±0.531633, \({{r}_{{3,4}}}\) = ±1.06765, \(~{{r}_{{5,6}}}\) = ±1.61292, \({{r}_{{7,8}}}\) = ±2.1735, \({{r}_{{9,10}}}\) = ±2.75776, \({{r}_{{11,12}}}\) = ±3.37893, \({{r}_{{13,14}}}\) = ±4.06195, \({{r}_{{15,16}}}\) = ±4.87135
laguerreL(9,0.5,t^2)/laguerreL(9,0.5,0) = –7.82003 × 10^–7 t^18 + 0.0000668612 t^16 – 0.00227328 t^14 + 0.0397824 t^12 – 0.387879 t^10 + 2.13333 t^8 – 6.4 t^6 + 9.6 t^4 – 6. t^2 + 1
\({{r}_{{1,2}}}\) = ±0.50352, \({{r}_{{3,4}}}\) = ±1.01037, \({{r}_{{5,6}}}\) = ±1.52417, \({{r}_{{7,8}}}\) = ±2.04923, \({{r}_{{9,10}}}\) = ±2.59113, \({{r}_{{11,12}}}\) = ±3.15785, \({{r}_{{13,14}}}\) = ±3.76219, \({{r}_{{15,16}}}\) = ±4.42853, \({{r}_{{17,18}}}\) = ±5.22027
laguerreL(10,0.5,t^2)/laguerreL(10,0.5,0) = (0.000258061 t^20 – 0.0270964 t^18 + 1.15837 t^16 – 26.2564 t^14 + 344.615 t^12 – 2688. t^10 + 12320. t^8 – 31680. t^6 + 41580. t^4 – 23100. t^2 + 3465)/3465
\({{r}_{{1,2}}}\) = ±0.479451, \({{r}_{{3,4}}}\) = ±0.9615, \(~{{r}_{{5,6}}}\) = ±1.44893, \({{r}_{{7,8}}}\) = ±1.94496, \({{r}_{{9,10}}}\) = ±2.45355, \({{r}_{{11,12}}}\) = ±2.97999, \({{r}_{{13,14}}}\) = ±3.53197, \({{r}_{{15,16}}}\) = ±4.122, \({{r}_{{17,18}}}\) = ±4.77399, \({{r}_{{19,20}}}\) = ± 5.55035
laguerreL(11,0.5,t^2)/laguerreL(11,0.5,0) = –6.47621 × 10^–9 t^22 + 8.19241 × 10^–7 t^20 – 0.0000430102 t^18 + 0.00122579 t^16 – 0.0208384 t^14 + 0.218803 t^12 – 1.42222 t^10 + 5.5873 t^8 – 12.5714 t^6 + 14.6667 t^4 – 7.33333 t^2 + 1
\({{r}_{{1,2}}}\) = ±0.458538, \({{r}_{{3,4}}}\) = ±0.919151, \({{r}_{{5,6}}}\) = ±1.38404, \({{r}_{{7,8}}}\) = ±1.85568, \({{r}_{{9,10}}}\) = ±2.33702, \({{r}_{{11,12}}}\) = ±2.8318, \({{r}_{{13,14}}}\) = ±3.34513, \({{r}_{{15,16}}}\) = ±3.88447, \({{r}_{{17,18}}}\) = ±4.46209, \({{r}_{{19,20}}}\) = ±5.10153, \({{r}_{{21,22}}}\) = ±5.86431
laguerreL(12,0.5,t^2)/laguerreL(12,0.5,0) = (2.12161 × 10^ – 6 t^24 – 0.000318241 t^22 + 0.0201288 t^20 – 0.704506 t^18 + 15.0588 t^16 – 204.8 t^14 + 1792. t^12 – 9984. t^10 + 34320. t^8 – 68640. t^6 + 72072. t^4 – 32760. t^2 + 4095)/4095
\({{r}_{{1,2}}}\) = ±0.440147, \({{r}_{{3,4}}}\) = ±0.881983, \({{r}_{{5,6}}}\) = ±1.32728, \({{r}_{{7,8}}}\) = ±1.778, \({{r}_{{9,10}}}\) = ±2.23642, \({{r}_{{11,12}}}\) = ±2.70532, \({{r}_{{13,14}}}\) = ±3.18829, \({{r}_{{15,16}}}\) = ±3.69028,
\({{r}_{{17,18}}}\) = ±4.21861, \({{r}_{{19,20}}}\) = ±4.78532, \({{r}_{{21,22}}}\) = ±5.41364, \({{r}_{{23,24}}}\) = ±6.16427
APPENDIX B
Programs (Matlab 6.5)
1. Spectra G(w) (see Fig. 1).
syms w G;
hold on
for k = 1:6
G(k,:) = taylor(exp(w.^2/4),12*(k – 1) + 1)*exp(–w.^2/4);
ezplot(G(k,:),0,14)
end
grid on
w = 0:0.01:14;
G = (1 + 1/4*w.^2 + 1/32*w.^4 + 1/384*w.^6).*exp(–w.^2/4);
plot(w,G)
grid on
xlabel('w')
ylabel('G ( w )')
title('W i n d o w s G (N = 0) a n d G T (N = 3, 6, 12, 18, 24, 30')
\(2.~~{\text{The computation of}}~~{{w}_{1}}~~{\text{ for }}~~{{a}_{1}} = {1 \mathord{\left/ {\vphantom {1 {\sqrt 2 }}} \right. \kern-0em} {\sqrt 2 }}\).
syms w G;
G = taylor(exp(w^2/4),13)*exp(–w^2/4);
solve(G–1/(2^0.5),w)
solve is an operator for solving the algebraic equation (G – \({1 \mathord{\left/ {\vphantom {1 {\sqrt 2 }}} \right. \kern-0em} {\sqrt 2 }}\) = 0)
3. The logarithm of the modulus of normalized function g(t) (N = 9)\({{\log }_{{10}}}\left| {{{g\left( t \right)} \mathord{\left/ {\vphantom {{g\left( t \right)} {g\left( 0 \right)}}} \right. \kern-0em} {g\left( 0 \right)}}} \right|~\).
Fs =1024;
t = –5.22027:1/Fs: 5.22027;
g = exp(–t.^2).*(–7.82003*10^–7* t.^18 + 0.0000668612* t.^16 – 0.00227328* t.^14 + 0.0397824* t.^12 – 0.387879* t.^10 + 2.13333* t.^8 – 6.4* t.^6 + 9.6* t.^4 – 6* t.^2 + 1);
plot(t,log10(abs(g)));
title('W i n d o w G T (N = 9 ) i n T i m e D o m a i n (L o g S c a l e' ))
xlabel('T i m e ( t )')
ylabel('abs(g (t ))');
4. The spectrum of function g(t) (N = 5) for various interval lengths.
Fs = 1024;
t1 = –1.32656: 1/Fs: 1.32656;
t2 = –2.02595: 1/Fs: 2.02595;
t3 = –2.78329: 1/Fs: 2.78329;
t4 = –3.66847: 1/Fs: 3.66847;
g1 = exp(–t1.^2).*(–0.0030784 *t1.^10 + 0.0846561* t1.^8 – 0.761905* t1.^6 + 2.66667* t1.^4 – 3.33333* t1.^2 + 1);
g2 = exp(–t2.^2).*(–0.0030784 *t2.^10 + 0.0846561* t2.^8 – 0.761905* t2.^6 + 2.66667* t2.^4 – 3.33333* t2.^2 + 1);
g3 = exp(–t3.^2).*(–0.0030784 *t3.^10 + 0.0846561* t3.^8 – 0.761905* t3.^6 + 2.66667* t3.^4 – 3.33333* t3.^2 + 1);
g4 = exp(–t4.^2).*(–0.0030784 *t4.^10 + 0.0846561* t4.^8 – 0.761905* t4.^6 + 2.66667* t4.^4 – 3.33333* t4.^2 + 1);
n = 131072;
F1 = fft(g1,n);
F2 = fft(g2,n);
F3 = fft(g3,n);
F4 = fft(g4,n);
f = Fs*(0:(n/2))/n;
P1 = 20*log10(abs(F1/F1(1)));
P2 = 20*log10(abs(F2/F2(1)));
P3 = 20*log10(abs(F3/F3(1)));
P4 = 20*log10(abs(F4/F4(1)));
plot(f,P1(1:n/2 + 1),f,P2(1:n/2 + 1), f,P3(1:n/2 + 1),f,P4(1:n/2 + 1)),grid
title('W i n d o w s G T (N = 5) i n F r e q u e n c y D o m a i n')
xlabel('F r e q u e n c y ( f )')
ylabel('G (f ), d B');
5. The GT window functions (N = 3, N = 6, and N = 12) (see Fig. 4, curves 1–3) and their respective spectra (see Fig. 5).
Fs = 1024;
x = –0.5:1/Fs:0.5;
u = exp(–(x*5.3039).^2).*(–1696.38* x.^6 + 633.146* x.^4 – 56.2648 *x.^2 + 1);
u1 = exp(–(x*2.51974*2).^2).*(1 – 101.585* x.^2 + 2579.9* x.^4 – 24960* x.^6 + 105649* x.^8 – 195134* x.^10 + 127069* x.^12);
u2 = exp(–(x*2.70532*2).^2).*(2.05295*10^8* x.^24 – 1.0519*10^9 *x.^22 + 2.27267*10^9* x.^20 – 2.71711*10^9 *x.^18 + 1.98388*10^9 *x.^16 – 9.21631*10^8 *x.^14 + 2.75466*10.^8* x.^12 – 5.24248*10^7* x.^10 + 6.15577*10^6 *x.^8 – 420548* x.^6 + 15083.7* x.^4 – 234.2* x.^2 + 1);
n = 131072;
F = fft(u,n);
F1 = fft(u1,n);
F2 = fft(u2,n);
f = Fs*(0:(n/2))/n;
P = 20*log10(6.5*abs(F/Fs));
P1 = 20*log10(9*abs(F1/Fs));
P2 = 20*log10(12*abs(F2/Fs));
plot(f,P(1:n/2+1),f,P1(1:n/2 + 1),f,P2(1:n/2 + 1)), grid
title('Windows GT (N = 3, N = 6, N = 12) in Frequency Domain’)
xlabel('Frequency (y)')
ylabel('F(y),dB')
6. The comparison of the GTM and GT windows (see Fig. 6) and their spectra (see Fig. 7).
Fs = 1024;
x = –0.5:1/Fs:0.5;
v = x.*exp(–1.68294*x.^2–0.6341278*x.^4);
u =exp(–(x*5.3039.*(1 + 1.5*x.^6 + 2*x.^4)).^2).*( –1696.38*v.^6 + 633.146*v.^4 – 56.2648 *v.^2 + 1);
u1 = exp(–(x*5.3039).^2).*(–1696.38* x.^6 + 633.146* x.^4 – 56.2648 *x.^2 + 1);
plot(x,u,x,u1),grid;
title('W i n d o w s G T M (N = 3) a n d G T (N = 3) i n T i m e D o m a i n' )
legend('G T M','G T')
xlabel('T i m e (x)')
ylabel('u (x)');
n = 131072;
F = fft(u,n);
F1 = fft(u1,n);
f = Fs*(0:(n/2))/n;
P = 20*log10(abs(F/F(1)));
P1 = 20*log10(abs(F1/F1(1)));
plot(f,P(1:n/2 + 1),f,P1(1:n/2 + 1)),grid
title('W i n d o w s G T M (N = 3) a n d G T (N = 3) i n F r e q u e n c y D o m a i n' )
legend('G T M','G T')
xlabel('F r e q u e n c y ( y )')
ylabel('F ( y ), d B');
Fs = 1024;
x = –0.5:1/Fs:0.5;
v = x.*exp(–\(0.540777\)*x.^2–2.918446*x.^4);
u = exp(–(x*5.56658.*(1 + 1.5*x.^6 + 2*x.^4)).^2).*(–87944.8*v.^10 + 78048.7*v.^8 – 22669*v.^6 + 2560.49*v.^4 – 103.289*v.^2 + 1);
u1 = exp(–(x*5.56658).^2).* (–87944.8*x.^10 + 78048.7*x.^8 – 22669*x.^6 + 2560.49*x.^4 – 103.289*x.^2 + 1);
plot(x,u,x,u1),grid ;
title('W i n d o w s G T M (N = 5) a n d G T (N = 5) i n T i m e D o m a i n')
legend('G T M','G T')
xlabel('T i m e ( x )')
ylabel('u ( x )');
n = 131072;
F = fft(u,n);
F1 = fft(u1,n);
f = Fs*(0:(n/2))/n;
P = 20*log10(abs(F/F(1)));
P1 = 20*log10(abs(F1/F1(1)));
plot(f,P(1:n/2 + 1),f,P1(1:n/2 + 1)),grid
title('W i n d o w s G T M (N = 5) a n d G T (N = 5) i n F r e q u e n c y D o m a i n')
legend('G T M','G T')
xlabel('F r e q u e n c y (y)')
ylabel('F ( y ), d B');
Fs = 1024;
x = –0.5:1/Fs:0.5;
v = x.*exp(–0.413772*x.^2–3.172456*x.^4);
u = exp(–(4.6515*x.*(1 – 0.413772*x.^2 + 4*x.^4)).^2).*( –140169* v.^14 + 340116* v.^12 – 306531* v.^10 + 129867*v.^8 – 27010.1* v.^6 + 2621.56 *v.^4 – 100.97* v.^2 + 1);
u1 = exp(–(x*4.6515).^2).*( –140169* x.^14 + 340116* x.^12 – 306531* x.^10 + 129867* x.^8 – 27010.1* x.^6 + 2621.56 *x.^4 – 100.97* x.^2 + 1);
plot(x,u,x,u1),grid ;
title('W i n d o w s G T M (N = 7) a n d G T (N = 7) i n T i m e D o m a i n')
legend('G T M','G T')
xlabel('T i m e (x)')
ylabel('u (x)');
n = 131072;
F = fft(u,n);
F1 = fft(u1,n);
f = Fs*(0:(n/2))/n;
P = 20*log10(abs(F/F(1)));
P1 = 20*log10(abs(F1/F1(1)));
plot(f,P(1:n/2 + 1),f,P1(1:n/2 + 1)),grid
title('W i n d o w s G T M (N = 7) a n d G T (N = 7) i n F r e q u e n c y D o m a i n')
legend('G T M','G T')
xlabel('F r e q u e n c y (y)')
ylabel('F (y), d B');
Fs = 1024;
x = –0.5:1/Fs:0.5;
v = x.*exp(–1.357794*x.^2 – 1.284411*x.^4);
u = exp(–(x*5.4106.*(1 + 1.5*x.^6 + 2*x.^4)).^2).*(2.05259*10^8 *v.^24 – 1.05172*10^9*v.^22 + 2.27233*10^9*v.^20 – 2.71674*10^9*v.^18 + 1.98365*10^9 *v.^16 – 9.21535*10^8*v.^14 + 2.75441*10^8*v.^12 – 5.2421*10^7*v.^10 + 6.15541*10^6 *v.^8 – 420529*v.^6 + 15083.2*v.^4 – 234.197*v.^2 + 1);
u1 = exp(–(x*5.4106).^2).* (2.05259*10^8 *x.^24 – 1.05172*10^9*x.^22 + 2.27233*10^9*x.^20 – 2.71674*10^9*x.^18 + 1.98365*10^9 *x.^16 – 9.21535*10^8* x.^14 + 2.75441*10^8*x.^12 – 5.2421*10^7*x.^10 + 6.15541*10^6 *x.^8 – 420529*x.^6 + 15083.2*x.^4 – 234.197*x.^2 + 1);
plot(x,u,x,u1),grid ;
title('W i n d o w s G T M (N = 12) a n d G T (N = 12) i n T i m e D o m a i n')
legend('G T M','G T')
xlabel('T i m e (x)')
ylabel('u (x)');
n = 131072;
F = fft(u,n);
F1 = fft(u1,n);
f = Fs*(0:(n/2))/n;
P = 20*log10(abs(F/F(1)));
P1 = 20*log10(abs(F1/F1(1)));
plot(f,P(1:n/2 + 1),f,P1(1:n/2+1)),grid
title('W i n d o w s G T M (N = 12) a n d G T (N = 12) i n F r e q u e n c y D o m a i n')
legend('G T M','G T')
xlabel('F r e q u e n c y (y)')
ylabel('F (y), d B');
APPENDIX C
The Results of Computing Certain Integrals to Evaluate the Parameters of Window Functions (Wolfram Alpha)
integral_(–0.5)^0.5 (exp(–(5.3039 x)^2) L_3^0.5((5.3039 x)^2))/(L_3^0.5(0)) dx = 0.152991
integral_(–0.5)^0.5 ((exp(–(5.3039 x)^2) L_3^0.5((5.3039 x)^2))/(L_3^0.5(0)))^2 dx = 0.130915
integral_(–0.5)^0.5 (exp(–(5.3039 x)^2) L_3^0.5((5.3039 x)^2) cos(π x))/(L_3^0.5(0)) dx = 0.152713
integral_(–0.5)^0.5 (exp(–(4.53316 x)^2) L_4^0.5((4.53316 x)^2))/(L_4^0.5(0)) dx = 0.159561
integral_(–0.5)^0.5 ((exp(–(4.53316 x)^2) L_4^0.5((4.53316 x)^2))/(L_4^0.5(0)))^2 dx = 0.138604
integral_(–0.5)^0.5 (exp(–(4.53316 x)^2) L_4^0.5((4.53316 x)^2) cos(π x))/(L_4^0.5(0)) dx = 0.158743
integral_(–0.5)^0.5 (exp(–(5.56658 x)^2) L_5^0.5((5.56658 x)^2))/(L_5^0.5(0)) dx = 0.117523
integral_(–0.5)^0.5 ((exp(–(5.56658 x)^2) L_5^0.5((5.56658 x)^2))/(L_5^0.5(0)))^2 dx = 0.103945
integral_(–0.5)^0.5 (exp(–(5.56658 x)^2) L_5^0.5((5.56658 x)^2) cos(π x))/(L_5^0.5(0)) dx = 0.117639
integral_(–0.5)^0.5 (exp(–(5.0395 x)^2) L_6^0.5((5.0395 x)^2))/(L_6^0.5(0)) dx = 0.119713
integral_(–0.5)^0.5 ((exp(–(5.0395 x)^2) L_6^0.5((5.0395 x)^2))/(L_6^0.5(0)))^2 dx = 0.107035
integral_(–0.5)^0.5 (exp(–(5.0395 x)^2) L_6^0.5((5.0395 x)^2) cos(π x))/(L_6^0.5(0)) dx = 0.119961
integral_(–0.5)^0.5 (exp(–(4.6515 x)^2) L_7^0.5((4.6515 x)^2))/(L_7^0.5(0)) dx = 0.120908
integral_(–0.5)^0.5 ((exp(–(4.6515 x)^2) L_7^0.5((4.6515 x)^2))/(L_7^0.5(0)))^2 dx = 0.109086
integral_(–0.5)^0.5 (exp(–(4.6515 x)^2) L_7^0.5((4.6515 x)^2) cos(π x))/(L_7^0.5(0)) dx = 0.121318
integral_(–0.5)^0.5 (exp(–(4.0985 x)^2) L_9^0.5((4.0985 x)^2))/(L_9^0.5(0)) dx = 0.12202
integral_(–0.5)^0.5 ((exp(–(4.0985 x)^2) L_9^0.5((4.0985 x)^2))/(L_9^0.5(0)))^2 dx = 0.111704
integral_(–0.5)^0.5 (exp(–(4.0985 x)^2) L_9^0.5((4.0985 x)^2) cos(π x))/(L_9^0.5(0)) dx = 0.122793
integral_(–0.5)^0.5 (exp(–(5.4106 x)^2) L_12^0.5((5.4106 x)^2))/(L_12^0.5(0)) dx = 0.0812328
integral_(–0.5)^0.5 ((exp(–(5.4106 x)^2) L_12^0.5((5.4106 x)^2))/(L_12^0.5(0)))^2 dx = 0.0749071
integral_(–0.5)^0.5 (exp(–(5.4106 x)^2) L_12^0.5((5.4106 x)^2) cos(π x))/(L_12^0.5(0)) dx = 0.0813022
Rights and permissions
About this article
Cite this article
Lerner, Z.D. Window Functions with a Quasi-Rectangular Spectrum. J. Commun. Technol. Electron. 65, 1010–1021 (2020). https://doi.org/10.1134/S1064226920080070
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1134/S1064226920080070