音声ファイルに1/fゆらぎ(-3db/octローパス)フィルタをかけて出力したい - フィルタ除去&オーディオ出力の方法
조회 수: 13 (최근 30일)
이전 댓글 표시
現在:
オーディオデータを読み取り、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()関数を使用しました。
他必要な情報があれば追記したいと思います。
댓글 수: 0
답변 (1개)
Hernia Baby
2023년 1월 3일
편집: Hernia Baby
2023년 1월 3일
誤りでしたらごめんなさい。
1/fの揺らぎということはピンクノイズの生成ですよね?
ホワイトノイズにフィルタをかけ合わせたものを元の信号に足し合わせるような形ですかね。
■ピンクノイズ生成
■虚数をどうにかしたい
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Audio I/O and Waveform Generation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!