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