Пример #1
0
    def convolution(signal1, signal2):
        result_points = []

        for n in range(len(signal1.points) + len(signal2.points) - 1):
            y = 0
            for k in range(len(signal1.points)):
                if 0 <= n - k < len(signal2.points):
                    y += signal1.points[k].y * signal2.points[n - k].y
            result_points.append(Point(n, y))

        result_signal = Signal(None, 0, len(signal1.points) + len(signal2.points) - 1, 1)
        result_signal.points = result_points
        return result_signal
Пример #2
0
 def quantization(signal, Ts, n_bits):
     result_signal = Signal(None, None, None, None)
     result_signal.points = signal.quantization(Ts, n_bits)
     signal_to_draw = Signal(None, None, None, None, False)
     signal_to_draw.points.append(signal.points[0])
     new_ts = Ts / 2
     for i in range(1, len(signal.points)):
         signal_to_draw.points.append(
             Point(signal.points[i - 1].x + new_ts, signal.points[i - 1].y))
         signal_to_draw.points.append(
             Point(signal.points[i - 1].x + new_ts, signal.points[i].y))
     signal_to_draw.points.append(signal.points[-1])
     return result_signal, signal_to_draw
Пример #3
0
 def read_file(file_path):
     with open(file_path, 'r') as file:
         start_time = file.readline()
         duration_time = file.readline()
         frequency = file.readline()
         points = file.readline()
         points = points.split()
         signal_points = []
         for i in range(0, len(points), 2):
             signal_point = Point(float(points[i]), float(points[i + 1]))
             signal_points.append(signal_point)
         result = Signal(None, start_time, duration_time, frequency)
         result.points = signal_points
         return result
Пример #4
0
 def foh(signal):
     reconstructed_signal = Signal(None, None, None, None, False)
     reconstructed_signal.points = deepcopy(signal.points)
     return reconstructed_signal