Matlab 画语音倒谱瀑布图代码
时间: 2024-02-29 13:52:06 浏览: 104
以下是MATLAB画语音倒谱瀑布图的示例代码:
```matlab
clear;clc;close all;
[x,Fs] = audioread('example.wav'); % 读取音频文件
winlen = round(Fs*0.03); % 每个窗口的长度
hopsize = round(winlen/2); % 相邻两帧之间的跳跃距离
nfft = 1024; % FFT点数
[S,F,T] = spectrogram(x,winlen,hopsize,nfft,Fs); % 获取语谱图
logS = log(abs(S)); % 取对数
rceps = real(ifft(logS)); % 倒谱
rceps = rceps(1:winlen/2,:); % 取前半部分
rceps = rceps - max(max(rceps)); % 幅度归一化
rceps = flipud(rceps); % 上下翻转
imagesc(T,1:winlen/2,rceps); % 画图
axis xy; % 坐标轴方向设置
colormap(jet); % 色彩映射设置
xlabel('Time (s)');
ylabel('Quefrency (s)');
title('Rceps Spectrogram');
```
同样,这里使用了音频文件`example.wav`,如果要使用自己的音频文件,需要将代码中的文件名替换为自己的文件名。此外,还可以根据需要调整窗口长度、跳跃距离、FFT点数等参数。注意,倒谱瀑布图的纵坐标是“Quefrency”,它表示的是每个分析窗口中信号的周期(单位为秒)。
阅读全文