📄 single_linear_interpolation.m
字号:
% 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\y100K_am');
os=data.y100K_am;
% 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:10;
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 tx2
x1=x1(1:L);
x2=x2(1:L);
N=200;
px1=interp(x1,N);
px2=interp(x2,N);
px12=xcorr(px1,px2);
[pm,pi]=max(px12);
est(count)=(pi-length(px1))*(1/Fs)*(1/N);
end
D
[mean(est)*1e6 (D-mean(est))*1e9 std(est)*1e9]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -