k-Wave Toolbox

createCWSignals

Generate array of CW signals from amplitude and phase.

Syntax

cw_signal = createCWSignal(t_array, freq, amp, phase)
cw_signal = createCWSignal(t_array, freq, amp, phase, ramp_length)

Description

createCWSignals generates a series of continuous wave (CW) signals based on the 1D or 2D input matrices amp and phase, where each signal is given by:

amp(i, j) .* sin(2 .* pi .* freq .* t_array + phase(i, j)); 
To avoid startup transients, a cosine tapered up-ramp is applied to the beginning of the signal. By default, the length of this ramp is four periods of the wave. The up-ramp can be turned off by setting the ramp_length to 0.

Example:

% define sampling parameters
f = 5e6;
T = 1/f;
Fs = 100e6;
dt = 1/Fs;
t_array = 0:dt:10*T;

% define amplitude and phase
amp = getWin(9, 'Gaussian');
phase = linspace(0, 2*pi, 9).';

% create signals and plot
cw_signal = createCWSignals(t_array, f, amp, phase);
stackedPlot(cw_signal);

Inputs

t_array 1D vector of time points [s]
freq frequency of the CW signal [Hz]
amp 1D or 2D matrix of amplitudes [au]
phase 1D or 2D matrix of phases [rad]

Optional Inputs

ramp_length length of the up-ramp used to reduce start-up transients in periods (default = 4)

Outputs

cw_signal matrix of CW signals

See Also

extractAmpPhase, toneBurst