pkg load signal
graphics_toolkit gnuplot
clear all; close all; clc
betas = [1 2 4 8 16];
alphas = betas/pi
colors = [0 0 1; 0 1 0; 1 0 0; 0 1 1; 1 0 1]; %blue green red cyan magenta
hfig = figure;
grid on; hold on; box on
N = 128; % Relative curve shapes are not sensitive to this number
set(gca, "XTick",[0 : 1/8 : 1]*N,...
"XTickLabel",[" 0"; " "; " "; " "; " "; " "; " "; " "; "N "])
xlim([0 N])
ylim([0 1.05])
for k = 1:length(betas)
w = besseli(0,betas(k)*sqrt(1-(2*(0:N)/N -1).^2))/besseli(0,betas(k));
plot(0:N, w, "color", colors(k,:), "linewidth", 2)
end
title("Parametric family of Kaiser windows")
ylabel(" ") % create left margin
text(3, .99, 'W_n', "fontsize", 14)
text(56, -0.05, '\leftarrow n \rightarrow')
h = legend(['\pi\alpha= ' num2str(betas(1),'%2i') '; \alpha=' num2str(betas(1)/pi,'%4.2f')],...
['\pi\alpha= ' num2str(betas(2),'%2i') '; \alpha=' num2str(betas(2)/pi,'%4.2f')],...
['\pi\alpha= ' num2str(betas(3),'%2i') '; \alpha=' num2str(betas(3)/pi,'%4.2f')],...
['\pi\alpha= ' num2str(betas(4),'%2i') '; \alpha=' num2str(betas(4)/pi,'%4.2f')],...
['\pi\alpha=' num2str(betas(5),'%2i') '; \alpha=' num2str(betas(5)/pi,'%4.2f')],...
"location","south");
legend boxoff
set(h, "fontsize",10);
% The following print() converts plain-text Greek characters in text() strings into Symbol font,
% but legend() crashes it. The set() succeeds, but generates warnings, some of which are
% diabled by warning().
% print(hfig,"-dsvg","-color",'C:\Users\BobK\KaiserWindow.svg')
warning("off", "Octave:missing-glyph");
set(h, "fontname","Symbol");