📄 新建 文本文档.txt
字号:
N=256;R=zeros(1,N);
p=12;a=zeros(p,p);En=zeros(1,p);
K=zeros(1,p);
sp=wavread('2.wav');%11000采样频率
qq=max(sp);
sp=sp-qq;
%相关函数
for j=1:p
for n=j:N-1
R(j)=R(j)+sp(n)*sp(n-j+1);
end
end
% (Levinson-Durbin算法)预测系数
En(1)=R(1);
K(1)=R(2)/R(1);
a(1,1)=K(1);
En(2)=(1-K(1)^2)*En(1);
%K(2)=(R(3)-a(1,1)*R(2))/En(2);
%a(2,2)=K(2);
%a(2,1)=a(1,1)-K(2)*a(1,1);
for i=2:p
po=0;
for j=1:i-1
po=po+a(i-1,j)*R(i-j+1);
end
K(i)=(R(i+1)-po)/En(i);
a(i,i)=K(i);
for j=1:i-1
a(i,j)=a(i-1,j)-K(i)*a(i-1,i-j);
end
En(i+1)=(1-K(i)^2)*En(i);
end
source=sp(1:256);
for i=1:12
mm(i)=a(12,13-i);
end
mm1=zeros(1,300);
% 逆滤波
for k=1:256
if k<p
for m=1:k
mm1(k)=mm1(k)+mm(p-k+m)*source(m);
end
else
if k<256
for m=1:p
mm1(k)=mm1(k)+mm(m)*source(m+k-p);
end
else
for m=k-p+1:256
mm1(k)=mm1(k)+mm(m-k+p)*source(m);
end
end
end
end
DFTmm=abs(fft(mm1));
Ln=zeros(1,300);
%取对数,高频风量置零
for i=1:60
Ln(i)=logm(DFTmm(i));
end
% IDFT
ifftLn=real(ifft(Ln));
mm=ifftLn;
for i=1:150
daopu1(i)=mm(151-i);
end
for i=1:150
daopu1(150+i)=mm(301-i);
end
plot(daopu1)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -