NI製品ディスカッション

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

sin波を生成し,音を再生するとクリック音が聞こえる

解決済み
解決策を見る

simulate signalでsin波を生成し,play waveformを通じてスピーカーから音を再生したいと考えています.

サンプリング周波数は7200 Hz,サンプル数は7200にし,wait until next ms multipleを使って1 sに1回,whileループが回るようにしています.

このプログラムを実行すると,スピーカーから音は流れるのですが約1 sに1回,カチっとクリック音のような音が聞こえて滑らかに音を再生することができません.

またループが繰り返されるタイミングをcurrent timeで見ているのですが,きっちり1 sずつ回るのではなく,1.023, 1.018, ・・・[s]とループが回るタイミングが少しずつずれていることがわかりました.

どのようにプログラムを修正したらクリック音が聞こえず滑らかにループを回すことができるようになりますでしょうか.

今までに,サンプリング周波数とサンプル数を変えたり,simulate signalをwhileループの外に出す,wait untile nest ms multipleの値を変えてみたりなどしてみましたが,どれもうまくいきませんでした.

 

whileループを使用しているのは,今後1sに1回FFTを行うプログラムを付け足したいと考えているためです.

 

以上の問題につきまして,解決策などを教えて頂けますと幸いです.

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

 

 

スクリーンショット 2025-02-06 134113.png

スクリーンショット 2025-02-06 134046.png

0 件の賞賛
メッセージ1/4
189件の閲覧回数
解決策
トピック作成者shiraiが受理

ローレベルのサンド出力関数を使用する必要があります。(Express VIだと毎回ハードウェア初期化・終了処理が入ってしまい非効率なため)

 

ヘルプ→サンプルを検索→ハードウェア入力と出力→サウンド→サウンド生成

が役に立ちます。

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

TAKASU様

 

ご返信いただきましてありがとうございます.

サンプルプログラムを組み込んだところ,クリック音が発生しなくなりました.

アドバイスをいただきまして,本当にありがとうございました.

メッセージ3/4
119件の閲覧回数

上手く行ったようで何よりです!ありがとうございました。

0 件の賞賛
メッセージ4/4
112件の閲覧回数