がれすたさんのDIY日記

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

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 =…

モデルに関するメモ

非線形オーディオエフェクト実装においてよく使われるモデルの一口メモ Wienerモデル、Hammersteinモデル Wiener model, Hammerstein model(Schmitz Thomas[2016]) Hammerstein:NLシステム->LTIシステム Wienner:LTIシステム->NLシステム LTI->NL->LTIのこと…

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

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

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

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

日記

最近STM32ネタかけてなくてすいません。 やって行きたいものに関しては決まっていて Memory to memory DMA VFPU命令の確認(SP、DP) SIMDに関して SDカード関連 こんなかんじです。一方でi.MX RT1020でやりたいことも結構あって DMA Manager USB CDC I2C UA…

フラックスとフラックスクリーナーのあれこれ

趣味の範囲で表面実装部品あつかうと手付けが多いんですがその際フラックスを結構使うことが多いです。 フラックスは一般に金属表面の活性剤として機能する薬品です。 調べれば出てきますけど有機酸などの添加物が金属表面のO結合を取り除くことで金属表面酸…

進捗的なやつ

最近外出先でOnshape使って家ではFusion360つかうみたいな流れで設計している。Onshapeマジで楽だよなココまで5分位でできる pic.twitter.com/ncMvi2lEyC— おながわ (@GarageStyleMsc) 2018年11月13日 こんな感じで外出先でポチポチ作ってDXF or STEPで吐き…

読みたい本、おすすめの本など

ここには僕が読んだ本とか読みたい本とかを載せてく予定 画像クリックでリンクに飛びます最新の本でなければ図書館で借りれるのでその辺も利用していきたい 読みたいやつ Designing Audio Effect Plug-Ins in C++ Designing Software Synthesizer Plug-Ins i…

STM32のMCO2からPLLI2Sクロックを出力してみる

今回はSTM32のMCO(Master Clock Output)の機能を使ってPLLI2Sのクロックを出力してみる。 品質はどうなのかわからんけど主に外部オーディオコーディック用のMLCKとかに使えそうな予感通常のMCO1に関しては以前やっている(STM32F3での実施)ので基礎に関し…

STM32CubeProgでUARTを使ったフラッシュ書き換えを試す

STM32に関しては久しぶりですが 今回はSTからリリースされたSTM32CubeProgというソフトについてみていこうと思います。 STM32CubeProg www.st.com簡単に説明するとSTlink utility とかflash loaderとかdfuツールとかそういうのが一緒になってWindows,Mac ,Li…

i.MX-RT600なるものが出たらしいよ

ARMの最新コアCortexM33とケイデンスのDSPテンシリカHifi4のニコイチSoCみたいですね。 CortexM33 300Mhz Cadence® Tensilica® Hi-Fi 4 600MHz という構成になってるみたいですね。SRAMが4.5MBとかついてますね これはデジタルエフェクトにかなりよさそう。…

STM32F767 SAIについてメモ1

今回はSerial Audio Interfaceの話です タイトルはF7となっているがSTがラインナップごとにCubeHALの仕様変えなければ同じように考えることができると思います。まずSAIについて基礎的なことはこの辺を読んでくださればわかると思います。 http://www.st.com…

MCUXpresso SDK:コーディック周りのHALについて

オーディオフレームを書くにあたっていろいろ調べていたのでそれのメモがてら書いています。 IMXRT1020のコーディック周りは fsl_codec_common.h fsl_codec_common.c fsl_wm8960.c fsl_wm8960.h の4つからできています。WM8960_WriteRegの中でCODEC_I2C_Wri…

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

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

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.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と信…

アドレス配置__attribute__について

以前も同じような記事を書いたのだがもうちょいかいつまんで書いていくことにした。 i.MX RT1050のコードの一部の紹介 #if defined(__CC_ARM) || defined(__GNUC__) __attribute__((section(".boot_hdr.ivt"))) #elif defined(__ICCARM__) #pragma location=…

pC-pH diagram(酢酸アンモニウムの場合)

7/23 追記 ソースコード更新およびグラフの枚数追加 pC-pH図は水素イオン濃度と濃度でグラフを構成したものですべてのpH値におけるすべての平衡種の濃度を示しています。 チャージバランス点でその時の混合物質条件によるpHを予測できるのでいろいろと便利で…

行列の微分メモ

最適制御工学の授業で使う機会があったので書いてみた。 参考文献 www.iwanttobeacat.com Introduction to Applied Linear Algebra matrix cook book

texメモ

tex

電気科のときは結構覚えてたのだが環境系(研究は材料系)に来てからtexを全く使わなくなったので忘れることが多くなった。 まあ使わないしいいや〜ってなるはずだったけど他過程講義の履修をするという無謀なことになったので使わざるおえない状況に・・・…

Pythonリンクメモ

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

Molecular dynamicsってすごいらしいね

最近計算機化学という授業でMM(Molecular Mechanics)やMD(Molecular dynamics)をやった。個人的には計算機の発展でリソースをバンバン使える時代になっていくと思うのでこの分野を学んでいくと今後面白いことが出来そうだと踏んでいる。ちなみに大学の研究で…