📄 multipathchannel.m
字号:
function [RecieveData,ChannelData] = MultipathChannel(SerialSample,CurrentEbNo,NumOfSymbol,MappingScheme,ChannelData,fd)
%
[a,b] = sefade(real(SerialSample),imag(SerialSample),[0,5,10,18,20],[0,5,10,20,25],[0,0,0,0,0],[6,7,6,7,6],[1000,2000,3000,4000,5000],5,length(SerialSample),0.2*1.0e-6,fd,0);
RecieveData = a+b.*j;
[a,b] = sefade(real(ChannelData),imag(ChannelData),[0,5,10,18,20],[0,5,10,20,25],[0,0,0,0,0],[6,7,6,7,6],[1000,2000,3000,4000,5000],5,length(SerialSample),0.2*1.0e-6,fd,0);
ChannelData = a+b.*j;
if strcmp(MappingScheme,'BPSK') == 1
elseif strcmp(MappingScheme,'QAM') == 1
CurrentEsNo = CurrentEbNo+10*log10(2);
elseif strcmp(MappingScheme,'8PSK') == 1
CurrentEsNo = CurrentEbNo+10*log10(3);
elseif strcmp(MappingScheme,'16QAM') == 1
CurrentEsNo = CurrentEbNo+10*log10(4);
end
RecieveData = awgn(RecieveData,CurrentEbNo,'measured');
%加入10*log10(N)原因: paramenter snr in AWGN is Es/N0 , but we just give Eb/N0 in simulation. So if
%N bits are carried in one sample , we need calculate Es/N0 using Eb/n0.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -