がれすたさんのDIY日記

電子回路、Python、組み込みシステム開発、自作エフェクターを語るblog

Python

PyLTSpiceを使用した自動シミュレーション

PyLTspiceについて nunobrum氏が開発されているLTspiceが出力するファイルを解釈しPython上で扱えるようにするライブラリです。 ネットリスト(.net)の編集、結果ファイル(.raw)の取得、シミュレーションの自動実行なんかができます。 内包されているモジュー…

PySide2でQtQuick(qml)使うメモ3

今回はPySide2とPySerialを組み合わせて使うメモやることとしてはQMLで作成したGUI側でイベントを発生させてシリアルで何か送信してマイコンを制御するという感じ つくったのはこんな感じのやつCOMの選択をしてオープンをすると5~7のオブジェクトが表示され…

PySide2でQtQuick(qml)使うメモ2

前回に引き続き今回もPySide2+Qtquick(qml)のメモGUIだと結構定番の電卓っぽい奴の実装 Button押下でイベント発生させてTextInputからデータもらってTextInputに返すサンプルだと思ってくれればいい Pythonコード import sys import os from PySide2 import…

PySide2でQtQuick(qml)使うメモ1

自分用のメモです。自分の動作環境は PyCharm 無料版 Python 3.7.4 or 3.6(仮想で両方で試した) Pycharm内臓のVenvでパッケージ管理 導入 PythonでQtを扱うにはPyQtとPysideの2つがある。verごとに書くとこんな感じ Qt4 : PyQt4,PyiSde Qt5 : PyQt5,PySid…

Python:スペクトログラムの描画

(adsbygoogle = window.adsbygoogle || []).push({}); 今回は信号の時系列変化を可視化できるスペクトログラムについてです。 使うメソッドはPython:scipy.signal.spectrogramです。オプションパラメータがたくさんありますが f,t,Sxx = signal.spectrogram(…

Python: Swept-sine信号を作成する

今回はシステム同定入力(主にインパルス応答の測定)として使われる掃引正弦波を生成していきたいと思う。 昔はTSP信号なんて言われていたが場合によってはそぐわない可能性もあるので最近ではSwept-sineに統一されつつあるみたいHammersteinモデルの同定に関…

Python:ボード線図の描画

(adsbygoogle = window.adsbygoogle || []).push({}); 今回はScipyのsignal.bodeを使って周波数応答を描画してみる。 使うメソッドは scipy.signal.lti scipy.signal.bode である。 scipy.signal.lti 線形時不変システムを作成できるメソッド。引数の渡し方…

Python:pysoundfileを使って読み込んだwavデータをFFTをする

自分用メモです。これ一つで取りあえずはwav読み込みとFFTのサンプルかねてるので参考になれば import soundfile as sf import numpy as np import matplotlib.pyplot as plt from scipy import fftpack fname = 'whitenoise.wav' # mono data, samplerate =…

Python:lmfitを使ったカーブフィッティングその2

2020/5/6 追記この記事では実データを持ちいてフィッティングを行っています。 データ自体はご自分で用意していただく形になるのでそのまま実行するだけでは動きませんあくまでlmfitの使い方の一例として捉えていただけると幸いです。 尚初期値、モデルの与…

Python:lmfitを使ったカーブフィッティングその1

実験データのフィッティングについて頻繁に使う機会があったので自分メモとしてまとめておきます。 フィッティングを行うにあたり、Numpy , Scipyには便利なライブラリがあります。 Numpy :polyfit Scipy:optimize.leastsq Scipy:optimize.curve_fit 以上3つ…

Python:ディレイの実装

今回はディレイを実装していきます。 いわゆる遅延系エフェクトでやまびこ効果とか言われるやつです。 ディレイの実装には参考文献に示すようにフィードバックの仕方によっていろいろな種類がありますが一般的なフィードバックありミックスありの通常のタイ…

Python:ビブラートとコーラス:2

前回の記事ではPythonでビブラートエフェクトとコーラスエフェクトを実装した。 今回はFM変調とBessel関数に関して面白い記述*1があったのでほとんどパクりだけど(情報は多いほうがいいに決まってるw)それについてみていく FM変調 FM変調は以下の式で示さ…

Python:ビブラートとコーラス:1

今回はFM変調を用いたビブラートとコーラスを実装していきたいと思います。 原理 遅延回路(アナログで言うところのBBD)のクロックをLFO(変調波形)で変えることにより周波数方向に揺れた音を作るエフェクトです。基本式は以下のようになります。 A:原音信…

Python:正弦波合成

デジタル信号処理での正弦波の作り方 create_func.py import numpy as np def create_sin(amplitude,freq,frame,*,sampling = 48000): data = np.zeros(frame,dtype = np.float) for n in np.arange(1,frame): sine = amplitude * np.sin(2 * np.pi * freq *…

Python:リングモジュレーターの実装②

前回はリングモジュレータを実装したのでもう少し細かく見てみようということで数式をあげながら理論を追ってみる前回の記事は此方 gsmcustomeffects.hatenablog.com (adsbygoogle = window.adsbygoogle || []).push({}); 原理 被変調波(原音)をと置くとリ…

Python:ScipyでFFTを行う

scipyのfftメソッドは二つありますがscipy.fftを使うことが推奨されてるようです。 コード import matplotlib.pyplot as plt import numpy as np from scipy.fft import fft, fftfreq f0 = 1000 fs = 96000 N = 5000 addnum = 5.0 def create_sin_wave(ampli…

Python:リングモジュレーターの実装①

(adsbygoogle = window.adsbygoogle || []).push({}); 今回はリングモジュレータを実装していく。 リングモジュレータ 入力と関係ない音程を出すエフェクター。マルチ・エフェクターに組み込まれていることもある。かなり前衛的な演奏ができる。(weblio引用 …

Python:ステレオwavファイルをLRに分ける

基礎編です。 信号処理をやって行くにあたりまずは入力となるwavファイルについて知っておく必要がある。 フォーマットに関してはここを読んでほしい http://sky.geocities.jp/kmaedam/directx9/waveform.htmlまあ簡単に言えばヘッダー情報の後はLRLRLRと信…