📄 through_channel.m
字号:
function rx_signal = Through_channel(tx_signal,signal_len)
% global sim_consts;
global cir_matrix_t
global flag
% cir_matrix=channel(signal_len);
cir_matrix = [];
if flag == 0
C2 =[-0.59175538208125-0.26921505269338i; 0 ; 0 ; 0 ; 0 ; 0 ;-0.75903722101890-0.034804026909066i];
else
C2=[0.2 1 0.3162 -0.2 0.1 -0.05 0.02].';
C2= C2/norm(C2)';
end
c_end = [0.2 1 0.3162 -0.2 0.1 -0.05 0.02].';%[-0.3920 0.0152 0.8320 0.0152 -0.3920 0.0178 0.163].';
c_end = c_end/norm(c_end);
% cir_cir = C2 ;
cir_len = length(c_end);
cir_matrix = [cir_matrix C2];
for k=1:signal_len+cir_len-1
cir_matrix = [cir_matrix C2+(c_end-C2)/(2*(signal_len+cir_len-1))];
end
cir_matrix_t = cir_matrix;
% for k=1:signal_len+cir_len-1
% cir_matrix = [cir_matrix ,cir_cir];
% end
[ cir_len , conv_len] = size(cir_matrix) ;
tx_temp=zeros(1,cir_len);
for k=1:conv_len
if k<signal_len+1
tx_temp = [tx_signal(1,k) tx_temp(1,1:end-1)];
else tx_temp = [0 tx_temp(1,1:end-1)];
end
cir = cir_matrix(:,k);
cir = cir/norm(cir)';
rx_signal(1,k) = tx_temp * cir;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -