ガレスタさんのDIY日記

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

Python

Python:scipy.signal.spectrogramを使ってスペクトログラムを描画する

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

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

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

scipy.signal.iirfilterを使ってIIRフィルタを設計する

前回はiirdesignメソッドで設計したがもう一つのほうのメソッドも紹介しておく。 前回の記事はこちら (adsbygoogle = window.adsbygoogle || []).push({}); gsmcustomeffects.hatenablog.com scipy.signal.iirfilter メソッドの引数はこのような感じ scipy.s…

Python:scipy.signal.iirdesignを使ってIIRフィルタを設計する

(adsbygoogle = window.adsbygoogle || []).push({}); 今回はscipy.signal.iirdesignメソッドを使ってIIRフィルタを設計してみる。 ScipyのVerは1.2を使用している前提で進めるgoogle colabの場合は !pip install --upgrade scipy をしてからランタイムのリ…

Python:scipy.signal.bodeでボード線図を引く

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

Python:scipy.signal.freqzのテスト

PythonでMATLABみたいなfreqzが使えるみたいなのでためしてみたRBJ cookbookの公式を用いてPEAKフィルタを構成した。fc1:150Hz カット fc2:400Hz ブーストみたいな感じにした。 カットオフ帯域ゲインとbwあるけどパラメータはご自由に wがそのままだと正規…

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

はじめに 今回は前回の続きでlmfitを使ったフィッティングを試して行きたいと思う。 ほとんどここのパクリだがバグの修正含め解説も入れているので勘弁してほしいPeak fitting XRD data with Python - Chris Ostrouchovさっそくやって行こうと思うが 実用的…

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

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

Python:ディレイを実装してみる:1

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

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.fftpack)をやってみる。

PythonでFFTをする記事です。 FFTは下に示すように信号を周波数スペクトルで表すことができどの周波数をどの程度含んでいるか可視化することができます。 440Hzの場合 2000Hzの場合 コード numpyとScipy両方に同じようなメソッドがあるけどScipyおじさんなの…

Python:リングモジュレーターを実装する。

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

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

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

Pythonリンクメモ

自分用にいろいろまとめたくて作ってみた Pycharmにパッケージを追加する方法 qiita.com matplotlibの使い方入門的なやつ bicycle1885.hatenablog.com初期に結構お世話になった覚えがある。backendの変更 informalmat.wiki.fc2.com