?? channel.m
字號:
function [out]=channel(in,fs,fd,n_delay,t_delay,p_delay)
%in是輸入碼元,是一行矩陣,可以是實數也可以是復數
%fs是輸入碼元的比特率
%fd是多普勒頻移
%n_delay是多徑信道的徑數
%t_delay是多徑信道各徑的時延時間
%p_delay是多徑信道各徑的功率db值
Ns=length(in);
Ts=1/fs; %碼元間隔
dt=Ts; %時域采樣間隔
df=1/(Ns*Ts); %頻域采樣間隔
dn=ceil(t_delay/dt); %各路對應時域抽樣值移位個數
p=10.^(p_delay/10); %各徑平均功率
sum_p=sum(p);
p=p/sum_p; %歸一化
r=zeros(n_delay,Ns);
r_one=ClarkeModel( fd, fs, Ns );
for j=1:n_delay
r(j,:)=r_one;
end;
for j=1:n_delay
r(j,:)=sqrt(p(j)).*[zeros(1,dn(j)), r(j,1:(Ns-dn(j)))];
end;
rr=zeros(1,Ns);
for j=1:n_delay
rr=rr+r(j,:);
end;
H=t2f(rr,dt);
%求系統后的碼元樣本序列
IN=t2f(in,dt);
S=circonv(IN,H,Ns); %序列在頻域通過系統,要用循環卷積,因為時域上離散非周期,頻域上是周期連續的
% 求卷積后相當于求頻域在2*Ns-1個采樣點上的值,但還是一個周期
out=f2t(S,dt); %轉換到時域
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -