55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
|
import copy
|
||
|
import unittest
|
||
|
|
||
|
import matplotlib.pyplot as plt
|
||
|
import numpy as np
|
||
|
|
||
|
from urh.signalprocessing.Modulator import Modulator
|
||
|
from urh.cythonext import signal_functions
|
||
|
from urh.signalprocessing.ProtocolAnalyzer import ProtocolAnalyzer
|
||
|
from urh.signalprocessing.Signal import Signal
|
||
|
from tests.utils_testing import get_path_for_data_file
|
||
|
|
||
|
|
||
|
class PlotTests(unittest.TestCase):
|
||
|
def test_plot(self):
|
||
|
modulator = Modulator("gfsk")
|
||
|
modulator.modulation_type = "GFSK"
|
||
|
modulator.samples_per_symbol = 100
|
||
|
modulator.sample_rate = 1e6
|
||
|
modulator.parameters[1] = 20e3
|
||
|
modulator.parameters[0] = 10e3
|
||
|
modulator.carrier_freq_hz = 15e3
|
||
|
modulator.carrier_phase_deg = 90
|
||
|
|
||
|
modulated_samples = modulator.modulate([True, False, True, False, False], 77)
|
||
|
data = copy.deepcopy(modulated_samples)
|
||
|
modulated_samples = modulator.modulate([False, True, True, True, True, False, True], 100, start=len(data))
|
||
|
data = np.concatenate((data, modulated_samples))
|
||
|
|
||
|
plt.subplot(2, 1, 1)
|
||
|
axes = plt.gca()
|
||
|
axes.set_ylim([-2,2])
|
||
|
plt.plot(data.real)
|
||
|
plt.title("Modulated Wave")
|
||
|
|
||
|
plt.subplot(2, 1, 2)
|
||
|
qad = signal_functions.afp_demod(np.ascontiguousarray(data), 0, "FSK", 2)
|
||
|
plt.plot(qad)
|
||
|
plt.title("Quad Demod")
|
||
|
|
||
|
plt.show()
|
||
|
|
||
|
def test_carrier_auto_detect(self):
|
||
|
signal = Signal(get_path_for_data_file("wsp.complex"), "test")
|
||
|
signal.modulation_type = "ASK"
|
||
|
signal.noise_threshold = 0.035
|
||
|
signal.center = 0.0245
|
||
|
signal.samples_per_symbol = 25
|
||
|
pa = ProtocolAnalyzer(signal)
|
||
|
pa.get_protocol_from_signal()
|
||
|
start, num_samples = pa.get_samplepos_of_bitseq(0, 0, 0, 999999, include_pause=False)
|
||
|
|
||
|
print("-----------")
|
||
|
print(signal.estimate_frequency(start, end=start+num_samples, sample_rate=2e6))
|