音声ファイルを連続で​FFTを行い、順次保​存するには

15 ビュー (過去 30 日間)
一秀 近藤
一秀 近藤 2022 年 11 月 4 日
コメント済み: 一秀 近藤 2023 年 1 月 20 日
サンプリングレート44100Hzの音声データ(wavファイル)のものを1秒単位(44100データごと)でFFT解析を行いたいと考えています。
またそのFFT解析の結果を"fftsave_0001"のような形でcsvファイルに順次保存したいと考えています。
またFFTの窓関数はhamming窓を使う予定です。
大変ではありますが、ご教授お願いいたします。

採用された回答

Hernia Baby
Hernia Baby 2022 年 11 月 4 日
まずデータを用意します
clc,clear,close all;
f = 50:50:500;
Fs = 44100;
t = (0:1/Fs:3-1/Fs)';
x = sum(sin(2*pi*f.*t),2);
そしてFs = 44100点ずつ切り出して、FFTをかけた後出力します
n = floor(length(t)/Fs);
w = hamming(Fs);
for ii = 1:n
y = fft(w.*x(Fs*(ii-1)+1:Fs*ii));
writematrix(y,sprintf('fftsave_%03d.csv',ii))
end
ここで確認したいのですが、本当にfftがほしい結果なのでしょうか?
スペクトラムを出したい場合はpspectrumをおすすめします
  2 件のコメント
一秀 近藤
一秀 近藤 2022 年 11 月 7 日
返信遅くなりすいません。
プログラムの提案ありがとうございます。ぜひ参考にさせていただきたいと思います。
また、集めたいデータとしてはFFTを行った後のベクトルを使いたいと思っております。
スペクトラムは今のところ使う予定ではないです。
ご丁寧な回答本当にありがとうございました。
一秀 近藤
一秀 近藤 2023 年 1 月 20 日
いきなりすいません。
やはりいろいろ考えたうえでスペクトラムのほうが必要になってきており、自分なりに作成している最中です。pspectrumを用いた場合、ベクトルの数値が4096となりサンプリングレートに関係なくその数値になるのかわかっておりません。よろしければ教えていただきたいと思います。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeスペクトル測定 についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!