{"id":23544,"date":"2025-04-25T20:33:27","date_gmt":"2025-04-25T20:33:27","guid":{"rendered":"https:\/\/liquidinstruments.com\/?p=23544"},"modified":"2025-12-08T03:15:59","modified_gmt":"2025-12-08T03:15:59","slug":"building-dual-boxcar-averagers","status":"publish","type":"post","link":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/","title":{"rendered":"Building dual boxcar averagers","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column]\n    <div data-component='call_to_action' class='vc_row-fluid cta w-full mx-auto cta-outline'>\n      <div class='flex w-full gap-4 flex-col items-center'>\n      \n        <div class='max-w-prose wpb_column vc_column_container vc_col-sm-12'>\n          <div class='vc_column-inner'>\n            \n            <p><span style=\"font-weight: 400;\">This application note serves as a follow-up to Part 1 of this series, <a href=\"https:\/\/liquidinstruments.com\/application-notes\/snr-boxcar-averager\/\">Improving SNR measurement with a boxcar averager<\/a>. This app note explores the configuration and operational principles of dual boxcar averagers, with an emphasis on their implementation using <\/span><a href=\"https:\/\/liquidinstruments.com\/moku-cloud-compile\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Moku Cloud Compile<\/span><\/a><span style=\"font-weight: 400;\"> on Moku:Pro.<\/span><\/p>\n\n          <\/div>\n        <\/div>\n        <div class=' flex flex-row gap-4 xs:flex-col'>\n          <a class=\"button relative gap-2 items-center blue filled medium  \" href=\"https:\/\/liquidinstruments.com\/products\/hardware-platforms\/mokupro\/\" title=\"Configure now\" target=\"\"><span class=\"flex-1\">Configure now<\/span><\/a>\n  <a class=\"button relative gap-2 items-center blue filled medium  \" href=\"https:\/\/github.com\/liquidinstruments\/moku-examples\/tree\/main\/mc\/HDLCoder\/hdlcoder_boxcar\" title=\"View HDL files\" target=\"_blank\"><span class=\"flex-1\">View HDL files<\/span><\/a>\n  \n  \n        <\/div>\n      <\/div>\n    <\/div>[vc_column_text css=&#8221;&#8221;]<\/p>\n<h2>The working principle of dual boxcar averagers<\/h2>\n<p><span style=\"font-weight: 400;\">Dual boxcar averagers are essential tools for advanced measurement techniques, particularly in pump-probe experiments and other applications sensitive to DC offsets. Expanding on the capabilities of single boxcar averagers, dual boxcar systems enhance performance by incorporating multiple synchronized single boxcar averagers.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In a pump-probe spectroscopy experiment, the pump pulse excites the sample, promoting electrons from the ground state to a vibrational or electronically excited state. The resulting intensity modulation of the probe pulse encodes critical information about molecular vibrations, population dynamics, and excited-state lifetimes. When the repetition rate of the pump laser is half that of the probe laser, only every alternate probe pulse undergoes the pump-induced modulation, while the others serve as a reference. Consequently, to accurately extract the net pump-probe signal, the system must independently integrate and analyze two consecutive probe pulses within each pump trigger period. This approach necessitates the use of two boxcar averagers to enable simultaneous signal processing of both probe pulses within each cycle.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The operational diagram for dual boxcar averagers is shown in Figure 1, where the baseline gate window and the boxcar gate window are illustrated. Both windows are activated by the same trigger signal and have the same gate width, but they are set with different trigger delays. As a result, the gate windows are shifted to align with specific parts of the input signal. In a pump-probe experiment, this setup enables the system to measure two pulses separately and calculate their difference.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The output of the dual boxcar averager is a single value representing the difference between the integrals of two pulses. This difference reflects the characteristics of the measured sample.<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23547 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-134807.png\" alt=\"\" width=\"1488\" height=\"440\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-134807.png 1488w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-134807-300x89.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-134807-1024x303.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-134807-768x227.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-134807-600x177.png 600w\" sizes=\"(max-width: 1488px) 100vw, 1488px\" \/>Figure 1: The operational principle of dual boxcar averagers. One pair of pulses are analyzed at the same time. The trigger signal enables two integrating boxcar gates with identical gate widths and unique trigger delays.<\/p>\n<p class=\"NormalLight\" style=\"margin-top: 6.0pt;\">The implementation of dual boxcar averagers requires simply replicating the design of a single boxcar averager, with only a few additional modifications. For additional background, the boxcar averager is described in <a href=\"https:\/\/liquidinstruments.com\/application-notes\/snr-boxcar-averager\/\" target=\"_blank\" rel=\"noopener\">this application note<\/a>. The fundamental structure of the dual boxcar averager is depicted in Figure 2. The \u201cSingle Boxcar\u201d denotes a fully functional single boxcar averager with dedicated control registers. The changes include introducing extra subtractors and a signal selection mechanism to manage multiple signals at the output stage.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23557 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135653.png\" alt=\"\" width=\"756\" height=\"632\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135653.png 756w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135653-300x251.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135653-600x502.png 600w\" sizes=\"(max-width: 756px) 100vw, 756px\" \/>Figure 2: A block diagram of a dual boxcar averager. Each &#8220;Single Boxcar&#8221; is a fully functional boxcar averager block that receives one pulse signal and one trigger signal to perform one boxcar averager. The dual boxcar averager includes two sets of boxcar averagers. Two results of the boxcar averagers will be subtracted to extract the differential measurement.<\/p>\n<p>The constructed boxcar averager has two pairs of dual boxcar averagers instead of one. Some applications go further, requiring not only the differential measurement between two pulses, but also the absolute intensity of each pulse with the baseline subtracted. To address this need, a second set of dual boxcar averagers is introduced, with one boxcar integrating the pulse signal and the other one integrating the DC baseline. By removing the baseline, the system recovers the absolute intensity of laser pulse signals and minimizes background noise. This approach is particularly important as fluctuations in the baseline can introduce unwanted noise, reducing the precision and reliability of the measurements.<\/p>\n<p>This application note focuses on operational guidance. For more details about the structure, refer to the <a href=\"https:\/\/github.com\/liquidinstruments\/moku-examples\/tree\/main\/mc\/HDLCoder\/hdlcoder_boxcar\" target=\"_blank\" rel=\"noopener\">Simulink model on GitHub<\/a>.<\/p>\n<h2>Implementing dual boxcar averagers<\/h2>\n<p class=\"NormalLight\" style=\"margin-top: 6.0pt;\">The operation of dual boxcar averagers follows the same fundamental process as a single boxcar averager. However, dual boxcar averagers offer multiple output modes, allowing users to select and output values computed by different averagers.<\/p>\n<p class=\"NormalLight\" style=\"margin-top: 6.0pt;\">This section outlines how to operate dual boxcar averagers on Moku:Pro using a Python control panel and Moku Cloud Compile control registers. The Python control panel, developed with the Moku Python API, provides a graphical interface for controlling the dual boxcar averagers. A key advantage of this interface is its ability to automatically convert between bits, volts, and nanoseconds, simplifying the configuration process. In contrast, while the Moku Cloud Compile control registers also offer full control, they require manual value conversions, a topic explored in more detail later in this application note.<\/p>\n<h3>Python control panel<\/h3>\n<h3>(1) Adjusting the trigger level<\/h3>\n<p class=\"NormalLight\" style=\"margin-top: 6.0pt;\">In this experiment, the trigger signal has an amplitude of 150 mV. Setting the trigger level to 75 mV ensures reliable and stable triggering for boxcar integration. The boxcar window appears only when the system is properly triggered; otherwise, neither the stable pulse signal nor the trigger signal will be visible. Figure 3(a) illustrates a scenario where the boxcar window fails to activate because the trigger level is set higher than the trigger signal amplitude.<\/p>\n<p class=\"NormalLight\" style=\"margin-top: 6.0pt;\">Figure 3(b) displays two boxcar windows with intentionally different amplitudes to distinguish between the pulse boxcar and the baseline boxcar. The larger amplitude corresponds to the pulse boxcar, while the smaller amplitude represents the baseline boxcar.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23556 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135731.png\" alt=\"\" width=\"741\" height=\"680\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135731.png 741w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135731-300x275.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135731-600x551.png 600w\" sizes=\"(max-width: 741px) 100vw, 741px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 3: System responses under different trigger level settings. (a) When the trigger level is set to 0.2 V, which exceeds the trigger signal amplitude of 0.15 V, the boxcar window fails to activate. As a result, neither the boxcar window nor the pulse signal is present. (b) Lowering the trigger level to 0.075 V \u2014 half the amplitude of the trigger signal \u2014 successfully triggers both boxcar windows, as shown by the red traces in the graph. The pulse boxcar gate exhibits a larger amplitude, whereas the baseline boxcar gate has a smaller amplitude.<\/p>\n<h3>(2) Aligning the triggered boxcar gate windows with the pulse signal and configuring the gate width<\/h3>\n<p>In this step, the trigger delay and boxcar gate width are optimized to precisely match the characteristics of the input signals. Since the system includes two pairs of dual boxcar averagers, the first task is to select which averager to configure. Setting the mode to &#8220;Align Averager0&#8221; allows adjustment of the trigger delay for the first dual boxcar averager.<\/p>\n<p>The trigger delays are set to ensure the boxcar windows align with the start of the pulses of interest. Once aligned, the gate width is adjusted to integrate most of the pulse duration, as shown in Figure 4. Both boxcar windows are configured to use the same gate width for consistency.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23555 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135757.png\" alt=\"\" width=\"741\" height=\"370\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135757.png 741w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135757-300x150.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135757-600x300.png 600w\" sizes=\"(max-width: 741px) 100vw, 741px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 4: The configuration of Averager0. The configuration mode is set to &#8220;Align Averager0&#8221; to adjust the first dual boxcar averager. The gate width is set to 35.2 ns, with a pulse trigger delay of 230.4 ns and a baseline trigger delay of 380.8 ns. These two boxcar windows are properly aligned with the pulses, ensuring accurate signal integration.<\/p>\n<p>Next, the trigger delays and gate width for Averager1 can be adjusted if an extra dual boxcar averager is needed. Like the previous step, two integrator gates are configured to analyze the corresponding signals. In Figure 5, the setup analyzes both the pulse and baseline signals. Consequently, the output from Averager1 represents the absolute signal amplitude of the first pulse.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23554 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135813.png\" alt=\"\" width=\"773\" height=\"375\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135813.png 773w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135813-300x146.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135813-768x373.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135813-600x291.png 600w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 5: The configuration of Averager1. The output mode is set to &#8220;Align Averager1.&#8221; The pulse trigger delay is set to 230.4 ns, identical to Averager0. However, the baseline trigger delay is set to 512 ns to measure the DC offset. This baseline trigger delay can be adjusted if the baseline boxcar window is configured to capture only the DC offset.<\/p>\n<p>For proper operation, the trigger delay difference must be greater than the pulse width. In Figure 6, the trigger delay difference is 25.6 ns, which is less than the gate width of 35.2 ns. As a result, the two boxcar gates overlap, leading to unintended behavior and triggering a warning message in the user interface.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23553 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135830.png\" alt=\"\" width=\"774\" height=\"384\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135830.png 774w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135830-300x149.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135830-768x381.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135830-600x298.png 600w\" sizes=\"(max-width: 774px) 100vw, 774px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 6: An incorrect setup of trigger delays and gate width. The trigger delay difference is 25.6 ns, determined by subtracting the pulse trigger delay of 230.4 ns from the baseline trigger delay of 256 ns. Since the resulting value is smaller than the gate width, there is an overlap between the boxcar gates. Consequently, the displayed boxcar windows (red trace) show a large abnormal peak, indicating the overlap of gates.<\/p>\n<p><strong>(3) Selecting number of averaging periods and adjusting the gain stage<\/strong><\/p>\n<p>Each averager outputs the difference between the pulse integrator and the baseline integrator. Proper configuration of the output gain is essential, as incorrect settings can cause output saturation. If saturation occurs, a warning message will appear in the text box (Figure 7). To correct this, the output gain should be reduced.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-23552 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135844.png\" alt=\"\" width=\"777\" height=\"370\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135844.png 777w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135844-300x143.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135844-768x366.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135844-600x286.png 600w\" sizes=\"(max-width: 777px) 100vw, 777px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 7: Output saturation caused by a high output gain. The mode is set to &#8220;Output Averager0&#8221; to display results from Averager0. The gain is configured to 0.2, resulting in an output of approximately -1.036 V, which is close to the -1.095 V saturation limit of Moku:Pro. A saturation warning is generated, indicating that the output gain is too high.<\/p>\n<p>The output of the boxcar averager is the sum of n boxcar integrated results rather than the average. This design choice is due to the computational complexity and resource demands of implementing a divider on an FPGA. Outputting the integrated results directly is more efficient than computing the actual average. When the output gain is properly configured, as shown in Figure 8, the averager output is displayed on the interface. The \u201cAveraged Output_0\u201d represents the rescaled real value, which is obtained by dividing the raw integration output by both the number of averages and the output gain. For instance, the raw value obtained from the boxcar averager output is approximately -0.5556 V, as shown on the scope. However, the displayed \u201cAveraged Output_0\u201d value is around -55.56 mV. This reduction by a factor of 10 is due to the averaging factor of 100 and a gain setting of 0.1, resulting in an overall raw gain of 10 for the averager in this case.<\/p>\n<p style=\"text-align: center;\">\\(\\text{Averaged} = \\frac{\\text{Summed Pulse Amplitude}}{\\text{# of Avg.} \\times \\text{Gain}}\\)<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23551 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135859-e1759271560835.png\" alt=\"\" width=\"803\" height=\"382\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135859-e1759271560835.png 803w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135859-e1759271560835-300x143.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135859-e1759271560835-768x365.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135859-e1759271560835-600x285.png 600w\" sizes=\"(max-width: 803px) 100vw, 803px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 8: Rescaled averager output with a proper output gain. The output gain is set to 0.1, and the averaged value is displayed as -55.56 mV. However, the scope reading (blue trace) shows approximately -0.5556 V. This discrepancy arises because the displayed value is rescaled to be 10 times smaller, resulting from the combined effect of a raw gain of 10 \u2014 determined by the 100 averaging factor and the 0.1 gain setting.<\/p>\n<p>Additionally, results from both averagers can be displayed simultaneously. By setting the output Mode to &#8220;Output Both,&#8221; users can view both outputs. The blue line in Figure 9 represents the results from Averager0, while the red line corresponds to Averager1. The data is streamed directly from Moku:Pro, and it can be further processed and analyzed using the Moku API.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23550 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135915.png\" alt=\"\" width=\"761\" height=\"371\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135915.png 761w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135915-300x146.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-135915-600x293.png 600w\" sizes=\"(max-width: 761px) 100vw, 761px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 9: Simultaneous output display of both averagers. The output mode is set to &#8220;Output Both&#8221; to enable the outputs of both dual boxcar averagers. The output gain is configured to 0.1 for Averager0 and 0.01 for Averager1. The averaged output values are then displayed on the control panel as -55.9 mV and 232.6 mV, respectively.<\/p>\n<h2>Moku Cloud Compile control registers<\/h2>\n<p>The dual boxcar averagers can also be controlled by manually adjusting the Moku Cloud Compile control registers within the Moku app. Table 1 outlines the functions associated with each port. The table is organized into three sections: the I\/O port definitions and shared control registers, followed by two separate sets of control registers: one for Averager0 and the other for Averager1. This structure allows for complete control over both boxcar averagers.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\">Table 1: Configurations of boxcar averager input, control, and output ports.<\/p>\n<table>\n<tbody>\n<tr>\n<td><span style=\"text-decoration: underline;\"><b>Signal ports<\/b><\/span><\/td>\n<td><span style=\"text-decoration: underline;\"><b>Data types<\/b><\/span><\/td>\n<td><span style=\"text-decoration: underline;\"><b>Explanations<\/b><\/span><\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\">\n<p style=\"text-align: center;\"><b>Shared I\/O ports and control registers<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">InputA<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Signed 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Input pulse signal<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">InputB<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Signed 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Trigger signal<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">OutputA<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Signed 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Boxcar averager output signal (single &amp; dual-output modes)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Input pulse signal (align mode)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">OutputB<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Signed 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Boxcar gate window (align mode &amp; single-output mode)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Boxcar averager output signal (dual-output mode)<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Signed 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Trigger level, active on the rising edge<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control15<\/span><\/td>\n<td><span style=\"font-weight: 400;\">4-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Control15 = 4 : Output both box averagers<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Control15 = 7 : Output averager_0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Control15 = 9 : Output averager_1<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Control15 = 13: Align averager_1<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Control15 = 15: Align averager_0<\/span><\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\">\n<p style=\"text-align: center;\"><b>Boxcar averager_0 control registers<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">PulseTriggerDelay_0, in the unit of clock cycle<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">BaselineTriggerDelay_0, in the unit of clock cycle<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">GateWidth_0, in the unit of clock cycle<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control4<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">AvgLength_0, Averager length, in the unit of results from boxcar integrator<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control5<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 32-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Gain_0, Output signal gain, for re-scaling results to 16-bit signals.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The lower 16 bits of Control5 are configured as fractional gain.<\/span><\/td>\n<\/tr>\n<tr>\n<td colspan=\"3\">\n<p style=\"text-align: center;\"><b>Boxcar averager_1 control registers<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control6<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">PulseTriggerDelay_1, in the unit of clock cycle<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control7<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">BaselineTriggerDelay_1, in the unit of clock cycle<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control8<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">GateWidth_1, in the unit of clock cycle<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control9<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 16-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">AvgLength_1, Averager length, in the unit of results from boxcar integrator<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Control10<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Unsigned 32-bit<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Gain_1, Output signal gain, for re-scaling results to 16-bit signals.<\/span><\/p>\n<p style=\"text-align: center;\"><span style=\"font-weight: 400;\">The lower 16 bits of Control10 are configured as fractional gain.<\/span><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h3>(1) Adjusting the trigger level<\/h3>\n<p>The Moku Cloud Compile block control registers are configured with the values shown in Figure 10 (b). The Switch Control is set as 15 to configure Averager0. The Trigger Level is set to 2,244, corresponding to a trigger threshold amplitude of \\(75 \\text{mV}\\) ( \\(\\frac{\\text{2244 LSBs}}{\\text{29925 LSBs\/V}} \\approx 75 \\text{mV}\\) where LSB stands for least significant bit and \\(29925 \\text{ LSBs\/V}\\) is the digital resolution of Moku:Pro). It is obvious that no boxcar window is triggered in Figure 10(a) because the Trigger Level is set to 0.2 V \\(\\left( \\frac{5985 \\text{ LSBs}}{29925 \\text{ LSBs\/V}} \\approx 200 \\text{ mV} \\right)\\), which is higher than the trigger signal amplitude.<\/p>\n<p>Prior to the alignment process, the Trigger Delay can be set to 0. For a Gate Width of 320 ns, its control register is configured as \\(\\frac{320 \\text{ ns}}{T_{clk}} = 100\\), where \\(T_{clk} = \\frac{1 \\text{ s}}{312.5 \\text{ MHz}} = 3.2 \\text{ ns}\\) on Moku:Pro.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23549 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140015.png\" alt=\"\" width=\"1430\" height=\"848\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140015.png 1430w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140015-300x178.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140015-1024x607.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140015-768x455.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140015-600x356.png 600w\" sizes=\"(max-width: 1430px) 100vw, 1430px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 10: Initial configuration of the Moku Cloud Compile control registers. (a) The trigger level is set to 0.2 V, and no boxcar windows are triggered. (b) The trigger level is set to 75 mV, and the gate width is configured to 320 ns, resulting in the display of a 320 ns boxcar window (blue trace).<\/p>\n<h3>(2) Aligning the triggered boxcar gate windows with the pulse signal and configuring the gate width<\/h3>\n<p><span style=\"font-weight: 400;\">Here, the adjustment begins by setting the <\/span><i><span style=\"font-weight: 400;\">Gate Width<\/span><\/i><span style=\"font-weight: 400;\"> to \\(11<\/span><span style=\"font-weight: 400;\"> \\times 3.2 \\text{ns} = 35.2 \\text{ns}<\/span><span style=\"font-weight: 400;\"> to match the pulse width. Next, the <\/span><i><span style=\"font-weight: 400;\">Pulse Trigger Delay<\/span><\/i><span style=\"font-weight: 400;\"> is set to \\)latex <\/span><span style=\"font-weight: 400;\">72 \\times 3.2 \\text{ns} = 230.4 \\text{ns}$<\/span><span style=\"font-weight: 400;\">, followed by the configuration of the <\/span><i><span style=\"font-weight: 400;\">Baseline Trigger Delay<\/span><\/i><span style=\"font-weight: 400;\"> to \\(<\/span><span style=\"font-weight: 400;\">119 \\times 3.2 \\text{ns} = 380.8 \\text{ns}\\)<\/span><span style=\"font-weight: 400;\">. As shown in Figure 11, this adjustment successfully aligns the blue (boxcar windows) and red (pulses) traces, ensuring that each pulse is properly integrated with its corresponding boxcar window.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Figure 11 illustrates two boxcar windows, each with a distinct amplitude to differentiate the pulse boxcar from the baseline boxcar. The larger amplitude corresponds to the pulse boxcar, while the smaller amplitude represents the baseline boxcar. Both boxcar windows are configured to use the same gate width for consistency.<\/span><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23548 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140045.png\" alt=\"\" width=\"674\" height=\"812\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140045.png 674w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140045-249x300.png 249w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140045-300x361.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140045-600x723.png 600w\" sizes=\"(max-width: 674px) 100vw, 674px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 11: Configuration of trigger delays and gate width for boxcar integration. The gate width is set to 35.2 ns, with a pulse trigger delay of 230.4 ns and a baseline trigger delay of 380.8 ns. The taller gate window is the pulse boxcar gate, and the shorter one is the baseline boxcar gate, ensuring proper integration of the target pulses.<\/p>\n<p>After configuring Averager0, the Trigger Delays and Gate Width for Averager1 can be adjusted if an extra dual boxcar averager is needed. Like the previous step, two integrator gates are set up to analyze the corresponding signals. In Figure 12, the configuration captures the probe pulse and the baseline (DC level) signal. As a result, the output from Averager1 reflects the absolute signal amplitude of the first pulse.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-23561 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140111.png\" alt=\"\" width=\"679\" height=\"812\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140111.png 679w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140111-251x300.png 251w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140111-300x359.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140111-600x718.png 600w\" sizes=\"(max-width: 679px) 100vw, 679px\" \/><\/p>\n<p style=\"text-align: center;\">Figure 12: Configuration of Averager1. The switch control was configured as 13 to visualize the boxcar windows of Averager1. The baseline trigger delay was configured to 160\u00d73.2 ns=512 ns, positioning the baseline boxcar in an empty region where it only integrates the DC offset.<\/p>\n<p>For proper operation, the trigger delay difference must be greater than the pulse width. In Figure 13, the trigger delay difference is $latex (79-72) \\times 3.2 \\text{ns} = 22.4 \\text{ns}, which is less than the gate width of 35.2 ns. This causes the two boxcar gates to overlap, which is not intended, and an abnormal peak can be observed in the blue line.<\/p>\n<h3><img decoding=\"async\" class=\"aligncenter wp-image-23560 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140140.png\" alt=\"\" width=\"674\" height=\"806\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140140.png 674w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140140-251x300.png 251w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140140-300x359.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140140-600x718.png 600w\" sizes=\"(max-width: 674px) 100vw, 674px\" \/><\/h3>\n<p style=\"text-align: center;\">Figure 13: Incorrect setup of trigger delays and gate width. The trigger delay difference is 22.4 ns, which is smaller than the gate width, leading to an overlap between the boxcar gates. Consequently, the boxcar windows displayed (blue trace) show a large abnormal peak, indicating the overlap of gates.<\/p>\n<h3 style=\"text-align: left;\">(3) Selecting the number of averaging periods and adjusting the gain stage<\/h3>\n<p style=\"text-align: left;\">Each averager generates an output representing the difference between the pulse integrator and the baseline integrator. Proper configuration of the output gain is crucial, as incorrect settings can result in output saturation. If saturation occurs, the output gain should be reduced accordingly.<\/p>\n<p style=\"text-align: left;\">The Gain Control is set to 65,536 in Figure 14(b), effectively configuring the least significant 16 bits (fractional bits) as all zero and the integer gain (the most significant 16 bits) as one. This establishes a unity gain for the boxcar averager output. If noticeable quantization errors occur, this value can be increased to amplify the output. For example, setting this control register to 655,360 applies a 10x gain, whereas lowering it to 32,768 results in a 0.5x attenuation to prevent saturation.<\/p>\n<p style=\"text-align: left;\">In Figure 14(a), the gain control is set to 6,553, corresponding to a 0.1x attenuation. As a result, the output is \u2013557.26 mV, which falls within the acceptable output range. In Figure 14(b), the readout value is \u20131.0950 V, which represents the saturation limit of Moku:Pro, indicating that Averager0 is saturated under this configuration. To avoid saturation, the gain should be reduced.<\/p>\n<p style=\"text-align: left;\">As discussed, the output of the boxcar averager is the summation of the integrated results from n boxcar windows, rather than the average. This approach is preferred because implementing a divider on the FPGA is resource-intensive and time-consuming. Therefore, outputting the integrated results is more efficient than computing the actual average. And the recovered value is \\(\\frac{-557.26 \\text{ mV}}{100 \\times 0.1} = -55.726 \\text{ mV}\\).<\/p>\n<p>&nbsp;<\/p>\n<h3><img decoding=\"async\" class=\"aligncenter wp-image-23559 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140223.png\" alt=\"\" width=\"1233\" height=\"727\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140223.png 1233w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140223-300x177.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140223-1024x604.png 1024w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140223-768x453.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140223-600x354.png 600w\" sizes=\"(max-width: 1233px) 100vw, 1233px\" \/><\/h3>\n<p style=\"text-align: center;\">Figure 14: Averager0 output with different gain settings. (a) The switch control is set to 7 to display results from Averager0. The average length is configured to 100, averaging 100 points from the boxcar integrator, with the gain set to 6,553 to apply a 0.1x attenuation. (b) The gain factor is increased to 65,536, resulting in a unity gain. This causes saturation, as indicated by the output value of \u20131.0950 V, which is the minimum output value of Moku:Pro.<\/p>\n<p>Additionally, the dual boxcar averagers are capable of outputting results from both boxcar averagers simultaneously. Two channels are used to display these values: the red channel (InA) represents the Averager0 output, while the blue channel (InB) corresponds to the Averager1 output. These outputs can be acquired using either the Moku <a href=\"https:\/\/liquidinstruments.com\/products\/integrated-instruments\/data-logger\/\" target=\"_blank\" rel=\"noopener\">Data Logger<\/a> or the Moku API for further data processing and analysis.<\/p>\n<h2><img decoding=\"async\" class=\"aligncenter wp-image-23558 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140247.png\" alt=\"\" width=\"637\" height=\"830\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140247.png 637w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140247-230x300.png 230w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140247-300x391.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2024\/08\/Screenshot-2025-04-15-140247-600x782.png 600w\" sizes=\"(max-width: 637px) 100vw, 637px\" \/><\/h2>\n<p style=\"text-align: center;\">Figure 15: <span style=\"font-weight: 400;\">The dual boxcar averager outputs.<\/span> <span style=\"font-weight: 400;\">The switch control is set to 4 to output the results from both averagers. The gain is configured to 0.1 for Averager0 and 0.01 for Averager1 to prevent saturation. Under these settings, the measured output values are \u2013558.33 mV for Averager0 and 232.65 mV for Averager1.<\/span><\/p>\n<h2>Summary<\/h2>\n<p>This application note examines the implementation of a dual boxcar averager, outlining its core structure, which comprises four single boxcar averagers grouped into two pairs. Each pair generates a differential output by calculating the difference between the pulse and baseline integrators. The note also explores configuration options, including a Python control panel and Moku Cloud Compile control registers, for seamless operation. This enhanced design makes the dual boxcar averager particularly well-suited for pump-probe experiments, offering an efficient solution for automated multi-boxcar processing and differential result generation.[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>[vc_row][vc_column][vc_column_text css=&#8221;&#8221;] The working principle of dual boxcar averagers Dual boxcar averagers are essential tools for advanced measurement techniques, particularly in pump-probe experiments and other applications sensitive to DC offsets. Expanding on the capabilities of single boxcar averagers, dual boxcar systems enhance performance by incorporating multiple synchronized single boxcar averagers. In a pump-probe spectroscopy experiment, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":59,"featured_media":22675,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-23544","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-notes","site-category-moku-cloud-compile","site-category-mokupro","site-category-python"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Building dual boxcar averagers - Liquid Instruments<\/title>\n<meta name=\"description\" content=\"Explorel boxcar averagers, their operational principles for advanced measurements like pump-probe experiments, and their implementation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building dual boxcar averagers\" \/>\n<meta property=\"og:description\" content=\"Explorel boxcar averagers, their operational principles for advanced measurements like pump-probe experiments, and their implementation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/\" \/>\n<meta property=\"og:site_name\" content=\"Liquid Instruments\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/LiquidInstruments\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-25T20:33:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-08T03:15:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Noah Monroy\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:site\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Monroy\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/\"},\"author\":{\"name\":\"Noah Monroy\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/3e07e87049698dbcb79f8d92a4d30018\"},\"headline\":\"Building dual boxcar averagers\",\"datePublished\":\"2025-04-25T20:33:27+00:00\",\"dateModified\":\"2025-12-08T03:15:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/\"},\"wordCount\":3390,\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg\",\"articleSection\":[\"Application notes\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/\",\"url\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/\",\"name\":\"Building dual boxcar averagers - Liquid Instruments\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg\",\"datePublished\":\"2025-04-25T20:33:27+00:00\",\"dateModified\":\"2025-12-08T03:15:59+00:00\",\"description\":\"Explorel boxcar averagers, their operational principles for advanced measurements like pump-probe experiments, and their implementation.\",\"breadcrumb\":{\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage\",\"url\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg\",\"contentUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/liquidinstruments.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building dual boxcar averagers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/liquidinstruments.com\/#website\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"name\":\"Liquid Instruments\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/liquidinstruments.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/liquidinstruments.com\/#organization\",\"name\":\"Liquid Instruments\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"width\":1000,\"height\":924,\"caption\":\"Liquid Instruments\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/LiquidInstruments\/\",\"https:\/\/x.com\/liquidinstrmnts\",\"https:\/\/www.instagram.com\/liquidinstruments\/\",\"https:\/\/www.linkedin.com\/company\/liquidinstruments\/\",\"https:\/\/www.youtube.com\/c\/LiquidInstruments\",\"https:\/\/vimeo.com\/liquidinstruments\"],\"hasMerchantReturnPolicy\":{\"@type\":\"MerchantReturnPolicy\",\"merchantReturnLink\":\"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/3e07e87049698dbcb79f8d92a4d30018\",\"name\":\"Noah Monroy\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c659d7b8514100af4aaaac7dd06c3929df909f5d7eb7fb20be4d16cf26b8cb10?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c659d7b8514100af4aaaac7dd06c3929df909f5d7eb7fb20be4d16cf26b8cb10?s=96&d=wavatar&r=g\",\"caption\":\"Noah Monroy\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Building dual boxcar averagers - Liquid Instruments","description":"Explorel boxcar averagers, their operational principles for advanced measurements like pump-probe experiments, and their implementation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/","og_locale":"en_US","og_type":"article","og_title":"Building dual boxcar averagers","og_description":"Explorel boxcar averagers, their operational principles for advanced measurements like pump-probe experiments, and their implementation.","og_url":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/","og_site_name":"Liquid Instruments","article_publisher":"https:\/\/www.facebook.com\/LiquidInstruments\/","article_published_time":"2025-04-25T20:33:27+00:00","article_modified_time":"2025-12-08T03:15:59+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg","type":"image\/jpeg"}],"author":"Noah Monroy","twitter_card":"summary_large_image","twitter_creator":"@liquidinstrmnts","twitter_site":"@liquidinstrmnts","twitter_misc":{"Written by":"Noah Monroy","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#article","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/"},"author":{"name":"Noah Monroy","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/3e07e87049698dbcb79f8d92a4d30018"},"headline":"Building dual boxcar averagers","datePublished":"2025-04-25T20:33:27+00:00","dateModified":"2025-12-08T03:15:59+00:00","mainEntityOfPage":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/"},"wordCount":3390,"publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"image":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg","articleSection":["Application notes"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/","url":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/","name":"Building dual boxcar averagers - Liquid Instruments","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage"},"image":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg","datePublished":"2025-04-25T20:33:27+00:00","dateModified":"2025-12-08T03:15:59+00:00","description":"Explorel boxcar averagers, their operational principles for advanced measurements like pump-probe experiments, and their implementation.","breadcrumb":{"@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#primaryimage","url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg","contentUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2025\/02\/White-Shirt-Female-Engineer-MokuPro-Boxcar-Waveforms-scaled.jpg","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/liquidinstruments.com\/application-notes\/building-dual-boxcar-averagers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/liquidinstruments.com\/"},{"@type":"ListItem","position":2,"name":"Building dual boxcar averagers"}]},{"@type":"WebSite","@id":"https:\/\/liquidinstruments.com\/#website","url":"https:\/\/liquidinstruments.com\/","name":"Liquid Instruments","description":"","publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/liquidinstruments.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/liquidinstruments.com\/#organization","name":"Liquid Instruments","url":"https:\/\/liquidinstruments.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","contentUrl":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","width":1000,"height":924,"caption":"Liquid Instruments"},"image":{"@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/LiquidInstruments\/","https:\/\/x.com\/liquidinstrmnts","https:\/\/www.instagram.com\/liquidinstruments\/","https:\/\/www.linkedin.com\/company\/liquidinstruments\/","https:\/\/www.youtube.com\/c\/LiquidInstruments","https:\/\/vimeo.com\/liquidinstruments"],"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","merchantReturnLink":"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/"}},{"@type":"Person","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/3e07e87049698dbcb79f8d92a4d30018","name":"Noah Monroy","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c659d7b8514100af4aaaac7dd06c3929df909f5d7eb7fb20be4d16cf26b8cb10?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c659d7b8514100af4aaaac7dd06c3929df909f5d7eb7fb20be4d16cf26b8cb10?s=96&d=wavatar&r=g","caption":"Noah Monroy"}}]}},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/23544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/users\/59"}],"replies":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/comments?post=23544"}],"version-history":[{"count":58,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/23544\/revisions"}],"predecessor-version":[{"id":26796,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/23544\/revisions\/26796"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media\/22675"}],"wp:attachment":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media?parent=23544"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/categories?post=23544"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/tags?post=23544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}