diff --git a/applications/lofar2/model/pfb_os/pfb_reconstruction.ipynb b/applications/lofar2/model/pfb_os/pfb_reconstruction.ipynb
index 8fbe59367c8c8f7e38722280600a54ad3bab9b3c..9d0d6c3504eb4fae1d4171a1f2af6b622e01e3ef 100644
--- a/applications/lofar2/model/pfb_os/pfb_reconstruction.ipynb
+++ b/applications/lofar2/model/pfb_os/pfb_reconstruction.ipynb
@@ -56,7 +56,7 @@
     "    sys.path.insert(0, module_path)\n",
     "\n",
     "# Import rtdsp\n",
-    "from rtdsp.utilities import pow_db\n",
+    "from rtdsp.utilities import pow_db, snr_db\n",
     "from rtdsp.firfilter import prototype_fir_low_pass_filter, design_fir_low_pass_filter, \\\n",
     "                            design_fir_low_pass_filter_adjust, \\\n",
     "                            raised_cosine_response, square_root_raised_cosine_response, \\\n",
@@ -724,7 +724,7 @@
     "outData = reconstructedData[intGroupDelay :]\n",
     "diffData = inpData - outData\n",
     "diffDataMax = np.max(np.abs(diffData))\n",
-    "SNRdb = pow_db(np.std(wgData) / np.std(diffData))\n",
+    "SNRdb = snr_db(wgData, diffData)\n",
     "# Expected SNR = 11.96 dB for Ntap = 8, Ndft = 16, 'firwin', hpFactor = 1.0, 'noise'\n",
     "print('SNRdb = %.2f [dB]' % SNRdb)\n",
     "if SNRdb < 100:\n",
diff --git a/applications/lofar2/model/rtdsp/utilities.py b/applications/lofar2/model/rtdsp/utilities.py
index d8dae69e01eca0ec0a2ce0aa0583a4d80b1c1a9a..3b7b630a6bc4752ddc59d761a12e510fc8e8ff3c 100644
--- a/applications/lofar2/model/rtdsp/utilities.py
+++ b/applications/lofar2/model/rtdsp/utilities.py
@@ -64,6 +64,11 @@ def pow_db(volts):
     return 20 * np.log10(np.abs(volts) + c_atol)
 
 
+def snr_db(signalData, noiseData):
+    """Signal to noise ration in dB"""
+    return pow_db(np.std(signalData) / np.std(noiseData))
+
+
 def is_integer_value(value):
     """Return true when value is sufficiently close to its integer value."""
     return np.isclose(value, np.round(value))