clear all
clc
souboryx={'61' '65' '69' '70' '72' '76' '80' '81'...
    '83' '87' '91' '92' '94' '98' '58' '59'}; %poslední povolený šroub a přivřená klapka
%část názvu zdorjového souboru původní beze změny pro seřazení
p2xs=[8.1226 8.129 8.1357 8.1443 8.1514 8.1590 8.168 8.177 8.196 ... %prvni mereni
    8.1056 8.1131 8.1207 8.128 8.1342 8.144 8.15 8.1582 8.167 8.1793 8.19 ... %druhe
    8.1057 8.113 8.121 8.128 8.1347 8.1427 8.15 8.1565 8.1667 8.1724 8.1866 ... %treti
    8.1042 8.1119 8.12 8.127 8.133 8.142 8.148 8.156 8.167 8.175 8.184 ...
    8.106 8.112 8.1192 8.1264 8.1342 8.1418]; %čtvrte mereni mA

freks = (1:40); %rozsah analýzy RMS v kHz (1= 0-0,999kHz;1= 1-1,999kHz) fs je 100kHz tzn maximální analyzpvaná frekvence je 50kHz
% rozsahy=[7 11 31 35 20 24 43 47];
rozsahy=[1 4 5 8 9 12 13 16]; %prvni čtyři jsou hranice s otevřenou klapkou a druhé dva s přivřenou
for MERENI=1:4 %1:2 znamená pouze měření s otevřenou klapkou
    rozsah=(rozsahy(2*MERENI-1):rozsahy(2*MERENI))
    
freqs(:,:,MERENI)=repmat(freks,length(rozsah),1); %vytvoření meshgridu frekvencí
soubory=souboryx(rozsah);
p2s=p2xs(rozsah);
%% Poznámky
%1 - 1-11; 5.bod A2y - občasné přetížení; 6. A2y - trvale přetížen 
%7. A2x - trvale přetížen
%2 - 12-24; 18-začíná se ozývat kavitace na šroubu
%3 - 25-35;
%4 - 36-48;
%% Initialize variables.
for i=1:length(soubory); 
tic
soubor=char(soubory(i));
formatSpec = 'Zpracovává se soubor %s.\n';
fprintf(formatSpec,soubor)%Výpis co se zpracovává
a1='C:\Users\The_Guardian\Desktop\Diplomka\NAMERENA_DATA\2_mereni\'; %umístění zdrojových souborů
a2='.lvm';
    filename=strcat(a1,soubor,a2); %spojení umístění
delimiter = '\t';
startRow = 24;

% Format string for each line of text:
%   column2: double (%f)
%	column3: double (%f)
%   column4: double (%f)
%	column5: double (%f)
%   column6: double (%f)
%	column7: double (%f)
%   column8: double (%f)
%	column9: double (%f)
%   column10: double (%f)
% For more information, see the TEXTSCAN documentation.
formatSpec = '%*s%f%f%f%f%f%f%f%f%f%*s%[^\n\r]';

%% Open the text file.
fileID = fopen(filename,'r');

%% Read columns of data according to format string.
% This call is based on the structure of the file used to generate this
% code. If an error occurs for a different file, try regenerating the code
% from the Import Tool.
textscan(fileID, '%[^\n\r]', startRow-1, 'ReturnOnError', false);
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'EmptyValue' ,NaN,'ReturnOnError', false);


% Close the text file.
fclose(fileID);

%% Allocate imported array to column variable names
Q = dataArray{:, 2};
As = dataArray{:, 3};
pk2 = dataArray{:, 4};
pk1 = dataArray{:, 5};
a2x = dataArray{:, 6};
a2y = dataArray{:, 7};
a1x = dataArray{:, 8};
p1 = dataArray{:, 9};
P2(i)=(p2s(i)-4)/16*400; %přepočet z elektrické veličiny na tlak v kPa
%% Clear temporary variables
clearvars filename delimiter startRow formatSpec fileID ans;
%% Získání periody vzorku
delta=length(p1);
Fs=100000; %vzorkovací frekvence 100kHz
v_per=1/Fs; %vzorkovací perioda
stop_t=delta/Fs; %čas konce záznamu
t=(v_per:v_per:stop_t)'; %vektor času

%% Střední hodnoty
P1(i)=mean(p1); %kPa
% P2(i)=mean(p2);%kPa
Qa(i)=mean(Q);
Qas=repmat(Qa,40,1);
dP(i)=P1(i)-P2(i);%tlakový spád v kPa
%% Tlak syté páry
T=20;
Syta=[5.52444444444439e-05 0.000675666666666698 0.0517257936507932 0.589000000000002];
pp(i)=polyval(Syta,T); %kPa
%% Thommovo číslo
Sigma(i)=(P2(i)-pp(i))/(P1(i)-P2(i));
%% FFT a RMS z jednotlivých frekvencí
for prom=1:6;
promenna = dataArray{:, 2+prom}; %tzn 3 As,4 pk2,5 pk1,6 a2x,7 a2y,8 a1x
FT=fft(promenna);
Four(i,:)=FT;
for frek=freks;
    pomer=round(delta/Fs);
    Bod_start=(frek-1)*1000*pomer;
    Bod_stop=(frek*1000-1)*pomer;
    Bod_start2=delta-Bod_stop;
    Bod_stop2=delta-Bod_start;
    FTa=FT;
    FTa(1:Bod_start)=0;
    FTa(Bod_stop:Bod_start2)=0;
    FTa(Bod_stop2:end)=0;
    RMS_f(frek,i,prom) = sqrt(sum(abs(FTa/length(FTa)).^2));

end
end
toc
end

Qass(:,:,MERENI)=Qas;
RMS_F(:,:,:,MERENI)=RMS_f;
end
%% Odsun vakreslení pokud by nízké frekvence moc zastinovaly vyšší
odsun = 1;%kHz odsun od 0 kdy se začne vyhodnocovat RMS
if (odsun>0)
RMS_F(1:odsun,:,:,:)=0;
end
