こっけーぶろぐでタグ「プログラミング」が付けられているもの
scilabのfft()関数による、フーリエ変換と、そのフーリエ級数が収められる配列についての素朴な疑問です。
試験にもでたので自分なりにまとめて見ました。
試験にもでたので自分なりにまとめて見ました。
[scilab] fft()関数とフーリエ級数の続きを読む
大学の実験にてEyebotによるロボット設計をしたので、そのメモ。
Eyebotは小さいながらも32bitのマイクロコントローラ搭載で、LCDやカメラなどロボット設計に必要なものが一通りそろっている。歩行ロボットや飛行ロボットなどいろいろなものに応用できるが、実験ではセンサとロータリーエンコーダを利用した風見鶏ロボットを設計した。
風見鶏ロボットは簡単な仕様で常に風上に向かって走行する自律型ロボットである。
簡単ではあるものの制御プログラムに中々悩まされた。
<以下Eyebotの仕様とプログラムのメモ>
Eyebotは小さいながらも32bitのマイクロコントローラ搭載で、LCDやカメラなどロボット設計に必要なものが一通りそろっている。歩行ロボットや飛行ロボットなどいろいろなものに応用できるが、実験ではセンサとロータリーエンコーダを利用した風見鶏ロボットを設計した。
風見鶏ロボットは簡単な仕様で常に風上に向かって走行する自律型ロボットである。
簡単ではあるものの制御プログラムに中々悩まされた。
<以下Eyebotの仕様とプログラムのメモ>
[Eyebot] 風見鶏ロボットの設計の続きを読む
フリーの数値計算ソフトであるScilabを利用した、信号処理の基本操作の個人メモpart2です。
- [Scilab] ディジタル信号処理(備忘録) part2 (この記事)
フリーの数値計算ソフトであるScilabを利用した、信号処理の基本操作の個人メモです。
Scilabのインストールや簡単な演算と演算子の説明に関しては友人のTBVector氏の丁寧な説明ページがあるので紹介しておく。
以下に続く
- [Scilab] ディジタル信号処理(備忘録) part1 (この記事)
- [Scilab] ディジタル信号処理(備忘録) part2
Scilabのインストールや簡単な演算と演算子の説明に関しては友人のTBVector氏の丁寧な説明ページがあるので紹介しておく。
以下に続く
大学の実験にて、VHDLを用いたハードウェアプログラミングの演習をした。
実験端末Linux(Red Hat)環境にて、
emacsでコード記述⇒シミュレーションテスト⇒ネットリスト(回路設計)を繰り返した。
具体的に設計した回路は、
課題問題では以下のような状態遷移図が与えられ
(画像)
これに対するハードウェアプログラミングを行った。
動作記述(state3.vhd)とカルノー図を用いて導出した論理式(*1)による構造記述(state.4)は以下となる。
*1

実験端末Linux(Red Hat)環境にて、
emacsでコード記述⇒シミュレーションテスト⇒ネットリスト(回路設計)を繰り返した。
具体的に設計した回路は、
- and2.vhd --二入力のAND回路
- or_2.vhd --二入力のOR回路
- dff.vhd --D-フリップフロップ
課題問題では以下のような状態遷移図が与えられ
(画像)
これに対するハードウェアプログラミングを行った。
動作記述(state3.vhd)とカルノー図を用いて導出した論理式(*1)による構造記述(state.4)は以下となる。
*1
[VHDL] ハードウェアプログラミングの続きを読む
配列の二乗和を計算する関数のサイクルカウントとCPE値を測定する課題が出た。
- sum = a[0]2 + a[1]2 + … + a[N-1]2
配列の長さを変化させ、所要時間(サイクルカウント)と要素数(N)で割ったCPE値の測定をした。
あまり気合入れてないのに、すばらしく時間がかかってしまった…w
測定した配列の要素数はN = 100, 500, 1000, 5000, 10000, 50000,100000,500000であり、
初回実行の結果を除く、10回の平均値(もしくは最小値)を使用した。
時間測定にはstart_counter()及びget_counter()を用い、
volatile double型とvolatile int型への代入も考慮した。
パラレルでの分割数が異なる4つの二乗和の関数を準備し、比較を行った。
分割:1, 2, 4, 8
- sum += a[i]*a[i]
- sum += a[i]*a[i] + a[i+1]*a[i+1]
- sum += a[i]*a[i] + a[i+1]*a[i+1] + a[i+2]*a[i+2] + a[i+3]*a[i+3]
- sum += a[i]*a[i] + a[i+1]*a[i+1] + a[i+2]*a[i+2] + a[i+3]*a[i+3] + a[i+4]*a[i+4] + a[i+5]*a[i+5] + a[i+6]*a[i+6] + a[i+7]*a[i+7]
要素数におけるサイクルカウントを両対数グラフにすると以下のようになる。
余談ながら、エクセルの対数グラフって散布図のときしかできないんだね、やられた><;