Files
imdd_silas/Functions/EQ_visuals/showEQcoefficients.m
Silas Oettinghaus 74066d0669 Changes from mwork PC.
PDP 2025

MPI analysis

new focus on database and SQL
2025-03-21 08:11:40 +01:00

68 lines
2.0 KiB
Matlab

function showEQcoefficients(options)
% Show filter coefficients as stem plots.
% Only the provided coefficient arrays (n1, n2, n3) are shown,
% each in its own subplot. The y-axis is scaled to [-1, 1].
arguments
options.n1 = [];
options.n2 = [];
options.n3 = [];
options.fignum (1,1) double = NaN; % Default: create new figure if NaN
options.displayname (1,:) char = ''; % Default: empty string
options.color = [0.2157, 0.4941, 0.7216];
options.clf = 0; % Clear figure before plotting if set to 1
end
% Determine the figure number to use or create a new one.
if isnan(options.fignum)
fig = figure;
else
fig = figure(options.fignum);
end
if options.clf
clf(fig);
end
hold on
ax = gca;
N = numel(ax.Children);
% Set up a colormap for consistent coloring.
cmap = linspecer(8);
options.color = cmap(mod(N, size(cmap, 1)) + 1, :);
% Build cell arrays for coefficients and their corresponding titles.
coeffs = {};
titles = {};
if ~isempty(options.n1)
coeffs{end+1} = options.n1;
titles{end+1} = sprintf('1st order Filter Coefficients: %d', numel(options.n1));
end
if ~isempty(options.n2)
coeffs{end+1} = options.n2;
titles{end+1} = sprintf('2nd order Filter Coefficients: %d', numel(options.n2));
end
if ~isempty(options.n3)
coeffs{end+1} = options.n3;
titles{end+1} = sprintf('3rd order Filter Coefficients: %d', numel(options.n3));
end
numSubplots = numel(coeffs);
for i = 1:numSubplots
subplot(1, numSubplots, i);
stem(coeffs{i}, 'Color', options.color, 'LineWidth', 1, ...
'Marker', '.', 'MarkerSize', 10);
title(titles{i});
ylim([-1, 1]); % Set y-axis limits to [-1, 1]
grid on;
grid minor;
xlabel('Coefficient Index');
ylabel('Amplitude');
end
sgtitle('Filter Coefficients'); % Overall title for the figure
end