Investigating OOK signal with Python

26.5.2018
Investigating OOK signal with Python

Signal source: 433 MHz ISM band, AM demodulated wave file






Part of the signal zoomed with Pyplot zoom tool





from scipy.io import wavfile
from matplotlib import pyplot as plt
import numpy as np

x_offset_lo = 0.348
x_offset_hi = 0.82
y_offset_lo = 140
y_offset_hi = 200
y_lim = 150
y_val = 176

def printWaveInfo():
    print 'Len ' + str(data.shape[0])
    print 'Channels ' + str(data.shape[1])
    print 'Datatype ' + str(data.dtype)
    print 'Samplerate ' + str(sampleRate)

def setYvalues():
    x = 0
    while x < len(data):
        if data[x, 0] > y_lim:
            data[x, 0] = y_val
        x += 1
    
sampleRate, dataVal = wavfile.read('af433-926.wav')
data = np.copy(dataVal)

printWaveInfo()
setYvalues()

times = np.arange(len(data))/float(sampleRate)

plt.figure(figsize=(19, 10))
plt.suptitle('433.926 MHz')
plt.subplot(311)
plt.style.use('seaborn')
plt.xlim(times[0] + x_offset_lo, times[-1] - x_offset_hi)
plt.ylim(y_offset_lo, y_offset_hi)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
plt.plot(times, data[:,0], color = 'k')

plt.subplot(312)
plt.style.use('seaborn')
plt.xlim(times[0] + x_offset_lo, times[-1] - x_offset_hi)
plt.ylim(y_offset_lo, y_offset_hi)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
plt.plot(times, dataVal[:,0], color = 'b')

plt.subplot(313)
plt.style.use('seaborn')
plt.xlim(times[0], times[-1])
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
plt.plot(times, dataVal[:,0], color = 'y')

plt.show()





Comments

Popular posts from this blog

Modifying old SDR# TETRA demod plug-in

Mods for SDR# TETRA demod plugin 1.0.14.0 - 2