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

📄 channel.m

📁 一个在matlab环境下的DAB仿真程序源码。内含ofdm收发
💻 M
字号:
function [channel_signal]=channel(frame_num,symnum,N,L,base_128g_201,freq_offset);

path_num=4;             % num of propagation paths
len=length(base_128g_201);

h_Ray=zeros(1,N); % Rician channel impulse response function
%Rayleigh channel
hi_Ray=[0 0 0 0 0.258782 0.061831 0.150340 0.051534        ...
    0.185074 0.400967 0.295723 0.350825 0.262909 0.225894 0.170996 0.149723 0.240140 ...
       0.116587 0.221155 0.259730];  
T_delay=[88 70 75 80];
% [1.003019 5.422091 0.518650 2.751772 0.602895 1.016585 0.143556 0.153832     ...
%       3.324866 1.935570 0.429948 3.228872 0.848831 0.073883 0.203952 0.194207 0.924450 ...
%       1.381320 0.640512 1.368671 ];
sitai=[0.8 0.3 4.855121 3.419109 5.86447 2.215894 3.758058 5.430202 3.952093 1.093586 5.775198 ...
       0.154459 5.928383 3.053023 0.628578 2.128544 1.099463 3.462951 3.664773 2.833799 ...
       3.334290 0.393889 0 0 0 0 0];

% x=0.4;
% rou=0;
% for i=1:1,
%    rou=rou+hi_Ray(i)^2;
% end;
%kk_Ray=1;%1/(sqrt(rou));
%h_Ray=zeros(2,2*(N+L));
channel_signal=[];
muti_path_power=[];
main_path=[];
%freq_offset=0;
delay=0;

%h_Ray(1) =hi_Ray(1)*exp(-j*2*pi*sitai(1));
   
% h_Ray = zeros(1,256);
% for m = 1: path_num
%     h_Ray(m+T_delay(m)) = hi_Ray(m)*exp(-j*2*pi*sitai(m));
% end;
% subplot(2,1,1);
% stem(abs(h_Ray(1:256)),'*');
% xlabel('n');ylabel('h(n)');
% title('rayleigh channel impulse response function h(n)');
% [Ray_h,Ray_w] = freqz(h_Ray,[1 zeros(1,255)],256,'whole');
% h_ft_Ric=fft(h_Ray,256);
% subplot(2,1,2);
% plot((abs(h_ft_Ric)));
% plot(Ray_w/pi,10*log10(abs(Ray_h)));
% xlabel('w');ylabel('H(w)');
% title('rayleigh channel transfer function H(w)');

%main path attenuation and frequency offset
base_128g_201_attenuation=base_128g_201.*exp(-j*2*pi*freq_offset*(0:len-1)/N);     

base_128g_201_attenuation2= [zeros(1,delay),base_128g_201(1:length(base_128g_201))];           % no freq_offset

base_128g_201_attenuation_dalay(1:length(base_128g_201)+delay)=[zeros(1,delay),base_128g_201_attenuation(1:length(base_128g_201))];

p=[1 hi_Ray(1,1:path_num) ];
whole_path_power=(sum(p.^2))^0.5;
main_path_power_normalize=p(1,1)/whole_path_power;


for n=1:path_num;
     multi_path_power_normalize(1,n)=p(1,n+1)/whole_path_power;
     multi_path(n,:)=multi_path_power_normalize(1,n)*base_128g_201.*exp(-j*2*pi*sitai(1,n)*(0:len-1)/N);   %multi_path magnititude attenuation and frequency offset

end;

%main_path_power=mean(abs(base_128g_201_attenuation_dalay).^2);                                    %main_path mean power

%whole_path_power=main_path_power+sum(multi_path_power);                         %whole_path power

%multi_path_power_normalize=multi_path_power./whole_path_power; % normalize path power
%main_path_power_normalize=main_path_power/whole_path_power;  %normalize main path power
temp=zeros(1,len);
 for n=1:path_num;

     temp(n,T_delay(n)+1:len)=multi_path(n,1:len-T_delay(n)) ;

 end;
 main_path=main_path_power_normalize*base_128g_201_attenuation_dalay;

 Multipath=sum(temp);
    
channel_signal=main_path+[Multipath zeros(1,delay)];

%channel_signal= base_128g_201_attenuation_dalay;
channel_signal_no_freq=base_128g_201_attenuation2;






%% h_Ray(2)=kk_Ray*hi_Ray(8)*exp(-j*2*pi*sitai(8))+h_Ray(2);
% h_Ray(31)=kk_Ray*hi_Ray(12)*exp(-j*2*pi*sitai(12))+h_Ray(31);
% h_Ray(3)=kk_Ray*hi_Ray(16)*exp(-j*2*pi*sitai(16))+h_Ray(3);
% h_Ray(9)=kk_Ray*hi_Ray(17)*exp(-j*2*pi*sitai(17))+h_Ray(9);
% h_Ray(7)=kk_Ray*hi_Ray(19)*exp(-j*2*pi*sitai(19))+h_Ray(7);
% h_Ray(14)=kk_Ray*hi_Ray(20)*exp(-j*2*pi*sitai(20))+h_Ray(14);
% 
% h_Ray(2)=kk_Ray*hi_Ray(14)*exp(-j*2*pi*sitai(14))+h_Ray(2);


% a=find(h_Ray~=0);

% figure(1)
% m=0:1:N-1;
% subplot(2,1,1);
% stem(m(1:520),abs(h_Ray(1:520)),'*');
% xlabel('n');ylabel('h(n)');
% title('Rayleigh channel impulse response function h(n)');
% grid;
% 
% h_ft_Ray=fft(h_Ray,2048);
% subplot(2,1,2);
% plot(abs(h_ft_Ray));
% xlabel('k');ylabel('H(k)');
% title('Rayleigh channel transfer function H(k)');
% grid;
% save Rayleigh_channel.mat h_Ray;

⌨️ 快捷键说明

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