diff --git a/commonFunctions/sensors/NoiseAnalysis/Functions/NoiseAnalysis_pink.m b/commonFunctions/sensors/NoiseAnalysis/Functions/NoiseAnalysis_pink.m
index 16acacc162ed493b69dfc9f39ca15b586e33901d..755b7fe2336cf73bc4381938a47447c0d12fd0e6 100644
--- a/commonFunctions/sensors/NoiseAnalysis/Functions/NoiseAnalysis_pink.m
+++ b/commonFunctions/sensors/NoiseAnalysis/Functions/NoiseAnalysis_pink.m
@@ -140,14 +140,23 @@ if ~plot_val
             sensor_vect(sensor_number).track1.peaks_vect_f = peaks_vect_f;
             sensor_vect(sensor_number).track1.peaks_vect_val = factor*peaks_vect_val;
             sensor_vect(sensor_number).track1.variance = white_variance;
+            sensor_vect(sensor_number).track1.white_variance = white_variance;
+            sensor_vect(sensor_number).track1.fcut = fcut;
+            sensor_vect(sensor_number).track1.butterOrder = butterOrder;
         case 3
             sensor_vect(sensor_number).track2.peaks_vect_f = peaks_vect_f;
             sensor_vect(sensor_number).track2.peaks_vect_val = factor*peaks_vect_val;
             sensor_vect(sensor_number).track2.variance = white_variance;
+            sensor_vect(sensor_number).track2.white_variance = white_variance;
+            sensor_vect(sensor_number).track2.fcut = fcut;
+            sensor_vect(sensor_number).track2.butterOrder = butterOrder;
         case 4
             sensor_vect(sensor_number).track3.peaks_vect_f = peaks_vect_f;
             sensor_vect(sensor_number).track3.peaks_vect_val = factor*peaks_vect_val;
             sensor_vect(sensor_number).track3.variance = white_variance;
+            sensor_vect(sensor_number).track3.white_variance = white_variance;
+            sensor_vect(sensor_number).track3.fcut = fcut;
+            sensor_vect(sensor_number).track3.butterOrder = butterOrder;
     end
 end
 
diff --git a/commonFunctions/sensors/Sensor1D.m b/commonFunctions/sensors/Sensor1D.m
index dd2fcc5067352b8bb00bcdbc20f27e89b33f1176..1eff68a7aadfe8364997055d791298b2c2c2eee6 100644
--- a/commonFunctions/sensors/Sensor1D.m
+++ b/commonFunctions/sensors/Sensor1D.m
@@ -154,18 +154,18 @@ classdef Sensor1D < handle
                 inputArg = inputArg + sqrt(obj.noiseVariance).*randn(length(inputArg),1);
             elseif ~isempty(obj.noiseDataTrack1)    
                 if strcmp(obj.noiseType, "white")
-                    inputArg = inputArg + sqrt(obj.noiseDataTrack1*obj.noiseFactor).*randn(length(inputArg),1);
+                    inputArg = inputArg + sqrt(obj.noiseDataTrack1*obj.noiseFactor^2).*randn(length(inputArg),1);
                 elseif strcmp(obj.noiseType, "pink")
                     for ii = 1:length(obj.noiseDataTrack1.peaks_vect_f)
                         inputArg = inputArg + obj.noiseDataTrack1.peaks_vect_val(ii)*obj.noiseFactor*sin(2*pi*obj.noiseDataTrack1.peaks_vect_f(ii)*t + randn(1));
                     end
                     % Colored noise
-                    white_noise = sqrt(obj.noiseDataTrack1.variance*obj.noiseFactor).*randn(length(inputArg),1);
+                    white_noise = sqrt(obj.noiseDataTrack1.variance*obj.noiseFactor^2).*randn(length(inputArg),1);
                     [b, a] = butter(obj.colored_opts.butterOrder, obj.colored_opts.fcut, 'low');
                     [colored_noise, obj.colored_opts.filterStatus1] = filter(b, a, white_noise, obj.colored_opts.filterStatus1);
                     inputArg = inputArg + colored_noise;
                 elseif strcmp(obj.noiseType, "colored")
-                    inputArg = inputArg + sqrt(obj.noiseDataTrack1.white_variance*obj.noiseFactor).*randn(length(inputArg),1);
+                    inputArg = inputArg + sqrt(obj.noiseDataTrack1.white_variance*obj.noiseFactor^2).*randn(length(inputArg),1);
                     [b, a] = butter(obj.noiseDataTrack1.butterOrder, obj.noiseDataTrack1.fcut, 'low');
                     [inputArg, obj.colored_opts.filterStatus1] = filter(b, a, inputArg, obj.colored_opts.filterStatus1);
                 else
diff --git a/commonFunctions/sensors/Sensor3D.m b/commonFunctions/sensors/Sensor3D.m
index 512645625bd255ea60816bc7345f6559f800fd72..d338de91cd48de2fe0794b96b3969166f3253f72 100644
--- a/commonFunctions/sensors/Sensor3D.m
+++ b/commonFunctions/sensors/Sensor3D.m
@@ -130,23 +130,23 @@ classdef Sensor3D < Sensor1D
                 inputArg3 = inputArg3 + sqrt(obj.noiseVariance).*randn(length(inputArg3),1);
             elseif ~isempty(obj.noiseDataTrack1)
                 if strcmp(obj.noiseType, "white")
-                    inputArg1 = inputArg1 + sqrt(obj.noiseDataTrack1*obj.noiseFactor).*randn(length(inputArg1),1);
-                    inputArg2 = inputArg2 + sqrt(obj.noiseDataTrack2*obj.noiseFactor).*randn(length(inputArg2),1);
-                    inputArg3 = inputArg3 + sqrt(obj.noiseDataTrack3*obj.noiseFactor).*randn(length(inputArg3),1);
+                    inputArg1 = inputArg1 + sqrt(obj.noiseDataTrack1*obj.noiseFactor^2).*randn(length(inputArg1),1);
+                    inputArg2 = inputArg2 + sqrt(obj.noiseDataTrack2*obj.noiseFactor^2).*randn(length(inputArg2),1);
+                    inputArg3 = inputArg3 + sqrt(obj.noiseDataTrack3*obj.noiseFactor^2).*randn(length(inputArg3),1);
                 elseif strcmp(obj.noiseType, "pink")
                     for ii = 1:length(obj.noiseDataTrack1.peaks_vect_f)
-                        inputArg1 = inputArg1 + obj.noiseDataTrack1.peaks_vect_val(ii)*sin(2*pi*obj.noiseDataTrack1.peaks_vect_f(ii)*t + randn(1));
-                        inputArg2 = inputArg2 + obj.noiseDataTrack2.peaks_vect_val(ii)*sin(2*pi*obj.noiseDataTrack2.peaks_vect_f(ii)*t + randn(1));
-                        inputArg3 = inputArg3 + obj.noiseDataTrack3.peaks_vect_val(ii)*sin(2*pi*obj.noiseDataTrack3.peaks_vect_f(ii)*t + randn(1));
+                        inputArg1 = inputArg1 + obj.noiseDataTrack1.peaks_vect_val(ii)*obj.noiseFactor*sin(2*pi*obj.noiseDataTrack1.peaks_vect_f(ii)*t + randn(1));
+                        inputArg2 = inputArg2 + obj.noiseDataTrack2.peaks_vect_val(ii)*obj.noiseFactor*sin(2*pi*obj.noiseDataTrack2.peaks_vect_f(ii)*t + randn(1));
+                        inputArg3 = inputArg3 + obj.noiseDataTrack3.peaks_vect_val(ii)*obj.noiseFactor*sin(2*pi*obj.noiseDataTrack3.peaks_vect_f(ii)*t + randn(1));
                     end
                     % Colored noise
-                    white_noise1 = sqrt(obj.noiseDataTrack1.variance*obj.noiseFactor).*randn(1,1);
+                    white_noise1 = sqrt(obj.noiseDataTrack1.variance*obj.noiseFactor^2).*randn(1,1);
                     [b1, a1] = butter(obj.noiseDataTrack1.butterOrder, obj.noiseDataTrack1.fcut, 'low');
                     [colored_noise1, obj.colored_opts.filterStatus1] = filter(b1, a1, white_noise1, obj.colored_opts.filterStatus1);
-                    white_noise2 = sqrt(obj.noiseDataTrack2.variance*obj.noiseFactor).*randn(1,1);
+                    white_noise2 = sqrt(obj.noiseDataTrack2.variance*obj.noiseFactor^2).*randn(1,1);
                     [b2, a2] = butter(obj.noiseDataTrack2.butterOrder, obj.noiseDataTrack2.fcut, 'low');
                     [colored_noise2, obj.colored_opts.filterStatus2] = filter(b2, a2, white_noise2, obj.colored_opts.filterStatus2);
-                    white_noise3 = sqrt(obj.noiseDataTrack3.variance*obj.noiseFactor).*randn(1,1);
+                    white_noise3 = sqrt(obj.noiseDataTrack3.variance*obj.noiseFactor^2).*randn(1,1);
                     [b3, a3] = butter(obj.noiseDataTrack3.butterOrder, obj.noiseDataTrack3.fcut, 'low');
                     [colored_noise3, obj.colored_opts.filterStatus3] = filter(b3, a3, white_noise3, obj.colored_opts.filterStatus3);
 
