2025年2月21日金曜日

STM32 簡単ポンでLMSできるようでなにより(1)

STM32というよりもARM libraryのハナシなんだけど、、、DSP libraryのヘッダを見ていてLMSという文字があるのは気づいてました.

しかしLMSを汎用関数みたく実装するのなんか無理なんじゃね?って思うのでLMSという名の別の機能なんだろうなと想像してました.がっ、本当のLMSのようです.

LMSは便利なもので、自動イコライザと思えばだいたい合ってます.信号処理をやったことのある人はアイパターンというこんな写真を見たことがあるかもしれません.
左はNo errorで優秀、右はerrorが多発してます.LMSは右を左に改善する自動調整イコライザ(のようなもの)です.
1998年のDDS3でLMSイコライザを量産機に搭載したのがたぶん世界初で、それをやったのが俺な.今ではLANの受信処理などに当たり前のように使われてると思います.

そんなわけでLMSの実装に造詣の深いヒラサカさんがこのページを見るに、これは正真正銘LMSじゃんと驚いちゃってるとこ.
LMS libraryを使ってみます.

いまやりたいのは、、、
 センサA →信号A
 センサB →信号B
信号Aと信号Bを寸分違わず同じにすること.
そのためにFIRフィルタを使います.
 センサB →信号B →FIR(信号B) ≒信号A
信号BをFIRフィルタに突っ込んで、出てきたものが信号Aと同じになればOK.
FIRのタップ係数をLMSで自動調整する.

LMS libraryの内部はfloatかdoubleで演算してるんだと思います.今時は楽でいいわね.
1998年のLSIは130nmプロセスで、固定小数点演算で極めて貧乏にやるしかなかった.

ーーーー
わからーん.
このLMS libraryを使ってる人って地球に1人も居ないんじゃなかろうか?
library関数にFIRレイテンシの時間合わせという概念が見当たらないんだが、動かないだろそんなの.
もう自作しようかな.


かしこ

