diff --git a/tools/ecg2wav.py b/tools/ecg2wav.py
new file mode 100644
index 0000000000000000000000000000000000000000..8ee55c0657fb73075366efe2a1b0826c079681a9
--- /dev/null
+++ b/tools/ecg2wav.py
@@ -0,0 +1,30 @@
+# vim: set ts=4 sw=4 tw=0 et pm=:
+import numpy
+import wave
+import sys
+import struct
+
+def read(file_name):
+    signal = numpy.fromfile(file_name, dtype=numpy.int16)
+    return signal
+
+
+signal = read(sys.argv[1])
+
+
+sampleRate = 128.0   # hertz
+duration = len(signal) / sampleRate   # seconds
+
+wavef = wave.open('out.wav','w')
+wavef.setnchannels(1) # mono
+wavef.setsampwidth(2) 
+wavef.setframerate(sampleRate)
+
+for i in range(int(duration * sampleRate)):
+    value = int(signal[i])
+    data = struct.pack('<h', value)
+    wavef.writeframesraw( data )
+
+
+wavef.close()
+