Beispiel #1
0
 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))
Beispiel #4
0
 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)])
Beispiel #6
0
    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)])
Beispiel #7
0
    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))
Beispiel #10
0
    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)
Beispiel #11
0
 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))
Beispiel #12
0
 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))
Beispiel #13
0
 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))