NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

FFT処理後の計算

解決済み
解決策を見る

現在、磁場から電流密度を求めるプログラムの作成を行っております。

電流密度のx,yの成分を求めて合成して電流密度の分布を作成したいと考えております。

磁場B(x,y)をFFT処理して電流密度に計算する際、

Shuya_1-1601542239114.png

 

こちらの計算を行いたいのですがFFT処理後にフォーミュラノードで計算しようとするとエラーが出てしまいうまくいきません。ベクトルや配列の扱いが得意ではないので詰まってしまい進みません。

お手数ですがヒントやアドバイスなどを教えていただきたいため投稿しました。

よろしくお願いいたします。

0 件の賞賛
メッセージ1/7
1,208件の閲覧回数

こんにちは
エラーがでてしまう、、といわれているエラーが、添付画像の下のようなスカラー式で作ったフォーミュラノードに配列が接続できない。というものであれば、スカラー式をforループなどで囲んで入出力配列をスカラーにしてしまえばよろしいかと思います(画像上の方)

LabVIEWは値の定義をしなくても適当に合わせてくれる多様性があってとても便利ではありますが、ちゃんと意識していないとはまります。

(これも的を得た返信になっているでしょうか。心配。。。。)

0 件の賞賛
メッセージ2/7
1,142件の閲覧回数

返信ありがとうございます。

写真のようにして計算を行いたいのですが、forループを使ってもエラーが出てしまい計算ができません。初歩的なことなのかもしれませんがよくわかりません…

FFT処理の後の結果は計算することはできないのでしょうか?

よろしくお願いします。

0 件の賞賛
メッセージ3/7
1,128件の閲覧回数

つながるはずなんですが。。Ctrl押しながらBを押す、もしくは、編集→不良ワイヤを削除で壊れたワイヤ消えますか?消えたのなら、ちゃんとつながっていなかっただけですね。

ところで、、、フォーミュラーノードに計算式が入っていませんけど。。(´・ω・)ここは大丈夫ですか??

0 件の賞賛
メッセージ4/7
1,122件の閲覧回数

返信ありがとうございます。

Ctrl Bで消えました…が、一応接続してはいます…

エラーの内容が

データタイプが異なるため結線できません ソースタイプは倍精度複素数 シンクタイプは倍精度

と出ています。FFTしない結果をフォーミュラノードに接続した場合はエラーなく行うことができました。FFTがいけないのでしょうか?

計算機の中身についてですが、空間周波数のxとyの求めるViを作成しているので細かいとこまでは考えていませんが式があるので何とかなると考えています。。

0 件の賞賛
メッセージ5/7
1,116件の閲覧回数
解決策
トピック作成者Shuyaが受理

まさに文字通りですね。FFTがいけないというか、FFT.viの出力は倍精度複素数(CDB)。試しましたがフォーミュラノードにはつながりませんね。(フォーミュラーノードって実数しか使えない?)

というか複素数ですよ~なかなか数学屋さんじゃなきゃお目にかからないものなんで。。実数なりベクトルなりに変換してからになるんですかね。

そもそもFFT.viがやろうとしている計算をするサブviなのか、作りこむ前に単独で数値入れてみて動作確認してみてはいかがでしょうか?少なくとも周波数のスペクトラムを見たいだけなら使うべきviはFFT.viじゃ無いと思います

0 件の賞賛
メッセージ6/7
1,105件の閲覧回数

返信ありがとうございます。

FFT処理をして複素数の実数部を抜き出す処理でフォーミュラーノードが使えたので確認しながら作成していきたいと考えています。

ありがとうございました。

0 件の賞賛
メッセージ7/7
1,095件の閲覧回数