平素よりNI製品をご利用頂きまして誠に有難うございます。
日本ナショナルインスツルメンツ技術部の宮本と申します。
ご返信有難うございます。
添付していただいた画像ファイルを拝見いたしました。結論から申し上げますと、「ダイナミックデータから変換」関数を使用しダイナミックデータを配列に変更しているために時間情報が失われております。したがって「A*x」グラフで表されているデータのx軸は、時間値ではなく配列の指標([0, 1, 2,...])となっております。この問題を回避するためには、「波形生成」関数を使用しデータに時間情報を再度追加する必要がございます。また、ループ内で行列とベクトルを掛け合わせているのですが、「ダイナミックデータから変換」関数の設定を変更し、行列と行列を掛け合わせることでループを使用せずにご希望の結果が得られると考えております。
下記が当方の考える問題回避の手順です。
1)「信号シュミレーション」からの出力値は、時間値と信号の振幅値を含んでおります。「サンプルレート」の設定により実際の時間値が決められ、「サンプル数」の設定によりデータ自体の長さ (数)が決められます。したがって「ダイナミックデータから変換」関数(image1-1参照)を使用する際の設定を「2Dスカラ配列-列がチャンネル」 (image2参照)に変更することで、サイン波とコサイン波の振幅値を下記のような行列(これをBとする)で表すことが可能となります。
B = [sin(t0), sin(t1), sin(t2), sin(t3), sin(t4),..., sin(tN)
cos(t0), cos(t1), cos(t2), cos(t3), cos(t4),..., cos(tN)]
2)A = [1, 0; 0, 1]とした場合、AB=Bとなります。「AxB」関数からの出力値なのですが、前述どおり時間情報を含んでおりません。したがってこの出力値をグラフで表示した場合、x軸の値は、配列の指標となります(image1-3、波形グラフ2参照)。
3)「ダイナミックデータから変換」関数を使用した際に時間情報が失われてしまったのですが、「信号シュミレーション」関数内の「サンプルレート」の設定からこの情報を再現することが可能です。例えば「サンプルレート」を1000Hzと設定した場合、時間値は、0.001秒刻みとなります。「波形生成」関数を使用する際にこの値をdtとして使用し (image1-2参照)、「AxB」関数からの出力値、行1=B(1,: )と行2=B(2,: )、をそれぞれYとして使用することでご希望の波形を作成することが可能となります(image1-3、波形グラフ3参照)。
以上、よろしくお願い致します。