clear all;
close all;
clc;

% Generátor LUT arbitrary signálů pro SigGen signálový generátor
% Na označeném místě libovolně upravte funkci a spusťte tento skript

% Zobrazí se graf signálu a zároveň se ve stejné složce jako tento soubor
% vygeneruje .CSV soubor s názvem matlab_LUT.csv

% POZOR - Amplituda signálu nemůže překročit 2047 nebo -2048 (rozsah DA převodníku)

% vygenerovaný soubor poté lze nahrát skrze DataPlotter do přístroje
% 1. v DataPlotteru stiskněte tlačítko UPLOAD
% 2. vyberte vygenerovaný soubor
% 3. v nastavení Shape vyberte USR
%% definice parametrů LUT
% NEMĚNIT
period = 2048;  % počet vzorků
dac_max = 2047; % maximální kladná hodnota DAC

%% fáze
index = 0:(period-1);

%% ZDE DEFINUJTE VLASTNÍ SIGNÁL
% výpočet amplitudy pro každou fázi
value = sin(2*pi*index/period) + (1/3)*sin(3*2*pi*index/period) + (1/5)*sin(5*2*pi*index/period);

%% převod na 12bitovou hodnotu
value = floor(dac_max*value);

%% kontrola max a min hodnot
if max(value) > 2047 || min(value) < -2048
    error("Amplituda signálu je mimo rozsah DAC. Maximum: 2047; Minimum: -2048");
end
%% náhled signálu
stairs(index, value);
xlim([0 2048]);
title("Náhled signálu");
xlabel("index");
ylabel("amplituda");

%% export do .csv
value = transpose(value);
writematrix(value, "matlab_LUT.csv", "Delimiter", ";");
