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