필터 지우기
필터 지우기

音声ファイルに1/f​ゆらぎ(-3db/o​ctローパス)フィル​タをかけて出力したい - フィルタ除去&オーディオ出力の方法

조회 수: 11 (최근 30일)
tazaki ush
tazaki ush 2023년 1월 2일
편집: Hernia Baby 2023년 1월 3일
現在:
オーディオデータを読み取り、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()関数を使用しました。
他必要な情報があれば追記したいと思います。

답변 (1개)

Hernia Baby
Hernia Baby 2023년 1월 3일
편집: Hernia Baby 2023년 1월 3일
誤りでしたらごめんなさい。
1/fの揺らぎということはピンクノイズの生成ですよね?
ホワイトノイズにフィルタをかけ合わせたものを元の信号に足し合わせるような形ですかね。
■ピンクノイズ生成
 ①Audio Toolboxをおもちでしたら pinknoise が使用できます。
 ②DSP System Toolboxをおもちでしたら dsp.ColoredNoise が使用できます。
 ③Signal Processing Toolboxをおもちでしたら File Exchange に良いものがありました。
■虚数をどうにかしたい
 ③の中身を見てみますと ifft 後に real で実数成分のみ取り出していますね。

카테고리

Help CenterFile Exchange에서 Audio Processing Algorithm Design에 대해 자세히 알아보기

제품


릴리스

R2022b

Community Treasure Hunt

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

Start Hunting!