<<

Respiratory Motion Tracking in Magnetic Resonance Imaging

with Pilot Tone Technology

Thesis

Presented in Partial Fulfillment of the Requirements for the Degree Master of Science in

the Graduate School of The Ohio State University

By

Mary Lenk

Graduate Program in Electrical and Computer Engineering

The Ohio State University

2018

Thesis Committee

Dr. Lee Potter, Advisor

Dr. Rizwan Ahmad

1

Copyrighted by

Mary Lenk

2018

2

Abstract

This thesis explores the hypothesis that Pilot Tone (PT) technology can encode respiratory induced motion of the heart to improve cardiac magnetic resonance (MR) imaging. Pilot tone technology is advantageous due to its high sampling rate to provide high temporal resolution in tracking and predicting respiration. Also, the PT signal has the potential to provide motion information without interrupting the pulse sequence to perform motion compensated scans. A prediction model is hypothesized to account for in-plane and through-plane motions due to respiration.

A proof-of-concept experiment was designed to explore the ability of the PT signal to encode respiratory-induced motion. The PT signal was processed retrospectively offline and compared to a reference for respiratory motion. The two signals had a high correlation and show preliminary success for the PT to detect respiration. A linear filter was then designed to predict motion from a training phase using the same reference signal. The linear filter was successful with peak/trough locations between the prediction and the reference signal having a correlation coefficient of 0.9999 for end-expiration and end-inspiration prediction.

Furthermore, a PT transmitter was designed and constructed for implementation of additional experiments. The transmitter was designed to be programmable, battery-

ii powered, MR-safe, and portable for placement at various locations in the bore during scans.

iii

Dedication

To my family and friends for their love and support.

iv

Acknowledgments

In working on this thesis I have had the pleasure of working with many brilliant individuals. I would first like to thank my advisor Dr. Lee Potter for encouraging me to pursue this research and sharing his knowledge of signal processing throughout my undergraduate and graduate studies. This thesis came about as an extension to the work done by Michael Bush, and I’d like to thank him for providing me with the appropriate background knowledge and goals to drive the project. I would also like to thank Dr.

Rizwan Ahmad and the CMR research group at The Ohio State University (OSU) for providing their expertise in cardiac MR and guidance on the project. Also, Yingmin Liu was very helpful in conducting scans for the experiments. In designing the transmitter, the antenna design was created by Xiozhen Yang and Dr. Villoroel in the Electrical and

Computer Engineering department at OSU. The transmitter was developed with the help of Siddarth Baskar who further designed the electronics layout for the printed circuit board. Finally, I’d like to thank my family and friends for their unconditional support.

This work was supported by the National Science Foundation under grant IIP-1539961.

v

Vita

2016 ...... B.S. Electrical and Computer Engineering,

The Ohio State University

2017 to 2018 ...... Graduate Research Associate,

The Ohio State University

Fields of Study

Major Field: Electrical and Computer Engineering

vi

Table of Contents

Abstract ...... ii Dedication ...... iv Acknowledgments ...... v Vita ...... vi Table of Contents ...... vii List of Tables ...... viii List of Figures ...... ix Chapter 1. Introduction ...... 1 Chapter 2. Signal Model ...... 7 Chapter 3. Signal Processing ...... 10 3.1 Preprocessing ...... 11 3.2 Linear Predictive Coding ...... 13 Chapter 4. Transmitter Design ...... 16 Chapter 5. Experimentation ...... 20 5.1 Experiment 1, Proof-of-Concept ...... 20 5.2 Experiment 2, Transmitter Performance...... 29 Chapter 6. Discussion ...... 34 Chapter 7. Future Work and Conclusion ...... 35 References ...... 37 Appendix A. Transmitter Antenna ...... 40 Appendix B. Transmitter Electronics ...... 44 Appendix C. Matlab Code ...... 47 Appendix D. Programming Transmitter ...... 60

vii

List of Tables

Table 1: Antenna Dimensions ...... 40 Table 2: Transmitter bill of materials...... 46

viii

List of Figures

Figure 1: Description of PROCO (10)...... 3 Figure 2: High-level description of PROMPT (10)...... 5 Figure 3: Data acquisition for the training phase (10)...... 5 Figure 4: Example of PT in image domain (10)...... 8 Figure 5: Block diagram of PT path for respiratory training...... 10 Figure 6: Block diagram of system H...... 12 Figure 7: Derived Weiner-Hopf filter coefficients for a sinusoid with AWGN...... 15 Figure 8: Block diagram of pilot tone transmitter...... 18 Figure 9: Pilot tone transmitter with monopole antenna...... 18 Figure 10: Reverse side of pilot tone transmitter with lithium-ion battery...... 19 Figure 11: Experimental setup for proof-of-concept experiment (10)...... 21 Figure 12: FFT of raw image data in read-out direction ...... 22 Figure 13: Absolute value of raw pilot tone data for 9 receive channels...... 22 Figure 14: Low pass filter of pilot tone with cutoff at 0.75 Hz...... 23 Figure 15: MOCO region of interest highlighted at ribcage...... 24 Figure 16: SVD of filtered pilot tone compared to MOCO signal...... 25 Figure 17: Comparing peak and trough location for pilot tone and MOCO signal...... 26 Figure 18: Stem plot of L = 100 trained filter coefficients for each ICA vector...... 27 Figure 19: Prediction results from applying filter coefficients to previous 100 samples. 28 Figure 20: Peak and trough locations for predictions results...... 29 Figure 21: Programming of pilot tone transmitter using Eval Kit...... 30 Figure 22: Imaging of phantom with pilot tone...... 31 Figure 23: Primary singular vector of demodulated PT signal...... 33 Figure 24: Meander line antenna design...... 40 Figure 25: Antenna simulation circuit model...... 41 Figure 26: Antenna simulation S11 results...... 42 Figure 27: Simulation gain pattern...... 42 Figure 28: Simulation realized gain...... 43 Figure 29: 3-D realized gain...... 43 Figure 30: Transmitter electronics schematic (Part 1)...... 44 Figure 31: Transmitter electronics schematic (Part 2)...... 45 Figure 32: Eval Kit GUI prompt screen...... 60 Figure 33: Eval Kit Software GUI ...... 61

ix

Chapter 1. Introduction

Cardiac Magnetic Resonance (CMR) is an imaging technique that can provide a comprehensive evaluation of the cardiovascular system. Imaging of the cardiovascular system requires compensation of motion from both the respiratory and the cardiac systems to provide diagnostic images. Gating techniques are often used to acquire images restricted to a certain phase window for respiratory and cardiac motion to limit the effects caused by motion. These techniques require tracking the motion from each source.

Respiration can be compensated using several techniques. The simplest way to eliminate breathing artifacts is to ask patients to hold their breath. However, using breath- holds is challenging in a clinical environment since many patients cannot hold their breath for the 20-40 seconds needed to acquire diagnostic quality images. Using breath- holds also limits the types of scans that can be performed. Another option to track respiration is through the use of respiratory bellows. While respiratory bellows are an attractive option for creating a motion-model, they do not directly observe the heart motion variation in breathing patterns that could create inaccuracies in the model. Also, additional equipment and set up is required to use respiratory bellows, which increases discomfort to the patients and requires more scanner time. Motion has also been tracked using self-navigation from oversampling of k- and retrospectively binning

1 data into motion states or through coil clustering (1,2). An additional technique explores measuring thermal noise covariances among receivers (3).

A popular technique for handling respiration is through (NAV) echoes.

NAV echoes use additional radio frequency (RF) pulses in the acquisition sequence to track the liver dome (4). Navigator echoes can be used either retrospectively or prospectively to gate images to acquisition periods during end-expiration in the respiratory cycle where breathing-induced motion of the heart is reduced (5,6). For single-shot applications, retrospective in-plane motion correction (MOCO) has been used instead of navigators to eliminate respiratory motion from images. MOCO, however, does not correct for through-plane motion. Prospective motion compensation (PROCO) is an attractive alternative to MOCO because it can account for through plane motion.

Figure 1 depicts the concept of PROCO. In traditional free-breathing acquisitions without PROCO (first row), the respiratory induced motion of the heart changes the content of the imaging plane (dotted line). In contrast, PROCO (second row) tracks the imaging plane to counteract the breathing motion, capturing the same anatomical location across different heartbeats.

Current PROCO methods rely on one or more navigator echoes to capture respiratory motion and rely on simple parametric models that are inadequate to describe complex respiratory-induced cardiac motion (RIC) (7,8).

2

Figure 1: Description of PROCO (10).

Navigator echoes face several limitations. The NAV signal treats respiratory motion as a one-dimensional signal which limits accuracy in cases of irregular breathing patterns. Further, cardiac gating restricts acquisition to intervals between R-waves which limits the sampling rate of the NAV to one sample per heartbeat. This sampling of the

NAV pulses interrupts the pulse sequence block which further reduces acquisition efficiency. Utilizing NAV pulses also limits flexibility of scans because it is incompatible or inefficient for many CMR protocols. For example, in cine imaging, RF pulses are continuously being acquired over the entire RR interval and cannot afford 70 ms to place a navigator echo within the sequence. In addition, the NAV requires a training period to monitor end-expiration position which incurs additional scan time.

A viable solution to compensate for the drawbacks of the NAV would be to use a signal that would not interrupt the acquisition pulse sequence. The goal of this research is to explore the potential of a new framework to prospectively compensate respiratory motion. The proposed method, called PROspective Motion compensation using Pilot 3

Tone (PROMPT) (10) employs Pilot Tone (PT) technology (9) which provides a reliable surrogate measurement of respiratory motion (10).

Pilot Tone technology uses an external RF signal transmitted close to the central frequency of the MRI scanner. It is hypothesized that producing a small amplitude PT with a fixed frequency within the receive frequency band can be used to monitor respiratory motion (9). Further work with PT technology has explored its ability to track respiration in 2-dimensions using PT and to track cardiac motion (11-13).

This thesis explores the ability of pilot tone to track and model respiration for the

purpose of prospective motion compensation. Signal processing and an adaptive model

will be developed to predict the breathing patterns to assist in creating motion

compensated images and replace the NAV signal for higher resolution, dimensionality, and flexibility in scans. During a training phase, a series of low-resolution images will be collected across several heart beats while pilot tone is continuously sampled. The motion

parameters of the heart across the collected images will be used as training data for the

tracker. Once a model is trained, the PT signal can predict respiratory motion, from

which gradient adjustment can be performed prospectively during data acquisition.

Descriptions of the training and application phase can be seen below in Figures 2 and 3.

4

Figure 2: High-level description of PROMPT (10).

Figure 3: Data acquisition for the training phase (10).

During the training phase pictured in Figure 3, three single-shot, low resolution, orthogonal views (V1, V2, V3) will be collected from each heartbeat. The respiratory 5 motion will be captured by the multichannel PT signal, which is continuously collected.

For simplicity, the PT signal from three channels is depicted. The amplitude and phase variations in the PT signal are hypothesized to encode the respiratory motion.

In our experimentation, we focused on a proof-of-concept study to validate that pilot tone can be used for purposes of prospective motion compensation. Using pilot tone we were able to demonstrate the ability to track respiration with high similarity to a reference signal. Peak and trough locations between the demodulated pilot tone and a reference for respiration had a correlation coefficient of 0.998. Further extension was done to create an adaptive filter for prediction of respiratory motion.

Furthermore, an extension of this work with pilot tone signal would be to use the technology for cardiac motion. Prediction of cardiac motion would eliminate the need for an echocardiogram (ECG) signal which is used for triggering scans. Elimination of the

ECG would eliminate hardware and setup time for scans which would reduce costs and increase comfort for the patient. Further, absence of ECG lead wires would reduce image artifacts.

6

Chapter 2. Signal Model

Magnetic resonance imaging (MRI) is a powerful tool able to create diagnostic images of the body without harm due to radiation. MRI utilizes the magnetic spin property of hydrogen to create images. By applying a strong external field, hydrogen protons align and spin along the field direction. The spin frequency, also known as the

Lamor frequency, is 63.87 MHz for a 1.5T magnetic field. Magnetization can be rotated away from this alignment by applying a small bandwidth radio frequency (RF) pulse to excite a slice. Both frequency and phase gradients are then used to temporarily change the resonant frequency and relative phases of protons. A frequency-encoding gradient is used to specify position within a slice by collecting the gradient echoes which vary in frequency depending on type of tissue within a slice. Furthermore, the phase encoding gradient is used to measure relative phases among protons relative to a reference state.

Each pixel will contain frequency and phase information that is collected into a k-space grid. The Fourier transform is then used to decipher between frequencies and encode spatial information. Details of these principles are further discussed in (15).

Using MRI principles, pilot tone technology has the potential to provide a multi- dimensional respiratory motion signal that can be independently acquired simultaneously with image data without imposing any constraints on pulse sequence characteristics. The pilot tone signal is generated by a separate RF source transmitted through an antenna

7 placed in the scanner room. This requires no additional setup time once the transmitter is placed appropriately. The frequency of the PT signal is close to the Lamor frequency and thus is picked up by the receive coil array placed on the patient. The frequency of the pilot tone can be adjusted to be precisely encoded at a fixed spatial location in the readout direction, ideally outside the physical region of interest for the scan. Oversampling is typically done by doubling the sampling rate in the frequency encode direction to double the field of view (FOV), thereby providing plenty of vacant locations (OS) to place the pilot tone. This oversampling does not increase scan time. In the example in Figure 4, the pilot tone signal was placed away from the image and has further vacant locations due to oversampling.

Figure 4: Example of PT in image domain (10).

The pilot tone will appear as either a dot or a “zipper” depending on the type of scan being implemented. For this research, a GRE sequence and TrueFISP sequence were analyzed. The GRE sequence will appear as a zipper of points (a Fourier series) across

8 the pulse sequence. The TrueFISP sequence uses an alternating sign in modulation of the pilot tone signal which results in the pilot tone appearing as a dot in the image domain.

The amplitude and phase of the tone received by the body coil array is hypothesized to be modulated by respiratory motion. Multiple channels can be used depending on number of coils available during scans. This allows for a multidimensional signal to encode motion information. The sampling rate of the signal is one sample per repetition time (TR) interval which lasts a few milliseconds, allowing for very high temporal resolution in estimation of respiration phase. The received signal is then demodulated to baseband by the MRI software before being displayed in the image domain at the scanner workstation.

The signal model of the pilot tone, s, will be as follows for the ith channel received:

�(�) = �(�)���2�(� + Δ�)� + �(�) + �(�) where Ai(t) is the amplitude of the received signal, fc is the Lamor frequency, ∆f is the user defined shift in frequency, ϕi(t) is the time varying phase, and Ni(t) is the noise from the channel.

It is conjectured that the amplitude of the signal, Ai(t), contains physical information about the patient’s motion. Irrespective of the physics of the modulation present in the PT signal, any correlation between respiratory motion and the PT waveform can be exploited to track patient motion.

9

Chapter 3. Signal Processing

The raw signal from motion receive coils is processed to extract the pilot tone data and use it for prediction of respiration. The Fourier Transform of raw k-space data in the phase encode direction reveals the position of the pilot tone along the readout direction. The pilot tone can be used for prediction with comparison to a reference signal during a training phase. Additionally, pilot tone may have potential to be used to monitor cardiac motion for purposes of triggering scans. An overview of the signal path can be seen below in Figure 5.

Figure 5: Block diagram of PT path for respiratory training.

10

In the block diagram, the transmitted pilot tone u(t) passes through the noisy channel and is modulated by the patient’s behavior. The received pilot tone s(t) is a multi- dimensional signal that contains a time-series from each of the receive coils. Systems H and G are used to identify and predict respiratory and cardiac motion, respectively. A reference signal r(t) is used for training of the respiratory prediction filter. An extension to cardiac motion is depicted for purposes of echocardiogram (ECG) triggering.

3.1 Preprocessing

The PT signal is extracted at a given frequency location from the Fourier transform in the frequency encode direction of the raw k-space data. This results in a complex-valued time series si(t) with samples every TR seconds. Demodulation is performed by evaluating the absolute value of the complex signal to analyze the amplitude change which is believed to contain the respiratory motion. Further processing ideas are taken in part from the work of Bacher et al. (13) who have found success in singular vector decomposition and independent component analysis as preprocessing steps.

A training phase of M samples is used on the N channels of pilot tone data.

Singular vector decomposition (SVD) is performed on the M-by-N matrix. This provides a spectral decomposition into orthogonal vectors to reduce dimensionality. This aids in noise reduction and reduces the amount of data used in the prediction algorithm. The

SVD results in a projection matrix, U, to project subsequent Nx1 vector of samples to a desired lower dimensional subspace. The subspace spanned by the highest singular values

11 is used, and lower singular values are discarded. In the case of using 18 receive channels, the dimension is reduced to 6 channels through SVD.

Independent component analysis (ICA) is then performed on the six singular vectors. ICA divides the data into statistically independent vectors. Because motion of the heart is believed to be coming from two independent sources, breathing and cardiac motion, ICA is a naturally viable technique to use. The first four independent component vectors are kept. The first two vectors are believed to contain respiratory motion and the third vector may contain cardiac motion. The preprocessing flow diagram can be seen below in Figure 6 which describes system H in Figure 5.

