LabVIEWメモ

三角函数の積和公式 / 周波数の異なる2つの波形を混合する

参考: 初等関数と微分・積分 (アナログ・テクノロジ・シリーズ), pp.130-131 周波数の異なる2つの波形を混合すると、前回証明した三角函数の積和公式から明らかなように、両者の差の周波数と、両者の和の周波数とが現れる。LabVIEWで確かめる。ここでは100 H…

period、periodic、complete

原文と公式訳と Cycle average—Measures the mean level of one complete period of a periodic input signal. サイクル平均—周期入力波形の1つの完全な周期の平均レベルを測定します。 Product Documentation - NI Product Documentation - NI 非公式訳 1周…

任意の数値をBCDに変換する / 少しインチキな方法 / LabVIEW

ハミング重み / LabVIEW

1の個数を数える。 上は、文字列に変換してから1を1に置換して置換数を返す。 中および下は、1ビットずつにバラしてから加算する。

しゃべる何か / .wavファイルを2ビットDPCM化する

pp.410-413 テキストには、.wavファイルを2ビットDPCM化するためのPython2スクリプトが掲載してある。そのままだとPython3では動かない。ここではLabVIEWで作ってみる。テキストと同じく、複数の.wavファイルからヘッダーファイルを生成するところまで一気に…

文字列を先頭から何文字かに切り詰めて末尾にnull文字を追加する

LabVIEW Graphical Programming, Fifth Edition, p.116 Cは文字列の末尾にnull文字が付されるので、それに対処するための処理である。テキストに紹介されているトリッキーな方法(上)は、実質的に型変換しか実行していないので超高速との由。

列挙体(Enumerated Types、Enums)

LabVIEW Graphical Programming, Fifth Edition, pp.115-116 スラスラわかるC++ 第2版, p.150 Cの列挙型enumに相当する。イニューマレイトゥ。ケースストラクチャのセレクターに使うと項目名が表示されるので便利。

[文字列に平坦化(Flatten To String)]函数、[文字列から非平坦化(Unflatten From String)]函数

LabVIEW Graphical Programming, Fifth Edition, pp.114-115 [型変換(Type Cast)]函数はデータが物理的に連続していることが必要なので、クラスタのような複雑なデータ型は処理できない。 [文字列に平坦化]函数は、すべての不連続データを1つの連続バッファ…

各種変換函数と[型変換(Type Cast)]函数と

LabVIEW Graphical Programming, Fifth Edition, pp.113-114 各種変換函数はCの型キャストに相当するのでデータと型記述子と両方が変化する。 [型変換(Type Cast)]函数はデータ自体は変化せずに型記述子だけが変化する。この函数が必要になることは稀との由…

[基礎群の比較(Compare Aggregates)]モード

[要素の比較]モードの場合は、対応する要素同士が単純に比較される。 [基礎群の比較]モードの場合は全体で比較される。具体的には、対応する要素同士が排列の先頭から順番に比較され、対応する要素同士の不一致が見つかったところで処理が停止し、そこでの比…

波形属性、バリアント型

LabVIEW Graphical Programming, Fifth Edition, pp.108-109 波形属性は、各種のDAQ設定ユーティリティによってすでにチャンネル名や単位が設定してあるときにさまざまなDAQ函数と一緒に使うのが主な用途である。取得されたアナログデータと一緒に、こうした…

波形データ(Waveforms)

