📄 addawgn_2x2.m
字号:
function addAWGN_2x2(awgnparams,NoiseVar)
randn('state',sum(100*clock));
% --------Add Noise to Rx Antenna 1-----------
awgnipfid_rx1 = fopen(awgnparams.rx1_infile, 'r'); % open awgn input file
if awgnipfid_rx1 <= 0
error('unable to open awgn Rx 1 input file');
end
awgnopfid_rx1 = fopen(awgnparams.rx1_outfile, 'a'); % open channel output file,append to save different dB data
if awgnopfid_rx1 < 0
error('unable to open awgn Rx 1 output file');
end
for frm=1:awgnparams.numframe
[awgnInData, datalen] = fread(awgnipfid_rx1, 2*awgnparams.cohtime, 'float32');
if datalen~=2*awgnparams.cohtime, frm,error('fread awgn Rx 1 input data error!'); end
awgnInData = [ 1 1j ] * reshape(awgnInData, 2, datalen/2);
Len = datalen/2;
Addnoise = sqrt(NoiseVar)*sqrt(1/2)*(randn(1,Len)+j*randn(1,Len));
awgnOutData=awgnInData+Addnoise;
fwrite(awgnopfid_rx1, [real(awgnOutData);imag(awgnOutData)], 'float32');
end
fclose(awgnipfid_rx1);
fclose(awgnopfid_rx1);
% --------Add Noise to Rx Antenna 2-----------
awgnipfid_rx2 = fopen(awgnparams.rx2_infile, 'r'); % open awgn input file
if awgnipfid_rx2 <= 0
error('unable to open awgn Rx 2 input file');
end
awgnopfid_rx2 = fopen(awgnparams.rx2_outfile, 'a'); % open channel output file,append to save different dB data
if awgnopfid_rx2 < 0
error('unable to open awgn Rx 2 output file');
end
for frm=1:awgnparams.numframe
[awgnInData, datalen] = fread(awgnipfid_rx2, 2*awgnparams.cohtime, 'float32');
if datalen~=2*awgnparams.cohtime, frm,error('fread awgn Rx 2 input data error!'); end
awgnInData = [ 1 1j ] * reshape(awgnInData, 2, datalen/2);
Len = datalen/2;
Addnoise = sqrt(NoiseVar)*sqrt(1/2)*(randn(1,Len)+j*randn(1,Len));
awgnOutData=awgnInData+Addnoise;
fwrite(awgnopfid_rx2, [real(awgnOutData);imag(awgnOutData)], 'float32');
end
fclose(awgnipfid_rx2);
fclose(awgnopfid_rx2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -