MATLAB 中的倒谱
Cepstrum In MATLAB
我试过了,MATLAB 中没有合适的函数来计算倒谱。
使用商业软件处理文件21.wav
可以得到这样的结果:
如何使用 MATLAB 代码获得相同的结果?当我在 MATLAB 中使用 cceps
or rceps
函数时,结果甚至不接近:
%% Complex cepstral analysis
% Load Signal
A = importdata ('21.txt');
M = A(:,2);
Fs = 1552;
t = (0:length(M)-1)/Fs;
c = cceps(M);
plot(t,c)
xlabel('Time (s)')
title('Complex cepstrum')
ylim([0 0.2]);
xlim([0 4.6]);
结果是:
%% Real cepstrum
% Load Signal
A = importdata ('21.txt');
M = A(:,2);
Fs = 1552;
t = (0:length(M)-1)/Fs;
c = rceps(M);
plot(t,c)
xlabel('Time (s)')
title('Real cepstrum')
ylim([0 0.2]);
xlim([0 4.6]);
结果是:
在您的代码中添加 x 和 y 限制,然后比较结果
ylim([0 0.18]);
xlim([0 4.6]);
我试过了,MATLAB 中没有合适的函数来计算倒谱。
使用商业软件处理文件21.wav
可以得到这样的结果:
如何使用 MATLAB 代码获得相同的结果?当我在 MATLAB 中使用 cceps
or rceps
函数时,结果甚至不接近:
%% Complex cepstral analysis
% Load Signal
A = importdata ('21.txt');
M = A(:,2);
Fs = 1552;
t = (0:length(M)-1)/Fs;
c = cceps(M);
plot(t,c)
xlabel('Time (s)')
title('Complex cepstrum')
ylim([0 0.2]);
xlim([0 4.6]);
结果是:
%% Real cepstrum
% Load Signal
A = importdata ('21.txt');
M = A(:,2);
Fs = 1552;
t = (0:length(M)-1)/Fs;
c = rceps(M);
plot(t,c)
xlabel('Time (s)')
title('Real cepstrum')
ylim([0 0.2]);
xlim([0 4.6]);
结果是:
在您的代码中添加 x 和 y 限制,然后比较结果
ylim([0 0.18]);
xlim([0 4.6]);