diff --git a/src/postprocessor/core/processes/dsignal.py b/src/postprocessor/core/processes/dsignal.py
index 1263195888fe6cf76e7e021864d02f07ce17370c..50bc25e4e2da8f9fa39821e649dc5e74f44bca99 100644
--- a/src/postprocessor/core/processes/dsignal.py
+++ b/src/postprocessor/core/processes/dsignal.py
@@ -23,16 +23,19 @@ class dsignal(PostProcessABC):
         super().__init__(parameters)
 
     def run(self, signal: pd.DataFrame):
-        matrix = np.diff(
-            bn.move_mean(
-                signal,
-                window=self.parameters.window,
-                min_count=self.parameters.min_count,
+        if signal.shape[1] > self.parameters.window:
+            matrix = np.diff(
+                bn.move_mean(
+                    signal,
+                    window=self.parameters.window,
+                    min_count=self.parameters.min_count,
+                    axis=1,
+                ),
                 axis=1,
-            ),
-            axis=1,
-        )
+            )
+            # Pad values to keep the same signal shape
+            matrix = np.pad(matrix, ((0, 0), (0, 1)), constant_values=np.nan)
+        else:
+            matrix = np.full_like(signal, np.nan)
 
-        # Pad values to keep the same signal shape
-        matrix = np.pad(matrix, ((0, 0), (0, 1)), constant_values=np.nan)
         return pd.DataFrame(matrix, index=signal.index, columns=signal.columns)