
今回から信号の発生に入るのですが最初は正弦波の発生です。音を作るにせよ、無線にせよ、何が無くても正弦波。デジタルな計算で波形を作るのに私のような素人でも思いつくのがsin()関数を使うことです。しかしsin()のような関数の計算には時間がかかる、そこで信号処理の人はいろいろテクを使うんでありますな。
デバイス作る人>>デバイス使う人>>デバイスおたく
前回は、Weaver変調器による周波数シフタの全体コード(三上先生のコードそのまま)をビルドして実際に周波数シフトが起こっていることを実機上で確認いたしました。今回は、要素部品のうち初段の帯域通過フィルタの特性を実機で確認してみます。処理対象の100Hzから4.5kHzまでの周波数のみを通すもの。
前回はWeaver変調器の原理を学ぶ、ということで三角関数の計算に突入してしまいました。しかし実際に計算したのはMaxima様で私は見ていただけですが。原理は分かった(ホントか)ということで、今回は実機にプログラムを書き込んでその特性を観察してみたいと思います。
前の3回はヒルベルト変換フィルタを使った周波数シフタだったですが、今回から、Weaver変調器による周波数シフタです。Weaverって何(誰?)と問えば、高名な(当然知らないとモグリ的な)発明者の御名前であったです。原理をなぞるのに三角関数の計算が必要。霧のかかった頭をMaxima様がお救いくださります。
今回は「本丸」ヒルベルト変換フィルタ(位相シフタ)を調べて行きたいと思います。前回同様、動作確認済の全体プログラムの中のヒルベルト変換フィルタの出力を外部に出力し、位相特性を観察してみようという試み。ただし、期待されるフィルタの特性はIに対してQがπ/2だけ遅れるというもの。入力に対してでないので測りづらいです。
前回は周波数シフタの全貌を実機で観察。今回はその構成要素初段のDCカット・フィルタについて調べてみたいです。フィルタのコードはIIRフィルタを「手習ひ」したときに既に使っていたのですが、忘却の彼方。今回はScilab使ってその特性を調べた後、実機でDCカットフィルタを「外したら」どうなるのか観察してみたいと思います。
前回アナログ・マイクロフォンを追加、ようやく残響生成器を実際に動かしてみることができるようになりました。スピーカは100円ショップのものを第20回でもつかったスピーカアンプで駆動してみました。確かに残響しています。マイクを叩くと長い地下道でコツコツ歩いているような効果音?つくれました(末尾に音声添付。)
残響生成器の2回目は、2個目の要素部品、全域通過フィルタ(all pass filter)であります。前回同様、要素部品は、Scilab使って「味わってみる」と(実機で個別に動かすのがメンドイだけだろ~。)前回から比べるとXCOSでのブロックダイアグラムが少しこなれてきた?分からんけど。
前回、STM32F446REに書き込んだ母音音声合成器の出力波形を、スペクトログラムなどを使って「見て」みました。しかしね、なんです、音なのでこの耳で聞かねば。ということで今回は出力信号の先に大分前に組み立ててあった秋月製のスピーカアンプを接続、「聞いて」みましたぞ。実際の音声ファイルもありです。
前回まで3回にわたって母音音声合成器の「部品」3つの特性をScilabに計算してもらって眺めてきました。ようやく今回はSTM32F446上で動作確認であります。といっても三上先生のサンプルプログラムそのままなので動かない分けがないです。今回は「発声」された信号をよく「見て」みようの回。