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
Post a Comment