This disclosure relates generally to analog integrator systems and methods.
An integrator is a device to perform the mathematical operation known as integration. Integrators are used in a number of settings to sample data over periods of time. Integrators may be employed by laboratory equipment, test equipment, medical devices, etc. A number of different integrator circuits are known in the art.
Systems and methods are disclosed to integrate signals. Some embodiments include an integrator comprising an active input; a passive input; a first integrator having a first integrator input and a first integrator output; a second integrator having a second integrator input and a second integrator output; a first plurality of switches coupled with the first integrator input, the second integrator input, the active input, and the passive input; a second plurality of switches coupled with the first integrator output and the second integrator output; and a controller. The controller may be configured to control the operation of the first plurality of switches to switch the active input between the first integrator input and the second integrator input, and control the operation of the first plurality of switches to switch the passive input between the first integrator input and the second integrator input.
These illustrative embodiments are mentioned not to limit or define the disclosure, but to provide examples to aid understanding thereof. Additional embodiments are discussed in the Detailed Description, and further description is provided there. Advantages offered by one or more of the various embodiments may be further understood by examining this specification or by practicing one or more embodiments presented.
These and other features, aspects, and advantages of the present disclosure are better understood when the following Detailed Description is read with reference to the accompanying drawings.
Systems and methods are disclosed to integrate an input signal. Some embodiments described herein may integrate the input signal by switching between two integrators.
The present disclosure is directed towards an integrator circuit or system that may include multiple integrators that are stable on relatively short time scales, and that also may be utilized for relatively long time scale integration. Over long periods of time, for example, integrators may drift, which may result in integration error. To overcome this drift, among other things, the integrators may be switched between active and passive loads so that, while one integrator is integrating the active load, the other integrator may be reset when integrating the passive load. The resistance, inductance, and/or capacitance of the active load and the passive load may be identical or substantially identical (within 1%, 2%, 5%, or 10% of each other, or within manufacturing tolerances), while the active load provides a voltage and/or current signal and the passive load does not. In some embodiments, an additional circuit may be placed at the output of the integrator pair such that an output from multiple integrator pairs may be averaged to achieve better or increased performance.
In some embodiments, switches may be selected so that most or all charge injection and/or leakage currents are balanced, both during and between switching events. Accordingly, respective switches may be paired and balanced with each other. In part, this may be realized by the use of what would otherwise appear to be switches without purpose but are switching between a pair of resistors each tied to circuit ground. In some embodiments, all integrators, as well as, for example, the integrator input coil, may see identical input loads and/or output loads so, from the perspective of the integrators, those integrators do not respond or change states as if they normally would when being switched. Rather, everything is balanced and appears constant in time. Part of this may include balancing any delay(s) generated in gate/drive logic, and may involve the use of additional drive logic and gates that would otherwise appear to be without purpose.
Although not so limited, an appreciation of the various aspects of the present disclosure may be gained from the following discussion in connection with the drawings.
The first integrator 104a and/or the second integrator 104b may include any device, component, integrated circuit, etc. that integrates or performs the mathematical operation of integration on an incoming signal. The first integrator 104a and/or the second integrator 104b, for example, may include a voltage integrator or a current integrator. A voltage integrator, for example, may perform time integration of an input signal of an electric voltage and/or may measure electric flux. A current integrator, for example, may perform time integration of an input signal of an electrical current and/or may measure total electric charge. The current integrator, for example, may be a charge amplifier.
The active input load 110a may include any device from which data may be sampled. For example, the active input load 110a may include a signal from any measurement device (or sample) from which a voltage and/or current may be integrated. For example, the measurement device may include a detector such as a high energy particle physics detector, a magnetic field detector, a scientific experiment detector, a linear accelerator detector, etc. As another example, the measurement device may include any medical device such as a magnetic resonance image machine, medical imager, nuclear medicine functional imaging, positron emission topology, etc. Any number of other devices requiring integration of a signal may be used.
Generally speaking, and as described in more detail below, the first integrator 104a and the second integrator 104b may be switched so that one of the two integrators is integrating the active input load 110a while the other integrator is sampling the passive input load 110b. To accomplish this, the controller module 112, among other things, may control the action of the integrator selector 102 and/or the output load selector 106 to switch which integrator is integrating the active input load 110a and the passive input load 110b. In this way, the first integrator 104a and the second integrator 104b may each partially sample the active input load 110a. In some embodiments and as discussed in more detail below, the controller module 112 may combine the data (and/or signals) from the first integrator 104a and the second integrator 104b.
The controller module 112 may also control load selector inputs to the first integrator 104a and the second integrator 104b so that each integrator switches between integrating the active input load 110a and the passive input load 110b. Because the active input load 110a includes the signal that is being sampled, each integrator partially integrates the desired signal.
The controller module 112 may be coupled to at least the integrator selector 102, the integrator stage 104, and the output load selector 106 of the integrator module 114. In some embodiments, the controller module 112 may control the integrator selector 102 to select which one of the first integrator 104a and the second integrator 104b is coupled to a corresponding one of the active input load 110a and the passive input load 110b. When coupled thereto, the active input load 110a or the passive input load 110b may provide a load to one of the first integrator 104a and the second integrator 104b. The controller module 112 may further control the output load selector 106 to select which one of the active output load 108a and the passive output load 108b is coupled to a corresponding one of the first integrator 104a and the second integrator 104b. When coupled thereto, the active output load 108a or the passive output load 108b corresponds to a load to either the first integrator 104a or the second integrator 104b.
The controller module 112, for example, may control the output load selector 106 so that the corresponding one of the first integrator 104a and the second integrator 104b that is currently coupled to the active input load 110a is in turn coupled to the active output load 108a. The controller module 112, for example, may control the output load selector 106 so that the corresponding one of the first integrator 104a and the second integrator 104b that is currently coupled to the passive input load 110b is in turn coupled to the passive output load 108b.
In some embodiments, the controller module 112 may include any type of controller or processor such as, for example, the computational system 1200 shown in
In some embodiments, the controller module 112, the integrator selector 102, and/or the output load selector 106 may be combined into one or more controllers or processors such as, for example, the computational system 1200 shown in
The final loop may calculate and/or apply the slanted baseline correction to remove any linear drift over long periods of time. When in pre-trigger mode, the last loop computes the slope of the data using a simple linear regression. Once triggered, this loop uses the previously calculated slope to apply a slanted baseline correction, which is subtracted from the data. The data is then sent to the host machine via four DMA FIFOs. The host then stores and/or graphs the data to the screen.
An example input/load State or configuration of the first integrator 104a and the second integrator 104b at a particular point in time is shown in table form as Table 1:
In
With reference to the Reset State, in some embodiments, the active input load 110a may take the form of an output from an electrical device to which it is desired to integrate the signal. The active input load 110a, for example, may exhibit particular impedance from the perspective of either the first integrator 104a or the second integrator 104b when coupled thereto. In some embodiments, the passive input load 110b may be selected so as to exhibit an impedance similar to that of the active input load 110a and/or without providing an active signal to sample when coupled to either one of the first integrator 104a and the second integrator 104b. In this manner, the input load to both the first integrator 104a and the second integrator 104b during operation or use may appear to be balanced and constant in time.
Further, in reference to the Reset State, in some embodiments the active output load 108a may take the form of an input to a digitizer such as, for example, an analog-to-digital converter. The active output load 108a, for example, may exhibit a particular impedance from the perspective of either the first integrator 104a or the second integrator 104b when coupled thereto. In some embodiments, the passive output load 108b may be selected so as to exhibit an impedance similar to that of the active output load 108a when coupled to either one the first integrator 104a and the second integrator 104b. In this manner, the output load of both the first integrator 104a and the second integrator 104b during operation or use may appear to be balanced and constant in time.
In some embodiments, the controller module 112 may be wholly or at least partially incorporated within the integrator module 114. In this embodiment, a process 200 may be wholly or at least partially implemented on or by the integrator module 114. Still other embodiments are possible.
The process 200 begins at block 205, where a particular one of the first integrator 104a and the second integrator 104b of the integrator module 114 may be selected (the “selected integrator”) to monitor the active input load 110a.
At block 210, the integrator selector 102 and the output load selector 106 may be actuated substantially simultaneously so that the selected integrator is coupled to both the active input load 110a and the active output load 108a. In this configuration, the selected integrator may be considered to be in the Active State of operation. In parallel, at step 215, the integrator selector 102 and the output load selector 106 may be actuated substantially simultaneously so that the non-selected integrator is selected to monitor the passive input load 110b and is coupled to the passive output load 108b. In this configuration, the non-selected integrator may be considered to be in a Reset State of operation.
At step 220, the status of the first integrator 104a and the second integrator 104b may be swapped. For example, a different particular one of the first integrator 104a and the second integrator 104b of the integrator module 114 may be selected to monitor the active input load 110a (the “selected integrator”).
The first integrator 104a and the second integrator 104b selection as the selected integrator may be swapped based upon any of one or more of a number of different factors or criteria. For example, selection of a different particular integrator may be based solely upon passage of a predetermined time period that represents an amount of time the originally selected integrator is maintained in the Active State of operation, such as about a 0.05-microsecond time period, about a 20-microsecond time period, about a 5-millisecond time period, about a 36-millisecond time period, etc. For example, the second integrator 104b may be selected at step 220 following operation of the first integrator 104a for or of about a 10-microsecond time period. In general, an example time period may range from about 1 nanosecond to about one day, and may include any other sub-range having any particular endpoint within this example time period. Other examples of time periods may be 1 microsecond, 10 microsecond, 1 millisecond, 100 millisecond, 1 second, and 10 seconds.
As another example, the first integrator 104a and the second integrator 104b selection as the selected integrator may be swapped based upon operating or operational status of the particular one of the first integrator 104a and the second integrator 104b as selected at block 205. For example, integration error of the particular integrator selected at block 205 may be monitored to determine or estimate when the integration error might exceed a predetermined and configurable maximum integration error threshold. In one embodiment, integration error may be defined as the absolute integrator drift in a given time span or period multiplied by the integrator RC time. In this manner, the different particular one of the first integrator 104a and the second integrator 104b may be selected prior to exceeding of maximum integration error of a currently active integrator.
In some embodiments, error may be introduced from any number of one or more sources such as, for example, input offset voltages, common-mode currents, contact potentials, and thermoelectric effects. An example benchmark of maximum integration error may include maximum integration error of 0.25 mV-s while operating over about a 3600-second time period, including all sources of error. Still other examples are possible. For example, the different particular one of the first integrator 104a and the second integrator 104b may be selected based upon multiple predefined and configurable criteria as desired.
As another example, the first integrator 104a and the second integrator 104b selection as the selected integrator may be swapped based upon operating or operational status of the particular one of the first integrator 104a and the second integrator 104b as selected at block 205. For example, integration error of the particular integrator selected at block 205 may be monitored to determine or estimate when the slope of integration drift might exceed a predetermined and configurable drift threshold.
Following block 220, flow within the process 200 may loop or branch back to block 210 and block 215. In this manner, continuous switching may be achieved as desired between the first integrator 104a and the second integrator 104b of the integrator module 114 to monitor the input load 110 of
The process 300 begins at block 305 where the integrator module 114 may be switched from a Pre-Start State to a Default Monitor State so that one of the first integrator 104a and the second integrator 104b may be selected to monitor the input load 110 of
Following block 305, the process 300 may branch to block 310 and block 320. At block 310, one of the first integrator 104a and the second integrator 104b may be engaged so as to monitor or sample the active input load 110a. In general, the Default Monitor State may be defined as desired so that any particular one of the first integrator 104a and the second integrator 104b may be selected to monitor or sample the active input load 110a at block 310. For example, the Default Monitor State may be defined so that the first integrator 104a is engaged to the Active State so as to monitor or sample the active input load 110a, and the second integrator 104b is engaged to the Reset State so as to not monitor or sample the active input load 110a and/or be coupled with the passive input load 110b. Other embodiments are possible.
At block 320, the one of the first integrator 104a and the second integrator 104b engaged to monitor or sample the active input load 110a may itself be monitored, to determine when the particular integrator currently in the Active State is to be switched with the particular integrator currently in the Reset State, so that the latter may be switched to monitor or sample the active input load 110a. As discussed above in connection with
For example, at block 325, a determination may be made as to whether the particular integrator currently in the Active State has been in this State of operation for a particular predetermined time period. The particular predetermined period of time, for example, may be 10 ns, 100 ns, 1 ms, 10 ms, 100 ms, 1 s, 10 s, etc. In another example, at block 325, a determination may be made as to whether the particular integrator currently in the Active State is at, is near, or has exceeded maximum allowable integration error.
The integration error, for example, may the product of a respective integrator's RC time constant with the integrators error signal. The integrators error signal may be the amount the integrator's output deviates from the output that would be expected from a perfect and/or ideal integrator. In some embodiments, the average integration error may be measured prior to use of the integrator, and can be thought of as a property of the integrator. Thus, after a predetermined amount of run time, the typical integration error may be known based on the average integration error. Alternatively or additionally, if the correct shape/amplitude of the output signal is known (e.g., from a test signal with a known shape) then comparing the actual output of the integrator with that expected would provide a measure of the integration error. Alternatively or additionally, two or more integrators could be operated together, with one receiving the input signal, and the other a dummy signal, where the dummy input was as close to possible as the real signal, except lacking the signal. In this embodiment, the output of the integrator(s) receiving the dummy signal would provide a direct measure of the likely integration error on the integrator receiving the real signal, and this information could be used to determine how long the integrator receiving the real signal remained active.
As another example, at block 325, the rate of the input signal and/or the output signal may be monitored. If the rate of change of the input signal is greater than a given threshold value then the switching frequency may be increased. If the rate of change of the input is less than a given threshold value then the switching frequency may be decreased. As another example, the switching frequency may be a function of the rate of change of the input signal and/or the output signal.
In these and other embodiments, process flow within the process 300 may branch back to block 320 upon a determination at block 325 that particular switching criterion has not been met. However, process flow within the process 300 may branch to block 315 upon a determination at block 325 that particular switching criterion has been met.
At block 315, the integrator module 114 may be switched from the Default Monitor State to an Alternate Monitor State so that the other one of the first integrator 104a and the second integrator 104b may be selected to monitor the input load 110 of
Following block 315, flow within the process 300 may branch back to block 310 and block 320. In this manner, continuous switching may be achieved as desired between the first integrator 104a and the second integrator 104b to monitor the input load 110 of
The controller module 112 may be coupled to at least the integrator stage 104, as well as the first switch network 402, the second switch network 404, the third switch network 406, and the fourth switch network 408. In some embodiments, the controller module 112 may control these respective components or elements to select which one of the first integrator 104a and the second integrator 104b is coupled to the active input load 110a and/or the passive input load 110b. When coupled thereto, the active input load 110a and/or the passive input load 110b may correspond to an input load to the one of the first integrator 104a and/or the second integrator 104b. When not coupled to the active input load 110a, the passive input load 110b may correspond to an input load 110 to the one of the first integrator 104a and the second integrator 104b. In example embodiments, the first switch network 402 may be configured so that when a particular one of the first integrator 104a and the second integrator 104b is not coupled to the active input load 110a, an impedance or load presented by the passive input load 110b may be similar to an impedance or load presented by the active input load 110a. In this manner, the integrator module 114 may be configured and arranged so that the input load 110 of both the first integrator 104a and the second integrator 104b during operation or use may appear to be balanced and constant in time. More specifically, regardless of whether or not the first integrator 104a and the second integrator 104b is coupled to the active input load 110a and/or the passive input load 110b, the input as seen by the first integrator 104a and/or the second integrator 104b is substantially or approximately about the same.
Similarly, regardless of whether or not the first integrator 104a and the second integrator 104b are coupled to the active input load 110a and/or the passive input load 110b, the output load as seen by the first integrator 104a and the second integrator 104b is substantially or approximately about the same. In some embodiments, the controller module 112 may be coupled to at least the integrator stage 104, as well as the first switch network 402, the second switch network 404, the third switch network 406, and/or the fourth switch network 408 to select which one of the first integrator 104a and/or the second integrator 104b is coupled to the active output load 108a and/or the passive output load 108b. In some embodiments, the passive output load 108b may be selected so as to exhibit an impedance similar to that of the active output load 108a when coupled to either one the first integrator 104a and/or the second integrator 104b. In this manner, the integrator module 114 may be configured and arranged so that the output load of both the first integrator 104a and the second integrator 104b during operation or use may appear to be balanced and constant in time.
As mentioned above, the one of the first integrator 104a and the second integrator 104b that is currently coupled to both the active input load 110a and the active output load 108a may be considered to be in the Active State As currently integrating or sampling voltage of the active input load 110a. Conversely, the one of the first integrator 104a and the second integrator 104b that is currently coupled to both the passive input load 110b and the passive output load 108b may be considered to be in a Reset State As not integrating or sampling voltage of the active input load 110a.
Example states of the first switch network 402, the second switch network 404, the third switch network 406, and the fourth switch network 408 of
In some embodiments, the integrator selector 102 may include the first switch network 502, the second switch network 504, and/or the third switch network 506 among other components. In some embodiments, the output load selector 106 may include the fourth switch network 508.
In reference to Table 2, the first State or condition of the example integrator circuit architecture may be matched with the above-mentioned Pre-Start State or configuration. For example, the first switch network 502 may comprise at least switches S1-S12 and/or resistors RH1-RH14, components RL1, components RL2, the resistor RT1, and/or the resistor RT2 and is shown in State A. In State A, each of switches S1-S12 may be in a similar State or position. The second switch network 504, for example, may comprise switches S13-S16. In State A, each of switches S13-S16 may be in a similar State or position. The third switch network 56, for example, may include switches S17-S20, is shown in State A. In State A, each of switches S17-S20 may be in a similar State or position. As discussed in further detail below, the State of the third switch network 506 does not affect which one of the first integrator 104a and the second integrator 104b is coupled to the active input load 110a. Rather, the State of the third switch network 506 may affect the polarity of the differential input of the first integrator 104a and the second integrator 104b as referenced to the active input load 110a. The fourth switch network 508, for example, may include switches S21-S22 is shown in State A. In State A, each of switches S21-S22 may be in a similar State or position.
In
Referring now collectively to
Switch S1 of the first switch network 502 may be one example. In the pre start condition, as shown in
Components RLC1 and/or components RLC2 may model integrator coil resistance. In
The various resistors, capacitors, and/or inductors shown in
In some embodiments, the first switch network 502 may switch the integrator loop into the circuit of
As shown in
The second switch network 504 alternately switches the first integrator 104a and the second integrator 104b between the integrator L1 and the dummy components RL load. While one integrator sees the integrator coil and is in the Active State, the other integrator is in the Reset State. The second switch network 504 also preferentially connects integrator outputs to J1, which may correspond to a DAQ output connector (i.e., the active load 110a), or a dummy load (i.e., passive output load 108b). The dummy load (or dummy input or dummy signal), for example, may include a load that is substantially similar with the active load in resistance, capacitance, and/or inductance but comprises little or no current and/or voltage.
As mentioned above, the third switch network 506 changes the polarity of the signal going into each of the first integrator 104a and the second integrator 104b. In some embodiments, the third switch network 506 may be run at about half the frequency of the second switch network 504, so that the polarity on each of the first integrator 104a and the second integrator 104b may alternate during its on state.
In some embodiments, logic as controlled by the controller module 112 to switch the switches of
In some embodiments, the third switch network 506 may be omitted in any of the embodiments described herein.
The low-noise switching of the example integrator module 114 of the present disclosure may enable the integrator module 114 to be a usable long pulse low noise integrator. Another property of the integrator module 114 is using the pairs, or more, of integrators together where one integrator is in the Active State and the other is in the Reset State. In some embodiments, the benefit of the Reset State is that the integrator in reset or stabilize is allowed to fully reset back to zero using a sample and hold circuit. Other benefits may be achieved.
In some embodiments, the integrator module 114 may include sample and hold logic, which may be used to match switching conditions. In some embodiments, to reset an integrator back into stability, the sample and hold circuit may be in reset mode for many integrator RC times. Using just a single integrator to accomplish this may result in losing a large part of the data from the active input load while in the Reset State. The use of two integrators as described herein may minimize the loss of data to only the small amount of time during switching is lost.
Referring now to
As discussed above, the input load 110 and the output load of the first integrator 104a and the second integrator 104b may be balanced and constant in time during operation or use, so that a near or about instantaneous switching between the first integrator 104a and the second integrator 104b may be performed without having to be concerned about transients or settling time. This is shown in
In general, the MCFA 902 is configured and arranged to generate fusion power using magnetic fields to confine hot fusion fuel in the form of plasma 908. One example of such an apparatus may be based upon the “tokamak” or “tokomak” concept of magnetic confinement, in which the plasma 908 is contained in a donut-shaped vacuum vessel 912. Continuing with this example, a mixture of deuterium and tritium may be heated to temperatures in excess of 150 million degrees centigrade to form the plasma 908. Magnetic fields may be used to form or define a confinement space 910 to keep the plasma 908 away from walls of the vacuum vessel 912 of the MCFA 902. The magnetic fields may be produced by a first set of electromagnetic coils 914 surrounding the vacuum vessel 912, and by a second set of electromagnetic coils 914 (not shown) arranged to drive electrical current through the plasma 908. In use, fusion between deuterium and tritium may produce a charged helium nuclei, a neutron, and some energy. Since the neutron does not carry charge, this particle does not respond to a magnetic field and may freely impact and be absorbed by surrounding walls of the vacuum vessel 912, transferring heat energy to the walls. This heat energy may be dispersed through cooling towers to produce steam and thereby electricity by appropriate methods.
In order to properly maintain the confinement space 910, magnetic flux and field measurements may be obtained with or by the integrator module 904, which is coupled to an MFDA 916 (Magnetic Field Diagnostic Arrangement), which may be controlled by the controller module 906. In the example implementation-specific scenario, the MFDA 916 may comprise of any number of inductive pickup loops or coils. Inductive pickup loops may be preferable due to their non-complex construction, ease of use, and durability, especially when compared to other methods of determining magnetic profiles. Further, inductive pickup loops are capable of extremely high bandwidths, allowing for the measurement of fast magnetic perturbations, requiring microsecond resolution, as well as slow field profiles associated with the more steady State confinement fields.
To convert a voltage measurement from a particular inductive pickup loop of the MFDA 916 to a measurement of magnetic flux and/or field, loop voltage may be integrated by the integrator module 904. However, several factors may make direct integration difficult, especially when there are many orders of magnitude difference between fast and slow magnetic signals, or where high-gain integrators are being used for relatively long integration periods. Although In some embodiments, the integrator module 904 of the present disclosure may be useful or applicable in many different types of applications, the integrator module 904 may address those and other issues in the example implementation-specific scenario. In particular, the integrator module 904 may address issues such as dynamic bandwidth resolution, input offset errors, droop, and long-term drift stability. And, in the example scenario of
According to the timing diagram, an enable signal 1102 may be required to be in the asserted State (or high) in order for the integrator circuit to integrate the input signal. A control signal 1104 may be coupled with the first switch network 504 and the third switch network 508. The control signal 1104, for example, may control whether the first integrator 104a or the second integrator 104b is coupled with the active input load 110a or the passive input load 110b. The control signal 1104, for example, may also control whether the first integrator 104a or the second integrator 104b is coupled with the passive output load or the data acquisition unit 1004.
The control signal 1106 may control the polarity of the first integrator 104a and the control signal 1108 may control the polarity of the second integrator 104b. By alternately changing the polarity of the first integrator 104a and the second integrator 104b each integrator may further compensate for drift by driving drift in opposite directions in alternate polarity configurations of the integrators. For example, an asserted the control signal 1106 may result in a one polarity configuration of the first integrator 104a and an unasserted the control signal 1106 may result in an opposite polarity configuration; and an asserted the control signal 1108 may result in a one polarity configuration of the second integrator 104b and an unasserted the control signal 1108 may result in an opposite polarity configuration.
The control signal 1110 may switch the first integrator 104a between the Active State and the Reset State. The control signal 1112 may switch the second integrator 104b between the Active State and the Reset State.
As shown in the timing diagram 1100 and in the circuit diagram 1000, the first integrator 104a may be in the Active State with a positive polarity while the second integrator 104b is in the Reset State. After a predetermined period of time, the first integrator 104a may be in the Reset State while the second integrator 104b is in the Active State with a positive polarity. After a predetermined period of time, the first integrator 104a may be in the Active State with a negative polarity while the second integrator 104b is in the Reset State. After a predetermined period of time, the first integrator 104a may be in the Reset State while the second integrator 104b is in the Active State with a negative polarity. In this way the integrators alternate the integration between positive and negative polarities.
In some embodiments the controller module 112 may produce the signals shown in the timing diagram 1100. The controller module 112 may include data acquisition, an analog-to-digital converter, a PXIe system, a host computer, and/or real-time signal processing components. For example, these components may include an FPGA card (e.g., NI-7962R) in a PXIe system that may provide an enable signal (e.g. enable signal 1102 in
In some embodiments, the FPGA code may be divided into three single-cycle timed loops and may operate at an IO clock speed (e.g., 50 MHz). The first loop, for example, may control the digital outputs such as, for example, the control signal 1104, the control signal 1106 and/or the control signal 1108, and/or may acquire data from the ADC. The first loop, for example, may normally be in standby mode waiting for a trigger from the host machine. Once triggered via the PXIe backplane, the counters begin, which controls the pre-trigger length, the trigger length, the various control signals shown in
The processing loop, for example, may apply offset corrections and/or stitch corrections. The offset correction may remove the DC offset from the signal that is the result of the fact that the integrator is not reset exactly to zero during the hardware reset. By changing the polarity of the first integrator 104a and/or the second integrator 104b the minus sign in half of the points may be removed. After these corrections, the first point of each cycle may be zero when the clock signal is high (data from the first integrator 104a) and the first point of each cycle is zero when the clock signal is low (data from the second integrator 104b). The stitch correction may stitch the data together to form a continuous stream so that the first point from second integrator 104b is the same as the last point from the first integrator 104a in a single the clock signal cycle and so that the first point from the first integrator 104a is the same as the last point from second integrator 104b during the next period. The states of the second switch network 504, the third switch network 506 and/or the fourth switch network 508 and the processed data points may be re-bundled are transferred to last loop through a second FPGA-scoped FIFO.
The first switch network 502 as shown in
The second switch network 504 as shown in
The third switch network 506 as shown in
The computer system 1200 is shown comprising hardware elements that may be electrically coupled via a bus 1202, or may otherwise be in communication by a hardwired and/or wireless connection as appropriate. The hardware elements may include a processing unit with at least one processor 1204 that may include, without limitation, one or more general-purpose processors and/or one or more special-purpose processors (such as digital signal processing chips, graphics acceleration processors, and/or the like); one or more input devices 1206, which can include, without limitation, a remote control, a mouse, a keyboard, and/or the like; and one or more output devices 1208, which can include, without limitation, a presentation device (e.g., television), a printer, and/or the like.
The computer system 1200 may further include and/or be in communication with at least one non-transitory storage device 1210, which may comprise, without limitation, local and/or network accessible storage, and/or can include, without limitation, a disk drive, a drive array, an optical storage device, a solid-State storage device, such as a random access memory, and/or a read-only memory, which can be programmable, flash-updateable, and/or the like. Such storage devices may be configured to implement any appropriate data stores, including, without limitation, various file systems, database structures, and/or the like.
The computer system 1200 might also include a communications subsystem 1212, which can include, without limitation, a modem, a network card (wireless or wired), an infrared communication device, a wireless communication device, and/or a chipset (such as a Bluetooth™ device, a Wi-Fi device, a WiMax device, cellular communication facilities (e.g., GSM, WCDMA, LTE, etc.), and/or the like. The communications subsystem 1212 may permit data to be exchanged with a network (such as the network described below, to name one example), other computer systems, and/or any other devices described herein. In many embodiments, the computer system 1200 will further comprise a working memory 1214, which may include a random access memory and/or a read-only memory device, as described above.
The computer system 1200 also can comprise software elements, shown as being currently located within the working memory 1214, including an operating system 1216, device drivers, executable libraries, and/or other code, such as one or more application programs 1218, which may comprise computer programs provided by various embodiments, and/or may be designed to implement methods, and/or configure systems, provided by other embodiments, as described herein. By way of example, one or more procedures described with respect to the method(s) discussed above, and/or system components might be implemented as code and/or instructions executable by a computer (and/or a processor within a computer); in an aspect, then, such code and/or instructions can be used to configure and/or adapt a general-purpose computer (or other device) to perform one or more operations in accordance with the described methods.
A set of these instructions and/or code might be stored on a non-transitory computer-readable storage medium, such as the storage device(s) 1210 described above. In some cases, the storage medium might be incorporated within a computer system, such as the computer system 1200. In other embodiments, the storage medium might be separate from a computer system (e.g., a removable medium, such as flash memory), and/or provided in an installation package, such that the storage medium can be used to program, configure, and/or adapt a general-purpose computer with the instructions/code stored thereon. These instructions might take the form of executable code, which is executable by the computer system 1200 and/or might take the form of source and/or installable code, which, upon compilation and/or installation on the computer system 1200 (e.g., using any of a variety of generally available compilers, installation programs, compression/decompression utilities, etc.), then takes the form of executable code.
It will be apparent to those skilled in the art that substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.), or both. Further, connection to other computing devices such as network input/output devices may be employed.
As mentioned above, in one aspect, some embodiments may employ a computer system (such as the computer system 1200) to perform methods in accordance with various embodiments of the invention. According to a set of embodiments, some or all of the procedures of such methods are performed by the computer system 1200 in response to the processor 1204 executing one or more sequences of one or more instructions (which might be incorporated into the operating system 1216 and/or other code, such as an application program 1218) contained in the working memory 1214. Such instructions may be read into the working memory 1214 from another computer-readable medium, such as one or more of the storage device(s) 1210. Merely by way of example, execution of the sequences of instructions contained in the working memory 1214 may cause the processor(s) 1204 to perform one or more procedures of the methods described herein.
The terms “machine-readable medium” and “computer-readable medium,” as used within the present disclosure, may refer to any non-transitory medium that participates in providing data that causes a machine to operate in a specific fashion. In an embodiment implemented using the computer system 1200, various computer-readable media might be involved in providing instructions/code to the processor(s) 1204 for execution and/or might be used to store and/or carry such instructions/code. In many implementations, a computer-readable medium is a physical and/or tangible storage medium. Such a medium may take the form of a non-volatile media or volatile media. Non-volatile media may include, for example, optical and/or magnetic disks, such as the storage device(s) 1210. Volatile media may include, without limitation, dynamic memory, such as the working memory 1214.
Example forms of physical and/or tangible computer-readable media may include a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, a RAM, a PROM, EPROM, a FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read instructions and/or code.
Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to the processor(s) 1204 for execution. By way of example, the instructions may initially be carried on a magnetic disk and/or optical disc of a remote computer. A remote computer might load the instructions into its dynamic memory and send the instructions as signals over a transmission medium to be received and/or executed by the computer system 1200.
The communications subsystem 1212 (and/or components thereof) generally will receive signals, and the bus 1202 then might carry the signals (and/or the data, instructions, etc. carried by the signals) to the working memory 1214, from which the processor(s) 1204 retrieve and execute the instructions. The instructions received by the working memory 1214 may optionally be stored on the non-transitory storage device 1210 either before or after execution by the processor(s) 1204.
The computer system 1200 is one example of system that may be used to perform embodiments described herein. Various other devices and/or components may be used in place of or in conjunction with the computer system 1200. For example, an integrated circuit, microcontroller, and/or a field-programmable gate array (FPGA) may be used.
The use of “adapted to” or “configured to” herein is meant as open and inclusive language that does not foreclose devices adapted to or configured to perform additional tasks or steps. Additionally, the use of “based on” is meant to be open and inclusive, in that a process, step, calculation, or other action “based on” one or more recited conditions or values may, in practice, be based on additional conditions or values beyond those recited. Headings, lists, and numbering included herein are for ease of explanation only and are not meant to be limiting.
While the present subject matter has been described in detail with respect to specific embodiments thereof, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing, may readily produce alterations to, variations of, and equivalents to such embodiments. Accordingly, it should be understood that the present disclosure has been presented for purposes of example rather than limitation, and does not preclude inclusion of such modifications, variations, and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art.
Number | Name | Date | Kind |
---|---|---|---|
5392043 | Ribner | Feb 1995 | A |
6577135 | Matthews et al. | Jun 2003 | B1 |
6741120 | Tan | May 2004 | B1 |
7061230 | Kleine | Jun 2006 | B2 |
8773184 | Petrov | Jul 2014 | B1 |
20030169107 | LeChevalier | Sep 2003 | A1 |
20080062733 | Gay | Mar 2008 | A1 |
20130113650 | Behbahani et al. | May 2013 | A1 |
Number | Date | Country |
---|---|---|
1 515 430 | Mar 2005 | EP |
Entry |
---|
International Search Report and Written Opinion mailed dated Sep. 15, 2014 as received in PCT Application No. PCT/US2014/04029. |
Number | Date | Country | |
---|---|---|---|
20140354343 A1 | Dec 2014 | US |
Number | Date | Country | |
---|---|---|---|
61831051 | Jun 2013 | US |