How to do Gaussian Filter 1D?

416 Ansichten (letzte 30 Tage)
Tyann Hardyn
Tyann Hardyn am 11 Dez. 2021
Bearbeitet: Tyann Hardyn am 11 Dez. 2021
Hi, Community
I wanna ask about how to do a Gaussian Filter in just 1D data.... So i have a data vector based on time series like this :
And i want to filter the data by using Gaussian Filter. So, Anyone, How to do that? Thank you so much....

Akzeptierte Antwort

Chunru
Chunru am 11 Dez. 2021
x = readtimetable("IAGA Daily Magnetic Data (1m) Extraction 04-Jul-2021 (CTS).txt")
x = 1440×8 timetable
Time Var1 Var2 Var3 Var4 Var5 Var6 Var7 Var8 __________ ________ _____ _____ _____ ____ _____ _____ _____ 2021-07-04 00:00:00 22494 47892 47882 0 22494 23.58 42280 2021-07-04 00:01:00 22494 47891 47882 0 22494 23.54 42280 2021-07-04 00:02:00 22494 47891 47882 0 22494 23.58 42280 2021-07-04 00:03:00 22494 47891 47882 0 22494 23.51 42280 2021-07-04 00:04:00 22494 47891 47882 0 22494 23.62 42280 2021-07-04 00:05:00 22494 47891 47882 0 22494 23.77 42280 2021-07-04 00:06:00 22494 47891 47881 0 22494 23.84 42280 2021-07-04 00:07:00 22494 47891 47881 0 22494 23.88 42280 2021-07-04 00:08:00 22494 47891 47881 0 22494 23.92 42280 2021-07-04 00:09:00 22494 47891 47882 0 22494 23.99 42280 2021-07-04 00:10:00 22494 47891 47882 0 22494 24.07 42280 2021-07-04 00:11:00 22494 47892 47882 0 22494 24.18 42280 2021-07-04 00:12:00 22494 47892 47882 0 22494 24.18 42280 2021-07-04 00:13:00 22495 47892 47882 0 22495 24.33 42280 2021-07-04 00:14:00 22495 47892 47882 0 22495 24.37 42280 2021-07-04 00:15:00 22495 47892 47882 0 22495 24.33 42280
w = gausswin(10, 2.5);
w = w/sum(w);
y = filter(w, 1, x.Var7);
plot(x.Var7, 'r'); hold on; plot(y, 'b');
legend('original', 'filtered')
  2 Kommentare
Tyann Hardyn
Tyann Hardyn am 11 Dez. 2021
Thats so Great, Sir. I ll try with Gausswin function right now. Because Iam trying by using :
data_noise = fullfile("Path", "IAGA Daily Magnetic Data (1m) Extraction 04-Jul-2021 (CTS).txt")
data_noise0 = detectImportOptions(data_noise, 'NumHeaderLines',0,'Delimiter', ' ', 'Whitespace', ' ',...
'ConsecutiveDelimitersRule', 'join', 'EmptyLineRule', 'skip', 'FileType','text');
data0_komph = data0.Var3;
time_ori = string(data0.Var2);
l_wak = length(data0_komph);
gauss_filt = fspecial('gaussian',[l_wak 1] ,10);
gauss_komph = conv(data0_komph,gauss_filt, 'same');
plot(time_ori, gauss_komph);
and the result is weird :
Its maybe the both of side (gauss filter) part which is symmetry was still remain....
Iam so grateful that someone can give me an Input Idea.... Thank You So Much
Tyann Hardyn
Tyann Hardyn am 11 Dez. 2021
Bearbeitet: Tyann Hardyn am 11 Dez. 2021
Hi, Chunru
I have a problem when plotting the gaussian filter result and the original data....
What is x component you re used in Plot? Why it become a range between 0 - 1500 instead of time series data, which mean from 2021-07-04 00:00:00 until 2021-07-04 23:59:00?
I actually have a problem in Var6 Plot. I need to filter the var6 (Horizontal Magnetic Component) and not in var7

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by