📄 basesim.m
字号:
%% Short Theoretical Background for the Function:%% Program for baseband-simulation.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% Function part of simulation for Space-Time%%% coding project, group Grey-2001.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Author: Stef and Fred% Date: 2001-03-19% Version: 1.0% Revision (Name & Date):%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%close all, clear%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Initializations%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%N = 2000000; % Number of total datablock_size = N/1000; % block_size must be multiple of N.training_length1 = 50; % training_length + N must be an even number!training_length2 = training_length1;
fs = 16000; % Sampling-frequencyT = 0.0005; % Symboltimepulsetype = 4; % 1: rect 2:root-rais-cos 3:hamming 4:raised-cosinemodel = 1; % 0: no Alamouti (1*1) 1: Alamouti (2*1)
rec = 1; % 2: two receivers else one receiver Eb = 1; % Signalenergisigma2 = 1;gamma0dB = 0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Running Simulation%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%a1err_mat=zeros(length(gamma0dB),N/block_size);%a2err_mat=zeros(length(gamma0dB),N/block_size);%t1err_mat=zeros(length(gamma0dB),N/block_size);%t2err_mat=zeros(length(gamma0dB),N/block_size);compared_error = [];for(model=1:1)EbN0error = [];for(gamma=1:length(gamma0dB)) gamma0dB(gamma) gamma0 = 10^(gamma0dB(gamma)/10); N0 = 2*sigma2*Eb/gamma0; error = []; data = random_data(N); % Generate random source-data %a1err_vec=[]; %a2err_vec=[]; %t1err_vec=[]; %t2err_vec=[]; for(i=0:(length(data)/block_size)-1) i data_block = get_datablock(data,block_size,i); symbols = bpsk(data_block,model); [s_antenna1, s_antenna2] = alamouti(symbols,model); % set = 1, alamouti coding is performed! if model == 1 [s_antenna1,s_antenna2,training_sequence1,training_sequence2]=add_training2(s_antenna1,s_antenna2,... training_length1,training_length2,0); % type = 0, random training-sequence. outdata_block = [training_sequence1 training_sequence2 data_block]; elseif model == 0 [s_antenna1,training_sequence1]=add_training(s_antenna1,training_length1,0); % type = 0, random training-sequence. outdata_block = [training_sequence1 data_block]; training_sequence2 = 0; end % model == 1 %%% %%% Antenna 1 %%%
[s1,t1]=pulseshape(s_antenna1,fs,pulsetype,T); % Apply pulseshaping %%% %%% Antenna 2 %%%
[s2,t2]=pulseshape(s_antenna2,fs,pulsetype,T); % Apply pulseshaping %%% %%% Plotting results %%% %rows=2; %cols=3; %%% %%% Simulating with simple channel 1 & 2 (3&4). %%%
% noise only once ! %s1_thru_channel=s1; [s1_thru_channel,alpha1,theta1]=rayleigh(s1,sigma2); %%% %%% Ska man stoppa in Eb/N0 i awgnbase? Funderar p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -