gusucode.com > m4k20功率分配图 mimo功率优化,OFDM典型仿真程序,贪婪算法仿真程序 > code/test_16qam/interwave.m
% Function 4-10 % interwave.m % % Function to add interference wave % % Programmed by T.Yamamura and H.Harada % function [iout,qout]=interwave(ci,spow,ml,nsamp,tstp,fadingpara); %****************** variables ************************* % ci : Carrier to interference ratio % spow : Power of desired signal % ml : Modulation level % nsamp : Number of samples % tstp : Time resolution % fadingpara : Fading parameter % iout : Output Ich signal % qout : Output Qch signal % ***************************************************** itau=fadingpara(1,:); dlvl1=fadingpara(2,:); n0=fadingpara(3,:); th1=fadingpara(4,:); itnd1=fadingpara(5,:); now1=fadingpara(6,:); fd=fadingpara(7,:); flat=fadingpara(8,:); if ci < 40; %%%%%%%%%%%%% preparation part %%%%%%%%%%%%%%%% %%% frame format para=52; fftlen=64; noc=53; % the number of carrier nd=6; % the number of information sysmbol knd=1; % the number of known data symbol sr=250000; % symbol rate br=sr.*ml; % bit rate per carrier gilen=16; % the length of guard interval %%% Set CE data load kndata=zeros(1,fftlen); kndata0=2.*(rand(1,52)>0.5)-1; kndata(2:27)=kndata0(1:26); kndata(39:64)=kndata0(27:52); %%% Simulation start %%% fading initialization %%%%%%%%%%%%%%%%%%%%%%%%%%%% transmitter %%%%%%%%%%%%%%%%%%%%%%%%%%% seridata=rand(1,para*nd*ml)>0.5; % DC=0 paradata=reshape(seridata,para,nd*ml); %size(51 * nd*ml) %%% ml modulation [ich,qch]=qpskmod(paradata,para,nd,ml); kmod=1/sqrt(2); ich=ich.*kmod; qch=qch.*kmod; % CE modulation ceich=kndata; % CE:BPSK ceqch=zeros(1,64); %%% data mapping (DC=0) [ich2,qch2]=crmapping(ich,qch,fftlen,nd); % addition of pilot carrier and CE symbol ich22=[ceich.' ich2]; % I-channel transmission data qch22=[ceqch.' qch2]; % Q-channel transmission data %%% IFFT x=ich22+qch22.*i; y=ifft(x); ich3=real(y); qch3=imag(y); %%% Gurad interval insertion % guard interval insertion [ich5,qch5]= giins(ich3,qch3,fftlen,gilen,nd+1); %%% fading Calculation [ifade2,qfade2,ramp,rcos,rsin]=sefade(ich5,qch5,itau,dlvl1,th1,n0,itnd1,now1,length(ich5),tstp,fd,flat); %%% C/I reduction spowintw=sum(ich5.^2+qch5.^2)/(nd)/52; rint=spow/spowintw*10^(-ci/10); iout=ifade2.*sqrt(rint); qout=qfade2.*sqrt(rint); else iout=zeros(1,nsamp); qout=zeros(1,nsamp); end %******************** end of file ***************************