Figure 6: Block diagram of system H.

Prediction of respiratory motion is done by using singular value decomposition

(SVD), independent component analysis (ICA) and an adaptive filter created through linear predictive coding (LPC). LPC aims to drive the error signal e(t) to zero.

12

3.2 Linear Predictive Coding

To create a predictive model for the purposes of prospective imaging, a causal filter was designed using linear predictive coding. The two respiratory time series are used as inputs to the model which aims to predict the next position of the region of interest.

During the training phase, a motion correction (MOCO) signal is used as a reference for tracking and prediction. The MOCO vector is created by isolating a region of interest within an image frame and measuring displacement of the region across consecutive frames. By choosing a region around the rib cage, sternum motion can be tracked which is highly correlated with respiratory motion. For further extension to gradient adjustment for prospective imaging, MOCO can be used to track heart movement in three orthogonal planes (15).

To perform linear predictive coding, the Weiner-Hopf equations were used. The

Weiner-Hopf filter uses the orthogonality principle to minimize mean squared error between the prediction and the reference vector. For illustration, the equations are derived below with prediction of a stable sinusoid with added white Gaussian Noise (AWGN).

The signal model of interest is as follows:

�(�) = �(�) + �(�) where x(t) is meant to represent a simplified version of the received pilot tone containing a sinusoid indicative of respiration d(t) = Acos(2πft) with frequency f and amplitude A.

Here w(t) represents the additive white Gaussian noise (AWGN). Here the sampled version at sampling period T is used to derive a discrete filter.

13

�[�] = �[�] + �[�] = ����(2����) + �[�]

The goal of the Weiner-Hopf equations is to create an estimate of the reference breathing motion d[n] from a memory stack containing the previous L samples of the observation x[n]. The Weiner-Hopf equations are derived a using linear filter that minimizes the mean squared error between the estimate and the reference. The filter coefficients are learned and applied to the memory stack to predict the next value of the reference vector given the noisy observation.

�[�] = � �[�] = � �[� − �] The mean squared error takes on a quadratic form which can be minimized by taking the gradient and set equal to zero. Further discussion on the derivation of the

Weiner-Hopf equations can be referenced in (16). The autocorrelation matrix and the cross-correlation vector are used to compute f* as follows where Rx is the autocorrelation matrix of the observation and rud is the cross-correlation of the observation with the reference.

∗ � = � �

Filter coefficients were derived using these equations for the sinusoid with AWGN. A length L = 25 filter was learned over 1000 samples of the sinusoid. The results of the theoretical derivation compared to the experimentally calculated filter coefficients can be seen below in Figure 7.

14

Figure 7: Derived Weiner-Hopf filter coefficients for a sinusoid with AWGN.

15

Chapter 4. Transmitter Design

To transmit the pilot tone inside the magnetic bore, a transmitter was designed.

The design goals for the transmitter were for it to be small enough to fit in the bore with flexibility for location placement and to transmit a user selected stable tone at approximately 64 MHz with low power. The main elements of the transmitter are the frequency synthesizer, the antenna, and a battery.

The output of the frequency synthesizer needs to be at a frequency close to 63.622

MHz which is the Lamour frequency for a 1.5 T MRI scanner. The frequency output needs to be tunable within a few hundred kilo-Hertz of the Lamour frequency with 1 kHz precision to place the pilot tone at the desired location in the bandwidth of the coil receivers. The programmable feature allows for adjustment of the frequency on a patient and scan specific basis since the body signal and FOV will vary.

A phase lock loop (PLL) was chosen as a good synthesizer for the transmitter because of its ability to generate a stable high frequency output from a fixed signal. The

PLL is a feedback system that consists of a voltage-controlled oscillator (VCO), a phase error detector, and loop filter. The negative feedback of the system drives the error in phase between the input frequency and the VCO to zero. After low pass filtering, the error signal is used to tune the oscillator. Once error is minimized, the loop will be locked and a steady-state signal is output. The programmability and stability of the PLL were well suited for emission of the pilot tone. 16

The next key component was the antenna. The wavelength of a 64 MHz signal is approximately 4.66 meters in free space which is very long. Few commercial antennas are available that emit at 64 MHz, especially for a compact design. Luckily, for the pilot tone application, there is a very low power requirement to be received by the body coils.

This allowed for flexibility in the design to be inefficient. To create a compact antenna a meander line monopole antenna was designed by Dr. Villorroel and Xiozhen Yang

(Appendix A).

To power the transmitter, a battery was used for portability of the transmitter. A single supply, low-power battery was sufficient for the transmitter. The battery had the requirement of containing no ferromagnetic metals and being MRI safe.

Shielding was considered in the design of the transmitter to limit interaction with the electromagnetic field in the scanner room. The gradient field of the MRI is 30mT/m.

This gradient is very low and may not produce significant eddy currents on the electronics of the transmitter. For initial experiments, no electromagnetic shielding was deemed necessary; however, shielding may be a useful tool to provide additional attenuation, if necessary, and housing of the transmitter.

The prototype transmitter was designed on a 121x40 mm standard four-layer

FR402 board. A Maxim Integrated MAX2871 ultra-wideband PLL with integrated VCOs was utilized in the transmitter design as a frequency synthesizer. The MAX2871 PLL is programmed to a set frequency by a separate Eval Kit equipped with a microprocessor and software (17). The transmitter is powered by a 3.7 V lithium-ion battery due its non- magnetic properties. Charging of the battery is done via micro USB. A voltage-controlled

17 crystal oscillator is used as a reference signal for the PLL. Because the MAX2871 is a wideband PLL, a low-pass filter is used to filter higher order harmonics. An additional 40 dB in attenuators is included to reduce the power of the output signal. Figures 8, 9, and

10 below depict a block diagram of the design and an image of the transmitter PCB.

Further design details are presented in Appendix B.

Figure 8: Block diagram of pilot tone transmitter.

Figure 9: Pilot tone transmitter with monopole antenna.

18

Figure 10: Reverse side of pilot tone transmitter with lithium-ion battery.

19

Chapter 5. Experimentation

To test the pilot tone technology, first a proof-of-concept experiment was designed to explore potential of the PT signal to observe respiratory motion. Next, the transmitter design was tested for safety and function. Finally, PT and NAV data were collected simultaneously to compare signal behavior across scans.

5.1 Experiment 1, Proof-of-Concept

5.1.1 Methodology

To validate that the pilot tone was a feasible concept, a proof-of-concept experiment was designed to explore the ability of the pilot tone to be picked up by the receivers and further explore the information content of the PT signal for predicting respiratory motion. The initial design included an Agilent MXG analog signal generator

(100 kHz to 20 GHz) placed outside the scanner room with the signal transmitted via an

RF telescoping antenna (Comet Original BNC-W100RX 25 MHz-1300 MHz handheld scanner antenna) positioned inside the scanner room (Figure 10). The function generator was set to the lowest power setting at -20 dBm and programmed to the Lamor frequency of 63.622544 MHz. Attenuators summing to -35 dBm were used to dampen the signal power to similar levels of the MRI signal. The frequency of the pilot tone was then adjusted to ensure that the pilot tone signal was not coincident (in the image domain) from the MRI signal. The frequency was adjusted by adding 118 kHz so that the 20 frequency output on the signal generator was 63.740544 MHz. Since field-of-view (FOV) and bandwidth are adjusted based on the content of the image, manual adjustment of the pilot tone was required prior to each scan.

Figure 11: Experimental setup for proof-of-concept experiment (10).

5.1.2 Explore Respiratory Motion

All data collections were performed on a Siemens Avanto 1.5 T Scanner with one minute free-breathing scans of a healthy volunteer. Acquisitions were performed using

True FISP and GRE acquisition protocols with nine active receive coils. Raw pilot tone data was extracted from a 1D Fourier transform of the frequency-encode dimension of k- space (Figure 12). The raw data, s(t), contains a nine dimensional matrix (N=9) and can be seen in Figure 13.

21

pilot tone

Figure 12: FFT of raw image data in read-out direction

Figure 13: Absolute value of raw pilot tone data for 9 receive channels.

22

The absolute value of each of the nine channels was taken, and a low pass filter with cutoff 0.75 Hz (Appendix C) was applied to isolate respiratory motion (Figure 14).

Singular value decomposition was performed on the filtered data, and the first principal component vector was used as a representation of believed respiratory motion. For this exploratory experiment, all processing was performed offline without consideration of real-time processing.

