リアルタイムで取り込​​んだ音声信号をFF​T​化を行ったデータ​をcsvに保存する方​法​を教えてほしいで​す。

21 views (last 30 days)
一秀 近藤
一秀 近藤 on 21 Sep 2022
Commented: 一秀 近藤 on 30 Sep 2022
リアルタイムにて音声を入力を行い、timescopeを用いて波形を表示させ、SpectrumAnalyzerを使いスペクトルを表示させるプログラムをAudio Test Bench をもちいて作成しました。(SpectrumAnalyzerを最新のものに入れ替える)
そして、スペクトルのデータをmat保存しました。(ピーク時のデータのみ)ここまでのプログラミングを載せておきます。
理想的には上記のようなものを作成したいと考えております。
matファイルではなくcsvファイルにて保存の方法をご教授お願います。簡単な内容で申し訳ありませんがよろしくお願いします。

Accepted Answer

Kojiro Saito
Kojiro Saito on 24 Sep 2022
出力したいスペクトルデータ(data)がテーブル型なので、CSVへのファイル保存は相性が良いです。
PeakFinder列が構造体(struct)になっていて、このまま書き込むと列が空になってしまうので、下記のように一旦構造体をセルにしてから格納し直してCSVに出力できます。
%save data.mat
% ←最後にdataをMATファイルに保存
% PeakFinderの構造体をセルに変換
tempTable = struct2cell(data.PeakFinder)';
% 元のデータに格納
data.PeakFinderFrequency = tempTable(:, 1);
data.PeakFinderValue = tempTable(:, 2);
% 元のPeakFinder列を削除
data.PeakFinder = [];
% CSVで書き込み
writetable(data, 'data.csv')
  6 Comments
Kojiro Saito
Kojiro Saito on 29 Sep 2022
こちらの環境ではエラーが再現できないので、保存されるdata.matのファイルを共有いただくことは可能でしょうか?
一秀 近藤
一秀 近藤 on 30 Sep 2022
すいません。僕の確認不足でcsv保存できていました。
理由といたしまして私が勝手にプログラムを中断してしまっていたことが理由であろうと思います。
ご丁寧にありがとうございます。

Sign in to comment.

More Answers (0)

Categories

Find more on Audio I/O and Waveform Generation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!