MATLAB Answers

fractal
0

simulinkを離散時間で計算したい

Asked by fractal
on 8 Dec 2018
Latest activity Commented on by fractal
on 11 Dec 2018
ソース信号にローパスをフィルタをかけてオーディオ出力として出力したいのですが、できません。
Audio System SourceのFromMultimediaFileを入力、出力にAudio Device Writeをしています。
その間にsimscapeのElectrical Elementsで作ったローパスフィルタを挟んでいます。
これで実行した場合AudioDeviceの入力が連続時間なっているため、実行することができません。
モデルの離散化というのも試したのですが、エラーがでてできませんでした。
どのように直したらいいでしょうか
エラー内容
Error in 'audio_test/Audio Device Writer': The block input must have a discrete sample time.

  0 Comments

Sign in to comment.

Products


Release

R2018b

1 Answer

Naoya
Answer by Naoya
on 10 Dec 2018
 Accepted Answer

Audio Device Writerブロックは エラーメッセージの通り、離散時間信号のみを受け付けます。
そのため、下記キャプチャ例のように、 Zero-order Hold ブロックで適当なサンプリング時間(例えば 1/8000 sec)を挿入して、離散信号としてください。
また、Audio Device Writerブロックで再生する場合、信号を一旦 バッファしないと再生が処理に追従できない場合があります。併せて、 Bufferブロック (DSP System Toolbox > Signal Management > Buffers > Bufferブロック) を挿入してみてください。 (Bufferブロックのバッファサイズはこちらも適宜設定します。例:256 サンプル)
capture.png

  2 Comments

fractal
on 11 Dec 2018
Naoya様
ご回答ありがとうございます。
ご指摘いただいた通りの構成にしたところ正常にAudioDeviceからSin波を出力することに成功しました。
ありがとうございます
fractal
on 11 Dec 2018
Naoya様の助言を基にソースがオーディオファイルの場合でも成功しました。
図のような構成にしてサンプル時間を適切な値で統一したら出来ました。
ありがとうございました。
スクリーンショット 2018-12-11 13.15.35.jpg

Sign in to comment.