www.pudn.com > harmonic_wavelet.rar > harwav_win.m, change:2008-05-25,size:1908b


%%%%%%%谐波小波频域加窗算法改进时域定位性能%%%%%%%%%%% 
clear 
fs=4000; 
fn=fs/2;%奈奎斯特频率 
dett=1/fs;%采样周期 
nx=400;%采样点数 
tp=nx*dett;%采样时间长度 
detf=1/tp;%频率分辨率 
t=0:dett:(nx-1)*dett;%时间向量 
f=0:detf:(nx-1)*detf;%频率向量 
%%%各种窗函数定义%%%% 
%x1=1-cos(2*pi*t);%hanning 
%plot(x1) 
%hold on 
%x2=1.08-0.92*cos(2*pi*t);%hamming 
%plot(x2,'r') 
%x3=0.84-cos(2*pi*t)+0.16*cos(4*pi*t);%blackman 
%plot(x3,'g') 
%%%%%%%%%%%%%%%%%%%%%%%% 
x=sin(100*pi*t); 
x(90:170)=0.9*x(90:170); 
%subplot(411);plot(t,x); 
fft_x=fft(x); 
%subplot(412);stem(f,abs(fft_x)); 
fmin=1000; 
fmax=2000; 
m=fmin; 
n=fmax; 
p=floor(fmin/detf);%由于软件数据标识的关系,不进行减1操作 
q=ceil(fmax/detf); 
%%%构造谐波小波频域序列采样点%%% 
c1=zeros(1,p); 
c2=ones(1,q-p); 
c3=zeros(1,nx-q); 
c=[c1,c2,c3]; 
har_mol=1/((n-m)*2*pi);%谐波小波频域幅值 
%%%加窗算法%%% 
k=0:q-p-1;%窗长q-p个点 
w=k/(q-p); 
win_han=1-cos(2*pi*w);%hanning窗函数 
win_ham=1.08-0.92*cos(2*pi*w);%hamming 
win_black=0.84-cos(2*pi*w)+0.16*cos(4*pi*w);%blackman 
%%%%hanning窗结果%%%%% 
harwin_han=har_mol*win_han;%加窗后频域幅值 
harfre_han=[c1,harwin_han,c3];%谐波小波频率特性 
aw_han=fft_x.*harfre_han;%频域小波系数 
a_han=ifft(aw_han); 
signal_han=real(a_han)*4*pi*(n-m); 
subplot(411);plot(t,signal_han);% 
%%%%%hamming窗结果%%%%% 
harwin_ham=har_mol*win_ham;%加窗后频域幅值 
harfre_ham=[c1,harwin_ham,c3]; 
aw_ham=fft_x.*harfre_ham;%频域小波系数 
a_ham=ifft(aw_ham); 
signal_ham=real(a_ham)*4*pi*(n-m); 
subplot(412);plot(t,signal_ham);% 
%%%%blackman窗结果%%%% 
harwin_black=har_mol*win_black;%加窗后频域幅值 
harfre_black=[c1,harwin_black,c3]; 
aw_black=fft_x.*harfre_black;%频域小波系数 
a_black=ifft(aw_black); 
signal_black=real(a_black)*4*pi*(n-m); 
subplot(413);plot(t,signal_black);% 
%%%%不加窗结果%%%%% 
harfre=har_mol*c; 
aw=fft_x.*harfre;%频域小波系数 
a=ifft(aw); 
signal=real(a)*4*pi*(n-m); 
subplot(414);plot(t,signal);%