diff --git a/include/core/problem/problem.h b/include/core/problem/problem.h
index 46500c6e225e5f2f07928c2656d950a1462749ad..e9134b5593e30d93aa514f49eecb597759b0cf18 100644
--- a/include/core/problem/problem.h
+++ b/include/core/problem/problem.h
@@ -366,7 +366,10 @@ class Problem : public std::enable_shared_from_this<Problem>
 
 
         // All branches -------------------------------------------
-        // perturb states
+        /**
+         *  \brief perturb all states states with random noise
+         * following an uniform distribution in [ -amplitude, amplitude ]
+         */
         void perturb(double amplitude = 0.01);
         // transform states
         void transform(const VectorComposite& _transformation);
diff --git a/include/core/state_block/has_state_blocks.h b/include/core/state_block/has_state_blocks.h
index 40ddcebbe520cc05e3fcb18dd47683f2cd10d25b..f11047c17b751f327ec6c01177194170b0d39f4d 100644
--- a/include/core/state_block/has_state_blocks.h
+++ b/include/core/state_block/has_state_blocks.h
@@ -97,7 +97,10 @@ class HasStateBlocks
         unsigned int getSize(const StateStructure& _structure="") const;
         unsigned int getLocalSize(const StateStructure& _structure="") const;
 
-        // Perturb state
+        /**
+         *  \brief perturb all states states with random noise
+         * following an uniform distribution in [ -amplitude, amplitude ]
+         */
         void perturb(double amplitude = 0.01);        
 
       protected:
diff --git a/include/core/state_block/state_block.h b/include/core/state_block/state_block.h
index 2dbab85a741ddbe489f5e369c1a7cf2d5df12d9e..aa78dff969a29e4f5d3d583643c6e46a32980430 100644
--- a/include/core/state_block/state_block.h
+++ b/include/core/state_block/state_block.h
@@ -176,7 +176,9 @@ public:
         virtual Eigen::VectorXd identity() const;
         Eigen::VectorXd zero()     const;
 
-        /** \brief perturb state
+        /**
+         *  \brief perturb all states states with random noise
+         * following an uniform distribution in [ -amplitude, amplitude ]
          */
         void perturb(double amplitude = 0.1);
 
diff --git a/include/core/state_block/state_composite.h b/include/core/state_block/state_composite.h
index 3a2e72aa39e3a4ade898355452295b02673b0713..8f1d6de1f98c9afa906640f29d4a065188c7a04f 100644
--- a/include/core/state_block/state_composite.h
+++ b/include/core/state_block/state_composite.h
@@ -314,7 +314,10 @@ class StateBlockComposite
         // Plus operator
         void                    plus(const VectorComposite& _dx);
 
-        // Perturb state with random noise
+        /**
+         *  \brief perturb all states states with random noise
+         * following an uniform distribution in [ -amplitude, amplitude ]
+         */
         void                    perturb(double amplitude = 0.01);
 
         // These act on all state blocks. Per-block action must be done through state_block.fix() or through extended API in derived classes of this.