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

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

 채택된 답변

Kojiro Saito
Kojiro Saito 2022년 9월 24일

1 개 추천

出力したいスペクトルデータ(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

一秀 近藤
一秀 近藤 2022년 9월 28일
ご回答ありがとうございます。
csvでの保存はできるようになりました。ありがとうございます。
しかし、一つのプログラミング上では保存することができずに先にスペクトルデータをmatファイルに入力してからでないとcsvに出力できませんでした。一つにまとめるにはどうすればよいでしょうか?
Kojiro Saito
Kojiro Saito 2022년 9월 28일
「一つのプログラミング上では保存することができずに先にスペクトルデータをmatファイルに入力してからでないとcsvに出力できませんでした」の部分がすみませんがよく理解できません。
realtimeFFTsave9gatu20.mlxとは別のコードにCSV出力を入れたということでしょうか?
一秀 近藤
一秀 近藤 2022년 9월 29일
書き方が悪く申し訳ございません。その認識であっております。
一秀 近藤
一秀 近藤 2022년 9월 29일
realtimeFFTsave9gatu20.mlxのコードの続きに導入させていただいたのですが、プログラムがmatファイルに保存までは作動するのですが、その後のPeakFinderの構造体をセルに変換か実行されないです。
Kojiro Saito
Kojiro Saito 2022년 9월 29일
こちらの環境ではエラーが再現できないので、保存されるdata.matのファイルを共有いただくことは可能でしょうか?
一秀 近藤
一秀 近藤 2022년 9월 30일
すいません。僕の確認不足でcsv保存できていました。
理由といたしまして私が勝手にプログラムを中断してしまっていたことが理由であろうと思います。
ご丁寧にありがとうございます。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Measurements and Spatial Audio에 대해 자세히 알아보기

질문:

2022년 9월 21일

댓글:

2022년 9월 30일

Community Treasure Hunt

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

Start Hunting!