1*ce08dfaeSXianjun Jiao% Author: Xianjun Jiao ([email protected]; [email protected]) 2*ce08dfaeSXianjun Jiao% SPDX-FileCopyrightText: 2023 UGent 3*ce08dfaeSXianjun Jiao% SPDX-License-Identifier: AGPL-3.0-or-later 4ce26cc15SXianjun Jiao 5ce26cc15SXianjun Jiaofunction single_carrier_gen(carrier_freq, num_iq) 6ce26cc15SXianjun Jiaoif exist('carrier_freq', 'var')==0 || isempty(carrier_freq) 7ce26cc15SXianjun Jiao carrier_freq = 1e6; 8ce26cc15SXianjun Jiaoend 9ce26cc15SXianjun Jiao 10ce26cc15SXianjun Jiaoif exist('num_iq', 'var')==0 || isempty(num_iq) 11ce26cc15SXianjun Jiao num_iq = 512; 12ce26cc15SXianjun Jiaoend 13ce26cc15SXianjun Jiao 14ce26cc15SXianjun Jiaosampling_rate = 20e6; 15ce26cc15SXianjun Jiaosampling_time = 1/sampling_rate; 16ce26cc15SXianjun Jiaot = (0.3+(0:(num_iq-1))).*sampling_time; 17ce26cc15SXianjun Jiaos = exp(2.*pi.*carrier_freq.*t.*1i); 18ce26cc15SXianjun Jiao 19ce26cc15SXianjun Jiao%let's use 14 bits 20ce26cc15SXianjun Jiaoreal_part = round(real(s).*(2^14)); 21ce26cc15SXianjun Jiaoimag_part = round(imag(s).*(2^14)); 22ce26cc15SXianjun Jiao 23ce26cc15SXianjun Jiaofilename = ['iq_single_carrier_' num2str(carrier_freq) 'Hz_' num2str(num_iq) '.txt']; 24ce26cc15SXianjun Jiaofid = fopen(filename,'w'); 25ce26cc15SXianjun Jiaoif fid == -1 26ce26cc15SXianjun Jiao disp('fopen failed'); 27ce26cc15SXianjun Jiao return; 28ce26cc15SXianjun Jiaoend 29ce26cc15SXianjun Jiaolen = length(s); 30ce26cc15SXianjun Jiaofor j=1:len 31ce26cc15SXianjun Jiao fprintf(fid, '%d,%d\n', real_part(j), imag_part(j)); 32ce26cc15SXianjun Jiaoend 33ce26cc15SXianjun Jiaofclose(fid); 34ce26cc15SXianjun Jiaodisp(['Saved to ' filename]); 35ce26cc15SXianjun Jiao 36ce26cc15SXianjun Jiaofilename = ['iq_single_carrier_' num2str(carrier_freq) 'Hz_' num2str(num_iq) '.bin']; 37ce26cc15SXianjun Jiaofid = fopen(filename,'w'); 38ce26cc15SXianjun Jiaoif fid == -1 39ce26cc15SXianjun Jiao disp('fopen error'); 40ce26cc15SXianjun Jiao return; 41ce26cc15SXianjun Jiaoend 42ce26cc15SXianjun Jiao 43ce26cc15SXianjun Jiaoiq_int16 = [real_part; imag_part]; 44ce26cc15SXianjun Jiaoiq_int16 = iq_int16(:); 45ce26cc15SXianjun Jiao 46ce26cc15SXianjun Jiaofwrite(fid, iq_int16, 'int16'); 47ce26cc15SXianjun Jiaofclose(fid); 48ce26cc15SXianjun Jiaodisp(['Saved to ' filename]); 49