@@ -154,13 +154,13 @@ classdef Sensor3D < Sensor1D
                     inputArg2 = inputArg2 + colored_noise2;
                     inputArg3 = inputArg3 + colored_noise3;
                 elseif strcmp(obj.noiseType, "colored")
-                    white_noise1 = sqrt(obj.noiseDataTrack1.variance*obj.noiseFactor).*randn(1,1);
+                    white_noise1 = sqrt(obj.noiseDataTrack1.variance*obj.noiseFactor^2).*randn(1,1);
                     [b1, a1] = butter(obj.noiseDataTrack1.butterOrder, obj.noiseDataTrack1.fcut, 'low');
                     [colored_noise1, obj.colored_opts.filterStatus1] = filter(b1, a1, white_noise1, obj.colored_opts.filterStatus1);
-                    white_noise2 = sqrt(obj.noiseDataTrack2.variance*obj.noiseFactor).*randn(1,1);
+                    white_noise2 = sqrt(obj.noiseDataTrack2.variance*obj.noiseFactor^2).*randn(1,1);
                     [b2, a2] = butter(obj.noiseDataTrack2.butterOrder, obj.noiseDataTrack2.fcut, 'low');
                     [colored_noise2, obj.colored_opts.filterStatus2] = filter(b2, a2, white_noise2, obj.colored_opts.filterStatus2);
-                    white_noise3 = sqrt(obj.noiseDataTrack3.variance*obj.noiseFactor).*randn(1,1);
+                    white_noise3 = sqrt(obj.noiseDataTrack3.variance*obj.noiseFactor^2).*randn(1,1);
                     [b3, a3] = butter(obj.noiseDataTrack3.butterOrder, obj.noiseDataTrack3.fcut, 'low');
                     [colored_noise3, obj.colored_opts.filterStatus3] = filter(b3, a3, white_noise3, obj.colored_opts.filterStatus3);
 
diff --git a/data/2024_Lyra_Portugal_October/Lyra_Port_sensor_vect_res.mat b/data/2024_Lyra_Portugal_October/Lyra_Port_sensor_vect_res.mat
index 0b806e6b498b7f8c1b7a91c4cc43ae2c1a5c0a80..9b632ec81391874f68523f2d5c7e533909e400fd 100644
Binary files a/data/2024_Lyra_Portugal_October/Lyra_Port_sensor_vect_res.mat and b/data/2024_Lyra_Portugal_October/Lyra_Port_sensor_vect_res.mat differ
diff --git a/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m b/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m
index 303eb0421c5dd69ba03fbc9f506b4228ecbea70e..76c1f745dedd2ce0cd5c9dcdaff988bc33937a5b 100644
--- a/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m
+++ b/data/2024_Lyra_Portugal_October/initSensors2024_Lyra_Portugal_October.m
@@ -126,7 +126,7 @@ sensorSettings.magnetometer = Sensor3D();
 sensorSettings.magnetometer.maxMeasurementRange   =   16000;                        % 4000, 8000, 12000, 16000 in mG
 sensorSettings.magnetometer.minMeasurementRange   =   -16000;                       % -4000, -8000, -12000, -16000 in mG
 sensorSettings.magnetometer.resolution            =   0.58;                         % 0.14, 0.29, 0.43, 0.58 in mG
-sensorSettings.magnetometer.noiseVariance         =   4;                            % guess in mG (original guess 2)
+% sensorSettings.magnetometer.noiseVariance         =   4;                            % guess in mG (original guess 2)
 sensorSettings.magnetometer.offsetX               =   0;                            % +-1000 in mG
 sensorSettings.magnetometer.offsetY               =   0;                            % +-1000 in mG
 sensorSettings.magnetometer.offsetZ               =   0;                            % +-1000 in mG
@@ -134,7 +134,7 @@ sensorSettings.magnetometer.walkDiffusionCoef     =   0;
 sensorSettings.magnetometer.dt                    =   0.01;                         % sampling time
 sensorSettings.magnetometer.transMatrix           =   diag([1 1 1]);                % axis transformation
 
-sensorSettings.magnetometer.update();
+sensorSettings.magnetometer.update(Lyra_Port_sensor_vect, "main_Boardcore_LIS2MDLData.csv", 1);
 
 %% initial GPS sensor from NEO-M9N
 % NOTE: lon, in degree lat in degree, alt in m