手習ひデジタル信号処理(91) PythonでFMラジオデータを音声再生、RTL-SDR

AudioWave
Joseph Halfmoon

前々回前回と低価格なソフトウエア無線受信用USBドングルRTL-SDRのデータをPythonで読み取ったものをScilabへ「輸出」するためのPythonスクリプトを作ってました。今回はそのスクリプトにFM放送波形を復調して断片的ですが音響再生する機能を追加してみました。毒を食らわば皿まで?違うか。

“手習ひデジタル信号処理(91) PythonでFMラジオデータを音声再生、RTL-SDR” の続きを読む

GoにいればGoに従え(22) TinyGo、SPI接続、micro:bit v2の場合

Joseph Halfmoon

TinyGoを使ってBBC micro:bit v2を制御してます。「使ってなかった」のに「使った気でいた」ペリフェラル回路があり。SPIです。TinyGoでSAMD21マイコンで実験済、またmicro:bitのmakeCode環境でも実験済。でもTinyGoとmicro:bit v2 ではやってない。組み合わせ爆発?
“GoにいればGoに従え(22) TinyGo、SPI接続、micro:bit v2の場合” の続きを読む

MicroPython的午睡(109) ESP32版、btreeモジュールで連想配列永続化?

ESP32_Python_Btree_EC
Joseph Halfmoon

フルPython処理系でデータベース的なものを使いたいとき「お手軽な」SQLite使うことが多いデス。一方スタンドアロンなMicroPython単独でSQL系DB使うのは現実的ではないかと。しかしMicroPythonには固有の実装としてbtreeモジュールあり、標準辞書型に近い形の連想配列を「永続化」可能であります。

“MicroPython的午睡(109) ESP32版、btreeモジュールで連想配列永続化?” の続きを読む

ぐだぐだ低レベルプログラミング(120)ARM64(AArach64)Floatのストア#1

FSTR_EC
Joseph Halfmoon

ロードあればストアあり。前回前々回と浮動小数とSIMD(スカラー)のロード命令(LDR)を練習してみました。今回は対になるストア命令(STR)の練習です。ほぼ同様なアドレシングモードが使用できますが、唯一PC相対だけはありません。PC相対で指定できるのは”.TEXT”セグメントと解釈されるのでストアは対象外っと。

“ぐだぐだ低レベルプログラミング(120)ARM64(AArach64)Floatのストア#1” の続きを読む

Rubyと一緒(11) Chrome版Rubic、ついに起動できなくなりました。滅亡?

RubicNotSupported
Joseph Halfmoon

『つひに行く道とはかねて聞きしかど昨日今日とは思はざりしを』在原業平。特価品(見切り品?)のGR-CITRUSボード(ルネサスRX631搭載)で組み込みRuby(mruby)してまいりました。その処理系Chrome版Rubic、起動の度にサポート無の警告あり。無視して使ってまいりましたが、ここまでか。ついに起動不能。
“Rubyと一緒(11) Chrome版Rubic、ついに起動できなくなりました。滅亡?” の続きを読む

忘却の微分方程式(100) 反復練習63、楕円面の接平面を描く、Maxima

Ex76_plot1
Joseph Halfmoon

前回は包絡線(envelop)でした。今回は接平面です。「似たようなもん?」、偏微分して公式に当てはめればこの年寄にも式は求まります。でもね~実際に図を描いてみないと実感がわかないのよ。そして図を描くためには何か具体的な数値を与えないと描けません。具体的な数値にすれば納得いくけれどもメンドイ。しかたない? “忘却の微分方程式(100) 反復練習63、楕円面の接平面を描く、Maxima” の続きを読む

オプション沼(20) gcc、-Warray-bounds、最適化のときは世話焼きになる

WarningLocations
Joseph Halfmoon

警告オプションの重箱の隅をつつくようなことをしていると、「これ駄目でしょ」的なコードを書くことになります。しかし何の警告も出ずにコンパイル出来、ましてや実行もできてしまうと。どう見たってエラーなんだけれども。今回のWarray-boundsオプションは、最適化するとビシビシ指摘してくれるのに、最適化しないとザル?

“オプション沼(20) gcc、-Warray-bounds、最適化のときは世話焼きになる” の続きを読む

