信号処理LOVERSの皆さんこんにちは.
STM32H723は、FLASH 512kB、RAM 512kB が内蔵されています.
広大で使いきれないだろうと思っていたのですが、FIRやFFTをドカドカ実装して遊んでいたら、
FLASH 250kB
RAM 200kB
も使ってしまって「あらまぁ」などと思っているところです.
それはさておき、、、便利に使っているCMSISには、配列演算関数がいろいろあります.
arm_negate_f32() 配列符号反転
arm_mult_f32() 配列同士の掛け算
arm_copy_f32() 配列コピー
その中にint→float変換をする関数があります.
arm_q31_to_float() q31はint32のこと
この関数の変換法則ってどうなってるんですかね?
やってみました.この結論を見れば意味はわかりますよね?
つまり、int32範囲→-1~+1の範囲に写すという動作するのでした.
10進int32 10進int32 float
7fffffff 2147483647 1.000000e+00
7fffff 8388607 3.906250e-03
7fff 32767 1.525832e-05
7ff 2047 9.532087e-07
7f 127 5.913898e-08
7 7 3.259629e-09
0 0 0.000000e+00
8 8 3.725290e-09
80 128 5.960464e-08
800 2048 9.536743e-07
8000 32768 1.525879e-05
800000 8388608 3.906250e-03
80000000 -2147483648 -1.000000e+00
下半分は「負の整数になれ」というつもりでしたが符号拡張しないと負にならんでした.
かしこ
0 件のコメント:
コメントを投稿