def test_segmentation_for_ask(self): signal = np.fromfile(get_path_for_data_file("ask.complex"), dtype=np.complex64) segments = segment_messages_from_magnitudes(np.abs(signal), 0.02) segments = merge_message_segments_for_ook(segments) self.assertEqual(len(segments), 1) self.assertEqual(segments[0], (462, 12011))
def test_segmentation_elektromaten(self): signal = Signal(get_path_for_data_file("elektromaten.coco"), "") segments = segment_messages_from_magnitudes(signal.iq_array.magnitudes, noise_threshold=0.0167) segments = merge_message_segments_for_ook(segments) self.assertEqual(len(segments), 11)
def test_segmentation_enocean_multiple_messages(self): signal = np.fromfile(get_path_for_data_file("enocean.complex"), dtype=np.complex64) segments = segment_messages_from_magnitudes(np.abs(signal), 0.0448) segments = merge_message_segments_for_ook(segments) self.assertEqual(len(segments), 3) self.assertEqual(segments[0], (2107, 5432)) self.assertEqual(segments[1], (20428, 23758)) self.assertEqual(segments[2], (44216, 47546))
def test_segmentation_enocean_multiple_messages(self): signal = np.fromfile(get_path_for_data_file("enocean.complex"), dtype=np.complex64) segments = segment_messages_from_magnitudes(np.abs(signal), 0.0448) segments = merge_message_segments_for_ook(segments) self.assertEqual(len(segments), 3) self.assertEqual(segments[0], (2107, 5432)) self.assertEqual(segments[1], (20428, 23758)) self.assertEqual(segments[2], (44216, 47546))
def test_message_segmentation_fsk_xavax(self): signal = Signal(get_path_for_data_file("xavax.coco"), "") segments = segment_messages_from_magnitudes(np.abs(signal.data), noise_threshold=0.002) # Signal starts with overdrive, so one message more self.assertTrue(len(segments) == 6 or len(segments) == 7) if len(segments) == 7: segments = segments[1:] self.assertEqual(segments, [(275146, 293697), (321073, 338819), (618213, 1631898), (1657890, 1678041), (1803145, 1820892), (1846213, 1866364)])
def test_message_segmentation_fsk_xavax(self): signal = Signal(get_path_for_data_file("xavax.coco"), "") segments = segment_messages_from_magnitudes(signal.iq_array.magnitudes, noise_threshold=0.002) # Signal starts with overdrive, so one message more self.assertTrue(len(segments) == 6 or len(segments) == 7) if len(segments) == 7: segments = segments[1:] self.assertEqual(segments, [(275146, 293697), (321073, 338819), (618213, 1631898), (1657890, 1678041), (1803145, 1820892), (1846213, 1866364)])
def test_segmentation_ask_50(self): modulator = Modulator("ask50") modulator.modulation_type = "ASK" modulator.parameters[0] = 50 modulator.parameters[1] = 100 modulator.samples_per_symbol = 100 msg1 = modulator.modulate("1010101111", pause=10000) msg2 = modulator.modulate("1010101110010101", pause=20000) msg3 = modulator.modulate("1010101010101111", pause=30000) data = IQArray.concatenate((msg1, msg2, msg3)) segments = segment_messages_from_magnitudes(data.magnitudes, noise_threshold=0) self.assertEqual(len(segments), 3) self.assertEqual(segments, [(0, 999), (10999, 12599), (32599, 34199)])
def test_segmentation_ask_50(self): modulator = Modulator("ask50") modulator.modulation_type_str = "ASK" modulator.param_for_zero = 50 modulator.param_for_one = 100 modulator.samples_per_bit = 100 msg1 = modulator.modulate("1010101111", pause=10000) msg2 = modulator.modulate("1010101110010101", pause=20000) msg3 = modulator.modulate("1010101010101111", pause=30000) data = np.concatenate((msg1, msg2, msg3)) segments = segment_messages_from_magnitudes(np.abs(data), noise_threshold=0) print(segments) self.assertEqual(len(segments), 3) self.assertEqual(segments, [(0, 999), (10999, 12599), (32599, 34199)]) print(merge_message_segments_for_ook(segments))
def test_segmentation_ask_50(self): modulator = Modulator("ask50") modulator.modulation_type_str = "ASK" modulator.param_for_zero = 50 modulator.param_for_one = 100 modulator.samples_per_bit = 100 msg1 = modulator.modulate("1010101111", pause=10000) msg2 = modulator.modulate("1010101110010101", pause=20000) msg3 = modulator.modulate("1010101010101111", pause=30000) data = np.concatenate((msg1, msg2, msg3)) segments = segment_messages_from_magnitudes(np.abs(data), noise_threshold=0) print(segments) self.assertEqual(len(segments), 3) self.assertEqual(segments, [(0, 999), (10999, 12599), (32599, 34199)]) print(merge_message_segments_for_ook(segments))
def test_segmentation_elektromaten(self): signal = Signal(get_path_for_data_file("elektromaten.coco"), "") segments = segment_messages_from_magnitudes(np.abs(signal.data), noise_threshold=0.0167) segments = merge_message_segments_for_ook(segments) self.assertEqual(len(segments), 11)
def test_segmentation_for_ask(self): signal = np.fromfile(get_path_for_data_file("ask.complex"), dtype=np.complex64) segments = segment_messages_from_magnitudes(np.abs(signal), 0.02) segments = merge_message_segments_for_ook(segments) self.assertEqual(len(segments), 1) self.assertEqual(segments[0], (462, 12011))
def test_segmentation_for_fsk(self): signal = np.fromfile(get_path_for_data_file("fsk.complex"), dtype=np.complex64) segments = segment_messages_from_magnitudes(np.abs(signal), 0.0009) self.assertEqual(len(segments), 1) self.assertEqual(segments[0], (0, 17742))
def test_segmentation_for_fsk(self): signal = np.fromfile(get_path_for_data_file("fsk.complex"), dtype=np.complex64) segments = segment_messages_from_magnitudes(np.abs(signal), 0.0009) self.assertEqual(len(segments), 1) self.assertEqual(segments[0], (0, 17742))