スポンサーリンク

【PyTorch】Pythonで正弦波(sin波)を作成【Numpy】

Numpy

Python(NumpyとPyTorch)で正弦波を作成します。

numpyによる正弦波の生成

正弦波(純音)は、次式で表すことができる。

\begin{align*}  y = Asin(2 \pi f t)\end{align*}

Aは振幅、fは周波数[Hz]、tは時間である。今回、振幅は0.5、周波数は1 Hz、3秒間の正弦波を生成する。ここでtは、デジタル信号であるため1サンプルあたりの時間は1/sfとする。詳細は以下参考資料をご覧ください。

import numpy as np
import matplotlib.pyplot as plt

A = 0.5    # 振幅
f = 1.0    # 周波数 Hz
sec = 3.0  # 信号の長さ s
sf = 44100 # サンプリング周波数 Hz

t = np.arange(0, sec, 1/sf) #サンプリング点の生成

y = A*np.sin(2*np.pi*f*t) # 正弦波の生成

plt.plot(t, y);

PyTorchによる正弦波の生成

ほぼNumpyと同じコードになりますが、円周率はPyTorchに無いため、Numpyを使っています。

import torch

t = torch.arange(0, sec, 1/sf) #サンプリング点の生成

y = A*torch.sin(2*np.pi*f*t) # 正弦波の生成

plt.plot(t, y);

関連記事、関連資料

  • GitHubコード
python-sampler/python-sin-wav.ipynb at main · take-tech-09/python-sampler
Contribute to take-tech-09/python-sampler development by creating an account on GitHub.

コメント