⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 single_linear_interpolation_correlation.m

📁 在MATLAB环境下
💻 M
字号:
%对相关函数进行插值:1.线性插值,
% 目的:验证前插值好还是后插值好,或者验证:在什么条件下后插值好
% linear interpolation
clc;clear all;


L=500;         % length of signal
LL=L+50;
Fs=1e6;        % the sample frequency in Hz
M=1000;         % numbers of interpolation
D=44.923e-6;        % set the TDOA in microsecond

%========filter by a low-pass filter=======
% [b,a]=butter(10,0.3);
% r=randn(1,LL);
% os=filter(b,a,r);
% clear r;
% clear b a;

data=load('d:\MATLAB6p1\work\wireless_location\y25K_fm');
os=data.y25K_fm;

% data=load('c:\MATLAB6p5\work\wireless_location\data_2_3');
% os=data.No1_0;

  clear data;

mos=os-mean(os);
mos=mos/max(abs(mos));
mos=mos/sqrt(var(mos));
s=mos(1:LL);

multpath_d=15;
s1=0.2*[s(multpath_d+1:LL) zeros(1,multpath_d)];    % the first multipath
s=s+s1;

%========interpolation==========
interp_s=interp(s,M);
t1=(1/Fs)*(1/M);
delay=round(D/t1);
%============================
count=0;
for loop=1:5;
    count=count+1

snr=0.2;
%======two receive signals========
x1=s+snr*randn(1,LL);
   tempt=interp_s(delay+1:length(interp_s));
tx2=tempt(1:M:length(tempt));
x2=tx2+snr*randn(1,length(tx2));
clear tx2c

x1=x1(1:L);
x2=x2(1:L);

N=200;

time1=clock;

x12=xcorr(x1,x2);

px12=interp(x12,N);
[pm,pi]=max(px12);
est1(count)=(pi-(L-1)*N-1)*(1/Fs)*(1/N);

time2=clock;
elapse_time1(count)=time2(6)-time1(6);
clear time1;
clear time2;

end

D
[mean(est1)*1e6 (D-mean(est1))*1e9  std(est1)*1e9]
mean(elapse_time1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -