A method of controlling frequency output of an electronic oscillator to compensate for effects of a parameter experienced by the oscillator, the method comprising: receiving test data from an electronic oscillator, the electronic oscillator being subject to a parameter, wherein the test data corresponds to outputs generated by the electronic oscillator while being subject to the parameter over a range of parameter values; calculating a plurality of weights based at least in part on the test data; receiving from the electronic oscillator one or more input signals corresponding to a current value of the parameter; providing the one or more input signals to a neural network processing module including one or more processors; providing the plurality of weights to the neural network processing module; using the neural network processing module to calculate a neural network output signal based at least in part on the one or more input signals and the plurality of weights by at least: providing the one or more input signals and the plurality of weights to a plurality of artificial neuron modules of the neural network processing module, at least one of the plurality of weights being provided to each of the plurality of artificial neuron modules; providing a neuron output from each of the plurality of neuron modules to a linear summer module, the neural network output signal being based at least in part on an output of the linear summer module; and providing a bias input to the linear summer for shifting the output of the linear summer up or down; determining a correction voltage based at least in part on the neural network output signal; and providing the correction voltage to the electronic oscillator, thereby at least partially controlling the frequency of the electronic oscillator. receiving test data from an electronic oscillator, the electronic oscillator being subject to a parameter, wherein the test data corresponds to outputs generated by the electronic oscillator while being subject to the parameter over a range of parameter values; calculating a plurality of weights based at least in part on the test data; receiving from the electronic oscillator one or more input signals corresponding to a current value of the parameter; providing the one or more input signals to a neural network processing module including one or more processors; providing the plurality of weights to the neural network processing module; using the neural network processing module to calculate a neural network output signal based at least in part on the one or more input signals and the plurality of weights by at least: providing the one or more input signals and the plurality of weights to a plurality of artificial neuron modules of the neural network processing module, at least one of the plurality of weights being provided to each of the plurality of artificial neuron modules; providing a neuron output from each of the plurality of neuron modules to a linear summer module, the neural network output signal being based at least in part on an output of the linear summer module; and providing a bias input to the linear summer for shifting the output of the linear summer up or down; providing the one or more input signals and the plurality of weights to a plurality of artificial neuron modules of the neural network processing module, at least one of the plurality of weights being provided to each of the plurality of artificial neuron modules; providing a neuron output from each of the plurality of neuron modules to a linear summer module, the neural network output signal being based at least in part on an output of the linear summer module; and providing a bias input to the linear summer for shifting the output of the linear summer up or down; determining a correction voltage based at least in part on the neural network output signal; and providing the correction voltage to the electronic oscillator, thereby at least partially controlling the frequency of the electronic oscillator.