Files
urh/misc/dsp.py
2016-04-01 21:53:35 +02:00

41 lines
866 B
Python

import numpy as np
import matplotlib.pyplot as plt
f_s = 600
t_s = 1 / f_s
f_c = 20
bit_len = 100
bits = [True, True, False, False, True]
# FSK
y = []
for i, b in enumerate(bits):
factor = 1 if b else 0.5
y.extend(np.cos(2 * np.pi * (f_c * factor) * t_s * np.arange(i * bit_len, (i + 1) * bit_len)))
x = np.arange(0, len(bits) * bit_len)
plt.subplot(311)
plt.plot(x, y)
plt.subplot(312)
# IQ Bilden
iq_signal = []
v = []
for n, value in enumerate(y):
iq_signal.append(np.exp(-1j * 2 * np.pi * f_c * t_s * n) * value)
iq_signal = np.array(iq_signal)
plt.plot(x, iq_signal.real)
plt.subplot(313)
angles = [0]
for i in range(1, len(iq_signal)):
prev_sample = iq_signal[i - 1]
sample = iq_signal[i]
angles.append(np.arctan2(prev_sample.imag, prev_sample.real) - np.arctan2(sample.imag, sample.real))
plt.plot(x, angles, "ro")
plt.show()