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

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

採用された回答

Kojiro Saito
Kojiro Saito 2022 年 9 月 24 日
出力したいスペクトルデータ(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 件のコメント
Kojiro Saito
Kojiro Saito 2022 年 9 月 29 日
こちらの環境ではエラーが再現できないので、保存されるdata.matのファイルを共有いただくことは可能でしょうか?
一秀 近藤
一秀 近藤 2022 年 9 月 30 日
すいません。僕の確認不足でcsv保存できていました。
理由といたしまして私が勝手にプログラムを中断してしまっていたことが理由であろうと思います。
ご丁寧にありがとうございます。

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAudio Processing Algorithm Design についてさらに検索

Community Treasure Hunt

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

Start Hunting!