Python(NumpyとPyTorch)で正弦波を作成します。
numpyによる正弦波の生成
正弦波(純音)は、次式で表すことができる。
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);
関連記事、関連資料
- numpy.arange – Numpy v1.22 Manual
- numpy.sin – Numpy v1.22 Manual
- torch.arange – PyTorch v1.10 documentation
- torch.sin – PyTorch v1.10 documentation
- GitHubコード
python-sampler/Python-sin-wav/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.
コメント