71 lines
2.2 KiB
Matlab
Executable File
71 lines
2.2 KiB
Matlab
Executable File
% Filtro che considera N deviazioni standard in una finestra centrata di
|
|
% input dati (una in avanti e una all'indietro) e mette a zero lo
|
|
% spostamento se è inferiore a tale valore
|
|
% E' previsto un secondo filtro forfettario se lo spostamento è minore di
|
|
% un determinato valore
|
|
|
|
function [dY_TLHRH,dZ_TLHRH,text] = filtro_TLHRH(dY_TLHRH,dZ_TLHRH,Ndevst_HR,Wdevst_HR)
|
|
|
|
dY_TLHRH = dY_TLHRH';
|
|
dZ_TLHRH = dZ_TLHRH';
|
|
calcoloY_TLH = dY_TLHRH;
|
|
calcoloZ_TLH = dZ_TLHRH;
|
|
|
|
[r,c] = size(dY_TLHRH); % riga date, colonna nodi
|
|
filtroY = zeros(r,c);
|
|
filtroZ = zeros(r,c);
|
|
N_dev_st = Ndevst_HR;
|
|
finestra = Wdevst_HR;
|
|
contY = 0;
|
|
contZ = 0;
|
|
|
|
for j = 2:c % nodi
|
|
for i = (finestra/2+0.5):(r-(finestra/2-0.5)) % date
|
|
% Y
|
|
var = calcoloY_TLH((i-(finestra/2-0.5)):(i+(finestra/2-0.5)),j);
|
|
filtroY(i,j) = N_dev_st*std(var);
|
|
if abs(dY_TLHRH(i,j))<filtroY(i,j)
|
|
dY_TLHRH(i,j) = 0;
|
|
contY = contY+1;
|
|
end
|
|
% Z
|
|
var = calcoloZ_TLH((i-(finestra/2-0.5)):(i+(finestra/2-0.5)),j);
|
|
filtroZ(i,j) = N_dev_st*std(var);
|
|
if abs(dZ_TLHRH(i,j))<filtroZ(i,j)
|
|
dZ_TLHRH(i,j) = 0;
|
|
contZ = contZ+1;
|
|
end
|
|
end
|
|
|
|
for i = (r-(finestra/2-1.5)):r % date
|
|
var = zeros(finestra-1,1); % Prolungo l'ultimo dato per il trend che non ho
|
|
delta = r-i+1;
|
|
% Y
|
|
var(1:delta,1) = calcoloY_TLH(i:end,j);
|
|
var(delta+1:end-1) = calcoloY_TLH(end,j);
|
|
filtroY(i,j) = N_dev_st*std(var);
|
|
filtroY(end,j) = filtroY(end-1,j);
|
|
if abs(dY_TLHRH(i,j))<filtroY(i,j)
|
|
dY_TLHRH(i,j) = 0;
|
|
contY = contY+1;
|
|
end
|
|
% Z
|
|
var(1:delta,1) = calcoloZ_TLH(i:end,j);
|
|
var(delta+1:end-1) = calcoloZ_TLH(end,j);
|
|
filtroZ(i,j) = N_dev_st*std(var);
|
|
filtroZ(end,j) = filtroZ(end-1,j);
|
|
if abs(dZ_TLHRH(i,j))<=filtroZ(i,j)
|
|
dZ_TLHRH(i,j) = 0;
|
|
end
|
|
end
|
|
end
|
|
|
|
dY_TLHRH(1:(finestra/2-1.5),:) = 0;
|
|
dZ_TLHRH(1:(finestra/2-1.5),:) = 0;
|
|
|
|
dY_TLHRH = dY_TLHRH';
|
|
dZ_TLHRH = dZ_TLHRH';
|
|
|
|
text = ['' num2str(contY) ' Y data, ' num2str(contZ) ...
|
|
' Z data, data filtered for Tilt Link HR H - Statistic filter!'];
|
|
end |