データのお砂場(86) R言語、uspop、米国の人口(国勢調査)、1790-1970

uspopRawdataPlot
Joseph Halfmoon

R言語所蔵のサンプルデータセットをABC順(大文字先)で見ています。今回はuspop とな。popといったってポップミュージックではありませぬ、人口のpopulation の方です。例によって古いデータセットです。1790年から1970年までの約200年間、第1回の国勢調査から10年毎の調査データらしいです。

“データのお砂場(86) R言語、uspop、米国の人口(国勢調査)、1790-1970” の続きを読む

お手軽ツールで今更学ぶアナログ(158) AD2、遅延計測スクリプト機能追加と小ネタ

RR_EC
Joseph Halfmoon

アナデバ社(ADI社)の日本語版記事の最新号をキャッチアップできたので、再びAnalog Discovery2のスクリプトの練習に戻ります。第155回では2つのチャネル間の信号の立ち上がりの時間差を「遅延」とみなして測定。今回は立ち上がり、立下りの区別なく、「エッジ間」ということで測定できるようにしてみました。
“お手軽ツールで今更学ぶアナログ(158) AD2、遅延計測スクリプト機能追加と小ネタ” の続きを読む

ブロックを積みながら(121) Node-RED、自前ノードにユニットテスト追加

Error2
Joseph Halfmoon

本当は「テスト駆動設計」的に先にテスト書いてからノードの作成にかかりたいものです。しかしノードの書き方自体がよく分からん、ということで先にそっちに突っ込んでました。しかしノードの機能も増えつつあります。この辺でユニットテストをキチンとしておきたいです。またしかし、ユニットテストの書き方自体が怪しいデス。堂々巡りやな。 “ブロックを積みながら(121) Node-RED、自前ノードにユニットテスト追加” の続きを読む

手習ひデジタル信号処理(90) PythonでRTL-SDRデータをデシメーション

plotDecimatedSignal
Joseph Halfmoon

前回、ソフトウエア無線受信用USBドングルRTL-SDRのデータをPythonで読み取ったものをScilabへ「輸出」。これでScilabでもRTL-SDRのデータを処理できる(リアルタイムじゃないけど)とほくそ笑みました。今回は「輸出」に使ったPythonスクリプトに手を入れデシメーション機能など追加。益々繁盛?

“手習ひデジタル信号処理(90) PythonでRTL-SDRデータをデシメーション” の続きを読む

SPICEの小瓶(31) BVエレメント使って、積分のビヘイビア・モデル

AITG1_DUT
Joseph Halfmoon

一度禁断の荒業「BVエレメント」に手を出してしまうと、後は野となれ山となれ、ほぼ算術的に記述可能な動作であれば何でも「ビヘイビア」モデル化可能であります。今回は積分回路です。前回の遅延回路の「チョイ変」で「ビヘイビア」モデル化してみます。一撃。電源電圧の制限などなくどこまでも積分可能。ビヘイビアだね~。

“SPICEの小瓶(31) BVエレメント使って、積分のビヘイビア・モデル” の続きを読む

ぐだぐだ低レベルプログラミング(119)ARM64(AArach64)Floatのロード#2

fldrRegEC
Joseph Halfmoon

前回より浮動小数点レジスタおよびSIMDレジスタのスカラーに関するメモリからのロード命令の練習を始めました。何度も書いているようにA64の命令も多すぎなら、アドレシング・モードも多すぎ(個人の感想です。)下手をするとオペランドのビット幅のバリエーションが多い分、整数ロード命令より組み合わせ多いんでないの。

“ぐだぐだ低レベルプログラミング(119)ARM64(AArach64)Floatのロード#2” の続きを読む

手習ひデジタル信号処理(89) PythonからScilabへRTL-SDRデータをお裾分け

scilab_psd
Joseph Halfmoon

前回、遅ればせながら入手のソフトウエア無線受信機RTL-SDRをPythonで読み取りできました。順当な線ではPythonで後段処理、ということになりますが、このところやっていたScilab様をお見限り、というのは寂しい限り。どうせリアルタイム処理は狙わないのでRTL-SDRのデータをScilabへもお裾分けっと。
“手習ひデジタル信号処理(89) PythonからScilabへRTL-SDRデータをお裾分け” の続きを読む