お久しぶりです。Setotiです。 約2年ぶりにブログを投稿します。この度、ブログの引っ越しを行い、ブログを再開することにしましたので、ご連絡いたします。
本記事ではMUSIC(MUltiple SIgnal Classification)法をPythonで実装しました。MUSIC法はSchmidtにより1986年に提案されており、音源の位置を推定する技術(音源定位)では最も代表的な手法ではないかと思います。今回は、シミュレーション環境で録音した音を…
本記事では、音声・音響処理で使われている主成分分析 (PCA: Principal Component Analysis) を紹介します。自分が知る限り、主成分分析はアレイ信号処理によく使われています。音声・音響処理する人向けに記述しましたので、データ分析する人向けではないこ…
ヘリウムガスを吸い込んだときの特徴的な声はヘリウムボイスと呼ばれています。本記事では、信号処理でヘリウムボイスを擬似的に実現してみました。前回の記事で紹介したケプストラム分析を用いてスペクトル包絡の加工をしています。
ケプストラム分析を用いてスペクトル包絡推定を行いました。ケプストラム分析は1964年に Noll らにより提案された方法です。ちなみにケプストラム(cepstrum)という名称は、spectrumのアナグラム(specだけを逆から書くとcepstrum)となっています。
頭部伝達関数(HRTF: Head-Related Transfer Function)を使って8D立体音響をPythonで実装してみました。8D立体音響というのは正直言って私も厳密な定義はわかりませんが、ここで言っているのはYoutubeによくある頭の周りをクルクルまわる音源のことです。…
ビームフォーミングで特定方向の音源を強調しました。今回は、一番基本的なビームフォーマである 遅延和ビームフォーマ(DSBF:Delay and Sum Beam Former)を Python で実装して、室内音響シミュレーションで作った音に作用させました。
ソースフィルタモデルによる古典的な方法で母音 ”ieaou” を音声合成しました。今回の記事は「サウンドエフェクトのプログラミング」という本を参考にしています。
カットオフ周波数を決めれば、単純な計算だけでIIRフィルタの係数を求める方法はないかと思っていたら、双一次変換と呼ばれる方法があったので紹介します。
いままでRX631をのせたマウス基板を用いて、デバイスの動作確認をおこなっていましたが、AD変換が上手くいかなかったので、マウス基板をまた作りなおしました。RX631-48ピンが手に入りづらくなっていたことに加えて、RAMが多い高性能のマイコンを使いたいと…
Pythonを使って正弦波モデルを実装しました。ソースコードがネット上にあまりないため、頑張って自力で書きました。 今回は、M&Qアルゴリズムとよばれる方法で実装を行っています。
RXマイコン(RX631)のソフト開発の8回目です。今回は、磁気式エンコーダーのAS5047を動作させたいと思います。AS5047によって、タイヤの回転角度を求めます。
RXマイコン(RX631)のソフト開発の7回目です。今回は、モータドライバーのDRV8836を動作させたいと思います。制御はしないです。ただ動かすだけです。ギアが噛み合うかも確かめたいと思います。
RXマイコン(RX631)のソフト開発の6回目です。今回は、RSPIを使ってジャイロ(MPU6000)から角速度を取得して、計算した角度をTeraTermで確認したいと思います。情報が少なかったので、実装するのに苦労しました。ユーザーズマニュアルや本、他の人のブロ…
RXマイコンのソフト開発の5回目です。今回は、ADCでバッテリーの電圧を測定して、TeraTermで値を確認したいと思います。作成したバッテリーチェックの回路図は図1です。SEN_BAT のポートは PE1/AN009 です。Lipoバッテリーの電圧を抵抗によって半分に分圧…
RXマイコンのソフト開発の4回目です。今回は、UARTでHello Worldを出力したいと思います。今回の記事に関しては、ほとんどマウス本を参考にしています。
RXマイコンのソフト開発の3回目です。今回は、スピーカーから音を出したいと思います。MTUという機能を用いて、端子から矩形波を出力することで音を出します。この機能によって、いちいちプログラムで端子をLOW、HIGHに設定せずとも、自動で矩形波が出力さ…
RXマイコンのソフト開発の2回目です。今回は、プッシュスイッチの入力を受けて、フルカラーLEDの点灯色を変更したいと思います。回路ではチャタリング除去をしていないため、ソフト側でチャタリング対策をしたいと思います。前回と同様にRX631のユーザーズ…
ZYBOでシンセサイザー作成の5回目です。前回と前々回でパラシリ変換器(sin_gen)と正弦波生成 IP(para2serial) が作成できました。今回は、これらを組み合わせて、ZYBOから音を出力したいと思います。
RXマイコンにプログラムを書き込む方法を紹介したいと思います。本記事では、ターゲットデバイスにRX631を用いますが、他のRXマイコンでも同様の方法で書き込みができます。統合開発環境にはe2studioを用います。
今回からマイクロマウスのソフト開発を行いたいと思います。まずはクロック設定とLチカからはじめたいと思います。主にこの記事は以下のマウス本を参考にしています。また、RX631のユーザーズマニュアル ハードウェア編もかなり参考にしているので、参照する…
今回は、前回の記事で作成した正弦波生成 IP(sin_gen)の出力をパラシリ変換して、オーディオコーデック(SSM2603)が受け取れるデータ形式にします。
前回の記事から10日後に基板が届きました。早速、全ての電子部品をはんだ付けして、プログラムを書き込もうとしたのですが、接続すらできませんでした。 DCマウスを途中まで作ったときにRX631(64ピン)にプログラムを書き込んだ経験があったので、できて当…
今回は、波形テーブル(BRAM)を使って正弦波を合成するIP (Intellectual Property) を製作します。前回まではハードウェア記述言語(HDL)を用いずにFPGAを使っていましたが、今回からHDLのSystemVerilog を用いていきたいと思います。
今回から徐々にシンセサイザーの作成を始めます。今回は、IICでオーディオコーデック(SSM2603)のレジスタ設定をして、コーデックで音を折り返します。
ZYBOを使ってシンセサイザーを作成したいと思います。久しぶりにVivadoを使うので、まずはLチカとHello Worldからやってみます。
こないだは撥弦音の合成をしたので、次は打楽器音の合成をしました。前回と同様にKarplus-Strong方式で合成しました。
突然ですが、マイクロマウス(旧:ハーフサイズ)を始めました。学部生のころ、マイクロマウスを製作するサークルに入っていたのですが、全くわからなくて挫折してしまいました。ただ、大学院を卒業した今の自分ならできると思い、マイクロマウスをやってみ…
はじめに 機械学習などをやっていると困るのはデータを集めることだと思います。私も音源分離の機械学習をやったことがあるのですが、データを集めるのに苦労しました。音楽データの音源分離をする場合は、データセットはMUSDB18が一番有名ではないかと思い…
音の合成というものをいままでしたことがなかったので、信号モデルのKarplus-Strong方式で撥弦音を合成してみました。