Voltage controlled oscillator
y = vco(x,fc,fs)
y = vco(x,[Fmin Fmax],fs)
y = vco(x,fc,fs) creates a signal that oscillates at a frequency determined by the real input vector or array x with sampling frequency fs. fc is the carrier or reference frequency; when x is 0, y is an fc Hz cosine with amplitude 1 sampled at fs Hz. x ranges from -1 to 1, where x = -1 corresponds to 0 frequency output, x = 0 corresponds to fc, and x = 1 corresponds to 2*fc. Output y is the same size as x.
y = vco(x,[Fmin Fmax],fs) scales the frequency modulation range so that ±1 values of x yield oscillations of Fmin Hz and Fmax Hz respectively. For best results, Fmin and Fmax should be in the range 0 to fs/2.
By default, fs is 1 and fc is fs/4.
If x is a matrix, vco produces a matrix whose columns oscillate according to the columns of x.
fs = 10000; t = 0:1/fs:2; x = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);
Plot the spectrogram of the generated signal:
If any values of x lie outside [-1, 1], vco gives the following error message.
X outside of range [-1,1].