Python | sin波vs時間のデータを作成する方法

Python

Pythonでsin波vs時間のデータを作成する方法を説明する。

結論

  1. サイン波の周波数 [Hz]を設定する。
  2. サンプリング周期 [秒]を設定する。
  3. サンプリング点数 [個]を設定する。
  4. サンプル番号を設定する。
  5. 時間データを設定する。
  6. サイン波を設定する。
#!/usr/bin/env python3

import numpy as np
import sys
from PyQt6.QtWidgets import QApplication, QWidget
import pyqtgraph as pg


class GuiWindow(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.サイン波を作成する()
        self.グラフを描画する()

    def サイン波を作成する(self):
        self.freq = 1    # サイン波の周波数 [Hz]                             ? 1
        self.Ts = 0.001  # サンプリング周期 [秒]                             ? 2
        self.Ns = 1000   # サンプリング点数 [個]                             ? 3
        self.ns = np.arange(0, self.Ns)  # サンプル番号                     ? 4

        self.time = self.ns * self.Ts  #                                  ? 5
        self.sin = np.sin(2 * np.pi * self.freq * (self.ns * self.Ts))  # ? 6

    def グラフを描画する(self):
        self.graph = pg.GraphicsLayoutWidget(show=True)
        self.p0 = self.graph.addPlot()
        self.p0.setLabel('left', '大きさ')
        self.p0.setLabel('bottom', '時間 [秒]')
        self.p0.plot(x=self.time, y=self.sin, pen=pg.mkPen((255,255,0), width=10))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = GuiWindow()
    sys.exit(app.exec())

まとめ

Pythonでsin波vs時間のデータを作成する方法を説明した。

コメント