www.pudn.com > wavelet-pujian.rar > simple-pujian.m


%基本谱减算法。 
%256点每桢,滑动1/4桢 
x=wavread('wx.wav'); 
hm=hamming(256)'; 
xn=enframe(x(1:1024),hamming(256),64); 
o2tmp=sum(abs(fft(xn').*fft(xn')))/256; 
o2=sum(o2tmp)/length(o2tmp); 
xx=enframe(x,hamming(256),64)'; 
[w,l]=size(xx); 
X=max(abs(fft(xx)).^2-o2,0); 
y=real(ifft(X))'; 
xo=zeros(1,(l+3)*64); 
for i=0:l-1 
    xo(i*64+1:i*64+256)=xo(i*64+1:i*64+256)+y(i+1,:); 
end 
xo=xo/4; 
wavwrite(xo,8000,16,'wxpj3dbo.wav'); 
display('pujian over');