質問: dsp.AudioFileReader(... deviceWriter(s); end ``` ### 補足情報(言語/FW/ツール等のバージョンなど) MatlabR2017b
回答: キューを適用してはいかがでしょうか? キュー MATLABは使ったことないので正直良くわからないのでコードは提示できませんが、手順としては次のようになると思います。 * audioReadとdeviceWriterを実行するループをそれぞれ別スレッドに分ける。 * audioReadで取得した取得したsignalをキューにPUSHする。 * deviceWriterを実行しているスレッドはsignalキューからPOPして復調を実施する。 イメージ的にはaudioReadで取得した信号をキューという箱に適当なタイミングで放り込んでいって、deviceWirterは箱に信号が入っていれば投入された順番に沿って取り出して復調していくような感じですね。 この時注意しなければいけないのは、箱から取り出す頻度よりも入れる頻度のほうが多い場合はいつか 箱が溢れてしまうということです。 各々のループが起動するタイミングや頻度はranranwayさんがプログラムで解決したい課題によって決まりますので、箱の大きさはranranwayさんが決める事項です。