get_channel_muti_parameter.m
Upload User: cjx922
Upload Date: 2017-12-13
Package Size: 205k
Code Size: 1k
Category:

Communication

Development Platform:

Matlab

  1. function [channel]=get_channel_muti_parameter(channel,signal_sequence,ruili_sigma);
  2. %获得信道乘性噪声
  3. channel.attenuation.d=1/(channel.attenuation.distance^2);%pass loss is constant for the whole transmittion
  4. switch channel.attenuation.pattern
  5.     case 'no'  %no fading at all(only pass loss)
  6.         channel.attenuation.phi=zeros(size(signal_sequence));
  7.         channel.attenuation.h=ones(size(signal_sequence))*channel.attenuation.d;
  8.         channel.attenuation.h_mag=channel.attenuation.h;   
  9.     case 'Rayleigh'%Rayleigh
  10.         nr_of_blocks=ceil(size(signal_sequence,2)/channel.attenuation.block_length);
  11.         h_block=(randn(nr_of_blocks,1)+j*randn(nr_of_blocks,1))*channel.attenuation.d*sqrt(ruili_sigma);
  12.         h=reshape((h_block*ones(1,channel.attenuation.block_length))',1,nr_of_blocks*channel.attenuation.block_length);
  13.         channel.attenuation.h=h(1:(size(signal_sequence,2)));
  14.         [channel.attenuation.phi,channel.attenuation.h_mag]=cart2pol(real(channel.attenuation.h),imag(channel.attenuation.h));
  15.         channel.attenuation.phi=-channel.attenuation.phi;
  16.     otherwise
  17.         error(['Fading pattern unknown:',channel.attenuation.pattern]);
  18. end