NI製品ディスカッション

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

'正弦波発生器'関数の出力がカクカクになります

解決済み
解決策を見る

LabVIEW FPGAの'FPGA数学&解析'パレット内にある'正弦波発生器'関数の出力がカクカクになります。

 

viは非常に単純で、正弦波発生器からの信号をアナログアウトにつないでオシロスコープで見ているだけです。振幅をフルスケールにすると、振幅が大きすぎるのか、AOの最大振幅の方形波が出力されます。画像は振幅を4にしたときのオシロスコープのキャプチャです。

1V刻みでカクカクしてます。振幅を10にしても同様に1V刻みでカクカクしてます。

 

ルックアップテーブル、分解能、いろいろいじってみましたがわかりません。

 

システムの構成は、NI cRIO-9024(リアルタイムコントローラ)、NI-9264(±10V,25kS/s,16bit)です。

すべてをダウンロード
0 件の賞賛
メッセージ1/5
2,734件の閲覧回数

AO2のIOノード左側の端子に赤色の強制ドットがついています。これは、データタイプの不一致を示します。正弦波出力の関数からは整数の値を出力していますが、入力しようとしているIOノードは固定小数点の値を受け付けるようになっていますので、かくかくになっています。ワイヤの色とIOノードの文字の色が違うということでもデータタイプが違うことがわかります。

 

正常な正弦波を出力するためには整数の値をうまく9264の出力レンジ(±10V)におさまるように掛け算などを使って調整して、固定小数点に変換する変換関数を構成した後にIOノードに配線するとうまくいくとおもいます。

http://zone.ni.com/reference/ja-XX/help/371361M-0112/lvhowto/configure_fxp/

 

0 件の賞賛
メッセージ2/5
2,680件の閲覧回数

フルスケールに設定後、定数で割ればきれいに出力出来ました。ありがとうございました。さらに、定数倍をかけることにより任意の振幅の波形が出力されるようになりました。(これじゃあ正弦波発生器のプロパティの振幅の存在意義がさっぱりわかりませんが)

しかし、固定小数点に変換をつけようがつけまいが、きれいに正弦波が表示されます。また固定小数点に変換しても、強制ドットがついたままです。原因はデータ型の不一致ではなかったようです。

これを取り除くことは出来ませんか?

0 件の賞賛
メッセージ3/5
2,656件の閲覧回数
解決策
トピック作成者yoshi-kが受理

きれいに出力できたようでよかったです。

強制ドットがついたままなのは、データ型の不一致です。Ctrl+Hを押すと、詳細ヘルプという小窓がでます。それが表示されている状態でIOノードにカーソルをあわせると、固定小数点のビット数、符号なしか符号付きか、ビット数の中の整数ビット数が表示されます。それが割り算の結果とすべて一致していない限り強制ドットは取り除けません。

FXPに変換関数を右クリックするとそのあたりを合わせられますが、割り算の関数が結果を崩さないようにビット数を自動的に追加したりしますので、うまくあわす必要がありますね。「商」関数を右クリックして自動的にビット数を増やさないように設定することもできますが。

 

ちなみに、FPGAプログラミングでは割り算は非常に多くのFPGAリソースを使ってしまいますので、掛け算を使うなどして使用を回避することが推奨です。

https://forums.ni.com/t5/Example-Program-Drafts/%E5%95%86-%E4%BD%99%E3%82%8A-%E9%96%A2%E6%95%B0%E3%8...

ご参考までに。

0 件の賞賛
メッセージ4/5
2,622件の閲覧回数

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

とても参考になりました。

0 件の賞賛
メッセージ5/5
2,574件の閲覧回数