Figure 14: Low pass filter of pilot tone with cutoff at 0.75 Hz.

The singular vector was compared to a retrospective in-plane motion correction

(MOCO) signal. The MOCO signal tracks displacement of a region-of-interest over

23 consecutive image frames. The rib cage movement in the anterior/posterior direction was tracked as a surrogate for respiratory motion during the training phase (Figure 15).

Figure 15: MOCO region of interest highlighted at ribcage.

The primary singular vector of the pilot tone was downsampled to match the sampling rate of the MOCO signal and a single real-valued scaling factor was computed to best align the processed PT signal with the MOCO reference (Figure 16).

24

Figure 16: SVD of filtered pilot tone compared to MOCO signal.

Peaks and valleys of each signal were identified using Matlab and compared against each other. The peak and trough locations had a very high correlation coefficient of 0.99763 (Figure 17).

This preliminary experiment confirms that the pilot tone signal contains information sufficient to observe respiratory motion.

25

Figure 17: Comparing peak and trough location for pilot tone and MOCO signal.

5.1.3 Respiratory Motion Prediction

To use the pilot tone for prediction, a causal filter was design using the Weiner-

Hopf equations. The processing described previously in Figure 6 was used for this implementation. Singular value decomposition was performed on first M = 9000 samples to reduce the data from nine channels to four orthogonal vectors. Independent component analysis was then performed to reduce the data to three independent vectors. Thus, the composition of SVD and ICA results in a learned projection matrix of size 3-by-9 which as each time sample, projects the nine channel PT signal to three dimensions. The first two noisy ICA vectors were then used as input to the linear predictor. The third ICA vector is believed to contain cardiac motion information which is outside the scope of this experiment. 26

MOCO was used to track rib cage movement to be used again as a surrogate for respiratory motion and a reference signal for training. The sampling rate of the MOCO signal was one sample per frame. A linear interpolation was performed to match the sampling rate of the pilot tone signal. Training was performed on 30 seconds of data, and

100 taps of memory were used. The linear training was used to estimate 200 filter coefficients, 100 for each of the two input ICA vectors. A stem plot of the filter coefficients can be seen below in Figure 18.

Figure 18: Stem plot of L = 100 trained filter coefficients for each ICA vector.

After training, the filter was applied to the two ICA vectors, and their products were summed to make a prediction for the next reference signal value. The trained filter was tested on the remaining 30 seconds of data from the same scan to test the ability to accurately predict the next location of the respiratory cycle. Results can be seen below in

27

Figure 19. The results for the linear predictor are very promising; the mean square error is

0.036.

Figure 19: Prediction results from applying filter coefficients to previous 100 samples.

Smoothing of the curves with a low pass filter was performed to compare peak and trough locations for the prediction results. The results of this comparison can be seen below in Figure 20.

28

Figure 20: Peak and trough locations for predictions results.

A high correlation coefficient of 0.9999 indicates that the prediction model can successfully predict end-expiration and end-inspiration with high accuracy.

5.2 Experiment 2, Transmitter Performance

5.2.1 Methodology

After construction, the pilot tone transmitter was tested for performance and safety. The goal of this experiment was to test the safety of the transmitter during scans, the intensity of the signal relative to the MRI signal, and the ability to change the frequency and place it at different locations in the read-out direction. Using the Eval Kit and the Maxim Integrated software, the transmitter was programmed to output a 63.6225

29

MHz tone using the micro-USB connection (Figure 21). Details on how the transmitter is programmed are outlined in Appendix D.

Figure 21: Programming of pilot tone transmitter using Eval Kit.

The transmitter was then placed in a plastic Tupperware housing for safety purposes. A phantom was used in the bore with the coil array placed on top. A block of foam was used to prop the transmitter approximately six inches above the coil array to avoid artifacts from the electronics being too close to the coils. The transmitter was reprogrammed several times to explore the ease and ability of the transmitter to transmit signals of different frequencies varying tens of kilohertz from the central frequency. The transmitter’s frequency was adjusted by a maximum of a 90 kHz shift. Ten second

TrueFISP scans were run in between reprogramming to observe the pilot tone moving in 30 the read-out direction with each new frequency. Finally, a 30 min true FISP scan was run with the phantom to explore the safety of the transmitter under intense scanner conditions.

5.2.2 Results

The transmitter successfully transmitted a stable pilot tone that could be seen in the image domain of the scans. The intensity of the signal was similar to the intensity of the phantom’s MRI signal received. An image of the phantom with the pilot tone programmed to 90 kHz less than the central frequency can be seen below in Figure 22.

The pilot tone can be seen at the lower left corner of the image. The 40 dBm of attenuation built into the transmitter design appears to be appropriate from these initial scans.

Figure 22: Imaging of phantom with pilot tone.

31

Reprogramming of the transmitter was an easy process with the Maxim software and took approximately 30 seconds between scans to reprogram. The 30-minute scan had no clear effect on the performance of the transmitter. The transmitter continued to output a stable pilot tone throughout the scan. The battery was assessed for overheating at the completion of the scan and no significant heating was present. Successful performance during this intense scan indicates that the transmitter is safe for use with human volunteers.

5.2.3 Volunteer Scan with PT Transmitter

The experiment with the pilot tone transmitter was rerun using a volunteer in place of the phantom. The goal of these scans was to further explore the pilot tone to observe respiration using the new transmitter. The foam block was again placed between the receive coils and the encased transmitters. A two-minute TrueFISP scan was run, and the volunteer was asked to hold her breath for 15 seconds at a time during the scan for a total of four breatholds.

The data was processed offline by taking the absolute value, low pass filtering, and performing singular value decomposition as in Experiment 1. The primary singular vector can be seen below in Figure 23.

32

Figure 23: Primary singular vector of demodulated PT signal.

The results in Figure 23 clearly show breath holds highlighted at four different periods of the scan and a sinusoidal nature of the data that is consistent with results seen in Experiment 1 for respiratory motion. The pilot tone transmitter has successfully been used to observe motion that is indicative of respiration and is a promising replacement to the setup of Experiment 1.

33

Chapter 6. Discussion

The proof-of-concept experiment was used to validate that respiratory motion was encoded in the pilot tone signal. A linear predictor was used to predict the next signal in the respiratory cycle for purposes of prospective motion compensation. The linear predictor was successful in prediction of a MOCO reference signal with a comparative peak/trough correlation coefficient of R2 = 0.9999 after a 30 second training phase. The linear predictor is an attractive solution to the predictive problem because it is easy to implement with a short memory of only 0.3 seconds. This is very promising for ability of the pilot tone to track and predict motion.

The fabricated transmitter was successful in generating the pilot tone and being received by the MRI body receive coils. The ease of placement of the transmitter makes it a great option for experimenting with various locations to explore respiratory and cardiac motion. Further, the programmability of the transmitter is useful for changing the frequency of the pilot tone and thus the position in the read-out direction. The transmitter can be quickly programmed using the Eval Kit and Maxim software in between scans.

Upon further testing with a volunteer, the transmitter was used to observe intermittent breathing patterns successfully observing the deliberate breath holds that were performed during the scan.

34

Chapter 7. Future Work and Conclusion

Further experimentation with pilot tone will be to proceed with replacement of the navigator signal. A common use for the navigator is respiratory gating. A logical next step for pilot tone development will be to see if the pilot tone is capable of performing respiratory gating retrospectively using the prediction model and a threshold to isolate acquisitions at end-expiration. One challenge to this implementation will be the signal drift that has been observed across scans with the pilot tone and in navigator sequences.

To account for the drift in respiratory gating an adaptive filter may have to be used as seen in (18).

Furthermore, the pilot tone can be used to fully replace the navigator for prospective imaging purposes. This development will complete the goals highlighted in

Figure 2. Collection of three orthogonal views of the heart per RR interval will be collected during a training phase with simultaneous pilot tone being transmitted and received. A linear prediction training can be performed for the motion in each of the three planes from pilot tone. Prospective motion correction can then be run using the model, similar to the PROCO navigator approach in (15). Challenges to the next step of the pilot tone project will be matching sampling rates for prospective motion correction. Another problem may be the linear predictor; the linear predictor may work in controlled experiments with steady breathing patterns but may not be robust enough for changes in

35 breathing patterns. A recurrent neural net may be explored as a replacement to the linear predictor. Transfer learning can be used to reduce the training time of a neural net for implementation of patient scans.

A further extension of pilot tone technology would be to extract cardiac motion for the purpose of triggering scans. This would allow for the removal of the echocardiogram signal (ECG). By removing the ECG, equipment and setup time would be reduced. Triggering scans using the pilot tone is challenging because it requires a patient invariant method to extract the cardiac motion signal since there would be no reference signal to compare with. Schroeder et al (11). have seen promising preliminary results for tracking cardiac motion during a breath-hold by combining receive coils with high covariances and band-pass filtering, but this is also a non-causal method and results are inconclusive for free-breathing scans.

In conclusion, we successfully demonstrated the ability to track respiratory motion in vivo using a pilot tone signal. A linear prediction model was shown to be adequate for training. Further, a small battery-powered MR-compatible transmitter was designed, constructed, and tested for pilot tone transmission. The transmitter provides a portable solution to transmit a user-programmed pilot tone frequency.

36

References

1. Usman M, et. al. Free breathing whole-heart 3D CINE MRI with self-gated Cartesian trajectory. Magnetic Resonance Imaging, 2017 38, 129-137. doi: 10.1016/j.mri.2016.12.021. 2. Zhang T, Cheng JY, Chen Y, Nishimura DG, Pauly JM, Vasanawala SS. Robust Self-navigated Body MRI Using Dense Coil Arrays. Magnetic resonance in medicine. 2016;76(1):197-205. doi:10.1002/mrm.25858. 3. Andreychenko, A. , Denis de Senneville, B. , Navest, R. , Tijssen, R. , Lagendijk, J. and Berg, C. (2018), Respiratory motion model based on the noise covariance matrix of a receive array. Magn. Reson. Med, 79: 1730-1735. doi:10.1002/mrm.26775 4. Ehman R, Felmlee J. Adaptive Technique for High-Definition MR Imaging of Moving Structures. Radiology 1989 173:1, 255-263. doi: 10.1148/radiology.173.1.2781017 5. Piehler KM, Wong TC, Puntil KS, et al. Free-Breathing, Motion-Corrected Late Gadolinium Enhancement Is Robust and Extends Risk Stratification to Vulnerable Patients. Circ. Cardiovasc. Imaging [Internet] 2013;6:423–432. doi: 10.1161/CIRCIMAGING.112.000022. 6. Lingala SG, DiBella E, Jacob M. Deformation Corrected Compressed Sensing (DC-CS): A Novel Framework for Accelerated Dynamic MRI. IEEE Trans. Med. Imaging 2015;34:72–85. doi: 10.1109/TMI.2014.2343953. 7. Manke D, Nehrke K, Börnert P. Novel prospective respiratory motion correction approach for free-breathing coronary MR angiography using a patient-adapted affine motion model. Magn. Reson. Med. [Internet] 2003;50:122–131. doi: 10.1002/mrm.10483.

37

8. McConnell M V., Khasgiwala VC, Savord BJ, Chen MH, Chuang ML, Manning WJ, Edelman RR. Prospective adaptive navigator correction for breath-hold MR coronary angiography. Magn. Reson. Med. [Internet] 1997;37:148–152. doi: 10.1002/mrm.1910370121. 9. Speier et. al. PT-Nav: a novel respiratory navigation method for continuous acquisitions based on modulation of a pilot tone in the MR-receiver. Proc. ESMRMB 129:97-98. 2015. doi: 10.1007/s10334-015- 0487-2. 10. Ahmad R, Simonetti OP, Craft J, Potter LC. Prospective Slice Tracking for Cardiac MRI. R21 Proposal. October 2018 – September 2020. 11. Schroeder L, Wetzl J, Maier A, Lauer L, Bollenbeck J, Fenchel M, and Speier P. A Novel Method for Contact-Free Cardiac Synchronization Using the Pilot Tone Navigator. In Proc. Intl. Soc. Mag. Reson. Med. 24, page 0410, 2016. doi: 10.1002/mrm.25858. 12. Schroeder L, Wetzl J, Maier A, Rehner R, Fenchel M, and Speier P. Two- Dimensional Respiratory-Motion Characterization for Continuous MR Measurements Using Pilot Tone Navigation. In Proc. Intl. Soc. Mag. Reson. Med. 24, page 3103, 2016. doi: 10.1007/s10334-015-0487-2. 13. Bacher M, Speier P, Bollenback J, Fenchel M, Stuber, M. Model-Based Lag Free Processing of Pilot Tone Navigator Data Enables Prospectie Cardiac Triggering. ISMRM-ESMRM 2018. 14. Brown R. Magnetic resonance imaging : Physical principles and sequence design. 2014. www.summon.com. 15. Bush M, Ahmad R, Liu Y, Ning J, Varghese J, Simonetti OP. Prospective correction of patient-specific respiratory motion in T1 and T2 mapping. ISMRM- ESMRM 2018. 16. Haykin Simon S. Adaptive Filter Theory. 2014. Print. 17. MAX2870/MAX2871 Evaluation Kits. maximintegrated.com. https://datasheets.maximintegrated.com/en/ds/MAX2870EVKIT.pdf. Accessed July 8, 2018.

38

18. Sinkas et. al. Motion pattern adapted real-time respiratory gating. Magn. Reson. Med., 41: 148-155. doi:10.1002/(SICI)1522-2594(199901)41:1<148::AID- MRM21>3.0.CO;2-G

39

Appendix A. Transmitter Antenna

The antenna design can be seen below.

Figure 24: Meander line antenna design.

Table 1: Antenna Dimensions

L (total length, including ground plane) 120 mm W (total width) 40 mm H (total height) 9.4 mil L1 (length of the ground plane) 50 mm Wm2 (width of the antenna) 38 mm Wa (width of the wire) 0.25 mm Gap (distance between the wires) 0.95 mm 40

Testing was done using Advanced Design System (ADS) software. Simulations were performed using a shunt capacitor and series inductor. The simulation details and results are as follows.

Figure 25: Antenna simulation circuit model.

41

Figure 26: Antenna simulation S11 results.

Figure 27: Simulation gain pattern. 42

Figure 28: Simulation realized gain.

Figure 29: 3-D realized gain.

43

Appendix B. Transmitter Electronics

Transmitter electronics schematic (Part 1).Transmitter schematic electronics

: 30

Figure

