谱图计算规模树皮

7视图(30天)
Lazaros
Lazaros 2023年3月14日
编辑: Nayan 2023年4月11日
我想生成一个谱图对于一个给定的歌,分段每隔1秒,50%的重叠。
我想复制一篇论文的结果,这表明计算的光谱图21第一树皮乐队。我的代码如下,我不确定它是正确的。我将感谢反馈的过程。我用1:7700,这样我就可以获得一个与7700行矩阵,然后我可以细分到每个垃圾箱。但是我不确定如果返回的结果是有意义的。
(声音、频率)= audioread (file_name);
windowsize =地板(频率);%如果我想改变windowsize 0.5秒,我可以除以2。这里的地板不是必需的
%你可以从0到20。
BandBarks = (20, 100, 200, 300, 400, 510, 630, 770, 920, 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150, 3700, 4400, 5300, 6400, 7700];
斯派克=光谱图(声音,损害(windowsize),地板(0.5 * windowsize), 1:7700);
%或我应该使用
斯派克=光谱图(声音,损害(windowsize),地板(0.5 * windowsize), 1:7700,频率);

答案(1)

Nayan
Nayan 2023年4月11日
编辑:Nayan 2023年4月11日
我理解,你需要找到bark-scale声谱图。这可以通过以下步骤:-
  1. 读了wave文件使用audioread(文件名)
  2. 找到信号的谱图与期望的“重叠”、“数字频率垃圾箱(nfft)”和窗口类型使用光谱图(x)
  3. 窗口长度和重叠可以根据要求计算。
  4. 一旦获得,谱图bark-scale可以获得使用的光谱图hz2bark(赫兹)
我建议你把下面的代码片段和上面提到的库:-
N = 1024;
n = 0: n - 1;
[x, fs] = audioread (“farspeech.wav”);
时间= (x) / fs长度;
t = linspace(0、持续时间、长度(x));
情节(t, x);
包含(“时间(s)”);
ylabel (“振幅”);
窗口=损害(256);
noverlap = 128;%可以根据需要调整
nfft = 512;%可以根据需要调整
光谱图(x,窗口、noverlap nfft, fs,“桠溪”);
f (s, t) =光谱图(x,窗口、noverlap nfft, fs,“桠溪”);
f_bark = hz2bark (f);
显示亮度图像(t f_bark 20 * log10 (abs (s)));
xy;
包含(“时间(s)”);
ylabel (“树皮”);
colorbar;
你也可以获得直接与不同尺度谱图通过使用仿真软件。万博1manbetx我建议你通过以下链接利益和兴趣。
希望这可以帮助!

类别

找到更多的在时频分析帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的