Tone generation in Matlab (scientific paper)
The section on 12 added sidetones is referring to something different to the section on thirteen notes.

In regards to 13 notes: By diatonic I think the mean a diatonic musical scale, with the lowest note at 148.83Hz.

From this site:  http://www.phy.mtu.edu/~suits/notefreq446.html   148.83Hz is note $D_3$

So I would choose 13 consecutive notes in the D-scale starting with $D_3$. The notes are played according to Figure 1. Each note lasts 8.40s/72 = 7/60 s.

However the notes look equally spaced in frequency in Figure 1. So I think they might mean a chromatic scale with equal temperament. That would make more sense as the 13th note would be one octave above the first note, and each note would be $^{12}\sqrt{2}$ apart. Code then:

low_note = 148.83;
notes = low_note .* nthroot(2,12).^(0:1:12);

signal = [];

% First section
for k = 1:12
    signal = [signal, generateTone(notes(13-k+1), 44100, 7/60); % High note
    signal = [signal, generateTone(notes(k), 44100, 7/60); % Low note
end
% Second section
for k = 13:-1:2    % Reverse
    signal = [signal, generateTone(notes(13-k+1), 44100, 7/60); % High note
    signal = [signal, generateTone(notes(k), 44100, 7/60); % Low note
end
% Third section
for k = 1:12
    signal = [signal, generateTone(notes(13-k+1), 44100, 7/60); % High note
    signal = [signal, generateTone(notes(k), 44100, 7/60); % Low note
end