39 件のコメント:

  1. murasaki
    130nmですか。サブミクロンといっていた時代からすると十分微細ですが。今この数字を見ると太い。

    返信削除
    返信
    1. 130で先端プロセスでした
      直前は250だったかな

      その後のPS3の初代が90nmとかいってて、すごく細いと思ったものですが、いまだとすごく太いです

      削除
    2. >130nm
      「Pentium III」「Pentium 4 Northwood」の、時代なんですね・・・
      https://en.wikipedia.org/wiki/130_nm_process
      ※他に交じって、
      ・GameCube
      とかあるのがウケる。つか、CPU は、
      ・IBM の PowerPC
      だったんだ。なんかスゴイな・・・

      削除
    3. 流石に、i線じゃ「130nm」の露光はムリだよなー、と思って調べたら、どうも、
      ・KrF(フッ化クリプトン)エキシマレーザー(波長248nm)
      が、使われてたらしい。
      ※まだ、「液浸」でなくても作れてたのがスゴイな。
      【半導体露光装置の価格相場】
      i線が約4億円、KrFが約13億円
      「約13億円」って、まぁ、そんなもんか。
      ※ちなみに私は以前、「i線露光機」の、設計やってました。

      削除
    4. 130nmのころってAISCの開発費は5000万円ぐらいだったかな
      マスク枚数が少なかっただろうし
      いまじゃ何億円でしょうけど

      削除
    5. verilogで回路書いてました

      削除
    6. murasaki
      露光装置の設計は楽しそうです。羨ましい。
      自分が遊技機向けLSIの事業に関わった頃は1.2μくらいでした。自分はLSI開発している部署の基板開発でしたが。
      開発費は3,000万くらいで、compassとかいうツールでまだゲート入力とソース入力を行ったり来たりして設計していたような。マスクは10数枚くらいで、ちょっとした修正はロジックに戻らずマスクを直接直していたかも。横で見ていただけですが。

      削除
    7. そういえば1987年からしばらく、PCBの版下は手貼りだったな

      削除
    8. >露光装置の設計は楽しそう
      隣の芝生ですよ(笑)
      ※私から見れば「遊技機の設計」のほうが、よっぽど面白そうです
      何といっても「アミューズメント機器」という位ですから。多分、「あの有名なxxを設計してました!」とか、言えるんだろうな。
      (「守秘義務」があるので、ココには書けないと思いますが(笑)
      私の関わった露光装置は「一部の業界人」は、知ってると思いますが、一般的にはそんなに有名じゃ無いです。

      削除
    9. エヴァのパチンコが流行したのは理解できる
      まどか☆マギカのパチンコが廃れないのはよくわからんわ

      削除
    10. >遊技機
      もしかして、その業界って、
      ・魔改造Z80を使うことを義務付けられてた業界
      ですか?(わかる人には分かる表現(笑)
      (意味が分からなかったり、違ってたらゴメンナサイ)

      削除
    11. >まどか☆マギカのパチンコが廃れない
      ユーザーに「そう言う年代」が、多いからじゃないの?
      ※「まどか☆マギカ」って、「忘れた頃」に、「新作?みたいなの」が出てるイメージがある。(パチンコのほうじゃ無いです。)

      削除
    12. >verilogで回路
      これ知ってました?
      https://zenn.dev/dalance/articles/e3a926b0f0e04d
      新しいHDL(ハードウェア記述言語): Veryl
      ※「Chisel が RISC-V のエコシステムを中心に使われるようになってた」
      ことに感化されて、作った言語らしい。
      「HDL界の、Ruby」を、目指してるらしい。名前も、そこにあやかって付けたらしい。
      (ややこしいですが「HDLRuby」とは別物です。ほぼスクラッチから、仕様を考えてるらしい。)

      削除
    13. なんか最近「HDL界」も、イロイロ賑わってて何よりです。
      ※私も最近、コレと同じモノ
      https://akizukidenshi.com/catalog/g/g117448/
      を、アリエクで買ったのですが、まだ箱も空けてない(笑)
      コレでも「Veryl」が動くとかなんとか。こんなのもあった。
      https://cpu.kanataso.net/00-preface.html
      Verylで作るCPU
      ※「RISC-V」が、コレで動きます!なんか、スゴイ時代になって来たな。

      削除
    14. Tang Nano 中華FPGA 買おうかと思ったことはあるぐらい

      HDLをつかう人は少ないので普及は難しそう

      削除
  2. なんか、この「アイパターン」が、
    ・亀甲パターン
    に、見えて来た。考えすぎ?

    返信削除
    返信
    1. 縛りはやはり亀甲縛り

      削除
    2. 読者 ナボナはやはり亀屋万年堂
         ようかんはやはり虎屋

      削除
    3. とらやうまいです
      ナボナはまぁどっちでもいい

      削除
    4. 読者 舟和のいもようかん を忘れていました
      最後に買ったのは 御徒町の吉池っぽい

      削除
    5. 読者
      東京駅で案内のおんな
      「かみなりおこしはみぎいったところ」
      ないので おみせのおばちゃん 「みぎのほうやでー」
      そっちへいくと発見
      1.わかいおんなと はなしたのでよい 
      2.わかいおんなに だまされたのでわるい
      3. わかいおんなと はなすのは キャバクラでは 40分3500円が無料だったので お得
      さてどれでしょう
      正解は
      4.の 秋葉原だと 1万円さつでもいいですか の場合だけ 返答してくれて その他の質問は わからない と返答してくれる店員よりしんせつ が正解でした
      なお
      「質問不可」とかいてある店もあるよ

      削除
    6. 奥さんが大阪から帰宅するのでお土産を期待しています

      削除
    7. ああ、大阪で「食いだおれ」したい・・・

      削除
  3. >LMSを汎用関数みたく実装
    LMS(least mean squares)って、よく知らなかったので調べたのですが、要するに、「適応フィルタ」のパラメータ値を、「最小二乗法」で、求めてるんですね。
    ja.wikipedia.org/wiki/適応フィルタ
    ※今なら「計算資源」が、有り余るほど沢山あるので、単に
    ・ソース上で、数式書けば終わり
    ですが、昔はそんな簡単に出来なかったから、大変ですね。
    まぁ、(精度は別として)アルゴリズム的には簡単なので、「ハードウエア化」には、向いてるカモですが。
    要するに「Sync Pattern」が、「同じ形に成るように」パラメータ調整すればいいだけですから。
    ※ちなみに、「LMS」で、検索すると、「AI(学習)関連」がやたらヒットするので、本来は「そっち向け」に、用意した関数かも知れませんね。
    まぁ、やってることは同じですけど。

    返信削除
    返信
    1. しかし、この辺の基礎理論も、
      ・1950, 60 年代
      に生まれたみたいで、
      ・私より年上(笑)
      なんだよな。通信系が「デジタル化」し出した(基幹系だけですが)のが、丁度その頃なので、その関連なんだろうな。
      漸くこれが、
      ・ふつーの人が使うようなモノ
      にまで、広まってきたというワケですね。

      削除
    2. そんなもんです
      浮動小数点でやれちまってお気楽極楽じゃーん

      AIの学習もベースの演算はLMSと似ています 温故知新みたく

      削除
    3. 読者 LMSできるひと天才じゃないかと思う 

      削除
  4. >レイテンシの時間合わせという概念が見当たらない
    やはり、
    ・リアルタイム制御
    用じゃないのカモですね。
    ※それとも、「何も知らない人」が、適当に入れただけ?とか。

    返信削除
    返信
    1.  誤差=FIR(信号)-教師信号
      みたいなのが中心的理屈なんですけど、
      右辺の2項の同時刻性を保証しないといけなくて、
      数式上はサラっと
       e(n)=y(n)-d(n)
      などとnで表して同時刻と表現してます
      数式はそれでいいでしょうけど、実装はちゃんと時刻合わせしないとうごかないんですがっていうのがにゃ~

      FIRのセンタータップの成長が変なになっちゃうにゃ~

      どこへ走ってゆくのLMS

      削除
    2. ああ、そう言う意味ですか。
      「AIへの応用」のときは、この辺どうやってんだろ?
      先生が「右へ向け」と言ってるのに、同期が取れないと、
      生徒が「左へ向け」と解釈したりするのだろうか?
      ちょっとこの辺は詳しくないので分かんないな。

      削除
    3.  ニューロン出力=Σ(重みづけx入力)
      なわけで、
       偏微分=∂ニューロン出力/∂重みづけ
      を機械微分で求めて、
      ニューロン出力が教師信号に近づくように、重みづけを微修正してゆくloop
      というのが機械学習の根本といえます
      だけど、ニューロンが5階層もあったら偏微分が薄くて演算誤差に埋まってしまうんじゃないかと心配ですが、
      なんとかうまくやってるんでしょう

      削除
    4. 読者 MxNのマトリクスがおおきいほどいいとか マトリクスの段数が多いといい みたいだったような気がする
      ありましたn 偏微分 なんとか単位を取れた気がした(留年しなかったので) ある先輩 さすがに8年生超えて一度退学ー聴講生ー復帰という 裏技があったと知ったのでした おそらく文部省の規則か政令みたいな制限の抜け穴だったのかも

      削除
    5. そのうち日本社会主義国ですから大学も無償になって、
      ジジババが遊びのために大学に行くことになります

      高校無償化反対 アタマオカシイ

      削除
    6. >重みづけを微修正してゆくloop
      と言うことは、
      ・1階(偏)微分
      ・2階(偏)微分
      ・n階(偏)微分。。。
      の、パラメータがズレちゃうから、やはり何か結果がオカシクなっちゃいそうですね。
      ※何か別の方法で、同期取ってるのかしら?やっぱりわからないな。

      削除
    7. >MxNのマトリクス
      「M階N次元」と考えると、
      「どちらか」(あるいは両方)ズレると考えると、
      >先生が「右へ向け」と言ってるのに
      >生徒が「左へ向け」と解釈する
      は、あながち「間違ってないような」気もする・・・

      削除
  5. やはり、「LMS」って、「AI用に」用意しようとしてるんじゃないかなー
    https://eetimes.itmedia.co.jp/ee/articles/2502/21/news158_2.html
    STが車載マイコンに「全振り」 STM32も車載展開へ
    >産業用プラットフォームであるSTM32と車載用プラットフォームであるStellarの融合に期待していると述べる
    >組み込みAIに向けたSTM32の新製品として「STM32N6」を発表した。独自設計のNPU「Neural-ART アクセラレーター」を搭載し、AI処理性能を従来比600倍に高めたものだ。
    コレ向けの関数?

    返信削除
    返信
    1. STM32N6xx
      800MHZ  RAM4MB ←いいね
      だがくそっBGAしかない
      NUCLEOが$56と意外に安い

      削除