频域互相关延迟估计

来源:互联网 发布:超级奇门排盘软件 编辑:程序博客网 时间:2024/06/05 05:10
麦克风声学延迟clear;N=1024;  %长度Fs=500;  %采样频率n=0:N-1;t=n/Fs;   %时间序列a1=1;     %信号幅度a2=1;d=-20;     %延迟点数x1=a1*cos(2*pi*10*n/Fs);     %信号1% x1=x1+randn(size(x1))/max(randn(size(x1)));      %加噪声x2=a2*cos(2*pi*10*(n+d)/Fs); %信号2% x2=x2+randn(size(x2));% -------------------% input number is below 1, and Prec_F is the (N-1)bit for N bit transformPrec_F = 23;% -------------------input = x1;for ii =1:length(input)    if input(ii) == 1        data_out(ii) = input(ii)*pow2(Prec_F)-1;    else        data_out(ii) = input(ii)*pow2(Prec_F);      endenddata_out = round(data_out);for ii = 1:length(input)    if data_out(ii) < 0        data_out(ii) = data_out(ii) + pow2(Prec_F+1);    end    data_out_Hex1(ii,:) = dec2hex(data_out(ii),(Prec_F+1)/4);% dec2hex(data_out(ii),6)enddata_out_Hex1input = x2;for ii =1:length(input)    if input(ii) == 1        data_out(ii) = input(ii)*pow2(Prec_F)-1;    else        data_out(ii) = input(ii)*pow2(Prec_F);      endenddata_out = round(data_out);for ii = 1:length(input)    if data_out(ii) < 0        data_out(ii) = data_out(ii) + pow2(Prec_F+1);    end    data_out_Hex2(ii,:) = dec2hex(data_out(ii),(Prec_F+1)/4);% dec2hex(data_out(ii),6)enddata_out_Hex2Y1=fft(hex2dec(data_out_Hex1),N);Y2=fft(hex2dec(data_out_Hex2),N);S12=Y1.*conj(Y2);Cxy=fftshift(real(ifft(S12)));[max,location]=max(Cxy);%求出最大值max,及最大值所在的位置(第几行)location;d2=location-N/2-1Delay2=d2/Fs              %求得时间延迟


输出结果

d2 =   -20Delay2 =   -0.0400

0 0