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

2 views (last 30 days)
fractal
fractal on 8 Dec 2018
Commented: 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.

Accepted Answer

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

Sign in to comment.

More Answers (0)

Categories

Find more on 基礎となるドメイン in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!