% Free induction decay (FID) — the simplest pulseq sequence. % A non-selective excitation pulse followed by a long readout, % repeated 16 times. Adapted from pulseq's demoSeq/writeFid.m. system = mr.opts('rfRingdownTime', 20e-6, 'rfDeadTime', 100e-6, ... 'adcDeadTime', 20e-6); seq = mr.Sequence(system); Nx = 4096; % samples per readout Nrep = 16; % repetitions % 90-degree block (hard) excitation pulse rf = mr.makeBlockPulse(pi/2, 'Duration', 0.3e-3, 'system', system, ... 'use', 'excitation'); % ADC: long readout to capture the full decay adc = mr.makeAdc(Nx, 'Duration', 512e-3, 'system', system, ... 'delay', system.adcDeadTime); delayTE = 20e-3; delayTR = 5000e-3; assert(delayTE >= mr.calcDuration(rf)); assert(delayTR >= mr.calcDuration(adc)); for i = 1:Nrep seq.addBlock(rf, mr.makeDelay(delayTE)); seq.addBlock(adc, mr.makeDelay(delayTR)); end [ok, error_report] = seq.checkTiming(); if ok fprintf('Timing check passed successfully\n'); else fprintf('Timing check failed! Error listing follows:\n'); for k = 1:numel(error_report) fprintf('%s\n', error_report{k}); end end seq.setDefinition('Name', 'fid'); seq.write('fid.seq');