音声ファイルを連続で​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 CenterFile Exchange에서 スペクトル測定에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!