フーリエ変換には角周波数を扱うものと周波数を扱うものがある。角周波数と周波数の間には角度と1回転という差があるのみ。よって、周波数に2πをかければ角周波数となる。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
【FileSystem】車載外部ストレージ その37【SD初期化⑳】
CID(Card IDentification)の詳細の話の続き。 Product serial numberは32bit長のシリアルナンバー Manufacturing dateは12bit長のフィールド。 8bitで年、4bitで月を表現。
【FileSystem】車載外部ストレージ その36【SD初期化⑲】
CID(Card IDentification)の詳細の話の続き。 Product nameは最大8文字のASCIIコード。 "SD01G"のような文字列。 Product revisionはn.mを示す形でそれぞれ二進化十進数(BCD)で表記。 二進化十進数(BCD)は二進法の4桁で0から9を表現。
【FileSystem】車載外部ストレージ その35【SD初期化⑱】
CID(Card IDentification)の内訳説明。 ManufacturerIDは8bitの数値。(情報未開示) OEM/ApplicationIDは2文字のASCIIコード。(情報未開示) ManufacturerIDとOEM/ApplicationIDの取得はSD-3C,LLCにライセンスを付与してもらう必要がある。
【FileSystem】車載外部ストレージ その34【SD初期化⑰】
「CMD2(ALL_SEND_CID)によるCIDの取得」の説明。 CIDはCard IDentificationの略。 CMD2(ALL_SEND_CID)のレスポンスはR2レスポンスフォーマット。 CIDは128bitの6種類の情報を持つ。
【FileSystem】車載外部ストレージ その33【SD初期化⑯】
ホストからのSDCLK送出から1ms以内にカードはCMDを1.8VでHighにする。 ホストはそれを検知。 さらにカードはDATのラインを1.8VでHighする。 これもホストが検知。 上記をもって、SDCLK、CMD、DATのラインが1.8V駆動で通信可能な状態が相互で確認できたことになる。
【FileSystem】車載外部ストレージ その32【SD初期化⑮】
カードがVOLTAGE SWITCHの開始受付としてCMDとDATラインをLowにする。 ホスト側はCMDとDATラインをLowをカード側がVOLTAGE SWITCHの開始を受領したと見なす。 ホスト側はSDCLKを5ms以上止める。(6ms待ちが安パイ)。 上記の5ms後にホストから1.8VのSDCLK送出開始。
【FileSystem】車載外部ストレージ その31【SD初期化⑭】
VOLTAGE_SWITCHはCMD11(VOLTAGE_SWITCH)の発行が起点となる。 CMD11にはパラメータはない。 SDカードはR1レスポンスを返した直後にCMDとDATのラインをLowにする。 ホスト側は入力モードになっているので出力が衝突することは無い。
【FileSystem】車載外部ストレージ その30【SD初期化⑬】
CMD11(VOLTAGE_SWITCH)によるVoltage Switchの説明。 ACMD41で1.8V切替サポートが確認できたSDカードは1.8V駆動に切替できる。 Voltage Switchの手順はまぁまぁ複雑。 タイミングチャートで確認。 大雑把に手順確認。
【FileSystem】車載外部ストレージ その29【SD初期化⑫】
ACMD41(SD_SEND_OP_COND)のパラメータによる挙動に違いについて説明。 inquiry ACMD41。 OCR取得用ACMD41。 OCRパラメータを0にすることでこれになる。 first ACMD41。 初期化用ACMD41。 OCRパラメータを非0にすることでこれになる。
【FileSystem】車載外部ストレージ その28【SD初期化⑪】
ACMD41(SD_SEND_OP_COND)のリクエストとレスポンスのパラメータについての続きを説明。 S18RとS18AはSwitching to 1.8V Request/Accpeptedで駆動電圧を変更するのに使う。 UHS-IIの場合は変更不可。 OCRはSPIモードの時と同じ。
【FileSystem】車載外部ストレージ その27【SD初期化⑩】
ACMD41(SD_SEND_OP_COND)のリクエスト電文、レスポンス電文に出てくるパラメータ説明。 HCSとCSSはSPIモードでも出来てたパラメータ XPCはSDXC Power Control。 最大電流値を切り替えられる。 UHS-IIはその名のとおりUHS-II対応かの確認用。
【FileSystem】車載外部ストレージ その26【SD初期化⑨】
ACMD41(SD_SEND_OP_COND)のリクエストについて簡単にに説明。 処理の流れとしてはSPIモードのACMD41(SD_SEND_OP_COND)に似ている。 ACMD41(SD_SEND_OP_COND)のリクエスト、レスポンスのパラメータを確認。 新出パラメータ多数。
【FileSystem】車載外部ストレージ その25【SD初期化⑧】
CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定のレスポンス側の説明。 レスポンスはリクエストと同等の構成。 リクエストが受けつけられたかどうかを返しているだけ。 現状は選択肢が少ないので、ほぼレスポンスパターンは限られるが今後のSD仕様の追加次第ではどうなるか分からない。
【FileSystem】車載外部ストレージ その24【SD初期化⑦】
CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定の説明。 以下のパラメータが存在。PCI express 4.0 Support有無。 Voltage Supplied。 Check pattern。セットした値がそのままレスポンスに乗ってくる。
【FileSystem】車載外部ストレージ その23【SD初期化⑥】
SDカードのSDモード通信の初期化シーケンスを大雑把に説明。 次回から以下の流れで説明予定。CMD8(SEND_IF_COND)によるSDv2判定及びサポート電圧判定。 ACMD41(SD_SEND_OP_COND)によるHigh Capacity設定とVoltage Switch可否判定。 CMD11(VOLTAGE_SWITCH)によるVoltage Switch。 CMD2(ALL_SEND_CID)によるCIDの取得。 CMD3(SEND_RELATIVE_ADDR)によるPublished RCAの取得。 CMD7(SELECT/DESELECT_CARD)によるTransfer State(tran)遷移。
【FileSystem】車載外部ストレージ その22【SD初期化⑤】
SDカードのSPIモード通信の初期化シーケンスの中のSDv2の容量判定について説明。 CMD58(RAD OCR)を投げてCCS(Card Capacity Status)ビットを確認する。 CCSが0ならSDSC、1ならSDHC/SDXC。 結果的にCMD58(READ OCR)を2回発行するが、仕様書上はmust要件となってる。
【FileSystem】車載外部ストレージ その21【SD初期化④】
SDカードのSPIモード通信の初期化シーケンス読み書き可能状態遷移を説明。 ACMD41(SEND_OP_COND)を投げてR1レスポンスのin idle stateを監視するだけ。 ACMD41(SEND_OP_COND)のパラメータにHCS(High Capacity Support)の付加してSDHC以降のモードに切り替えられる。 SDHC以降モードはBlock lengthが512byte固定となる。
【FileSystem】車載外部ストレージ その20【SD初期化③】
SDカードのSPIモード通信の初期化シーケンスの中の駆動電圧判定について説明。 CMD58(READ_OCR)を送ると、R3フォーマットのレスポンスが返る。 R3フォーマットはR1にOCRが付加されたもの。 OCRのbit15~bit23が駆動可能電圧を示している。 自装置の駆動電圧が範囲外の場合は制御不可。
【FileSystem】車載外部ストレージ その19【SD初期化②】
SDカードのSPIモード通信の初期化シーケンス詳細を開始。以下の順番で説明予定。初期状態に戻す。 SDv2以降判定。 駆動電圧判定。 読み書き可能状態へ。 SDv2の容量判定。 初期状態に戻すのはCMD0(GO_IDLE)。 SDv2を判定するのはCMD8(SEND_IF_COND)でエラーになるかどうか
【FileSystem】車載外部ストレージ その18【SD初期化①】
SDカードはいきなり読み書きはできない。 初期化シーケンスを通してSDカード状態を読み書き可能状態へ遷移させる。 初期化シーケンスはSDv1、SDv2のルートに分かれる。 SDv1とSDv2 SDSCはモノとしては一緒。 SDSCかSDHC/SDXCはSDv2の最後のCCSの判定で分かる。
【FileSystem】車載外部ストレージ その17【SDカード⑬】
SDカードのSDモード通信に於いてのレスポンス(R1とR1b)について説明。 R1の中にcard statusという32bitのエラー&状態情報がある。 状態が想定と異なる場合は再初期化等で期待する状態に再遷移させる設計/実装をする必要がある。 R1bはSPIモードと同じく、R1にbusyが付いたもの。 busyはDATが0を維持している状態。
【FileSystem】車載外部ストレージ その16【SDカード⑫】
SDカードのSDモード通信に於いてのレスポンスについて説明。 SPIモードに無かったR6が追加。 R6はRCA(Relative Card Address)を取得するもの。 RCAはCMD7の引数に使われるもので、これが無いと読み書きモードへ移行できない。 上記使用はSPIモードには無いもの。
【FileSystem】車載外部ストレージ その15【SDカード⑪】
SDモード通信の(Multiple) Block Write Operationについて説明。 data block送信毎にbusyが入る。 busyの待ち時間はACMD13(SD_STATUS)で取得できるAU_SIZEに依存。 AU_SIZEは組み込みに於いては重要なパラメータ。 AU_SIZEが小さい高速なSDカードを選択したり、AU_SIZEに合わせて書き込み単位を変えたり。
【FileSystem】車載外部ストレージ その14【SDカード⑩】
SDモード通信の(Multiple) Block Read Operationの説明。 CMDラインとDATラインがあるため、responseが終わる前にdata blockが送出されることを想定する必要あり。 CMD12(STOP_TRANSMISSION)で強制停止できる。 SPIモードと使い方は一緒。
【FileSystem】車載外部ストレージ その13【SDカード⑨】
SDモード通信のNo data Operationを説明。 ノーレスポンスのパターンが割と重要。 ACMD41でSD、MMC判定。 CMD8でSDSC、SDHC以降判定。 SDの仕様が増えるたびに今後増えていくかも。 ノーレスポンス判定タイムアウトは1秒。
【FileSystem】車載外部ストレージ その12【SDカード⑧】
SDモード通信について確認。 SPIと同じく同期シリアル通信に該当する。 ただし、command/responseはCMDライン、read/writeはDATライン DATラインは最大4bitのラインとなる。 SDモードはデフォルトでDAQ0だけを使う1bitモードなので、commandで4bitモードに切り替える必要がある。
【FileSystem】車載外部ストレージ その11【SDカード⑦】
SDカードの(Multiple) Block Read Operation(SPIモード)の説明。 Start Block token、Stop Tran tokenというものがある。 Single Block、Multi Blockで各tokenが異なる。 CMD25(WRITE_MULTIPLE_BLOCK)の方が効率的だが、書き込みBlock数が少ない場合はcommand発行回数の都合でCMD24(WRITE_BLOCK)の方が効率的になることがある。
【FileSystem】車載外部ストレージ その10【SDカード⑥】
SDカードの(Multiple) Block Read Operation(SPIモード)について説明。 response後にdata blockが従属する。 エラー時はresponse後にdata error tokenが従属する。 data error tokenは読み出しならではのエラーパターンが記載されている。
「ブログリーダー」を活用して、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ユニットにすることで出てきたもの。