LabVIEW Graphical Programming, Fifth Edition, pp.106-108 波形データは、1D数値排列(Y)、時間情報(t0、Δt)、その他属性情報から成るクラスタの一種である。クラスタの一種ではあるが、波形データを作成するときはバンドルではなく[波形作成(Build Wavefor…

クラスタの排列、排列のクラスタ、クラスタのクラスタ

LabVIEW Graphical Programming, Fifth Edition, p.106 排列は同じデータ型しか格納できないが、クラスタはデータ型が違っていても格納できる。したがって、構造を同じくするクラスタであれば、クラスタから成る排列(「cluster array」と呼ぶ)は可能である。…

クラスタ

LabVIEW Graphical Programming, Fifth Edition, pp.103-106 クラスタはCの構造体に相当する。排列は同じデータ型しか格納できないが、クラスタはデータ型が違っていても格納できる。同じデータ型が複数あると、間違って配線してもエラーにならないため、[名…

配列から削除 関数のヘルプ

原文: Product Documentation - NI 公式和文: Product Documentation - NI 非公式訳: ~(略) [指標0..n-1]端子には、排列からどの要素を削除するのか、どの行を削除するのか、どの列を削除するのか、どのページを削除するのかなどを指定します。LabVIEWの各…

排列操作用のさまざまな函数

LabVIEW Graphical Programming, Fifth Edition, pp.97-99 [指標配列(Index Array)]函数: このIndexは動詞なので意味は[排列をインデックスで参照]。 [配列から削除(Delete From Array)]函数 [部分配列置換(Replace Array Subset)]函数 [配列要素挿入(Insert…

[配列連結追加(Build Array)]函数で排列を組み立てる

LabVIEW Graphical Programming, Fifth Edition, pp.96-97 型の異なるデータ同士では排列は構築できない。

Forループで排列を組み立てる

LabVIEW Graphical Programming, Fifth Edition, pp.95-96 トンネルモードを[指標]にすると、各要素に順番にインデックスがつけられていって最後に排列が出力される。

[配列からスプレッドシート文字列に変換(Array To Spreadsheet String)]函数、 [スプレッドシート文字列を配列に変換(Spreadsheet String To Array )]函数

LabVIEW Graphical Programming, Fifth Edition, pp.92-94 これも函数名どおりの函数。

[文字列をバイト配列に変換(String To Byte Array)]函数、 [バイト配列を文字列に変換(Byte Array To String)]函数

LabVIEW Graphical Programming, Fifth Edition, pp.91-92 どちらも文字どおりの函数。

[小数/指数文字列を数値に変換(Fract/Exp String To Number)]函数、[部分文字列(String Subset)]函数、[文字列からスキャン(Scan From String)]函数

LabVIEW Graphical Programming, Fifth Edition, p.90 いずれも函数名どおりの函数。

[第一文字列で一致(Match First String)]函数、 prefix

LabVIEW Graphical Programming, Fifth Edition, p.90 [第一文字列で一致]函数: [文字列]が「先頭部分 + 何か」という構造をしているとみなして、その「先頭部分」と[文字列配列]の各要素とを順番に比較する。 ヘルプ原文: 公式和文: 非公式訳: [文字列の先…

[パターンで一致(Match Pattern)]函数、 [10進数文字列を数値に変換(Decimal String To Number)]函数

LabVIEW Graphical Programming, Fifth Edition, p.89 [パターンで一致]函数は正規表現で文字列を検索する函数。[正規表現で一致]函数よりもオプションの少ないぶん速いとの由。 [10進数文字列を数値に変換]函数は文字どおりの函数。

[TRUE/FALSE文字列を追加(Append True/False String)]函数

LabVIEW Graphical Programming, Fifth Edition, p.88 ブール値に応じて2つの文字列のどちらかを選択して別の文字列の末尾に追加する。

[値をフォーマット(Format Value)]函数、[文字列にフォーマット(Format into String)]函数

LabVIEW Graphical Programming, Fifth Edition, p.88 構文はCと同じ。[文字列にフォーマット]函数だけあればいいような気もする。 [文字列にフォーマット]函数はアイコンを右クリックして[形式文字列の編集]を選択すれば簡単に形式文字列が入力できる。

[行選択(Pick Line)]函数、[文字列連結(Concatenate Strings)]函数

LabVIEW Graphical Programming, Fifth Edition, p.87 [行選択(Pick Line)]函数は、複数行に記述された文字列のなかから行番号を指定して別の文字列の末尾に連結する。 [文字列連結(Concatenate Strings)]函数は文字どおり単に複数の文字列を連結する。 カン…

条件に合致した入力データだけで排列を組み立てる

LabVIEW Graphical Programming, Fifth Edition, p.75 空の文字列を排除して排列を組み立てる。シフトレジスタと[配列連結追加]函数とを併用する方法と、トンネルのところで条件に応じて排列を組み立てる方法とを試す。 richard_shift_register_remove_empty…

シフトレジスタを使って移動平均を計算する

LabVIEW Graphical Programming, Fifth Edition, pp.73-74 4回分の移動平均を計算する。 必要な段数だけシフトレジスタを重ねる方法: richard_shift_register.vi シフトレジスタを1段だけ使う方法: ループの中で排列を組み立てる。一番古いデータを順次捨て…

.wavファイルの中身を見る / LabVIEW版 / サウンドファイル用のviを利用する

.wavファイルの中身を見る / LabVIEW版 -では組み込み函数を使って一からviを作ったが、サウンドファイル用の出来合いのviがあったのでそれを利用して同じことをしてみる。音データはえらく簡単に取り出せるがほかのチャンクは個別には取り出せない。Sound F…

.wavファイルの中身を見る / LabVIEW版

.wavファイルの中身を見る -に似たことをLabVIEWでもしてみる。 .wavファイルから取り出したデータを.wavファイルに書き込んでいるだけなのでこのvi自体に意味はない。 copy_wave_ver1.vi - Google ドライブ read_wave_ver1.vi - Google ドライブ write_wave…