%最小相位信号法求复倒谱
clear
b=[1,-0.5];
a=[1,-0.8];
N=32;
xn=impz(b,a,N); %生成最小相位序列
n=-N/2:1:N/2-1;
u=sign(n)+1; %u序列
Xk=fft(xn,N); %取傅立叶变换
Xkbar1=real(log(Xk)); %取对数
Xkbar2=imag(log(Xk));
xn1=ifft(Xkbar1,N); %傅立叶反变换
xn2=xn1.*u'; %乘以u序列得到复倒谱
x3=cceps(xn); %用matlab自带的cceps函数测试
y=icceps(xn2);
m=0:N-1;
subplot(2,2,1),stem(m,xn,'b.');xlabel('原最小相位序列');grid on;
subplot(2,2,2),stem(n,x3,'b.');xlabel('用matlab自带的cceps函数得出的复倒谱');grid on;
subplot(2,2,3),stem(m,y,'b.');xlabel('用icceps函数对本实验求出的复倒谱进行恢复');grid on;
subplot(2,2,4),stem(n,xn2,'b.');xlabel('本实验得到的复倒谱');grid on;