tn_1=[0,1,2,3,4,5]; %arrival times for case 1
for i=1:6;
h1(i,:)=an(i)*exp(-j*w*tn_1(i));
end
h_1=sum(h1(:,1:end)); %transfer function
y_1=h_1.*signal_f; %output spectrum
tn_2=[0,0.1,0.2,0.3,0.4,0.5]; %arrival times for case 2
for i=1:6;
h2(i,:)=an(i)*exp(-j*w*tn_2(i));
end
h_2=sum(h2(:,1:end)); %transfer function
y_2=h_2.*signal_f; %output spectrum
N=20 %number of rays
a=rand(1,N); %amplitudes of N multipath arrivals
tt=rand(1,N);
f=880:0.005:900;
delay_spread=0.2;
t=tt*delay_spread; %arrival times of N multipath arrivals ,micro sec
i=0; % frequency index
for fi=880:0.005:900; %angular frequencies
multipath_arrival=a.*exp(j*2*pi*fi*t);
i=i+1;
abs_H(i)=abs(sum(multipath_arrival)); %the i-th transfer fumction
end
subplot(2,2,1)
plot(f,abs_H)
ylabel('delay_spread=0.2 ms')
xlabel('frequency,MHz')
delay_spread=1;
t=tt*delay_spread; %arrival times of N multipath arrivals ,micro sec
i=0; % frequency index
for fi=880:0.005:900; %angular frequencies
multipath_arrival=a.*exp(j*2*pi*fi*t);
i=i+1;
abs_H(i)=abs(sum(multipath_arrival)); %the i-th transfer fumction
end
subplot(2,2,2)
plot(f,abs_H)
ylabel('delay_spread=1 ms')
xlabel('frequency,MHz')
delay_spread=5;
t=tt*delay_spread; %arrival times of N multipath arrivals ,micro sec
i=0; % frequency index
for fi=880:0.005:900; %angular frequencies
multipath_arrival=a.*exp(j*2*pi*fi*t);
i=i+1;
abs_H(i)=abs(sum(multipath_arrival)); %the i-th transfer fumction
end
subplot(2,2,3)
plot(f,abs_H)
ylabel('delay_spread=5 ms')
xlabel('frequency,MHz')
delay_spread=10;
t=tt*delay_spread; %arrival times of N multipath arrivals ,micro sec
i=0; % frequency index
for fi=880:0.005:900; %angular frequencies
multipath_arrival=a.*exp(j*2*pi*fi*t);
i=i+1;
abs_H(i)=abs(sum(multipath_arrival)); %the i-th transfer fumction
end
subplot(2,2,4)
plot(f,abs_H)
ylabel('delay_spread=10 ms')
xlabel('frequency,MHz')
图9 四个时延扩展的传输函数的绝对值
II 多普勒效应和多径效应
A 多普勒频率搬移(单条路径)
将一个无线电波的速度和频率分别表示为c和f,定义波前为一相角为常数的面(為波傳播时处于同一相位的點所連成的線或面)。例如,考虑一稳定源发送的球面波 ,相角为 ,波前可以定义为 ,这里a为一常数。对于任何t来说,波前是在 范围内(见图10),注意到波前的传输速度为c,把两个相邻的波前定义为 和 ,已知 ,波长就可以定义为这两个相邻波前之间的距离(对任意t来说): 。
因此,移动的发送端和移动的接收端产生的多普勒频移是: (5)
对信号s(t),它
频谱为: (6)
频谱搬移 之后,新信号变为: (7)
如果s(t)是一个单频信号,
B.时谐信号的多普勒频移(多径)
多径信号被发送端以不同的角度发射出来,以不同的角度到达观察者,因此,不同到达信号的打破了频移常常互不相同。为了方便和没有大范围的损耗,将发送端和接收端之间的相对速度设为v,因为余弦cos的范围是(-1,+1),所以最大多普勒频移为:
(8)
当没有多普勒效应是,如方程(2)所示,接收信号为:
,其中
这里N是多径到达信号的总数目, 和 分别是第n条射线的幅度和到达时间,当存在多普勒效应时,设 是第n条射线的多普勒角频率,接收信号变为:
, 这里 (9)
它是一个时变传输函数,而不再是时谐信号。
以下代码(Dopplershift.m)产生图13:
clear all;
N=20 %number of multipath arrivals
a=rand(1,N); %amplitudes of N multipath arrivals
tau=rand(1,N); %arrival time
f_d=1;
shift=rand(1,N)*2*f_d-f_d; %Doppler shifts
f=10; %the frequency of the transmitted harmonic signal
f_shift=f+shift;
t=[22:0.01:25];
%No Doppler shift
s_t=exp(j*2*pi*f*t); %transmitted signal
y_t=sum(a.*exp(-j*2*pi*f*tau))*exp(j*2*pi*f*t); %received signal
n=1;
y_d_t=sum(a(n)*exp(-j*2*pi*f*tau(n)))*exp(j*2*pi*(f_shift(n))*t);
for n=2:N
y_d_t=y_d_t+a(n)*exp(-j*2*pi*f*tau(n))*exp(j*2*pi*(f_shift(n))*t); %received signal
end
N=20 %number of multipath arrivals
a=rand(1,N); %amplitudes of N multipath arrivals
tau=rand(1,N); %arrival time
f_d=0.01;
shift=rand(1,N)*2*f_d-f_d; %Doppler shifts
f=10; %the frequency of the transmitted harmonic signal
f_shift=f+shift;
t=[0:0.01:50];
n=1;
y_d_t=sum(a(n)*exp(-j*2*pi*f*tau(n)))*exp(j*2*pi*(f_shift(n))*t);
for n=2:N
y_d_t=y_d_t+a(n)*exp(-j*2*pi*f*tau(n))*exp(j*2*pi*(f_shift(n))*t); %received signal
end
subplot(2,2,1)
plot(t,y_d_t)
xlabel('time,Sec')
ylabel('f_D=0.01')
N=20 %number of multipath arrivals
a=rand(1,N); %amplitudes
tau=rand(1,N); %arrival time
f_d=0.05;
shift=rand(1,N)*2*f_d-f_d; %Doppler shifts
f=10; %the frequency of the transmitted harmonic signal
f_shift=f+shift;
t=[0:0.01:50];
n=1;
y_d_t=sum(a(n)*exp(-j*2*pi*f*tau(n)))*exp(j*2*pi*(f_shift(n))*t);
for n=2:N
y_d_t=y_d_t+a(n)*exp(-j*2*pi*f*tau(n))*exp(j*2*pi*(f_shift(n))*t); %received signal
end
subplot(2,2,2)
plot(t,y_d_t)
xlabel('time,Sec')
ylabel('f_D=0.05')
N=20 %number of multipath arrivals
a=rand(1,N); %amplitudes
tau=rand(1,N); %arrival time
f_d=0.1;
shift=rand(1,N)*2*f_d-f_d; %Doppler shifts
f=10; %the frequency of the transmitted harmonic signal
f_shift=f+shift;
t=[0:0.01:50];
n=1;
y_d_t=sum(a(n)*exp(-j*2*pi*f*tau(n)))*exp(j*2*pi*(f_shift(n))*t);
for n=2:N
y_d_t=y_d_t+a(n)*exp(-j*2*pi*f*tau(n))*exp(j*2*pi*(f_shift(n))*t); %received signal
end
subplot(2,2,3)
plot(t,y_d_t)
xlabel('time,Sec')
ylabel('f_D=0.1')
N=20 %number of multipath arrivals
a=rand(1,N); %amplitudes
tau=rand(1,N); %arrival time
f_d=0.5;
shift=rand(1,N)*2*f_d-f_d; %Doppler shifts
f=10; %the frequency of the transmitted harmonic signal
f_shift=f+shift;
t=[0:0.01:50];
n=1;
y_d_t=sum(a(n)*exp(-j*2*pi*f*tau(n)))*exp(j*2*pi*(f_shift(n))*t);
for n=2:N
y_d_t=y_d_t+a(n)*exp(-j*2*pi*f*tau(n))*exp(j*2*pi*(f_shift(n))*t); %received signal
end
subplot(2,2,4)
plot(t,y_d_t)
xlabel('time,Sec')
ylabel('f_D=0.5')
for i=1:6;
s1(i,:)=an(i)*exp(j*0*wn(i))*[ones(1,501),zeros(1,500)];
s2(i,:)=an(i)*exp(j*0.02*wn(i))*[ones(1,501),zeros(1,500)];
end
y1(1,:)=sum(s1);y2(1,:)=sum(s2);wn1=[0,20,100,60,80,40];
for k=1:6;
s3(k,:)=an(k)*exp(j*0*wn(k))*[ones(1,501),zeros(1,500)];
s4(k,:)=an(k)*exp(j*0*wn(k))*[ones(1,501),zeros(1,500)];
end
y3(1,:)=sum(s3);y4(1,:)=sum(s4);
for k=1:4;
for i=1:6;
s1(i,:)=an(i)*exp(j*0*wn(k,i))*[zeros(1,(100*tn(k,i))),ones(1,501),zeros(1,(1000-100*tn(k,i)))];
s2(i,:)=an(i)*exp(j*0.02*wn(k,i))*[zeros(1,(100*tn(k,i))),ones(1,501),zeros(1,(1000-100*tn(k,i)))];
end
y1(k,:)=sum(s1(:,1:end));
y2(k,:)=sum(s2(:,1:end));
end
t=((1:1:length(y1(1,:)))-1)*10^(-2);
subplot(4,2,1);plot(t,real(y1(1,:)));ylabel('case 1');ylim([-2 2]);
hold on
plot(t,real(y2(1,:)),'r');title('real part')
hold off
subplot(4,2,2);plot(t,imag(y1(1,:)));ylim([-2 2]);
hold on
plot(t,real(y2(1,:)),'r');title('imaginary part')
hold off
subplot(4,2,3);plot(t,real(y1(2,:)));ylabel('case 2');ylim([-2 2]);
hold on
plot(t,real(y2(2,:)),'r');
hold off
subplot(4,2,4);plot(t,imag(y1(2,:)));ylim([-2 2]);
hold on
plot(t,real(y2(2,:)),'r');
hold off
subplot(4,2,5);plot(t,real(y1(3,:)));ylabel('case 3');ylim([-2 2]);
hold on
plot(t,real(y2(3,:)),'r');
hold off
subplot(4,2,6);plot(t,imag(y1(3,:)));ylim([-2 2]);
hold on
plot(t,real(y2(3,:)),'r');
hold off
subplot(4,2,7);plot(t,real(y1(4,:)));ylabel('case 4');ylim([-2 2]);
hold on
plot(t,real(y2(4,:)),'r');
hold off
subplot(4,2,8);plot(t,imag(y1(4,:)));ylim([-2 2]);
hold on
plot(t,real(y2(4,:)),'r');
hold off