US20140207418A1 - Real-Time Resampling of Optical Coherence Tomography Signals Using a Field Programmable Gate Array - Google Patents
Real-Time Resampling of Optical Coherence Tomography Signals Using a Field Programmable Gate Array Download PDFInfo
- Publication number
- US20140207418A1 US20140207418A1 US13/748,702 US201313748702A US2014207418A1 US 20140207418 A1 US20140207418 A1 US 20140207418A1 US 201313748702 A US201313748702 A US 201313748702A US 2014207418 A1 US2014207418 A1 US 2014207418A1
- Authority
- US
- United States
- Prior art keywords
- phase
- signal
- control signal
- points
- recalculated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012952 Resampling Methods 0.000 title claims abstract description 31
- 238000012014 optical coherence tomography Methods 0.000 title claims description 84
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 37
- 238000001914 filtration Methods 0.000 claims description 12
- 230000009466 transformation Effects 0.000 claims description 6
- 230000003111 delayed effect Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000003287 optical effect Effects 0.000 abstract description 24
- 238000012876 topography Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 238000012360 testing method Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 238000003384 imaging method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003750 conditioning effect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 208000029078 coronary artery disease Diseases 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000005305 interferometry Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 210000001525 retina Anatomy 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B9/00—Measuring instruments characterised by the use of optical techniques
- G01B9/02—Interferometers
- G01B9/02001—Interferometers characterised by controlling or generating intrinsic radiation properties
- G01B9/02002—Interferometers characterised by controlling or generating intrinsic radiation properties using two or more frequencies
- G01B9/02004—Interferometers characterised by controlling or generating intrinsic radiation properties using two or more frequencies using frequency scans
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B9/00—Measuring instruments characterised by the use of optical techniques
- G01B9/02—Interferometers
- G01B9/02055—Reduction or prevention of errors; Testing; Calibration
- G01B9/02062—Active error reduction, i.e. varying with time
- G01B9/02067—Active error reduction, i.e. varying with time by electronic control systems, i.e. using feedback acting on optics or light
- G01B9/02069—Synchronization of light source or manipulator and detector
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B9/00—Measuring instruments characterised by the use of optical techniques
- G01B9/02—Interferometers
- G01B9/0209—Low-coherence interferometers
- G01B9/02091—Tomographic interferometers, e.g. based on optical coherence
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N21/00—Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
- G01N21/17—Systems in which incident light is modified in accordance with the properties of the material investigated
- G01N21/47—Scattering, i.e. diffuse reflection
- G01N21/4795—Scattering, i.e. diffuse reflection spatially resolved investigating of object in scattering medium
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/0059—Measuring for diagnostic purposes; Identification of persons using light, e.g. diagnosis by transillumination, diascopy, fluorescence
- A61B5/0062—Arrangements for scanning
- A61B5/0066—Optical coherence imaging
Definitions
- the present invention relates to the field of instrumentation, and more particularly to the design of optical coherence tomography systems.
- instruments collect data or information from an environment or unit under test (UUT), and may also analyze and process acquired data. Some instruments provide test stimuli to a UUT. Examples of instruments include oscilloscopes, digital multimeters, pressure sensors, arbitrary waveform generators, digital waveform generators, etc.
- the information that may be collected by respective instruments includes information describing voltage, resistance, distance, velocity, pressure, oscillation frequency, humidity, and/or temperature, among others.
- Computer-based instrumentation systems typically include transducers for capturing a physical phenomenon and generating a representative electrical signal, signal conditioning logic to perform amplification on the electrical signal, isolation, and/or filtering, and analog-to-digital (A/D) conversion logic for receiving analog signals and providing corresponding digital signals to the host computer system.
- transducers for capturing a physical phenomenon and generating a representative electrical signal
- signal conditioning logic to perform amplification on the electrical signal
- isolation, and/or filtering isolation, and/or filtering
- A/D analog-to-digital
- the instrumentation hardware or device is typically an expansion board plugged into one of the I/O slots of the computer system.
- the instrumentation hardware is coupled to the computer system via other means such as through a VXI (VME extensions for Instrumentation) bus, a GPIB (General Purpose Interface Bus), a PXI (PCI extensions for Instrumentation) bus, Ethernet, a serial port or bus, or parallel port of the computer system.
- the instrumentation hardware may include a DAQ (Data Acquisition) board, a computer-based instrument such as a multimeter, or another type of instrumentation device.
- a chassis and boards inserted in the chassis may operate as a standalone instrument or instrument suite, although in some cases a host computer may be used to configure or program the boards prior to, or during operation.
- the instrumentation hardware may be configured and controlled by software executing on a host computer system coupled to the system, or by a controller card installed in the chassis.
- the software for configuring and controlling the instrumentation system typically includes driver software and the instrumentation application software, or the application.
- the driver software serves to interface the instrumentation hardware to the application and is typically supplied by the manufacturer of the instrumentation hardware or by a third party software vendor.
- the application is typically developed by the user of the instrumentation system and is tailored to the particular function that the user intends the instrumentation system to perform.
- the instrumentation hardware manufacturer or third party software vendor sometimes supplies application software for applications that are common, generic, or straightforward.
- Instrumentation driver software provides a high-level interface to the operations of the instrumentation device.
- the instrumentation driver software may operate to configure the instrumentation device for communication with the host system and to initialize hardware and software to a known state.
- the instrumentation driver software may also maintain a soft copy of the state of the instrument and initiated operations. Further, the instrumentation driver software communicates over the bus to move the device from state to state and to respond to device requests.
- OCT Optical Coherence Tomography
- 3D three-dimensional
- interferometry refers to various techniques that involve the superimposing of waves in order to extract information about those waves.
- the use of relatively long wavelength light in OCT allows penetration into the scattering medium.
- OCT optical coherence tomography
- SS-OCT Swept Source Optical Coherence Tomography
- SSLS Swept Source Laser System
- SS-OCT uses a laser that generates optical signals whose wavelength is swept over a narrow band.
- the optical signal is then split into a reference arm and a sample arm by an optical beam splitter, and the reflections from the sample arm and the reference arm are combined by an optical combiner to produce interference/fringe patterns.
- the interference patterns are converted into electronic signals by a photo detector, and a digitizer is used to record these resulting electronic signals (e.g. to produce a digital representation of those electronic signals).
- a Swept Source Laser SSL
- SSL Swept Source Laser
- K-Clock a clock signal
- the K-Clock is uniform in the optical frequency domain but not in the time domain, and can be used as a sampling clock for compensating for the non-linearities in the optical signal.
- the K-Clock can be generated internal or external to the laser, using an interferometric setup. In order to image deeper depths with greater resolution, a high speed K-Clock is typically required.
- Various embodiments of the invention include a signal processing system implementing a resampling approach on a Field Programmable Gate Array (FPGA), which operates according to a low frequency K-Clock to sample OCT signals, as opposed to relying on a high frequency K-Clock to obtain the same information.
- FPGA Field Programmable Gate Array
- Traditional systems that perform sampling of OCT signals typically use a K-Clock that is external to the digitizer.
- K-Clock frequency to be higher than the maximum frequency of the OCT signal by a factor of at least two (2).
- the K-Clock signal fringe quality degrades as the optical delay between the two arms that produce the interference pattern increase. Such is the case, for example, when a high frequency fringe pattern such as a K-Clock needs to be generated.
- Another approach to solve this problem includes compensating for the non-linearities in software. These approaches use off-line processing of the data to linearize the OCT Signal in K-space by collecting the K-Clock signal once, or using a pre-recorded K-Clock signal. This approach also has its limitations, since the laser sources are unstable and drift over time, which results in a variance of the signal properties of the K-Clock signal.
- the OCT Signal may be oversampled with a low-frequency K-Clock.
- the K-Clock is uniform in the optical frequency (wave-number) domain and non-uniform in the time-domain.
- An OCT signal acquired using a free-running internal clock of a digitizer is uniform in the time-domain and non-uniform in the optical frequency domain. Therefore, a resampler may be used to resample the OCT signal uniformly in the optical frequency domain. Accordingly, one advantage of various embodiments of the SS-OCT system disclosed herein is the elimination of the need for a high frequency K-Clock, which is required in present day systems when imaging at deeper axial depths within tissues and materials.
- the embodiments also present a real-time processing solution with low latency for resampling, and make it useful for implementation on embedded platforms such as an FPGA.
- the need for additional hardware circuitry to provide an external K-Clock for analog-to-digital conversion (ADC) is therefore also eliminated.
- a method for performing optical coherence tomography may include extracting phase information (which may be normalized phase information) from a control signal, unwrapping the extracted phase information, multiplying the unwrapped extracted phase information with an interpolation factor to obtain recalculated phase information, determining one or more integer crossing points corresponding to the recalculated phase information, and interpolating one or more values of the OCT signal according to the determined one or more integer crossing points.
- the control signal may be a discrete signal (or discrete-time signal), which may be obtained by digitizing an analog signal that is a sinusoidal signal with varying frequency over time.
- the phase information of the control signal may be extracted by performing a filtering operation on the control signal, where the filtering operation includes performing a Hilbert transformation on the control signal, phase shifting the control signal, and/or reducing distortion and noise in the control signal.
- the extracting, unwrapping, multiplying, determining, and interpolating operations may all be performed in real-time, with various operations overlapping with each other when sufficient information is present for each given operation to be performed.
- logic gates in an FPGA may be interconnected (i.e. programmed) to perform SS-OCT operations.
- the FPGA may be operated to extract phase information from a control signal, unwrap the extracted phase information, multiply the unwrapped extracted phase information with an interpolation factor to obtain recalculated phase information, determine one or more integer crossing points corresponding to the recalculated phase information, and interpolate one or more values of an incoming OCT signal according to the determined one or more integer crossing points.
- the FPGA may further be operated to extract the phase information from the control signal by filtering the control signal, which may include a Hilbert transformation on the control signal, phase shifting the control signal, and/or reducing distortion and noise in the control signal.
- the control signal may be a digitized version of an analog sinusoidal signal whose frequency varies over time.
- a method for processing a data signal may include identifying equally spaced points in phase of a control signal, where each identified point in phase corresponds to a respective pair of values of the data signal, and resampling the data signal according to the identified equally spaced points in phase of the control signal.
- the resampling is performed for each identified point in phase, and includes linearly interpolating a corresponding value of the data signal between the respective pair of values of the data signal corresponding to the identified point in phase.
- the equally spaced points in phase are identified by extracting phase information from the control signal, obtaining points in phase from the extracted phase information, multiplying each obtained point in phase with an interpolation factor to obtain recalculated points in phase—with the recalculated points in phase defining a range of recalculated points in phase—and identifying desired points in phase within the range of recalculated points in phase.
- Each desired point is evenly divisible by a specified number, e.g. 360 degrees, and has a value that falls between respective values of a corresponding pair of recalculated points in phase within the range of recalculated points in phase, and represents one of the identified equally spaced points in phase. Identifying the equally spaced points in phase of the control signal and the resampling of the data signal may be performed in real-time, and at least a portion of the identifying may be performed concurrently with the resampling operation.
- a system configurable to perform SS-OCT may include a first logic element to extract phase information, e.g. instantaneous phase information from a control signal, a second logic element to obtain phase points from the extracted (instantaneous) phase information, a third logic element to multiply each obtained phase point with an interpolation factor to obtain recalculated phase points, a fourth logic element to identify desired phase points within a range defined by the recalculated phase points, and a fifth logic element to resample an incoming signal according to the identified desired phase points, where each desired phase point is evenly divisible by a specified number (e.g.
- the first logic element may include a bandpass filter, and/or a Hilbert Transform implemented as a finite impulse response filter.
- the first logic element may first obtain a representation of the control signal as a complex function, and obtain the phase information based on an imaginary component of the representation of the control signal and a delayed version of the control signal.
- the system may also include circuitry to generate the control signal, and in at least one embodiment, the circuitry includes a first signal generator to generate an analog signal, and an analog-to-digital converter to generate the control signal by digitizing the analog signal.
- the analog signal may be a sinusoidal signal with varying frequency over time.
- the incoming signal is an OCT signal
- the control signal is a K-Clock signal.
- At least the first, second, third, fourth, and fifth logic elements of the system may be implemented on an FPGA, and may perform their respective operations inline and in real-time.
- FIG. 1 shows an instrumentation control system with instruments networked together according to one embodiment of the invention
- FIG. 2 shows an industrial automation system with instruments networked together according to one embodiment of the invention
- FIG. 3 shows the simplified block diagram of a prior art optical coherence tomography (OCT) system
- FIG. 4 shows the simplified block diagram of a prior art OCT system that performs resampling
- FIG. 5 shows a signal diagram illustrating resampling of an OCT signal using a variable frequency K-Clock, with a resampling factor of 1;
- FIG. 6 shows a function diagram illustrating traditional phase unwrapping operation
- FIG. 7 shows a signal diagram illustrating phase variation of a sinusoidal signal over time
- FIG. 8 shows a signal diagram illustrating phase variation of a chirp signal over time
- FIG. 9 shows a function diagram illustrating operation of one embodiment of an OCT system that performs resampling
- FIG. 10 shows a function diagram illustrating the operation of the embodiment of the OCT system from FIG. 9 , with bandpass filtering combined with the Hilbert Transform filter;
- FIG. 11 shows a signal diagram illustrating resampling of an OCT signal with a resampling factor of 4;
- FIG. 12 shows a flow diagram of a method to resample an OCT signal according to one embodiment
- FIG. 13 shows a flow diagram of a method to resample an OCT signal according to another embodiment.
- Embodiments of the present invention may be used in systems configured to perform test and/or measurement functions, or to model and simulate functions, e.g., modeling or simulating a device or product being developed or tested, etc. More specifically, it may be used in applications requiring optical signal acquisition and processing for performing high resolution 3-dimensional (3D) imaging from within optical scattering media.
- the present invention may equally be used for a variety of applications, and is not limited to the specific applications disclosed herein. In other words, applications discussed in the present description are exemplary only, and the present invention may be used in any of various types of systems. Thus, the system and method of the present invention may be used in any number of different applications.
- a “discrete signal” or “discrete-time signal” is intended to mean a signal composed of a sequence of discrete values, in contrast to a continuous-time signal or analog signal, which has continuous amplitude over time.
- a discrete-time signal may have been obtained by sampling a continuous-time signal, in which case each value in the discrete signal is referred to as a sample. Accordingly, a discrete signal may be a digitized analog signal.
- FIG. 1 illustrates an exemplary instrumentation control system 100 which may be configured according to embodiments of the present invention.
- System 100 comprises a host computer 82 which may couple to one or more instruments configured to perform a variety of functions using timing control implemented according to various embodiments of the present invention.
- Host computer 82 may comprise a CPU, a display screen, memory, and one or more input devices such as a mouse or keyboard as shown.
- Computer 82 may operate with one or more instruments to analyze, measure, or control a unit under test (UUT) or process 150 .
- UUT unit under test
- the one or more instruments may include a GPIB instrument 112 and associated GPIB interface card 122 , a data acquisition board 114 inserted into or otherwise coupled with chassis 124 with associated signal conditioning circuitry 126 , a VXI instrument 116 , a PXI instrument 118 , a video device or camera 132 and associated image acquisition (or machine vision) card 134 , a motion control device 136 and associated motion control interface card 138 , and/or one or more computer based instrument cards 142 , among other types of devices.
- a GPIB instrument 112 and associated GPIB interface card 122 may include a data acquisition board 114 inserted into or otherwise coupled with chassis 124 with associated signal conditioning circuitry 126 , a VXI instrument 116 , a PXI instrument 118 , a video device or camera 132 and associated image acquisition (or machine vision) card 134 , a motion control device 136 and associated motion control interface card 138 , and/or one or more computer based instrument cards 142
- the computer system may couple to and operate with one or more of these instruments.
- the computer system may be coupled to one or more of these instruments via a network connection, such as an Ethernet connection, for example, which may facilitate running a high-level synchronization protocol between the computer system and the coupled instruments.
- the instruments may be coupled to the unit under test (UUT) or process 150 , or may be coupled to receive field signals, typically generated by transducers.
- System 100 may be used in a data acquisition and control applications, in a test and measurement application, an image processing or machine vision application, a process control application, a man-machine interface application, a simulation application, or a hardware-in-the-loop validation application, among others.
- FIG. 2 illustrates an exemplary industrial automation system 160 that may be configured according to embodiments of the present invention.
- Industrial automation system 160 may be similar to instrumentation or test and measurement system 100 shown in FIG. 2A . Elements that are similar or identical to elements in FIG. 1 have the same reference numerals for convenience.
- System 160 may comprise a computer 82 which may couple to one or more devices and/or instruments configured to perform a variety of functions using timing control implemented according to various embodiments of the present invention.
- Computer 82 may comprise a CPU, a display screen, memory, and one or more input devices such as a mouse or keyboard as shown.
- Computer 82 may operate with the one or more devices and/or instruments to perform an automation function, such as MMI (Man Machine Interface), SCADA (Supervisory Control and Data Acquisition), portable or distributed data acquisition, process control, and advanced analysis, among others, on process or device 150 .
- MMI Man Machine Interface
- SCADA Supervisory Control and Data Acquisition
- portable or distributed data acquisition process control
- advanced analysis among others, on process or device 150 .
- the one or more devices may include a data acquisition board 114 inserted into or otherwise coupled with chassis 124 with associated signal conditioning circuitry 126 , a PXI instrument 118 , a video device 132 and associated image acquisition card 134 , a motion control device 136 and associated motion control interface card 138 , a field bus device 170 and associated field bus interface card 172 , a PLC (Programmable Logic Controller) 176 , a serial instrument 182 and associated serial interface card 184 , or a distributed data acquisition system, such as the Compact FieldPoint or CompactRIO systems available from National Instruments, among other types of devices.
- the computer system may couple to one or more of the instruments/devices via a network connection, such as an Ethernet connection.
- System 100 and/or 200 may be used for optical signal acquisition and processing through Optical Coherence Tomography (OCT), according to one set of embodiments.
- OCT Optical Coherence Tomography
- devices 124 , 126 and 114 may be adapted as part of a subsystem performing Swept Source Optical Coherence Tomography (SS-OCT).
- SS-OCT Swept Source Optical Coherence Tomography
- FIG. 3 The simplified block diagram of a basic prior art SS-OCT system is shown in FIG. 3 .
- a Laser 302 is used to generate the light, which is guided through various optics for performing the imaging on the “device under test” (DUT).
- the optics and DUT are shown in a single block 306 for ease of illustration.
- the resulting OCT signal is then provided to an input channel CH0 of ADC 308 , which is clocked at its CLK port with a K-Clock signal 304 generated based on Laser 302 .
- ADC then provides the digital output D out , representative of the OCT signal.
- K-Clock 304 is external to ADC 308 , and is a high-frequency clock, running in the range of 1 GHz, for example.
- the OCT Signal is sampled on the zero-crossings of the K-Clock 304 , as they are uniformly spaced in the optical frequency domain.
- FIG. 4 The simplified block diagram of a basic prior art SS-OCT system in which the OCT signal is resampled at the K-Clock zero-crossing domain is shown in FIG. 4 .
- the difference between the SS-OCT of FIG. 3 and the SS-OCT of FIG. 4 is the difference between the clocking configuration of ADC 308 and ADC 408 .
- ADC 308 is clocked with a high-frequency K-Clock signal at its CLK port
- ADC 408 receives an internal K-Clock signal 404 at a second input port CH1, and is clocked with an external clock signal 410 .
- K-Clock signal 404 is also generated based on Laser 402 .
- K-Clock signal generator 404 may use an interferometer and a balanced detector to generate the K-Clock signal, with the balanced detector outputting the K-Clock signal as an analog chirp signal, which will be further described below. Accordingly, the frequency of K-Clock signal 404 is varied, and as shown in the corresponding timing diagram in FIG. 5 , resampling the OCT signal 502 at the K-Clock 504 zero-crossing and rising edge yields an OCT Signal in uniform domain.
- the method illustrated in FIGS. 4 and 5 is similar to sampling the OCT Signal by using external K-Clock signal 304 as shown in FIG. 3 , but it still has the disadvantage of requiring the K-Clock signal 404 to be at least twice as fast as the OCT Signal.
- the resampling may be performed in software, which extends the technique of zero-crossing by resampling the OCT signal on zero-crossings as well as other uniformly spaced points in the optical frequency (K-Clock) domain.
- One approach that may be used to find uniformly spaced points in optical frequency domain is through the use of a Hilbert Transform followed by Phase unwrapping, as shown in FIG. 6 .
- the Hilbert transform is typically used to derive the analytic representation of a signal, that is, the representation of the signal as a complex (analytic) function.
- the analog signal input is provided to a Hilbert Transform 602 , and the imaginary portion of the analytic representation of the MZI signal may be used together with the MZI signal to obtain a phase component as illustrated in function block 604 , and the phase component may then be unwrapped as illustrated in function block 606 to obtain a phase output.
- This approach works great for post-processing (i.e. processing once all required data has been acquired), but is difficult to realize as an inline real-time processing system (i.e. where processing is performed concurrently in a pipelined manner while new samples and data are being acquired).
- Various embodiments disclosed herein are directed to realizing the overall technique illustrated in FIG. 6 in a real-time, inline processing system, making it possible to efficiently implement SS-OCT using real-time processing devices, such as a field programmable gate array (FPGA) for example.
- the OCT signal may be interpolated at instances where the integer portion of the value of the phase changes.
- the phase may be multiplied with a constant integer to obtain integer indices at which the OCT signal may be interpolated, and the interpolation may be performed at those integer indices.
- the concept of multiplying the phase with a constant integer is referred to as “Phase Oversampling”.
- the simple example may be considered where the K-Clock is a sinusoidal signal.
- the phase of this signal looks similar to the phase/time relationship shown in the function diagram of FIG. 7 .
- the phase varies linearly over time, as illustrated by line 702 .
- the K-Clock signal may be implemented as a chirp signal, i.e., a sinusoidal signal with varying frequency over time.
- the phase relationship of such a chirp signal resembles that of curve 802 shown in FIG. 8 .
- the phase varies quadratically over time, as illustrated by curve 802 .
- the data set may include OCT signal values of [0.1, ⁇ 0.1, 1.2, 3.4, ⁇ 5.6] Volts, for which the corresponding phases of K-Clock include the phase values of [ 41 , 81 , 141 , 221 , 320 ] degrees. That is, for the data set of OCT signal values presented above, the phase of K-Clock varies from 41 deg to 321 degrees over a period of 5 sampled points. To extract the image for OCT analysis, the OCT signal would have to be resampled at equally spaced points in phase (or, in other words, at equally spaced phase points).
- the OCT signal may be reevaluated (or resampled) at these points, using linear interpolation.
- phase points or phase values
- the data values may be resampled at phase points that are multiples of 360 degrees, or integer multiples of 2 ⁇ in radians.
- phase points are multiples of 360 degrees, or integer multiples of 2 ⁇ in radians.
- dividing by 360 degrees a phase value given in degrees yields a corresponding phase value in radians, which is also referred to herein as “normalized phase value”.
- normalized phase value there aren't any phase points where the phase value is a multiple of 360 degrees.
- phase*Interpolation Factor Phase*Interpolation Factor
- phase values of interest are: [360, 720, 1080, 1440] degrees, which are the values divisible by 360 within that range.
- the OCT signal at the recalculated phase of 360 degrees is then obtained as the linear interpolation of the OCT signal between phase points [205, 405] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [0.1, ⁇ 0.1].
- the signal at the recalculated phase of 720 degrees is obtained as the linear interpolation of the OCT signal between phase points [705, 1105] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [1.2, 3.4].
- the signal at the recalculated phase of 1080 degrees is also obtained as the linear interpolation of the OCT signal between phase points [705, 1105] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [1.2, 3.4], but this time corresponding to phase point of 1080 degrees.
- the signal at the recalculated phase of 1440 degrees is obtained as the linear interpolation of the OCT signal between phase points [1105, 1605] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [3.4, ⁇ 5.6].
- the obtained phase values (in degrees) being divisible by 360 degrees yields integer phase values in radians. Specifically, [1, 2, 3, 4] corresponding to the phase values [360, 720, 1080, and 1440] degrees.
- phase points of interest at which the values of OCT are to be resampled or interpolated may be obtained by finding the integer crossing of the phase point values (in radians) within the range of phase point values represented or defined by the recalculated phase values.
- the phase values of interest are: [360, 720, 1080, 1440, 1800] degrees.
- Phase values of interest may be similarly obtained for any selected interpolation factor (or phase oversample factor). It should be noted that in the above examples, two resample points are evaluated between phase values 705 degrees and 1105 degrees, and phase values 1326 degrees and 1926 degrees, respectively.
- two or three linear interpolators may be operated in parallel to sustain throughput.
- phase oversample (or interpolation) factor may be dependent on the laser, and is typically configured by the user, and may be application specific. In general, frequency sweep of a laser is constant, but the jitter of the laser source may need to be taken into consideration, as it may present a problem in OCT.
- the analog K-Clock signal may be sampled or digitized using an ADC. Once the K-Clock has been digitized, the phase of the digitized K-Clock may be extracted using the Hilbert Transform.
- FIG. 9 One embodiment of an architecture implementing the resampling technique described above is shown in FIG. 9 .
- the Hilbert Transform is implemented as an FIR (finite impulse response) filter 904 to enable real-time processing.
- a matched delay 902 ensures that the Real and Imaginary component of the K-Clock signal are in sync at phase extraction block 906 .
- a matched delay 903 ensures that the OCT signal and sampling output signal are in sync at linear interpolation block 912 .
- the K-Clock signal may be received from a signal generator circuit (not shown) that generates the analog chirp signal, digitizes the analog chirp signal, and provides the digitized signal to matched delay component 902 and filter component 904 .
- Phase extraction block 906 may be designed to produce a normalized phase value output, i.e., a phase value in radians.
- the extracted phase is unwrapped in Phase Unwrap Block 908 .
- the unwrapped phase is multiplied with the specified (designated) Interpolation Factor to obtain the recalculated phase points, which are provided to integer crossing block 910 to obtain/determine the phase point values divisible by 360 degrees.
- integer crossing block 910 may assert a control signal output (indicative that resampling or interpolation is to take place) each time the phase value is an integer value.
- the output from integer crossing block 910 is thus provided to the Linear Interpolation block 912 to obtain the corresponding resampled value of the OCT signal.
- Implementing the Hilbert Transform as an FIR filter has at least two additional advantages besides enabling real-time processing.
- the Hilbert FIR Filter block 904 provides a 90-degree phase shift, and the filter's characteristics operate to reduce distortion and noise in the K-Clock signal.
- FIG. 10 shows a slightly modified version of the implementation illustrated in FIG. 9 .
- a bandpass filter and 90-degree phase shifter is combined into a single processing block 924 , in other words the bandpass filtering and 90-degree phase shifting is combined into a single step, which lowers the latency of computation, and improves the accuracy of the phase information extracted from the K-Clock signal.
- the OCT signal is delayed to match the Hilbert Filter ( 904 / 924 ) delay, which facilitates implementing the solutions shown in FIG. 9 and FIG. 10 on an FPGA.
- FIG. 11 shows the OCT signal 952 and K-Clock signal 954 when extracting (resampling) the OCT signal with a phase interpolation factor of 4, according to the implementation shown in FIG. 10 .
- the dashed lines indicate which data points on the OCT signal 952 curve are resampled/interpolated at corresponding phase points on the analog K-Clock 954 curve.
- FIG. 12 shows a flow diagram of a method for performing real-time resampling of a data signal, which may be an OCT signal, according to one embodiment.
- Phase information may be extracted from a control signal, which may be a low-frequency discrete signal ( 960 ).
- the extracted phase information may be unwrapped ( 962 ), and the unwrapped extracted phase information may be multiplied with an interpolation factor to obtain recalculated phase information ( 964 ).
- One or more integer crossing points corresponding to the recalculated phase information may then be obtained ( 966 ), and one or more values of the OCT signal may be interpolated according to the determined one or more integer crossing points (i.e. according to the one or more normalized phase values that are integers).
- FIG. 13 shows a flow diagram of a method for performing real-time resampling of a received signal, which may be an OCT signal, according to another embodiment.
- a received signal which may be an OCT signal
- equally spaced points in phase of a digitized control signal e.g. a digitized K-Clock signal may be identified, with each identified point in phase corresponding to a respective pair of values of the received signal ( 970 ).
- the received signal may be resampled according to the identified equally spaced points in phase of the digitized control signal ( 972 ).
- Resampling the received signal may include, for each identified point in phase, linearly interpolating a corresponding value of the received signal between the respective pair of values of the received signal corresponding to the identified point in phase ( 972 ).
- advantages of various embodiments of an SS-OCT system using a low-frequency K-Clock to resample the OCT signal in real-time eliminates the need for a high-frequency K-Clock, which is currently required in systems intended to perform imaging at deeper axial depths within tissues and materials.
- the ability to perform real-time processing with low latency for resampling makes it possible to efficiently implement an SS-OCT system on embedded platforms, such as an FPGA. Accordingly, the need for additional hardware circuitry to implement the K-Clock as an external clock for performing analog to digital conversion is also eliminated.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Optics & Photonics (AREA)
- Health & Medical Sciences (AREA)
- Radiology & Medical Imaging (AREA)
- Analytical Chemistry (AREA)
- Immunology (AREA)
- Pathology (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Chemical & Material Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Automation & Control Theory (AREA)
- Biochemistry (AREA)
- Mathematical Physics (AREA)
- Investigating Or Analysing Materials By Optical Means (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
Abstract
Description
- The present invention relates to the field of instrumentation, and more particularly to the design of optical coherence tomography systems.
- In many industrial applications (and others), instruments collect data or information from an environment or unit under test (UUT), and may also analyze and process acquired data. Some instruments provide test stimuli to a UUT. Examples of instruments include oscilloscopes, digital multimeters, pressure sensors, arbitrary waveform generators, digital waveform generators, etc. The information that may be collected by respective instruments includes information describing voltage, resistance, distance, velocity, pressure, oscillation frequency, humidity, and/or temperature, among others. Computer-based instrumentation systems typically include transducers for capturing a physical phenomenon and generating a representative electrical signal, signal conditioning logic to perform amplification on the electrical signal, isolation, and/or filtering, and analog-to-digital (A/D) conversion logic for receiving analog signals and providing corresponding digital signals to the host computer system.
- In a computer-based system, the instrumentation hardware or device is typically an expansion board plugged into one of the I/O slots of the computer system. In another common instrumentation system configuration, the instrumentation hardware is coupled to the computer system via other means such as through a VXI (VME extensions for Instrumentation) bus, a GPIB (General Purpose Interface Bus), a PXI (PCI extensions for Instrumentation) bus, Ethernet, a serial port or bus, or parallel port of the computer system. The instrumentation hardware may include a DAQ (Data Acquisition) board, a computer-based instrument such as a multimeter, or another type of instrumentation device. In another common system configuration, a chassis and boards inserted in the chassis may operate as a standalone instrument or instrument suite, although in some cases a host computer may be used to configure or program the boards prior to, or during operation.
- The instrumentation hardware may be configured and controlled by software executing on a host computer system coupled to the system, or by a controller card installed in the chassis. The software for configuring and controlling the instrumentation system typically includes driver software and the instrumentation application software, or the application. The driver software serves to interface the instrumentation hardware to the application and is typically supplied by the manufacturer of the instrumentation hardware or by a third party software vendor. The application is typically developed by the user of the instrumentation system and is tailored to the particular function that the user intends the instrumentation system to perform. The instrumentation hardware manufacturer or third party software vendor sometimes supplies application software for applications that are common, generic, or straightforward. Instrumentation driver software provides a high-level interface to the operations of the instrumentation device. The instrumentation driver software may operate to configure the instrumentation device for communication with the host system and to initialize hardware and software to a known state. The instrumentation driver software may also maintain a soft copy of the state of the instrument and initiated operations. Further, the instrumentation driver software communicates over the bus to move the device from state to state and to respond to device requests.
- A wide variety of instrumentation systems exist for acquiring and processing optical signals. One specific method of optical signal acquisition and processing is Optical Coherence Tomography (OCT), an interferometric technique that makes use of near-infrared light to capture three-dimensional (3D) images from within optical scattering media, such as biological tissue for example, at micrometer-resolution. In general, interferometry refers to various techniques that involve the superimposing of waves in order to extract information about those waves. The use of relatively long wavelength light in OCT allows penetration into the scattering medium. Depending on the properties of the light source—which can be super luminescent diodes, ultra short pulsed lasers, or super continuum lasers among others—it is possible to achieve sub-micrometer resolution, with very wide-spectrum sources emitting over a ˜100 nm wavelength range. A more recent implementation of OCT is frequency-domain OCT, which provides advantages in signal-to-noise ratio (SNR), and faster signal acquisition. Commercial OCT systems are typically used in art conservation and diagnostic medicine, especially in ophthalmology where the process is used to obtain detailed images from within the retina. OCT has also been used in interventional cardiology to help diagnose coronary artery disease.
- One special class of OCT is Swept Source Optical Coherence Tomography (SS-OCT). A Swept Source Laser System (SSLS, or SS-OCT system) uses a laser that generates optical signals whose wavelength is swept over a narrow band. The optical signal is then split into a reference arm and a sample arm by an optical beam splitter, and the reflections from the sample arm and the reference arm are combined by an optical combiner to produce interference/fringe patterns. The interference patterns are converted into electronic signals by a photo detector, and a digitizer is used to record these resulting electronic signals (e.g. to produce a digital representation of those electronic signals).
- One drawback of a Swept Source Laser (SSL) is that it exhibits non-linearities in the optical frequency domain. In order to compensate for these non-linearities, a clock signal (K-Clock) is generated to indicate non-linearities in the frequency sweep of the optical signal. The K-Clock is uniform in the optical frequency domain but not in the time domain, and can be used as a sampling clock for compensating for the non-linearities in the optical signal. The K-Clock can be generated internal or external to the laser, using an interferometric setup. In order to image deeper depths with greater resolution, a high speed K-Clock is typically required. However, creating a high-frequency K-Clock with an interferometric setup is challenging, as the fringe patterns generated by an interferometric setup at deeper depths degrade as they exceed the coherence length of the laser (in other words, as they exceed the propagation distance from the source of the laser to a point where the laser maintains a specified degree of coherence).
- Other corresponding issues related to the prior art will become apparent to one skilled in the art after comparing such prior art with the present invention as described herein.
- Various embodiments of the invention include a signal processing system implementing a resampling approach on a Field Programmable Gate Array (FPGA), which operates according to a low frequency K-Clock to sample OCT signals, as opposed to relying on a high frequency K-Clock to obtain the same information. Traditional systems that perform sampling of OCT signals typically use a K-Clock that is external to the digitizer. Such a setup however requires the K-Clock frequency to be higher than the maximum frequency of the OCT signal by a factor of at least two (2). The K-Clock signal fringe quality degrades as the optical delay between the two arms that produce the interference pattern increase. Such is the case, for example, when a high frequency fringe pattern such as a K-Clock needs to be generated. Another approach to solve this problem includes compensating for the non-linearities in software. These approaches use off-line processing of the data to linearize the OCT Signal in K-space by collecting the K-Clock signal once, or using a pre-recorded K-Clock signal. This approach also has its limitations, since the laser sources are unstable and drift over time, which results in a variance of the signal properties of the K-Clock signal.
- In a new inline processing algorithm, the OCT Signal may be oversampled with a low-frequency K-Clock. As mentioned earlier, the K-Clock is uniform in the optical frequency (wave-number) domain and non-uniform in the time-domain. An OCT signal acquired using a free-running internal clock of a digitizer is uniform in the time-domain and non-uniform in the optical frequency domain. Therefore, a resampler may be used to resample the OCT signal uniformly in the optical frequency domain. Accordingly, one advantage of various embodiments of the SS-OCT system disclosed herein is the elimination of the need for a high frequency K-Clock, which is required in present day systems when imaging at deeper axial depths within tissues and materials. The embodiments also present a real-time processing solution with low latency for resampling, and make it useful for implementation on embedded platforms such as an FPGA. The need for additional hardware circuitry to provide an external K-Clock for analog-to-digital conversion (ADC) is therefore also eliminated.
- Accordingly, a method for performing optical coherence tomography (OCT) may include extracting phase information (which may be normalized phase information) from a control signal, unwrapping the extracted phase information, multiplying the unwrapped extracted phase information with an interpolation factor to obtain recalculated phase information, determining one or more integer crossing points corresponding to the recalculated phase information, and interpolating one or more values of the OCT signal according to the determined one or more integer crossing points. The control signal may be a discrete signal (or discrete-time signal), which may be obtained by digitizing an analog signal that is a sinusoidal signal with varying frequency over time. The phase information of the control signal may be extracted by performing a filtering operation on the control signal, where the filtering operation includes performing a Hilbert transformation on the control signal, phase shifting the control signal, and/or reducing distortion and noise in the control signal. The extracting, unwrapping, multiplying, determining, and interpolating operations may all be performed in real-time, with various operations overlapping with each other when sufficient information is present for each given operation to be performed.
- In some embodiments, logic gates in an FPGA may be interconnected (i.e. programmed) to perform SS-OCT operations. Thus, the FPGA may be operated to extract phase information from a control signal, unwrap the extracted phase information, multiply the unwrapped extracted phase information with an interpolation factor to obtain recalculated phase information, determine one or more integer crossing points corresponding to the recalculated phase information, and interpolate one or more values of an incoming OCT signal according to the determined one or more integer crossing points. The FPGA may further be operated to extract the phase information from the control signal by filtering the control signal, which may include a Hilbert transformation on the control signal, phase shifting the control signal, and/or reducing distortion and noise in the control signal. The control signal may be a digitized version of an analog sinusoidal signal whose frequency varies over time.
- Based on the above, a method for processing a data signal may include identifying equally spaced points in phase of a control signal, where each identified point in phase corresponds to a respective pair of values of the data signal, and resampling the data signal according to the identified equally spaced points in phase of the control signal. The resampling is performed for each identified point in phase, and includes linearly interpolating a corresponding value of the data signal between the respective pair of values of the data signal corresponding to the identified point in phase. In some embodiments, the equally spaced points in phase are identified by extracting phase information from the control signal, obtaining points in phase from the extracted phase information, multiplying each obtained point in phase with an interpolation factor to obtain recalculated points in phase—with the recalculated points in phase defining a range of recalculated points in phase—and identifying desired points in phase within the range of recalculated points in phase. Each desired point is evenly divisible by a specified number, e.g. 360 degrees, and has a value that falls between respective values of a corresponding pair of recalculated points in phase within the range of recalculated points in phase, and represents one of the identified equally spaced points in phase. Identifying the equally spaced points in phase of the control signal and the resampling of the data signal may be performed in real-time, and at least a portion of the identifying may be performed concurrently with the resampling operation.
- In one set of embodiments, a system configurable to perform SS-OCT may include a first logic element to extract phase information, e.g. instantaneous phase information from a control signal, a second logic element to obtain phase points from the extracted (instantaneous) phase information, a third logic element to multiply each obtained phase point with an interpolation factor to obtain recalculated phase points, a fourth logic element to identify desired phase points within a range defined by the recalculated phase points, and a fifth logic element to resample an incoming signal according to the identified desired phase points, where each desired phase point is evenly divisible by a specified number (e.g. 360 degrees), and has a value that falls between respective values of a corresponding pair of recalculated phase points within the range defined by the recalculated phase points. The first logic element may include a bandpass filter, and/or a Hilbert Transform implemented as a finite impulse response filter.
- In order to extract the phase information, the first logic element may first obtain a representation of the control signal as a complex function, and obtain the phase information based on an imaginary component of the representation of the control signal and a delayed version of the control signal. The system may also include circuitry to generate the control signal, and in at least one embodiment, the circuitry includes a first signal generator to generate an analog signal, and an analog-to-digital converter to generate the control signal by digitizing the analog signal. The analog signal may be a sinusoidal signal with varying frequency over time. When performing OCT, the incoming signal is an OCT signal, and the control signal is a K-Clock signal. At least the first, second, third, fourth, and fifth logic elements of the system may be implemented on an FPGA, and may perform their respective operations inline and in real-time.
- Other aspects of the present invention will become apparent with reference to the drawings and detailed description of the drawings that follow.
- A better understanding of the present invention can be obtained when the following detailed description of the preferred embodiment is considered in conjunction with the following drawings, in which:
-
FIG. 1 shows an instrumentation control system with instruments networked together according to one embodiment of the invention; -
FIG. 2 shows an industrial automation system with instruments networked together according to one embodiment of the invention; -
FIG. 3 shows the simplified block diagram of a prior art optical coherence tomography (OCT) system; -
FIG. 4 shows the simplified block diagram of a prior art OCT system that performs resampling; -
FIG. 5 shows a signal diagram illustrating resampling of an OCT signal using a variable frequency K-Clock, with a resampling factor of 1; -
FIG. 6 shows a function diagram illustrating traditional phase unwrapping operation; -
FIG. 7 shows a signal diagram illustrating phase variation of a sinusoidal signal over time; -
FIG. 8 shows a signal diagram illustrating phase variation of a chirp signal over time; -
FIG. 9 shows a function diagram illustrating operation of one embodiment of an OCT system that performs resampling; -
FIG. 10 shows a function diagram illustrating the operation of the embodiment of the OCT system fromFIG. 9 , with bandpass filtering combined with the Hilbert Transform filter; -
FIG. 11 shows a signal diagram illustrating resampling of an OCT signal with a resampling factor of 4; -
FIG. 12 shows a flow diagram of a method to resample an OCT signal according to one embodiment; and -
FIG. 13 shows a flow diagram of a method to resample an OCT signal according to another embodiment. - While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.
- Embodiments of the present invention may be used in systems configured to perform test and/or measurement functions, or to model and simulate functions, e.g., modeling or simulating a device or product being developed or tested, etc. More specifically, it may be used in applications requiring optical signal acquisition and processing for performing high resolution 3-dimensional (3D) imaging from within optical scattering media. However, it is noted that the present invention may equally be used for a variety of applications, and is not limited to the specific applications disclosed herein. In other words, applications discussed in the present description are exemplary only, and the present invention may be used in any of various types of systems. Thus, the system and method of the present invention may be used in any number of different applications.
- It should be noted that as used herein, “normalized phase information” refers to phase information (in degrees) divided by 360 degrees. It should be further noted that the normalized phase information may be expressed in radians as phase information obtained through a Hilbert transformation and then divided by 2π. Furthermore, the instantaneous phase of a signal is interpreted as the arctangent of the ratio of the imaginary component and the real component of a complex representation of the signal (i.e., instantaneous phase=arctan (imaginary component/real component)). Accordingly, the value of the instantaneous phase is understood to vary between −π and π, leading to discontinuities in phase calculation. As used herein, “phase unwrapping” refers to the process of accumulating the phase whenever a discontinuity occurs in the instantaneous phase signal.
- It should further be noted that the various terms or designations for circuits/components and signals as they appear herein, for example in such expressions as “driver circuit”, “delay circuit”, “data signal”, “control signal”, etc. are merely names or identifiers used to distinguish among the different circuits/components and/or between different signals, and these terms are not intended to connote any specific meaning, unless otherwise indicated. Finally, a “discrete signal” or “discrete-time signal” is intended to mean a signal composed of a sequence of discrete values, in contrast to a continuous-time signal or analog signal, which has continuous amplitude over time. A discrete-time signal may have been obtained by sampling a continuous-time signal, in which case each value in the discrete signal is referred to as a sample. Accordingly, a discrete signal may be a digitized analog signal.
-
FIG. 1 illustrates an exemplaryinstrumentation control system 100 which may be configured according to embodiments of the present invention.System 100 comprises ahost computer 82 which may couple to one or more instruments configured to perform a variety of functions using timing control implemented according to various embodiments of the present invention.Host computer 82 may comprise a CPU, a display screen, memory, and one or more input devices such as a mouse or keyboard as shown.Computer 82 may operate with one or more instruments to analyze, measure, or control a unit under test (UUT) orprocess 150. The one or more instruments may include aGPIB instrument 112 and associatedGPIB interface card 122, adata acquisition board 114 inserted into or otherwise coupled withchassis 124 with associatedsignal conditioning circuitry 126, aVXI instrument 116, aPXI instrument 118, a video device orcamera 132 and associated image acquisition (or machine vision)card 134, amotion control device 136 and associated motioncontrol interface card 138, and/or one or more computer basedinstrument cards 142, among other types of devices. - The computer system may couple to and operate with one or more of these instruments. In some embodiments, the computer system may be coupled to one or more of these instruments via a network connection, such as an Ethernet connection, for example, which may facilitate running a high-level synchronization protocol between the computer system and the coupled instruments. The instruments may be coupled to the unit under test (UUT) or
process 150, or may be coupled to receive field signals, typically generated by transducers.System 100 may be used in a data acquisition and control applications, in a test and measurement application, an image processing or machine vision application, a process control application, a man-machine interface application, a simulation application, or a hardware-in-the-loop validation application, among others. -
FIG. 2 illustrates an exemplaryindustrial automation system 160 that may be configured according to embodiments of the present invention.Industrial automation system 160 may be similar to instrumentation or test andmeasurement system 100 shown inFIG. 2A . Elements that are similar or identical to elements inFIG. 1 have the same reference numerals for convenience.System 160 may comprise acomputer 82 which may couple to one or more devices and/or instruments configured to perform a variety of functions using timing control implemented according to various embodiments of the present invention.Computer 82 may comprise a CPU, a display screen, memory, and one or more input devices such as a mouse or keyboard as shown.Computer 82 may operate with the one or more devices and/or instruments to perform an automation function, such as MMI (Man Machine Interface), SCADA (Supervisory Control and Data Acquisition), portable or distributed data acquisition, process control, and advanced analysis, among others, on process ordevice 150. - The one or more devices may include a
data acquisition board 114 inserted into or otherwise coupled withchassis 124 with associatedsignal conditioning circuitry 126, aPXI instrument 118, avideo device 132 and associatedimage acquisition card 134, amotion control device 136 and associated motioncontrol interface card 138, afield bus device 170 and associated fieldbus interface card 172, a PLC (Programmable Logic Controller) 176, aserial instrument 182 and associatedserial interface card 184, or a distributed data acquisition system, such as the Compact FieldPoint or CompactRIO systems available from National Instruments, among other types of devices. In some embodiments, similar to the system shown inFIG. 1 , the computer system may couple to one or more of the instruments/devices via a network connection, such as an Ethernet connection. -
System 100 and/or 200 may be used for optical signal acquisition and processing through Optical Coherence Tomography (OCT), according to one set of embodiments. For example, referring toFIG. 1 ,devices FIG. 3 . ALaser 302 is used to generate the light, which is guided through various optics for performing the imaging on the “device under test” (DUT). The optics and DUT are shown in asingle block 306 for ease of illustration. The resulting OCT signal is then provided to an input channel CH0 ofADC 308, which is clocked at its CLK port with a K-Clock signal 304 generated based onLaser 302. ADC then provides the digital output Dout, representative of the OCT signal. As seen inFIG. 3 , K-Clock 304 is external toADC 308, and is a high-frequency clock, running in the range of 1 GHz, for example. Typically, the OCT Signal is sampled on the zero-crossings of the K-Clock 304, as they are uniformly spaced in the optical frequency domain. - The simplified block diagram of a basic prior art SS-OCT system in which the OCT signal is resampled at the K-Clock zero-crossing domain is shown in
FIG. 4 . As seen inFIG. 4 , the difference between the SS-OCT ofFIG. 3 and the SS-OCT ofFIG. 4 is the difference between the clocking configuration ofADC 308 andADC 408. WhileADC 308 is clocked with a high-frequency K-Clock signal at its CLK port,ADC 408 receives an internal K-Clock signal 404 at a second input port CH1, and is clocked with anexternal clock signal 410. K-Clock signal 404 is also generated based onLaser 402. In this scenario, K-Clock signal generator 404 may use an interferometer and a balanced detector to generate the K-Clock signal, with the balanced detector outputting the K-Clock signal as an analog chirp signal, which will be further described below. Accordingly, the frequency of K-Clock signal 404 is varied, and as shown in the corresponding timing diagram inFIG. 5 , resampling the OCT signal 502 at the K-Clock 504 zero-crossing and rising edge yields an OCT Signal in uniform domain. The method illustrated inFIGS. 4 and 5 is similar to sampling the OCT Signal by using external K-Clock signal 304 as shown inFIG. 3 , but it still has the disadvantage of requiring the K-Clock signal 404 to be at least twice as fast as the OCT Signal. In general, when performing OCT, varying the imaging depth requires changing the frequency of the K-Clock signal, which makes it cumbersome and impractical to use a K-Clock external to the ADC (such as K-Clock 304 toADC 308 inFIG. 3 ), since the optical setup has to be changed every time imaging at different (or deeper) depths is desired. - Even though, sampling the OCT Signal at the zero-crossing of K-Clock (as illustrated in
FIGS. 4 and 5 ) is widely used, the resampling may be performed in software, which extends the technique of zero-crossing by resampling the OCT signal on zero-crossings as well as other uniformly spaced points in the optical frequency (K-Clock) domain. One approach that may be used to find uniformly spaced points in optical frequency domain is through the use of a Hilbert Transform followed by Phase unwrapping, as shown inFIG. 6 . In signal processing, the Hilbert transform is typically used to derive the analytic representation of a signal, that is, the representation of the signal as a complex (analytic) function. Thus, the analog signal input is provided to aHilbert Transform 602, and the imaginary portion of the analytic representation of the MZI signal may be used together with the MZI signal to obtain a phase component as illustrated infunction block 604, and the phase component may then be unwrapped as illustrated infunction block 606 to obtain a phase output. This approach works great for post-processing (i.e. processing once all required data has been acquired), but is difficult to realize as an inline real-time processing system (i.e. where processing is performed concurrently in a pipelined manner while new samples and data are being acquired). - Various embodiments disclosed herein are directed to realizing the overall technique illustrated in
FIG. 6 in a real-time, inline processing system, making it possible to efficiently implement SS-OCT using real-time processing devices, such as a field programmable gate array (FPGA) for example. In order to make the algorithm suitable for real-time inline processing, the OCT signal may be interpolated at instances where the integer portion of the value of the phase changes. Furthermore, the phase may be multiplied with a constant integer to obtain integer indices at which the OCT signal may be interpolated, and the interpolation may be performed at those integer indices. The concept of multiplying the phase with a constant integer is referred to as “Phase Oversampling”. - For purposes of illustration, the simple example may be considered where the K-Clock is a sinusoidal signal. The phase of this signal looks similar to the phase/time relationship shown in the function diagram of
FIG. 7 . As seen inFIG. 7 , the phase varies linearly over time, as illustrated byline 702. In practice, the K-Clock signal may be implemented as a chirp signal, i.e., a sinusoidal signal with varying frequency over time. The phase relationship of such a chirp signal resembles that ofcurve 802 shown inFIG. 8 . As shown inFIG. 8 , the phase varies quadratically over time, as illustrated bycurve 802. In order to better understand this resampling technique, it is important to examine the phase variation of the K-Clock signal over time. - In order to illustrate the K-Clock based resampling, a simple data set may be considered. For example, the data set may include OCT signal values of [0.1, −0.1, 1.2, 3.4, −5.6] Volts, for which the corresponding phases of K-Clock include the phase values of [41, 81, 141, 221, 320] degrees. That is, for the data set of OCT signal values presented above, the phase of K-Clock varies from 41 deg to 321 degrees over a period of 5 sampled points. To extract the image for OCT analysis, the OCT signal would have to be resampled at equally spaced points in phase (or, in other words, at equally spaced phase points). For the given data set above, the equally spaced phase interval between 41 degrees and 321 degrees may be expressed as: (Final Value-Initial Value)/(Required Number of Resampled Points-1), which, for the example above, would result in the numerical value of (321 degrees-41 degrees)/4=70 degrees. Thus, the phase points of interest are: [41, 41+70, 41+2*70, 41+3*70, 41+4*70] degrees=[41, 111, 181, 251, 321] degrees. The OCT signal may be reevaluated (or resampled) at these points, using linear interpolation.
- However, this may present a problem for inline resampling when attempting to calculate the phase points (or phase values) at which to resample the data in real-time, because the end phase point (321 degrees in the example above) is not known ahead of time. To overcome this problem, the data values may be resampled at phase points that are multiples of 360 degrees, or integer multiples of 2π in radians. As previously mentioned, dividing by 360 degrees a phase value given in degrees yields a corresponding phase value in radians, which is also referred to herein as “normalized phase value”. In the above example, there aren't any phase points where the phase value is a multiple of 360 degrees. This may be overcome however, by introducing a “Phase Oversample Factor”, or “Interpolation Factor”. Accordingly, new resample phase points may be designated as the locations where the multiple of the phase and the phase Interpolation Factor (i.e., phase*Interpolation Factor) is a multiple of 360 degrees. For the above example, for an Interpolation Factor of ‘5’, the recalculated phase values are: [41*5, 81*5, 141*5, 221*5, 321*5] degrees=[205, 405, 705, 1105, 1605] degrees.
- In the range of recalculated phase point values, the phase values of interest are: [360, 720, 1080, 1440] degrees, which are the values divisible by 360 within that range. The OCT signal at the recalculated phase of 360 degrees is then obtained as the linear interpolation of the OCT signal between phase points [205, 405] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [0.1, −0.1]. Similarly, the signal at the recalculated phase of 720 degrees is obtained as the linear interpolation of the OCT signal between phase points [705, 1105] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [1.2, 3.4]. The signal at the recalculated phase of 1080 degrees is also obtained as the linear interpolation of the OCT signal between phase points [705, 1105] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [1.2, 3.4], but this time corresponding to phase point of 1080 degrees. And finally, the signal at the recalculated phase of 1440 degrees is obtained as the linear interpolation of the OCT signal between phase points [1105, 1605] degrees, i.e., a value of the OCT signal obtained by linear interpolation from the OCT signal values of [3.4, −5.6]. As seen above, the obtained phase values (in degrees) being divisible by 360 degrees yields integer phase values in radians. Specifically, [1, 2, 3, 4] corresponding to the phase values [360, 720, 1080, and 1440] degrees. In other words, the phase points of interest at which the values of OCT are to be resampled or interpolated may be obtained by finding the integer crossing of the phase point values (in radians) within the range of phase point values represented or defined by the recalculated phase values.
- If the phase oversample factor is chosen as 6, the recalculated phase values are: [41*6, 81*6, 141*6, 221*6, 321*6] degrees=[246, 486, 846, 1326, 1926] degrees. In the range of recalculated phase point values, the phase values of interest are: [360, 720, 1080, 1440, 1800] degrees. Phase values of interest may be similarly obtained for any selected interpolation factor (or phase oversample factor). It should be noted that in the above examples, two resample points are evaluated between phase values 705 degrees and 1105 degrees, and phase values 1326 degrees and 1926 degrees, respectively. In order to perform real-time computation, two or three linear interpolators may be operated in parallel to sustain throughput. The choice of phase oversample (or interpolation) factor may be dependent on the laser, and is typically configured by the user, and may be application specific. In general, frequency sweep of a laser is constant, but the jitter of the laser source may need to be taken into consideration, as it may present a problem in OCT. In order to extract the phase of the K-Clock, the analog K-Clock signal may be sampled or digitized using an ADC. Once the K-Clock has been digitized, the phase of the digitized K-Clock may be extracted using the Hilbert Transform.
- One embodiment of an architecture implementing the resampling technique described above is shown in
FIG. 9 . The Hilbert Transform is implemented as an FIR (finite impulse response)filter 904 to enable real-time processing. A matcheddelay 902 ensures that the Real and Imaginary component of the K-Clock signal are in sync atphase extraction block 906. Similarly, a matcheddelay 903 ensures that the OCT signal and sampling output signal are in sync atlinear interpolation block 912. The K-Clock signal may be received from a signal generator circuit (not shown) that generates the analog chirp signal, digitizes the analog chirp signal, and provides the digitized signal to matcheddelay component 902 andfilter component 904.Phase extraction block 906 may be designed to produce a normalized phase value output, i.e., a phase value in radians. The extracted phase is unwrapped inPhase Unwrap Block 908. The unwrapped phase is multiplied with the specified (designated) Interpolation Factor to obtain the recalculated phase points, which are provided tointeger crossing block 910 to obtain/determine the phase point values divisible by 360 degrees. In embodiments wherephase extraction block 906 provides normalized phase values in radians tointeger crossing block 910,integer crossing block 910 may assert a control signal output (indicative that resampling or interpolation is to take place) each time the phase value is an integer value. The output frominteger crossing block 910 is thus provided to the Linear Interpolation block 912 to obtain the corresponding resampled value of the OCT signal. Implementing the Hilbert Transform as an FIR filter has at least two additional advantages besides enabling real-time processing. The HilbertFIR Filter block 904 provides a 90-degree phase shift, and the filter's characteristics operate to reduce distortion and noise in the K-Clock signal. -
FIG. 10 shows a slightly modified version of the implementation illustrated inFIG. 9 . In the implementation shown inFIG. 10 , a bandpass filter and 90-degree phase shifter is combined into asingle processing block 924, in other words the bandpass filtering and 90-degree phase shifting is combined into a single step, which lowers the latency of computation, and improves the accuracy of the phase information extracted from the K-Clock signal. As previously mentioned, the OCT signal is delayed to match the Hilbert Filter (904/924) delay, which facilitates implementing the solutions shown inFIG. 9 andFIG. 10 on an FPGA. The diagram inFIG. 11 shows the OCT signal 952 and K-Clock signal 954 when extracting (resampling) the OCT signal with a phase interpolation factor of 4, according to the implementation shown inFIG. 10 . The dashed lines indicate which data points on the OCT signal 952 curve are resampled/interpolated at corresponding phase points on the analog K-Clock 954 curve. -
FIG. 12 shows a flow diagram of a method for performing real-time resampling of a data signal, which may be an OCT signal, according to one embodiment. Phase information may be extracted from a control signal, which may be a low-frequency discrete signal (960). The extracted phase information may be unwrapped (962), and the unwrapped extracted phase information may be multiplied with an interpolation factor to obtain recalculated phase information (964). One or more integer crossing points corresponding to the recalculated phase information may then be obtained (966), and one or more values of the OCT signal may be interpolated according to the determined one or more integer crossing points (i.e. according to the one or more normalized phase values that are integers). -
FIG. 13 shows a flow diagram of a method for performing real-time resampling of a received signal, which may be an OCT signal, according to another embodiment. As shown in the flow diagram ofFIG. 13 , equally spaced points in phase of a digitized control signal, e.g. a digitized K-Clock signal may be identified, with each identified point in phase corresponding to a respective pair of values of the received signal (970). The received signal may be resampled according to the identified equally spaced points in phase of the digitized control signal (972). Resampling the received signal may include, for each identified point in phase, linearly interpolating a corresponding value of the received signal between the respective pair of values of the received signal corresponding to the identified point in phase (972). - As previously mentioned, advantages of various embodiments of an SS-OCT system using a low-frequency K-Clock to resample the OCT signal in real-time eliminates the need for a high-frequency K-Clock, which is currently required in systems intended to perform imaging at deeper axial depths within tissues and materials. The ability to perform real-time processing with low latency for resampling makes it possible to efficiently implement an SS-OCT system on embedded platforms, such as an FPGA. Accordingly, the need for additional hardware circuitry to implement the K-Clock as an external clock for performing analog to digital conversion is also eliminated.
- Although the embodiments above have been described in considerable detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/748,702 US9285208B2 (en) | 2013-01-24 | 2013-01-24 | Real-time resampling of optical coherence tomography signals using a field programmable gate array |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/748,702 US9285208B2 (en) | 2013-01-24 | 2013-01-24 | Real-time resampling of optical coherence tomography signals using a field programmable gate array |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140207418A1 true US20140207418A1 (en) | 2014-07-24 |
US9285208B2 US9285208B2 (en) | 2016-03-15 |
Family
ID=51208375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/748,702 Active 2034-07-08 US9285208B2 (en) | 2013-01-24 | 2013-01-24 | Real-time resampling of optical coherence tomography signals using a field programmable gate array |
Country Status (1)
Country | Link |
---|---|
US (1) | US9285208B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150300806A1 (en) * | 2014-04-21 | 2015-10-22 | Volcano Corporation | System and Method for Resampling Optical Coherence Tomography Signals in Segments |
WO2016015046A1 (en) * | 2014-07-25 | 2016-01-28 | Axsun Technologies Llc | Real time fpga resampling for swept source optical coherence tomography |
CN113054932A (en) * | 2021-03-09 | 2021-06-29 | 中国计量科学研究院 | One-dimensional phase unwrapping algorithm implemented on FPGA |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565499B2 (en) * | 2008-07-21 | 2013-10-22 | Duke University | Methods, systems, and computer readable media for synthetic wavelength-based phase unwrapping in optical coherence tomography and spectral domain phase microscopy |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009530614A (en) | 2006-03-16 | 2009-08-27 | デューク ユニバーシティ | Method, system and computer program product for performing real-time quadrature projection based on Fourier domain optical coherence tomography |
JP5371315B2 (en) | 2008-07-30 | 2013-12-18 | キヤノン株式会社 | Optical coherence tomography method and optical coherence tomography apparatus |
US8348427B2 (en) | 2009-09-22 | 2013-01-08 | Bioptigen, Inc. | Systems for extended depth fourier domain optical coherence tomography (FDOCT) and related methods |
-
2013
- 2013-01-24 US US13/748,702 patent/US9285208B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8565499B2 (en) * | 2008-07-21 | 2013-10-22 | Duke University | Methods, systems, and computer readable media for synthetic wavelength-based phase unwrapping in optical coherence tomography and spectral domain phase microscopy |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150300806A1 (en) * | 2014-04-21 | 2015-10-22 | Volcano Corporation | System and Method for Resampling Optical Coherence Tomography Signals in Segments |
US9869542B2 (en) * | 2014-04-21 | 2018-01-16 | Axsun Technologies, Inc. | System and method for resampling optical coherence tomography signals in segments |
WO2016015046A1 (en) * | 2014-07-25 | 2016-01-28 | Axsun Technologies Llc | Real time fpga resampling for swept source optical coherence tomography |
US10393502B2 (en) | 2014-07-25 | 2019-08-27 | Axsun Technologies, Inc. | Real time FPGA resampling for swept source optical coherence tomography |
CN113054932A (en) * | 2021-03-09 | 2021-06-29 | 中国计量科学研究院 | One-dimensional phase unwrapping algorithm implemented on FPGA |
Also Published As
Publication number | Publication date |
---|---|
US9285208B2 (en) | 2016-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3172527B1 (en) | Real time fpga resampling for swept source optical coherence tomography | |
US7240231B2 (en) | System and method for synchronizing multiple instrumentation devices | |
US8392740B2 (en) | Synchronization of converters having varying group-delays in a measurement system | |
JP5066073B2 (en) | Measuring apparatus, measuring method, test apparatus, test method, and electronic device | |
US9285208B2 (en) | Real-time resampling of optical coherence tomography signals using a field programmable gate array | |
CN110208589B (en) | Time domain signal waveform measuring method and device and digital oscilloscope | |
US6882947B2 (en) | Discrete fourier transform (DFT) leakage removal | |
JP2016144212A (en) | Method of determining waveform and arbitrary waveform and function generator | |
CN109117816A (en) | Detection of Singular Point method based on six rank spline interpolation small echos | |
EP3743678B1 (en) | Digitizer for an optical coherence tomography imager | |
US7715512B2 (en) | Jitter measurement apparatus, jitter measurement method, and recording medium | |
Guo et al. | Order-crossing removal in Gabor order tracking by independent component analysis | |
Bilinskis et al. | Digital representing of analog signals using event timing information | |
US9188617B2 (en) | Using a shared local oscillator to make low-noise vector measurements | |
Barajas et al. | Towards an on-chip signal processing solution for the online calibration of SS-OCT systems | |
US9772353B2 (en) | Equivalent-time sampling technique for non-coherently modulated signals | |
Zavareh et al. | A novel continuous time ternary encoding based SS-OCT calibration | |
JP6257072B2 (en) | Surface shape measurement method using a white interferometer | |
US11054243B2 (en) | Electronic device for automatic calibration of swept-source optical coherence tomography systems | |
Wei et al. | Sub-pixel visualization of the envelope peak in a pulse train interferometer | |
US9537690B1 (en) | Method and apparatus for extraction of baseband waveform from amplitude modulated signal via time domain sampling | |
Zhang et al. | Primary acceleration calibration by heterodyne laser interferometer and PXI instrument | |
CN220289718U (en) | Device and system for detecting phase | |
Sarson | An ATE filter characterization toolkit using a discrete chirped excitation signal as stimulus | |
US20060122827A1 (en) | Modeling linear and non-linear system response to a pulse train |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NATIONAL INSTRUMENTS CORPORATION, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VEMISHETTY, KALYANRAMU;REEL/FRAME:029684/0914 Effective date: 20130123 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, NORTH CAROLINA Free format text: SECURITY INTEREST;ASSIGNORS:NATIONAL INSTRUMENTS CORPORATION;PHASE MATRIX, INC.;REEL/FRAME:052935/0001 Effective date: 20200612 |
|
AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, NORTH CAROLINA Free format text: SECURITY INTEREST;ASSIGNOR:NATIONAL INSTRUMENTS CORPORATION;REEL/FRAME:057280/0028 Effective date: 20210618 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
AS | Assignment |
Owner name: NATIONAL INSTRUMENTS CORPORATION, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 057280/0028);ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT;REEL/FRAME:065231/0466 Effective date: 20231011 Owner name: PHASE MATRIX, INC., CALIFORNIA Free format text: RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001);ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT;REEL/FRAME:065653/0463 Effective date: 20231011 Owner name: NATIONAL INSTRUMENTS CORPORATION, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS (REEL/FRAME 052935/0001);ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT;REEL/FRAME:065653/0463 Effective date: 20231011 |