clear all
close all
load results.mat

%% Paraméterek beállítása
N = size(H_mx,1);
dx = 7e-2;

% Eredeti rács méretei
Ny = size(H_mx, 3); 
Nx = size(H_mx, 4); 

% Eredeti koordináta-vektorok
x = (0:Nx-1) * dx;
y = (0:Ny-1) * dx;

[X_old, Y_old] = meshgrid(x, y); 

N_speaker = 1;

target_x = 0.8; 
target_y = 0.1;

% Legközelebbi mérési pont indexei
[~, idx_x] = min(abs(x - target_x));
[~, idx_y] = min(abs(y - target_y));

actual_x = x(idx_x);
actual_y = y(idx_y);

freq = (0:N-1)/N*fs;
f0 = 1e3;
[~, fix] = min(abs( freq - f0 ));

speaker_field = squeeze(H_mx(fix, N_speaker, :, :));

%% Interpoláció dense gridre
q = 5; 
x_dense = linspace(min(x), max(x), Nx * q);
y_dense = linspace(min(y), max(y), Ny * q);
[X_dense, Y_dense] = meshgrid(x_dense, y_dense);

speaker_field_dense = interp2(X_old, Y_old, real(speaker_field), X_dense, Y_dense, 'spline');

%% MEGJELENÍTÉS (Közös Figure, igazított szélességekkel)
fig = figure('Position', [100, 100, 900, 750]);

% --- 1. SUBPLOT: Interpolált hangtér ---
ax1 = subplot(2, 1, 1); 
pcolor(X_dense, Y_dense, speaker_field_dense);
shading interp;
cbar = colorbar; % Létrehozzuk a colorbar-t
hold on;

% Piros pötty a kiválasztott pontra
plot(actual_x, actual_y, 'ro', 'MarkerSize', 10, 'MarkerFaceColor', 'r', 'LineWidth', 2);
hold off;

axis equal tight
xlabel('X pozíció [m]');
ylabel('Y pozíció [m]');
title(['Interpolált hangtér f = ', num2str(freq(fix)), ' Hz']);

% --- 2. SUBPLOT: Átviteli függvény logaritmikus frekvenciatengellyel ---
ax2 = subplot(2, 1, 2);

% Átviteli függvény kinyerése
transfer_function = squeeze(H_mx(:, N_speaker, idx_y, idx_x));
tf_dB = 20 * log10(abs(transfer_function) + eps);

% Semilogx ábrázolás fs/2-ig korlátozva
semilogx(freq, tf_dB, 'b', 'LineWidth', 1.5);
grid on;
xlim([50, 20e3]);
xlabel('Frekvencia [Hz]');
ylabel('Magnitúdó [dB]');
title(['Átviteli függvény a kijelölt pontban (Hangszóró: ', num2str(N_speaker), ')']);
