Hands-On Introduction to LabVIEW for Scientists and Engineers (Oxford University Press)

複数の周波数で構成された波形から特定の周波数の振幅を抜き出す / 積和公式

p.521 problem 6 積和公式を利用して、或る周波数成分の振幅(下の例では周波数200の振幅6)を求めてみる。DC成分として6が求まる。 Wolfram: f={100,200,300}; a={4,6,8}; y=Total[a*Sin[2*Pi*f*t]]; yref=2*Sin[2*Pi*f[[2]]*t]; Expand[TrigReduce[y*yref]] …

FFT / 振幅変調波(AM波)のサイドバンド

p.521 problem 5 搬送波250Hz、変調波50Hz。 Sidebands.vi - Google ドライブ

[フィルタ]express vi

p.515 USE IT! Digital_Filtering.vi - Google ドライブ これは5次のバタワース、ローパス。

FFT / エイリアス(折り返し)現象を見てみる

p.514 DO IT YOURSELF Spectrum_Analyzer.vi - Google ドライブ 180Hzの方形波を観測してみる。本来は、180Hz、540Hz、900Hz、1260Hz、1620Hz、1980Hz、...... のところにスペクトラムが立つはずであるが、サンプリング周波数 / 2 = 1000Hzのところで折り返…

FFT / リーケジ(スペクトル漏れ)によって潰れた元のピークを推定する

FFT_Magnitude_Only_with_Window_with_Estimation.vi - Google ドライブ FFTをかけたことでスペクトルが拡がってしまったが元の振幅と周波数とが正確に推定できている。

FFT / 窓函数を適用する / スケールされた時間領域窓 VI を使う

FFT_Magnitude_Only_with_Window.vi - Google ドライブ [スケールされた時間領域窓] VI (Scaled Time Domain Window) 249Hz、矩形窓を適用したとき(要するに窓を特段適用しないときのFFT): 249Hz、ハニング窓を適用したとき(ハニング窓は万能型): 249Hz、フ…

FFT / リーケジ

FFTのためのvi -の続き: 250Hzの正弦波のFFT: 249Hzの正弦波のFFT: (サンプリング周波数 / サンプル数)の整数倍以外の周波数はリーケジ(漏れ)が生じて正しく観測されない。サンプル数を増やせば改善する。 ――――――――――――――― finite ファイナイトゥ infinite …

FFTのためのvi

pp.470-500 FFT_Magnitude_Only.vi - Google ドライブ 説明どおりに作っただけであって理窟はまったくわからないが現時点で固めておく。

K型熱電対とAD8495と

p.460のUSE IT! [熱電対読み取り値の変換] VI (Convert Thermocouple Reading)のほうが正確とのことだが何をしているのかよくわからない。AD8495のAdafruit製ブレークアウトボードはマルツで取り扱いがあった。 Thermocouple_Temperature.vi - Google ドライ…

[カーブフィット]express vi / 多項式近似

p.468のproblem 8 Polynomial_Fit.vi - Google ドライブ ノイズの乗ったデータが得られたが、その真値は2次多項式に乗ることがあらかじめわかっているとする。 ――――――――――――――――――――― (N-1)次の多項式はN個のデータポイントに完璧にフィットする。たとえば2…

[カーブフィット]express vi / キャパシタの放電特性から静電容量を推定する

p.466のproblem 6 Discharging_Capacitor.vi - Google ドライブ 容量未知のキャパシタCと47kΩの抵抗Rとを直列につなぎ、充電されたキャパシタCを放電したときのキャパシタCの両端電圧を5ミリ秒おきに測定したところ、下のデータが得られたとする。 t(秒) 電…

[カーブフィット]express vi / ノイズの乗った正弦波を近似する

Noisy_Sine_Fit.vi - Google ドライブ p.465のproblem 5 [信号シミュレーション] (Sumulate Signal) express viを使って、ノイズの乗った正弦波を生成する。 [カーブフィット]express viを使って、その正弦波にA sin(2 pi f t)を当てはめてAとfとを推定して…

[カーブフィット]express vi / 共振回路の周波数特性

Resonant_Circuit.vi - Google ドライブ p.464のproblem 4 ある共振回路の周波数特性が下のように取得されたとする。 周波数f(Hz) 電圧利得G 1500 0.07 1600 0.084 1700 0.102 1800 0.128 1900 0.168 2000 0.235 2100 0.374 2200 0.74 2300 0.861 2400 0.442…

[カーブフィット]express vi / 非線形最小二乗法を使ってサーミスタの温度抵抗特性を近似する

RT_Fit_and_plot_non_Linear.vi - Google ドライブ 今度は T = 1 / ( A + B ln(R) + D (ln (R))3 ) を y = 1 / ( A + B x + D x3 ) と置いて非線形最小二乗法で近似し、A、B、Dをそれぞれ求めてみる。温度を抵抗の函数として表現しているのに温度をX軸に、抵…

[カーブフィット]express vi / 線形最小二乗法を使ってサーミスタの温度抵抗特性を近似する

RT_Fit_and_plot.vi - Google ドライブ 1/T = A + B ln(R) + D (ln (R))3 を y = A + B x + D x3 と置いて線形最小二乗法で近似し、A、B、Dをそれぞれ求めてみる。温度を抵抗の函数として表現しているにも関わらず、グラフ上では温度をX軸に、抵抗をY軸にと…