Figure 30: Transmitter electronics schematic (Part 1). 44

). 2 er electronics schematic (Part schematic electronics er Transmitt

: 1 3

Figure

Figure 31: Transmitter electronics schematic (Part 2). 45

Table 2: Transmitter bill of materials. bill of materials. of bill Transmitter Transmitter

: Table Table 2

46

Appendix C. Matlab Code

% This code will explore the theorhetical Weiner-Hopf filter using a % sinusoid with AWGN clc; clear; f = 5; %frequency of waveform fs = 50*f; Ts = 1/fs; %sampling frequency and period A = 1; %amplitude

N = 1000; %length of signal n = 1:N; y = A*cos(2*pi*f*Ts*n); %signal without noise d = A*cos(2*pi*f*Ts*(n+1)); %want to estimate next value in signal

E = sum(abs(y.^2))/N; SNRdB = 5; SNR = 10^(SNRdB/10); w = sqrt(E/SNR)*randn(1,N); %AWGN x = y+w; %input: signal + AWGN figure; plot((1:length(x))*Ts,x); hold on; plot((1:length(y))*Ts,y);

%% L = 25; %filter length Rx = zeros(L,L); %intialize correlation matrix rxd = zeros(L,1); %initialize cross correlation vector Rw = zeros(L,L); for n = L:N; uvec = x(n:-1:n-(L-1))'; %input vector with L taps wvec = w(n:-1:n-(L-1))'; %take sum Rw = Rw+wvec*wvec'; Rx = Rx+uvec*uvec'; rxd = rxd+uvec*d(n); end

%divide by length to get average ("expected" vals) Rx = inv(N-L+1)*Rx; rxd = inv(N-L+1)*rxd; Rw = inv(N-L+1)*Rw; 47

% Calculate fstar fstar = inv(Rx)*rxd; %filter coefficients

%% Calc Theorhetical Rx and rxd for k = 1:L r(k) = A^2/2*cos(2*pi*f*Ts*k); temp(k) = A^2/2*cos(2*pi*f*Ts*(-k+1)); end R = toeplitz(temp)+diag(E/SNR*ones(L,1)); f = inv(R)*r';

%% Compare % figure; plot(r); hold on; plot(rxd); % legend('theo', 'exp'); title('rxd'); figure; stem(f); hold on; stem(fstar); grid on; legend('theoretical', 'experimental'); title('filter coefficients for L = 25 length filter'); xlabel('filter coefficient for past n input'); ylabel('weight')

% figure; plot(R(:,1)); hold on; plot(Rx(:,1)); % legend('theo', 'exp'); title('Rx');

% This code will extract raw MRI data from the proof-of-concept experiment % with Pilot Tone. % Exploratory work will be performed to demodulate the PT signal and % compare it to a reference for respiratory motion.

%% Extract Raw Data % Add relevant folders to the path clc; clear; restoredefaultpath if ( ~isempty( strfind(pwd,'\')) ) % Windows('contains' doesn't work in Linux ) addpath('.\utility'); addpath(genpath('.\RACommons')); else addpath('./utility'); % Linux addpath(genpath('./RACommons')); end

%% Data parameters p.Nc = [12, 0.35]; % number of compressed channels [numbers, fraction] p.nAmp = 1; % Noise amplification to simulate lower field p.nStd0 = 1; % Normalize noise to this value p.dis = 1; % To display or not p.sgAvg = 1; % To average the "seg" dimension or not; p.mxFlg = 0; % Find Maxwell correction maps or not. p.kNoise = 0; % Estimate noise from k-space 48 p.nNrm = 0; % Use the noise from all coil to find noise power; 1:yes, 0:no p.frRec = 120; % At the most reconstruct this many frames p.frS = 0; % To discard the frames from the start (1) or from the end (0) p.yMx = 50; % Normalize the data to this max value p.PreSR = 0; % Presupposed spatial resolution, '0' Objective spatial resolution

%% sensitivity estimation parameters p.mthd = 1; %'1' espirit, '2' Walsh p.fil = [7,7]; % size of kernal for eSPIRiT or size of filter for 'Walsh'; use [7,7] for eSPIRiT and [3,1] for Walsh p.eSRT = [4e-3, 0.95]; p.eSmaps = 2; %number of Espirit sensitivity maps (set 1,2 or 0 for current version; '0' auto-choose) p.oIter = 12; % Total outer iteration p.oIter_2map = 12; % Outer re-weighting iterations using 2 sensitivity maps (if choose walsh, oIter_2map must be 0) p.oIter_1map = p.oIter - p.oIter_2map; % Outer re-weighting iterations using 1 sensitivity maps p.avgPhs = 1; % Assign the phase to time-average image. 1: yes, 0: no p.ACSsz = [128, 96]; % size of the k-space block used for eSPIRiT p.ACSco = [1/sqrt(2),1/sqrt(2)]; % Size of the cut-off filter used in Walsh %use [1/2, 1/2 ] % p.reEst = 0; % Res-estimating sentitivities

%% Sparsifying transform parameters p.d = 3; % Image dimensions p.dict = {{'db1','db1','db1'}}; % 'fd'; % concatenation of n wavelet transforms {'db1','db2',....'dbn'}, p.decm = 0; % 0 for undecimate and 1 for decimated wavelet transform. p.N = 1; % level of decomposition; for 'fd' pick 3 or 7 p.rlPhi = 0; % '1' if the input image and measurements are real; '0' for complex p.rlPsi = 0; % '1' if the coefficients in the sparsifying domain are real; 0 for complex p.bWt = ones(1, (2^p.d + (p.N-1)*(2^p.d - 1))*numel(p.dict)); % Manual scaling of bands for non-SCoRe recon. p.bGrp = ones(1, (2^p.d + (p.N-1)*(2^p.d - 1))*numel(p.dict)); % band grouping for SCoRe, each group is threholded similarly p.sLP = 1; % the distribution may be skewed along real or imaginary axis; p.sdis = 1/sqrt(2); % 0

%% FISTA paramters % p.oIter = p.oIter_1map+p.oIter_2map; % Total Outer re-weighting iterations p.iIter = 8; % Inner FISTA iterations p.minIter = 1/2; % Minimum number of inner iterations (as a fraction of p.iIter) to run for each outer iteration 49 p.fstIter = 2; % for oIter = 1, the iIter = p.iIter x p.fstIter p.stpThrsh = 2e-6; % Stopping threshold p.L1 = []; % Lipschitz constant for the fidelity term; will be calculated if left empty p.L2 = []; %2.05; % Lipschitz constant for the regularization term; will be calculated if left empty p.mu0 = 1; % Initial mu used in mFISTA p.muf = 0.1; % Final mu used in mFISTA p.mur = (p.mu0/p.muf)^(1/(p.oIter*0.9)); % mu reduction factor schedule used in mFISTA p.v = 1; % Vebocity level; '1' for max verbocity; larger number reduces verbocity p.fvr = 's'; % FISTA's version, 's' for Samuel Ting's ([email protected]) approximate (but x3 faster) % version and 'm' for mFISTA; 's' requires \Psi' * \Psi = Identity, % while 'm' does not have this requirement. p.nFtr = 1; % Global scaling of the noise power p.sFtri = 2; % Global "initial" scaling of the composite sparsity term p.sFtrf = 1; % Global "final" scaling of the composite sparsity term p.epni = 2e1; % For IRW-L1, change epsilon for p.epni to p.epnf over p.oIter p.epnf = 1; p.nTol = [5e-3, 1/10]; % Noise toleratance; lambda = 1/(L1 + noise tolerance) p.lRes = [0.3, 5]; % Restriction on lambda values; for p.lRes(1) interations, keep max(lambda)<= p.lRes(2)*meanLambda

%% Sampling parameter p.samp = []; %importdata('D:\Research\LowFieldMRI\PerfusionData\dataset01\samp.mat') ; p.ret = 0; % Retrospective downsampling p.isoRes = 1; % zero-pad PE to make the spatial resolution isotropic

%% Load data and perform recon [fileName,dirName,FilterIndex] = uigetfile('*.dat','MultiSelect', 'on'); for k = 1:size(fileName,1+iscell(fileName)) if iscell(fileName) filename = fileName{k}; else filename = fileName; end p.fName = [dirName filename]; p.fd = [0.25, 0.25]; [xMat, xStk, param] = readWrapper(p); % For data collected on VE software, change it to readWrapperVE(p) % close all; end

%% Set Parameters [Nfe,Nch,Npe_i,Nframes] = size(xMat); 50

[Nfe, Nch,Npe] = size(xStk); raw = xStk; seq = strfind(filename,'GRE'); if seq ~=0 ptpix = 192; else ptpix = 183; end

Ts = 60/Npe; %sampling time TR in seconds for 1min scan fs = 1/Ts; %% extract pt data x=fftshift(fft(raw,Nfe,1),1);%FFT in the frequency-encode dimension figure;imagesc(squeeze(abs(x(:,1,:))));title('FFT in FE direction--Ch. 1') xlabel('PE line number -->');ylabel('FE Direction -->')% get the x = double(squeeze(x(ptpix,:,:)));%the traces % display the traces d=1.4*max(max(abs( abs(x)-repmat(mean(abs(x),2),[1,size(x,2)]))) ); offset=diag(0:d:(Nch-1)*d)*ones(size(x));%offset each channel to visualize figure;plot( (offset+abs(x)-repmat(mean(abs(x),2),[1,size(x,2)])).'); title('Multi-channel data (abs)');grid on axis([1, length(x), -d, (Nch)*d]) xlabel('sample') ylabel('a.u.')

%% Image im=zeros(Nfe,Npe/Nframes,Nframes); for kk=1:Nframes for jj=1:Nch im(:,:,kk)=im(:,:,kk) + ... abs(fftshift(fft2(squeeze(raw(:,jj,(1:Npe/Nframes)+(kk- 1)*Npe/Nframes))))).^2; end end %implay(im,1/(Npe/Nframes*(Ts/1000)));%seconds %one frame to display tmp=20*log10(abs(imrotate(im(:,:,round(Nframes/2)),-90))); tmp=tmp-max(tmp(:)); figure;imagesc(tmp,[-50 0]);axis image colorbar;title('FFT2 SoS Image, Middle Frame (dB)') %% Demodulate w/ Relative Phases ChRef = 5; xRel=zeros(size(x)); for k=1:Nch xRel(k,:)=unwrap(angle(x(k,:)./x(ChRef,:)),[],2); end d=2*pi; offset=diag(0:d:(Nch-1)*d)*ones(size(xRel));%offset each channel to visualize 51 figure;plot( (1/pi)*(offset+xRel).'); title('Multi-channel data (phase/pi relative to reference channel)');grid on axis([1, length(x), -d/pi, (Nch+1)*d/pi]) coil=xRel(4,:).'; t=Ts*(0:length(coil)-1).'; figure;plot(t,coil*180/pi);grid on title(' Phase (deg) relative to reference for one channel'); xlabel('time (ms)');ylabel('PT phase (deg)')

%% Demodulation with Reference Channel Phase z = zeros(size(x)); for i = 1:Nch z(i,:) = x(i,:)./x(ChRef,:).*abs(x(ChRef,:)); end z(:,1:220) = []; %remove transients time = Ts*(0:length(z(2,:))-1); dz=1.4*max(max(abs( abs(z)-repmat(mean(abs(z),2),[1,size(z,2)]))) ); offset=diag(0:dz:(Nch-1)*dz)*ones(size(z));%offset each channel to visualize figure;plot(time,(offset+abs(z)- repmat(mean(abs(z),2),[1,size(z,2)])).'); title('Multi-channel data Demodulated with Reference Channel 5');grid on

%% LPF of Demodulated Signal trace = z; Nfilt = 220; %Order of filter h = firls(220,[0 .75 2 150]/150,[1 1 0 0]); %Low pass filter for i = 1:Nch trace(i,:) = filter(h,1,abs(z(i,:))); end trace(:,1:Nfilt) = []; %remove transients dt = Ts*(0:length(trace(8,:))-1); dtr=1.4*max(max(abs( abs(trace)- repmat(mean(abs(trace),2),[1,size(trace,2)]))) ); offset=diag(0:dtr:(Nch-1)*dtr)*ones(size(trace));%offset each channel to visualize figure;plot(dt,(offset+abs(trace)- repmat(mean(abs(trace),2),[1,size(trace,2)])).'); title('Demodulated multi-channel data (abs LPF to .75 Hz)');grid on xlabel('seconds') ylabel('a.u.') axis([0 60 -1e-3 .02]) %% Compute SVD [U,S,V]=svd(double(trace).',0); svals = diag(S);%svals(3:9) = []; %view display(svals) U(:,7:end) = []; u1=U(:,1); u2 = U(:,2); figure;subplot(211);plot(dt,u1);title('LPF(abs): first singular vector') 52 subplot(212);plot(dt,u2);title('LPF(abs): second singular vector');xlabel('time') scale_u1 = 50*(u1-mean(u1)); scale_u2 = -(u2-mean(u2)); figure;plot(dt,scale_u1,dt,scale_u2 )

%% FFT SVD ft_u1 = fftshift(fft(u1',2^16)); ft_u2 = fftshift(fft(u2',2^16)); ft_scale_u1 = fftshift(fft(scale_u1',2^16)); ft_scale_u2 = fftshift(fft(scale_u2',2^16)); f = linspace(-1/Ts/2, 1/Ts/2, length(ft_u1)); figure; plot(f,log10(abs(ft_u1)),f,log10(abs(ft_u2))) title('Fourier Transform of SVD of Demod Signal') xlabel('Frequency, Hz') ylabel('dB') legend('First Singular Vector','Second Singular Vector') %axis([-2 2 -2 2.5]) figure; plot(f,log10(abs(ft_scale_u1)),f,log10(abs(ft_scale_u2))) title('Fourier Transform of Scaled SVD') ylabel('dB') legend('First Singular Vector','Second Singular Vector')

%% Compute ICA ica = fastica(real(U’))

%% Compare to MOCO Dx_avg = importdata('MOCO_GRE_NoSpoil_Dx.mat'); pt = u1; % use first singular vector to represent pilot tone pt_sig = pt-mean(pt); %subtract mean pt_sig = downsample(pt_sig, ceil(length(pt_sig)/length(Dx_avg))); %downsample to length of MOCO pt_sig = pt_sig/max(abs(pt_sig)); %normalize pt signal moco_sig = -(Dx_avg-mean(Dx_avg)); %invert and subtract mean of moco signal moco_sig = moco_sig/max(abs(moco_sig)); %normalize moco signal %moco_sig(end-1:end) = []; figure; plot(1:length(pt_sig),pt_sig) hold on plot(moco_sig) legend('pt','moco') title('Comparing Principle Vector of SVD of PT and MOCO signals for GRE w/ spoiling')

%% Correlation and Cosine Similarity Comparison correlation = xcorr(pt_sig, moco_sig); figure;plot(1:length(correlation),correlation) title('Cross-Correlation of PT and MOCO signals'); sigs = [pt_sig, moco_sig']; dist = pdist(sigs, 'cosine'); cos_sim = dot(pt_sig,moco_sig')/(norm(pt_sig)*norm(moco_sig')); cc = corrcoef(pt_sig,moco_sig);

%% Find Peaks and plot on filtered signals 53 g = firls(15,[0 .8 .9 1],[1 1 0 0]); %LPF of with high cutoff for smoothing pt_filt = filter(g,1,pt_sig); pt_filt(1:7) = []; moco_filt = filter(g,1,moco_sig); moco_filt(1:7) = []; %pt_filt = pt_sig; %moco_filt = moco_sig; plot(1:length(pt_filt), pt_filt,1:length(moco_filt),moco_filt) hold on title('LPF of PT and MOCO') legend('PT','MOCO') space = 15; %include space between peak detection [ppks,locs] = findpeaks(pt_filt, 'MinPeakDistance',space); [ptroughs,ptr_locs] = findpeaks(-pt_filt, 'MinPeakDistance',space); [mpks,mlocs] = findpeaks(moco_filt,'MinPeakDistance',space); [mtroughs,mtr_locs] = findpeaks(-moco_filt, 'MinPeakDistance',space); plot(mlocs,mpks,'r+',locs, ppks,'b*') plot(mtr_locs,mtroughs,'m+', ptr_locs, ptroughs, 'g*')

%% Plot peak locations against eachother and best fit figure;plot([locs' ptr_locs'], [mlocs mtr_locs], 'b+') xlabel('peak location of pilot tone') ylabel('peak location of moco signal') title('Comparing Peak/Trough Locations of Filtered MOCO and PT Signals') coeffs = polyfit(locs, mlocs', 1); fittedX = linspace(min(locs), max(locs), 200); fittedY = polyval(coeffs, fittedX); % Plot the fitted line hold on; plot(fittedX, fittedY, 'r-'); yfit = coeffs(1) * locs + coeffs(2); yresid = mlocs' - yfit; SSresid = sum(yresid.^2); SStotal = (length(mlocs)-1) * var(mlocs); rsq = 1 - SSresid/SStotal; str = ['R^2 = ' num2str(rsq) '']; dim = [.2 .5 .3 .3]; an = annotation('textbox',dim,'String',str,'FitBoxToText','on'); an.FontSize = 16; %% Combining motion vectors Dx and Dy to best fit PT signal for c = 1:Nch %for each channel determine if there is 3D MOTION test_pt = trace(c,:); %use filtered channel to test motion test_pt = test_pt-mean(test_pt); %subtract mean test_pt = downsample(test_pt, ceil(length(test_pt)/length(Dx_avg))); %downsample to length of MOCO test_pt = test_pt/max(abs(test_pt)); %normalize pt signal best_cos = 0; i = 1; for k = .01:.01:1 moco_avg = ((1)*k*Dx_avg+(1-k)*(-1)*Dy_avg)/2; %iterate thru linear combinations of motion vectors Dx and Dy moco_avg = -(moco_avg-mean(moco_avg)); %subtract mean moco_avg = moco_avg/max(abs(moco_avg)); % normalize by max 54

%moco_avg(end) = []; cos(i) = dot(test_pt,moco_avg')/(norm(test_pt)*norm(moco_avg')); %find if cos(i)>best_cos best_cos = cos(i); m = k; end i = i+1; end moco_avg = (m*Dx_avg+(1-m)*(-1)*Dy_avg)/2; %iterate thru linear combinations of motion vectors Dx and Dy moco_norm = -(moco_avg-mean(moco_avg)); %subtract mean moco_norm = moco_norm/max(abs(moco_norm)); % normalize by max figure; plot(1:length(test_pt),test_pt,1:length(moco_norm),moco_norm) title(['Comparision of MOCO and Channel ' num2str(c) ': (' num2str(m) 'Dx motion)']) end

%% Peak Diffs for i = 1: length(locs)-1 pt_pk_diffs(i) = locs(i+1)-locs(i) moco_pk_diffs(i) = mlocs(i+1)-mlocs(i) end plot(pt_pk_diffs,moco_pk_diffs,'r*');

%% Bland-Altman for MOCO vs. PT means = mean([pt_filt'; moco_filt]); diffs = pt_filt'-moco_filt; meanDiff = mean(diffs); sdDiff = std(diffs); CR = [meanDiff + 1.96 * sdDiff, meanDiff - 1.96 * sdDiff]; %%95% confidence range linFit = polyfit(means,diffs,1); %%%work out the linear fit coefficients %%%plot results plot(means,diffs,'o') xlabel('Mean of PT and MOCO') ylabel('PT-MOCO') hold on plot(means, ones(1,length(means)).*CR(1),'r-'); %%%plot the upper CR text(.6,CR(1)+.01, '95% Confidence Range','Color','red','FontSize',9) plot(means, ones(1,length(means)).*CR(2),'r-'); %%%plot the lower CR plot(means,zeros(1,length(means)),'k'); %%%plot zero %plot(means, means.*linFit(1)+linFit(2),'k--'); %%%plot the linear fit title('Bland-Altman Plot')

55

%% best fit i = 1; best_cos = 0; pt_temp = [downsample(pt, ceil(length(pt)/length(Dx_avg)))]'; G = [ones(1,length(pt_temp))' pt_temp']; for k = .001:.001:1 moco_temp = ((+1)*k*Dx_avg+(1-k)*(-1)*Dy_avg)/2; F = moco_temp'; alpha = pinv(G)*F pt_fit = G*alpha; %moco estimate from linear combination of pt sig cos(i) = dot(pt_fit,F)/(norm(pt_fit)*norm(F)); %find similarity of estimate if abs(cos(i))>best_cos best_cos = cos(i); m = k; pt_m = pt_fit; end i = i+1; end

%moco_m = ((+1)*m*Dx_avg+(1-m)*(-1)*Dy_avg)/2; moco_m = moco_avg; %moco_m(end) = []; F = moco_m'; alpha = pinv(G)*F pt_m = G*alpha; plot(1:length(pt_m), pt_m, 1:length(moco_m), moco_m); legend('pt','moco')

%% BEST FIT WITH Dx and Dy of MOCO for each channel for bestfit_ch = [1 8]; %choose channel to analyze pt_temp = [downsample(trace(bestfit_ch,:), ceil(length(trace(bestfit_ch,:))/length(Dx_avg)))]'; %downsample to length of MOCO D = [ones(1,length(Dx_avg))' Dx_avg' Dy_avg']; %Matrix with offset constant, vertical, and horizontal components of MOCO P = pt_temp; alpha(:,bestfit_ch) = pinv(D)*P; pt_est = D*alpha(:,bestfit_ch); l = 1:length(pt_est); figure; plot(l, pt_est, l, pt_temp); title(['Comparision of MOCO and Channel ' num2str(bestfit_ch) ': (' num2str(alpha(1, bestfit_ch)) ' + ' num2str(alpha(2, bestfit_ch)) 'Dx + ' num2str(alpha(3, bestfit_ch)) 'Dy)']) legend('estimate pt', 'actual pt') end

%% This code will perform linear predictive coding

%% Import Reference (MOCO), d

Ts = 0.00326; %Sample Time

56

Dx = importdata('MOCO_GRE_NoSpoil_Dx.mat'); moco = (Dx-mean(Dx)); %normalize moco = moco/max(abs(moco));

%interpolate to length of PT signal t_new = linspace(1,length(moco),82*length(moco)); yy = interp1(moco,t_new); figure; plot(yy);hold on; plot([1:82:length(moco)*82],moco); legend('interpolated', 'original MOCO') title('reference moco signal') d = -yy; %reference signal

%% Training on two ICA components as input u1 = importdata('ica1_gre_nospoil.mat'); u1 = u1-mean(u1); u1 = u1/max(abs(u1)); %normalize u2 = importdata('ica2_gre_nospoil.mat'); u2 = u2-mean(u2); u2 = u2/max(abs(u2)); %normalize figure; plot(u1); hold on; figure; plot(u2);

%% Calculate Filter Coefficients [f1;f2] L = 100; %length of taps N = length(d); %fstar = zeros(2*L,length(d)); %coefficients Ru = zeros(2*L,2*L); %correlation matrix rud = zeros(2*L,1); %cross correlation vector for n = L:N/2 uvec = [u1(n:-1:n-(L-1))'; u2(n:-1:n-(L-1))'] ; %input vector with L taps %take sum Ru = Ru+uvec*uvec'; rud = rud+uvec*d(n); end

%divide by length to get average ("expected" vals) Ru = inv(N/2-L+1)*Ru; rud = inv(N/2-L+1)*rud;

% Calculate fstar fstar = inv(Ru)*rud; %filter coefficients

%% k = 1; for n = L:length(u1) uvec = [u1(n:-1:n-(L-1))'; u2(n:-1:n-(L-1))']; %input to filter z(k) = fstar'*uvec; %output/prediction k = k+1; end

Jmse_ica = var(d)-rud'*inv(Ru)*rud; %associated cost

57

%add reference for filter length %ref_length = (linspace(1,L,L)*Ts)+(ones(1,L)*10); %ref_ht = ones(1,L)*.6; figure; plot(Ts*[L:length(d)], z); hold on; plot(Ts*[L:length(d)],d(L:end)); legend('prediction', 'test reference') %hold on %plot(ref_length,ref_ht,'LineWidth',2) xlabel('seconds'); %legend('filter output', 'MOCO reference','Filter Length'); title('Testing Linear Predictive Filter of 2 ICA vector inputs with MOCO reference, L = 100 taps') grid on

%% Filter Coefficients figure; stem(-fstar(1:100)); hold on; stem(-fstar(101:200)); title('Filter Coefficients'); legend('fstar1', 'fstar2'); figure; freqz(fstar(1:100)); hold on; freqz(fstar(101:200)); title('Frequency Domain of Filter')

%% Validation w/ Peak/Trough locations % Find Peaks and plot on filtered signals g = firls(512,[0 .0008 .01 1],[1 1 0 0]); %LPF of with high cutoff for smoothing pt_filt = filter(g,1,z); pt_filt(1:7) = []; moco_filt = filter(g,1,d); moco_filt(1:7) = []; plot(1:length(pt_filt), pt_filt,1:length(moco_filt),moco_filt) hold on title('LPF of PT and MOCO') legend('PT','MOCO')

%include space between peak detection to find only large peak/trough locations [ppks,locs] = findpeaks(pt_filt, 'MinPeakDistance',1000); [ptroughs,ptr_locs] = findpeaks(-pt_filt, 'MinPeakDistance',400); [mpks,mlocs] = findpeaks(moco_filt,'MinPeakDistance',100); [mtroughs,mtr_locs] = findpeaks(-moco_filt, 'MinPeakDistance',100); plot(mlocs,mpks,'r+',locs, ppks,'b*') plot(mtr_locs,mtroughs,'m+', ptr_locs, ptroughs, 'g*')

figure; plot(mtr_locs, ones(length(mtr_locs),1),'b*'); hold on; plot(ptr_locs, ones(length(ptr_locs),1),'m+');

%% Plot peak locations against eachother and best fit figure;plot([locs ptr_locs], [mlocs mtr_locs], 'b+') xlabel('peak location of pilot tone') ylabel('peak location of moco signal') title('Comparing Peak/Trough Locations of Filtered MOCO and PT Signals') coeffs = polyfit(locs, mlocs, 1); fittedX = linspace(min(locs), max(locs), 200); 58 fittedY = polyval(coeffs, fittedX); % Plot the fitted line hold on; plot(fittedX, fittedY, 'r-'); yfit = coeffs(1) * locs + coeffs(2); yresid = mlocs - yfit; SSresid = sum(yresid.^2); SStotal = (length(mlocs)-1) * var(mlocs); rsq = 1 - SSresid/SStotal; str = ['R^2 = ' num2str(rsq) '']; dim = [.2 .5 .3 .3]; an = annotation('textbox',dim,'String',str,'FitBoxToText','on'); an.FontSize = 16;

59

Appendix D. Programming Transmitter

1) Connect the USB cable from the PC to the Eval Kit. 2) Connect the 20-pin ribbon cable from the Eval Kit to the PT transmitter and flip switch to turn transmitter on. A red LED will indicate that the transmitter is on. 3) Open the Maxim Integrated Eval Kit software on the PC. 4) On the initial prompt screen (Figure 32), choose MAX2871 and press Continue. A message will appear below to Use Offline. Choose this option and continue.

Figure 32: Eval Kit GUI prompt screen.

60

5) The Eval Kit GUI will open and look similar to Figure 33. Verify that the USB Connected indicator is displayed in green in the lower right-hand corner. If the indicator is red, click on the indicator or reconnect the Eval Kit to reestablish connection.

Figure 33: Eval Kit Software GUI

6) Choose the Defaults option in the upper right-hand corner to begin programming the transmitter. 7) Enter the desired output frequency in MHz in the RF_OUTA edit box and press the Enter key. 8) Click on the Send All button located in the upper-right hand corner. 9) Verify that the Lock Pin indicator in the lower right-hand corner is displayed in green.

61

10) A green LED will illuminate on the transmitter upon successful programming. The transmitter can now be disconnected from the Eval Kit and used for PT transmission at the programmed frequency.

62