我们提出了一种新的方法来设计和优化基于线性独立函数组合的窗口函数。这些组合可以使用不同的策略来执行,例如正弦/余弦之和、级数,或者方便地使用多项式展开。为了证明这种实现的灵活性,我们提出了广义自适应多项式 (GAP) 窗口函数,这是一种非线性多项式形式,其中所有当前窗口函数都可以被视为特殊情况。它的功能灵活性允许拟合扩展系数以优化时域或频域中的某些理想属性,例如主瓣宽度、旁瓣衰减和旁瓣衰减率。窗口优化可以通过迭代技术来执行,从一组模拟当前已知窗口函数的扩展系数开始,并考虑某个品质因数目标来优化这些系数。建议的 GAP 窗口已经实现,并获得了几组优化的系数。使用 GAP 的结果例证了该方法根据特定应用的要求获得具有优越性能的窗口函数的潜力。可以在该策略中应用其他优化算法以进一步改进窗口函数。使用 GAP 的结果例证了该方法根据特定应用的要求获得具有优越性能的窗口函数的潜力。可以在该策略中应用其他优化算法以进一步改进窗口函数。使用 GAP 的结果例证了该方法根据特定应用的要求获得具有优越性能的窗口函数的潜力。可以在该策略中应用其他优化算法以进一步改进窗口函数。
% GAP Generalized Adaptive Polynomial Window Function
%
% M (input) order
% w (output) returns an M-point GAP window.
%
% Authors: J.F. Justo, W. Beccaro
% Data: 2020
% IEEE Access 8, 187584 (2020). DOI: 10.1109/ACCESS.2020.3030903
% J. F. Justo and W. Beccaro, "Generalized Adaptive Polynomial Window Function,"
% in IEEE Access, vol. 8, pp. 187584-187589, 2020, doi: 10.1109/ACCESS.2020.3030903.
%
clear all; clc; warning ('off','all');
%% Initial conditions
% Create a 64-point window.
M = 64;
N = (0:1/(M-1):1)';
%% GAP Algorithm mimic window functions
% Computes a window function using traditional algorithm, e.g. nuttallwin()
win_function_matlab = nuttallwin(M);
% win_function_matlab = hann(M); % To mimic Hann window
% win_function_matlab = tukeywin(M); % To mimic Tukey window
% win_function_matlab = hamming(M); % % To mimic Hamming window
% Display the result using wvtool
wvtool(win_function_matlab);
% Fit Polynomial curve
[xData, yData] = prepareCurveData(N, win_function_matlab);
ft = fittype( '1 + a2*(x)^2 + a4*(x)^4 + a6*(x)^6 + a8*(x)^8 + a10*(x)^10 + a12*(x)^12 + a14*(x)^14 + a16*(x)^16 + a18*(x)^18 + a20*(x)^20', ...
'independent', 'x', 'dependent', 'y' );
opts = fitoptions( 'Normalize', 'on' );
% Fit GAP model to data.
[fitresult, gof] = fit(xData, yData, ft, opts);
GAP_win_function = fitresult(N);
% Display the result using wvtool to demonstrate how GAP can mimic window functions.
wvtool(GAP_win_function);
%% Optimization traditional window functions using GAP algorithm
% Initial values of polynomial window previously calculated
GAP_coef = [fitresult.a2,fitresult.a4,fitresult.a6,fitresult.a8,fitresult.a10,...
fitresult.a12,fitresult.a14,fitresult.a16,fitresult.a18, fitresult.a20];
% Optimization using derivative-free method
options = optimset('PlotFcns',{@optimplotfval});
GAP_optimized_coef = fminsearch(@sidelobe_attenuation, [GAP_coef, M], options);
% Display the result using wvtool to demonstrate GAP optimized window functions.
GAP_optimized_win_function = gapwin('user', M, GAP_optimized_coef);
wvtool(GAP_optimized_win_function);
[1] Justo, J. F. , and W. Beccaro . "Generalized Adaptive Polynomial Window Function." IEEE Access 8(2020):187584-187589.
部分理论引用网络文献,若有侵权联系博主删除。