サーミスタ103AT-2の抵抗温度特性

http://www.kyohritsu.jp/eclib/OTHER/CATALOG/SENSOR/atthermistor.pdf gist28b50ebd1ce51045068a65674861f060

Section 11.2 Temperature Measurement Using Thermistors (pp.428-431)非公式訳

11.2 サーミスタを使った温度測定 電子温度センサーには、白金抵抗温度計、熱電対、半導体デバイス(例: Analog Devices AD590)などたくさんの種類があります。そのなかでサーミスタが使われるのは、高い感度、小ささ、耐久性、応答の速さ、コストの低さが要…

Forループストラクチャとフォーミュラノード内に記述したforループとで排列の構築時間を比べる

p.424のPROBLEM 7 For_Loop_Timer_Icon_vs_Formula_Node.vi - Google ドライブ このviでは、フォーミュラノード内に記述したforループのほうが速いが、このforループは実行前に繰り返し回数を定義しておかなければならない。 ここまででChapter 10 Data Depe…

エラー入出力をデイジーチェーンにしてdata-dependentなフローを実現する

p.423のPROBLEM 6 Time_To_Press_OK.vi - Google ドライブ 例として、ダイアログが表示されてからその[OK]ボタンが押されるまでの秒数を計ってみる。これならフラットシーケンスストラクチャを使わなくても時間差が計れる。

排列の構築に要する時間を比べる#2 / Whileループ / 要素数0の空排列にどんどん追加してゆく方法と、最初から全要素を備えた空排列に上書きしてゆく方法と

p.422のPROBLEM 5 (b), (c) Loop_Timer_Alternative_2_and_3.vi - Google ドライブ 要素数0の空排列にどんどん追加してゆく方法のほうが当然圧倒的に遅いが、比較的小規模の排列を使ってWhileループ内で波形グラフをリアルタイム描画するときにはよく使うと…

排列の構築に要する時間を比べる#1 / Forループ / 先に空排列を用意しておく方法と自動インデクシングを使う方法と

p.421のPROBLEM 5 (a) Loop_Timer_Alternative_1.vi - Google ドライブ 目をみはるほどの差は出ない。

2つのWhileループを同時に実行し、1個の[停止]ボタンで同時に停止する

p.419のPROBLEM 4 Parallel_While_Loops_with_Reset.vi - Google ドライブ [停止]ボタンは、[Value]プロパティを使うときには[~ラッチ]モードではなく[~スイッチ]モードにしなければならない。 ただし[~スイッチ]モードだとviを閉じるまで値が元に戻らず…

2つの波形チャートを「同時にプロットする」「順番にプロットする」「順番にプロットしたあと消す」

p.419のPROBLEM 3 Two_Charts.vi - Google ドライブ

viを実行すると点滅する[停止]ボタンが現れて、[停止]ボタンを押すと[停止]ボタンが消えてviが停止する

p.418のPROBLEM 2 Magic_Stop_Button.vi - Google ドライブ フラットシーケンスストラクチャの課題であるがフラットシーケンスストラクチャを使う必要はなかった。 viを開いたときに[停止]ボタンを隠しておきたいので下の2つの設定をする。

フラットシーケンスストラクチャ / 何かが終わってからダイアログを表示する

p.414のUSE IT! Save_Data_at_the_end_of_something.vi - Google ドライブ LabVIEW初心者が犯しがちな5つのミス - National Instrumentsによれば、フラットシーケンスストラクチャの多用は禁物とのこと。

フラットシーケンスストラクチャ / 人の反応時間を計る

p.413のDO IT YOURSELF Reaction_Time3.vi - Google ドライブ viを実行する。 何秒間か経過するとLEDが点灯し、同時に反応時間計もスタートする。 すぐさま[停止]ボタンを押す。 LEDが消え、反応時間計が停止する。 [待機(ms)]函数は、指定の待機時間が経過…

フラットシーケンスストラクチャ / ForループとWhileループとで排列の組み立てに要する速度を比べてみる / data-dependentな方法にする

Loop_Timer_Data_Dependency.vi - Google ドライブ フラットシーケンスストラクチャ / ForループとWhileループとで排列の組み立てに要する速度を比べてみる -で作ったviを、極力data-dependentな方法で書き換えてみる。

フラットシーケンスストラクチャ / ForループとWhileループとで排列の組み立てに要する速度を比べてみる

Loop_Timer_Sequence.vi - Google ドライブ ループが開始されたときの時間とループが終了したときの時間との差を求める。 Whileループに入っている[等しい?]函数は、ループを一定回数でとめるためのもの。Forループにも同じく[等しい?]函数を入れているが、…

フラットシーケンスストラクチャ / それに意味のないとき

flat_sequence_structure.vi - Google ドライブ フラットシーケンスストラクチャを使ってみる。 下のようにすると[数値 2]は2000ミリ秒遅れて表示される。

ケースストラクチャ / ローパスフィルターの周波数特性 / 線形表示と対数表示とが切り換えられるようにする

次数1のバタワース型ローパスフィルターの周波数特性を描く。 Low_Pass_Filter_Plot.vi - Google ドライブ ここまででChapter 9 The Case Structureがおおむね終わった。