フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
【FatFs】車載外部ストレージ その98【ファイル上シミュレーション⑤】
BPB(BIOS Parameter Block)について簡単に説明。 重要なパラメータだけ抽出。 FatFsでの具体的な数値を抽出。 セクタ、クラスタ、予約領域、FAT領域の数が分かる。 FAT領域は破損を想定してい冗長性を持たせ多重化されている場合がある。 SDカードの場合は1個なことが多い。
【FatFs】車載外部ストレージ その97【ファイル上シミュレーション④】
FatFs Win32 ファイル上シミュレーションのディスクイメージを確認。 PhysicalDrive1で生成されている。 MBR(Master Boot Record)を確認 FAT32であることを確認。 BPB(BIOS Parameter Block)が63セクタ目にあることを確認。
【FatFs】車載外部ストレージ その96【ファイル上シミュレーション③】
FatFs Win32 ファイル上シミュレーション起動。 マウント、フォーマットをして、ファイルを2つ作成。 fjコマンドでカレントディレクトリ指定。 flコマンドでファイルが作られていることを確認。 ファイルの中身も確認。 次回からディスクイメージの中を見ていく。
【FatFs】車載外部ストレージ その95【ファイル上シミュレーション②】
FatFsのファイル上シミュレーションの話。 diskio.cを改造する。 FatFs Win32のdiskio.cを改造。修正差分確認。 改造の概要説明。物理ドライブ走査数をMAX_DRIVE分に修正して認識できる物理ドライブの数を増加。 物理ドライブ1以上を指定されたらディスクイメージファイルをオープン。
【FatFs】車載外部ストレージ その94【ファイル上シミュレーション①】
FatFs Win32のソースコード群確認。 「diskio.c」を改造すればディスクイメージをファイルにできそう。 diskio.cはWindowsXP時代のHDDアクセス用にAPIが残っている。 このAPIをうまく流用すると楽かもしれない。 認識する物理ドライブをRAM Diskに加えて10個追加する方針。
【FatFs】車載外部ストレージ その93【メモリ上シミュレーション⑤】
ファイル読み取りのコマンド呼び出しの流れは書き込み時と一緒。 オープン時のmode指定を読み取りmodeにする。 ddコマンドでディスクイメージをdumpできる。 512byte単位なので若干使い勝手は悪い。 次回からメモリ上でなく、ファイル上にディスクイメージを構築できるようチャレンジ。
【FatFs】車載外部ストレージ その92【メモリ上シミュレーション④】
flコマンドでルートディレクトリ参照。 引数はpathなので「0:」のような表現になる。 ファイルオープン時にmode指定。 modeはビットアサインになってる。 ファイルへの書き込みコマンド「fw」はお試しようのため、自由に書き込みが出来るコマンドにはなっていない。 対話モードは複数ファイルは開けない。
【FatFs】車載外部ストレージ その91【メモリ上シミュレーション③】
FatFsでファイルアクセス前の準備の部分を実施。 物理ドライブへのアクセス初期化。 FATにフォーマット。 論理ドライブマウント。 volume status参照。 FATことFile Allocation Tableはクラスタの繋がりを表現している。 これによりファイルサイズの伸縮を実現している。
【FatFs】車載外部ストレージ その90【メモリ上シミュレーション②】
FatFsと対話するためのコマンド群がある。 「?」でhelpが確認できる。 パラメータ指定に物理ドライブと論理ドライブの指定があるので注意。 ファイルアクセスの前にフォーマットやマウントなどの処理が必要。 上記が済めば、一般的なファイルアクセスAPIが使用できる。
【FatFs】車載外部ストレージ その89【メモリ上シミュレーション①】
FatFsのビルド環境準備。 Visual Studio 2017 expresを使用。 プロジェクトに設定されているWindows SDKが入っていない場合があるので構成プロパティで設定変更が必要。 FatFs起動。 WindowsXP以前だとPCのHDDに直接アクセスできたらしい。
【FileSystem】車載外部ストレージ その88【FatFs②】
FatFsをDownloadしてきた。日本語サイトではなく、英語サイトから。FatFs sample projects for various platformsの方を落とす。FatFs sampleの中身確認。様々なマイコン向けのサンプルあり。(stm32,lpc23xx)win32がWindows向けのサンプル。
【FileSystem】車載外部ストレージ その87【FatFs①】
FAT解説ページの紹介。 FatFsの作者であるChaNさんの解説ページ。 今後の方針。 FatFsをPC上で動作させる。 現状でもメモリ空間にFATを構築することはできるサンプルが存在。 SDカードのディスクイメージを吸い上げて、それに対して読み書きとかできたらいいな。(希望)
【FileSystem】車載外部ストレージ その86【SD応答向上仕様㉟】
CMD43(Q_MANAGEMENT)について説明。 CommandQueueに登録されてるTaskを全部かTask ID別に停止でいる。 Sequential CQ mode時にTask ID単位の停止は禁止されている。 停止した際の挙動は未規定の未保証。 SDカード関連の話はこれで完了。
【FileSystem】車載外部ストレージ その84【SD応答向上仕様㉝】
CMD38(ERASE)のFULEについて説明。 完全フォーマットとかで使われる仕様。 CMD38(ERASE)のFULEのサポート有無はSD_STATUSで確認できる。 通常のERASEと違い、全領域ERASEであっても1秒以内に完了する仕様となっている。 間違って使わないように消去範囲を明示する必要はある。
【FileSystem】車載外部ストレージ その83【SD応答向上仕様㉜】
CMD38(ERASE)について説明。 CMD38のリクエストパラメータは32bit長Erase Function。 Eraseが通常の消去、Discardは管理破棄、FULEは全領域Erase。 busy待ちはAU_SIZE、ERASE_SIZE、ERASE_TIMEOUT、ERASE_OFFSETから算出する。
【FileSystem】車載外部ストレージ その82【SD応答向上仕様㉛】
CMD32(ERASE_WR_BLK_START)、CMD33(ERASE_WR_BLK_END)について説明。 リクエストパラメータ、レスポンスフォーマットは一緒。32bit長アドレス。 R1フォーマット。 SDUC時はCMD22(ADDRESS_EXTENSION)で5bitの拡張アドレスを指定する。
【FileSystem】車載外部ストレージ その81【SD応答向上仕様㉚】
消去系コマンドの説明。 CMD32(ERASE_WR_BLK_START)。 CMD33(ERASE_WR_BLK_END)。 CMD38(ERASE)。 消去系コマンドはCQモード時のみ使用可能。 CommandQueueと連携することで効果が得られるためと思われる。
【FileSystem】車載外部ストレージ その80【SD応答向上仕様㉙】
CMD19(SEND_TUNING_BLOCK)の電気回路的な話。 CMD19を使用して以下を確認するのが目的。 最大オーバーシュート、アンダーシュートの確認。 最大の伝播遅延の確認。 最小の伝播遅延の確認。 電気回路の難しいところはハード屋さんがやってくれるはずなのでサポートを万全にすることを意識する。
【FileSystem】車載外部ストレージ その79【SD応答向上仕様㉘】
CMD19(SEND_TUNING_BLOCK)はSDカードバスのチューニング 1.8[V]駆動モードの時に利用できる。 1.8[V]駆動モードじゃない場合はillegal command扱い。 カードから送られてくるデータが固定なのはSDカード毎に検査が変わらないようにするため。
【FileSystem】車載外部ストレージ その78【SD応答向上仕様㉗】
CMD19(SEND_TUNING_BLOCK)の説明。 リクエストとレスポンスは普通。 CMD19は固定データがData Blockとして送られてくる。 Fh、Eh、Dh、Bh、7hが多い。 DAT[3:0]の回線上を見ると何かしら見えてくるかも?
【FileSystem】車載外部ストレージ その77【SD応答向上仕様㉖】
Task ID関連について情報整理した。 端的に言うとTask ID = Command Queue番号 = (STATUS_TASK_XXのXXの部分)。 まだ語っていないコマンド群あり。 チューニング(CMD19)。 ERASE(CMD32、CMD33、CMD38)。 アボート(CMD43)
【FileSystem】車載外部ストレージ その76【SD応答向上仕様㉕】
「CMD46(Q_RD_TASK)で読み出し」と「CMD47(Q_WR_TASK)で書き込み」について説明。 共にリクエストパラメータはTask IDのみ。 事前にTask IDに紐づけて情報を渡しているため、Task ID以外の情報は不要。 Task IDの概念がややこしいので整理が必要。
【FileSystem】車載外部ストレージ その75【SD応答向上仕様㉔】
「CMD13(SEND_STATUS/SEND_TASK_STATUS)でCQの状態を確認」について説明。 CMD13は以前やったものなので、復習。 task statusを参照して、ReadyになってるTaskは次のCMD46(Q_RD_TASK)かCMD47(Q_WR_TASK)を投げて良い。
【FileSystem】車載外部ストレージ その74【SD応答向上仕様㉓】
CMD44(Q_TASK_INFO_A)とCMD45(Q_TASK_INFO_B)の制約について説明。 2つのコマンドは必ず連続している必要がある。CMD44の後にCMD45以外だとエラー。 CMD44の後にCMD45で初めてタスク登録完了。 複数のCMD44が来た場合は、最後のCMD44が有効。
【FileSystem】車載外部ストレージ その73【SD応答向上仕様㉒】
CMD45(Q_TASK_INFO_B)で開始Blockアドレスを指定について説明。 リクエストパラメータは32bit長のStart block address。 CMD44(Q_TASK_INFO_A)とCMD45(Q_TASK_INFO_B)は2つで1つの意味になる。 これらのコマンド利用には制約がある。
【FileSystem】車載外部ストレージ その72【SD応答向上仕様㉑】
CMD44(Q_TASK_INFO_A)のリクエストパラメータのNumber of Blocksについて説明。 CMD44(Q_TASK_INFO_A)のエラーハンドリングについて説明。 SD側のリソース都合のエラーもIllegal Commandとして返ってくる点に注意が必要。
【FileSystem】車載外部ストレージ その71【SD応答向上仕様⑳】
CMD44(Q_TASK_INFO_A)のリクエストパラメータPriorityは1だったら優先。 Voluntary CQ modeの時のみ有効なパラメータ。 Task IDはCQの数に依存。 CQの数はPerformance Enhancement Registerから取得できる。
【FileSystem】車載外部ストレージ その70【SD応答向上仕様⑲】
CMD44(Q_TASK_INFO_A)のリクエストパラメータ説明。 リクエストパラメータのDirectionは「読む」か「書く」かの指定。 リクエストパラメータのExtended AddressはSDUCのように2TByteを超える場合に使用。 SDUCの仕様上の最大容量は128Tbyte。
【FileSystem】車載外部ストレージ その69【SD応答向上仕様⑱】
CQ Modeのステートマシンを見せた。 CQ Modeの基本フローを書き出し。 CQ Modeは読み書き処理の予約ができ、その予約はTask IDで識別される。 Task IDをもって、実際の読み書き結果を取得する。 「CMD49(WRITE_EXTR_SINGLE)でEnable CQ=1にする」は前回出た話。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
動画作成関連のバックナンバー用ページ。立ち絵を作ったり、動画作ったり、アイキャッチ画像作ったりなどを掲載していく。
MATLAB,Python,Scilab,Julia比較するシリーズの第4章。第4章では分類問題で最終的にはニューラルネットワークや最適化アルゴリズムの話だった。第5章はフーリエ解析学から高速フーリエの話がメインとなる。
立ち絵の配置: PSDファイルをAviUtlに配置し、画面サイズやフレームレートを設定。のっぺらぼう化: 目と口を消して、アニメーション効果を追加。アニメーション効果: 目パチと口パクの設定を行い、リップシンクを調整。
フーリエ変換を定義。フーリエの積分公式の一部を抜き出す。逆フーリエ変換を定義。フーリエの積分公式にフーリエ変換を代入するだけ。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。区分求積法とリーマン積分について。フーリエの積分公式を導出した。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。さらにそこに加えて、AivisSpeechのアイコン画像を...
PSDToolKitプラグインの導入の仕方を説明。PSDファイルを探してGIMPで内容を確認。GIMPで瞬き用、口パク用のレイヤー編集。
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
区分求積法とリーマン積分について。離散と連続の分け目。フーリエの積分公式を導出した。演算したはずなのに変化しない。つまり変換、逆変換が成立することを示している。
Δωで刻みにしたので、極限を利用して連続系へ。数式上は連続ではあるが、一般的な表現ではない。よって、一般的な表現に書き換える必要がある。
角周波数ωの刻みであるΔωについて説明。Δωを定義することで、離散的な係数算出が連続的な角周波数算出に近づけていっている。
周期2Lの波の数を示すnを周期2πに於ける波の数である角周波数ωに変換。ω=nπ/Lを使用して変換するだけ。これにより少し数式がシンプルになった。
VOICEVOXとAivisSpeechキャラと一緒に!AviUtlを使った動画作成 バックナンバーはじめに以前、AivisSpeechのAnneliというキャラの立ち絵を作成した。ほぼ独自に作成したが、Anneliの画像自体はAivisS...
フーリエに積分公式は複素フーリエ級数と複素フーリエ係数から導出する。変換を想定した式に変換。複素指数関数との積と積分、総和を経由すると元に関数に戻るというイメージが重要。
AviUtlのセットアップと拡張編集Pluginの導入を行った。mp4ファイルの入力と出力の方法を説明。アニメーションgifの対応方法を説明。
分数は割り算の別表現として理解しやすく、逆数を掛けることで計算が簡単になる。これにより、小数の掛け算や割り算の理解が深まる。一次関数の数式をグラフにすることや、グラフから数式を導くことは、データのトレンド分析や物理現象の理解に役立つ。微分は関数の変化率を求める手法であり、数値微分を使って近似的に求めることができる。これにより、物理学や経済学など多くの分野で応用可能。
Youtube動画やブログ記事のアイキャッチ用に作成した、VOCEIVX(四国めたん、ずんだもん、春日部つむぎ)、AivisSpeech(Anneli)の画像たち。Stable Diffusionで生成&少しペン入れ&GIMPによる補正したものになります。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
各種フーリエについてまとめてみた。いままでは級数→係数の順番でやっていたため、逆フーリエ変換→フーリエ変換の順番が自然。実際には「フーリエの積分公式を求める」ことになるが、これは逆フーリエ変換そのものである。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズムを通常の勾配降下法からモーメンタムに変えた際の差分を確認。 モーメンタムの方が学習の収束が早い。 勾配降下法で500エポックのところ100エポック。 モーメンタムの場合、初期のパラメータ移動が大き目。 これにより、大域最適化を見つける可能性が高くなる。
最適化アルゴリズム モーメンタムを用いて分類の学習をJuliaで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をScilabで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をPythonで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
最適化アルゴリズム モーメンタムを用いて分類の学習をMATLABで実現。 問題無く動作。 学習の収束が通常の勾配降下法よりも比較的早い。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 モーメンタムの動作イメージについて確認。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
勾配降下法の更新式を確認。 勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしていく。 最初は復習を兼ねて勾配降下法についても確認する。
モーメンタムを確認するプログラムの方針を確認。 以前の勾配降下法のプログラムをベースにする。 隠れ層のユニット数は4。 プログラムのフローを確認。 モーメンタム項とパラメータ更新が基本的な差分となる。
モーメンタムの動作イメージについて確認。 動作イメージの表現は難しい。 最初は大きく更新して、最適解が近いと小さく更新。 勾配降下法で言うところの学習率が可変と同義な動きになる。
モーメンタムの更新式について確認。 指数移動平均を利用して直近の値を重視する。 実際の指数移動平均とは異なっているので、その点は注意。
勾配降下法の動作イメージを確認。 学習率が大きい場合と小さい場合で挙動が変わる。 ちょうど良い学習率を人間の手で探す。 これにより、一般的なパラメータとは異なるハイパーパラメータというカテゴリになる。
今回改めてまじめに更新式を確認。 勾配降下法の更新式が一番シンプルなので今後の最適化アルゴリズムの更新式を見る際は比較対象になりやすい。
最適化アルゴリズムを取り扱う。 今回のネットワークだとさほど恩恵はないが知っていて損はない。 まずはモーメンタムから解説&実験をしてい 最初は復習を兼ねて勾配降下法についても確認する。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたJuliaコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたScilabコードで分類を実施。 大きく2パターンの分類パターンがある。 やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を2から4に変えたPythonコードで分類を実施。 大きく2パターンの分類パタ やや複雑な分類パターンが4ユニットにすることで出てきたもの。