
前回は「実験材料の音源」である救急車のピーポー音をFFTしてピークとなる周波数の抽出を試みました。単純な最大値抽出だったので1周波数のみ検出。ピーポーで2波長、それにドップラー効果がかかっているので合計4波長が観察できるはずです。今回は「素朴なピーク検出関数」を自前で拵えて音源波形に適用してみたいと思います。
 “手習ひデジタル信号処理(130) Scilab、素朴なピーク検出、その1” の続きを読む
デバイス作る人>>デバイス使う人>>デバイスおたく

前回は「実験材料の音源」である救急車のピーポー音をFFTしてピークとなる周波数の抽出を試みました。単純な最大値抽出だったので1周波数のみ検出。ピーポーで2波長、それにドップラー効果がかかっているので合計4波長が観察できるはずです。今回は「素朴なピーク検出関数」を自前で拵えて音源波形に適用してみたいと思います。
 “手習ひデジタル信号処理(130) Scilab、素朴なピーク検出、その1” の続きを読む

Arduino API比較をしつつ、Mbed OS6の入出力API群を練習中。前回はアナログ入力。順番からして今回はアナログ出力ですが、まずはPWM出力から。Arduino環境でanalogWrite()というとPWM出力だからです。電圧はデジタルだけれども時間方向はアナログ(時間の最小単位はデジタルだけれども。)
 “モダンOSのお砂場(87) NucleoでArduinoからMbed OS6、PWM出力” の続きを読む

前回はSIMDの転置(transpose)命令に「絶対自分じゃ思いつかね~」と感心しました。今回はSIMDでも即値(イミーディエイト)をソースにとる命令群です。たった8ビットなんだけれどもその効果たるや意外と複雑?中でも8ビット即値を浮動小数にエンコードしてロードするFMOV命令にはちょいとてこずりましたぞ。

過去回でSTM32 NUCLEOボード上のMbed OSの練習実施。RTOSなのでついThread(Mbed OSではTaskでなくThreadと称します)だの同期だのに走ってました。しかしMbed OSはIOドライバも含めた立派なOSなのでIOの練習もいるよな、できればArduinoとの比較付でと思い至りました。
 “モダンOSのお砂場(85) NucleoでArduinoからMbed OS6、デジタルIO” の続きを読む

前回に続きいよいよ制約 constraints の設定の練習に入りたいと思います。ついては何かチュートリアルなどないのか?AMD(Xilinx)様に無いわけないっと。「UG945 – Vivado Design Suite チュートリアル: 制約の使用」です。英語読む気力が薄れたお惚け老人にも優しい日本語版であります。

別シリーズ「やっつけな日常」第69回でMbed OS6に「流れ着き」ました。久しぶりにKeil Studio Cloudを開いたところ、いろいろ改良進んでいるみたいです。ただしビルド後の表示ではRAMは全量OSが使っているような表示で「実際どのくらい使っているのか?」が分かりませんでした。今回はAPIに聞いてみます。

前回まで「離散時間」パレットを練習してました。今回は「不連続」パレットです。そういえば「連続時間」パレットも練習したよな。忘却力の彼方かも知れん。さて「不連続」パレット内のブロックどもは、それだけでシステムを記述するというよりは「連続時間」システムの中にひそかに「不連続」を紛れ込ませるためのものどものようです。

前回「実験材料の音源」として救急車のピーポー音(サイレン)を作製。遠くから近づく様子が聞き取れて悦に入りました。さてその処理の第一歩として音源の周波数を求めたい、と。FFTかけてグラフ上で読み取れば一目瞭然なんでありますが、関数の処理結果で数値として取得したいです。とりあえずの関数作ってみたけれども機能不足デス。 “手習ひデジタル信号処理(129) Scilab、音源(救急車)の周波数を求めてみる、その1” の続きを読む

Arduino Uno R3用の「バニラ味」シールドボードにLCDを搭載。Arduino Uno R3、Uno R4、そしてSTM32 Nucleo F072RBに接続し動作OK。ここまでArduino IDE環境で開発でしたが、今回はArm御本家のRTOS、Mbed OS6環境で動作させてみたいです。クラウドで開発。
 “やっつけな日常(68) STM32 Nucleo、Mbed OS6 でもバッチリ” の続きを読む

今回はSIMD命令の華「transpose」命令の実習をしたいと思います。転置デス。行列にはつきもののアレです。「簡単な操作」なのでメモリ上の要素をループで読んで順序を変えて書き戻せば可能。でもメモリにアクセスする時間を考えると大変。しかしA64のTRN1、TRN2を使えばレジスタ上で転置ができてしまうっと。
 “ぐだぐだ低レベルプログラミング(163)ARM64(AArach64)SIMD 転置命令” の続きを読む