現在:
オーディオデータを読み取り、fft後パワースペクトルの最大値および該当する周波数を格納した。
-3db/octのローパスフィルタを作成した。
ここまで進んでおり、後はオーディオデータに周波数フィルタをかけて出力したいと思っています。(出力はwavデータが必要)
fftしたデータにフィルタをかけて、逆fft後オーディオ出力したい(audiowriteを使う)のですが、当然虚数を含むためエラーとなり、上手くできません。
>filterDesign //フィルタの設計画面を開く(変数名:iir1flowpassfilter)
>>yy=filter(iir1flowpassfilter,y,G); //yは読み取った音声データにfftをかけたもの。 Gは次数??
>>audiowrite(filename2,yy,fs) //filename2='noise.wav', fs:48000(Hz)
ここでエラーとなり、
・・次を使用中: audiowrite
入力は実数にする必要があります。
かといって、fft前のデータを参照すると、
警告: ファイルの書き込みに際しデータが切り捨てられました。
> audiowrite>clipInputData 内
audiowrite 内
となります。
fft後、オーディオ出力する方法は見つかりませんでしたが、もしありましたらご教示くださいますようお願いします。なお、オーディオの取り込みにはaudioread()関数を、fftはfft()関数、逆fftはifft()関数を使用しました。
他必要な情報があれば追記したいと思います。