1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

DSPIC30マイコンでリバーブエフェクターを作りたかった

Last updated at Posted at 2022-03-28

前回Lチカに成功したPICですが、その後調査を続けてdsPICでエフェクターを作れそう・・・というところまで来ました。
が、実験に使ったdsPIC30F2012はRAMが1KBしかないということに開発途中で気づき、リバーブを作りたくても作れなかった、というお話です。

リバーブにはいくつかのアルゴリズムがありますが、今回はシュレーダー(schroeder)のリバーブを試みました。
これにはIIRコムフィルタが4つとオールパスフィルタ2つが使われています。
IIRコムフィルタはおよそ50msの遅延をもたせるように設計されています。
16bit/Fs28KHzとした場合、これを実現するには、16bitの要素数約1500の配列が必要になります。(1サンプル34μsなので50ms/34μs=1470)
つまり、これひとつだけでメモリ消費が3KBになります。
これを4つ用意すると12KB。
ということで、SRAMの少ないdsPIC30シリーズでは結構厳しそうです。

DSPIC33シリーズならばデータメモリが16KB以上のものもあるので頑張ればできるかもしれません。
が、ヒープやスタック、ニアとファーなんかを考えるとそれでも足りないのかもしれません。
やる気が続けばhttps://akizukidenshi.com/catalog/g/gI-08458/を使って挑戦してみようと思います。

※RAMが豊富に必要ではない歪み系やモジュレーション系なら問題なく作れるはずです。

供養のために上限の遅延数400で作った、遅延15msのショートディレイの画像を貼っておきます。

image.png

参考書:dsPIC基盤で始めるディジタル信号処理

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?