Changes

From OpenEMT.org
Jump to: navigation, search

Signal demodulation

5,245 bytes added, 19:02, 3 November 2017
no edit summary
Demodulating using this technique requires <math>Y(t)</math> and <math>X(t)</math> be generated from the reference source. This requires each of the eight coil voltages (20.5kHz, 21.5kHz...) to be individually sampled for processing, requiring an analogue to digital converter with a very high aggregate sampling frequency. Instead, simulated reference signals may be used to generate <math>Y(t)</math>and <math>X(t)</math>which results in asynchronous demodulation.
 
 
===Asynchronous demodulation===
 
Asynchronous demodulation uses simulated reference signals to generate the quadrature signals for demodulation. These simulated signals are '''not''' locked in phase with the signal to be demodulated and can experience frequency mismatch. This results in an increase in the number calculations required when determining the phase and magnitude of the signal of interest, but reduces the number of signals required for sampling.
 
Consider a tracking system consisting of N emitting coils, each coil carrying a current component of the following form:
<math display="block">i_i(t) = I_i\sin(\omega_i t + \varphi_{I_i})</math>
 
where <math>I_i</math> is the amplitude of the <math> i_{th}</math>emitting coil waveform, <math> \omega_i</math> is the excitation frequency and <math> \varphi_i$ is the current phase relative to an arbitrary reference. Summing all N current waveforms results in:
 
<math display="block">i(t) = \sum^N_{i=1} I_i\sin(\omega_i t + \varphi_{I_{i}})</math>
 
The induced voltage on the sensor is a sum of the voltages induced by the coil currents:
 
<math display="block">v(t) = \sum^N_{i=1} V_i\sin(\omega_i t + \varphi_{V_{i}})</math>
 
where $V_i$ is the amplitude of the induced voltage component and <math> \varphi_{V_i}$ is the associated phase. Each frequency component of the voltage signal is extracted using two reference signals:
<math display="block">Y_i = \sin(\omega_{ri} t)</math>
<math display="block">X_i = \cos(\omega_{ri} t)</math>
 
where $\omega_{ri}$ is the frequency of the simulated reference signal. This demodulation results in the amplitudes and phases of all the frequency components relative to the simulated reference signal as follows:
<math display="block">\mathbf{V} = [V_1,V_2...V_n]</math>
<math display="block">\mathbf{I} = [I_1,I_2...I_n]</math>
<math display="block">\mathbf{\varphi_V} = [\varphi_{V_1},\varphi_{V_2}...\varphi_{V_n}]</math>
<math display="block">\mathbf{\varphi_I} = [\varphi_{I_1},\varphi_{I_2}...\varphi_{I_n}]</math>
 
By subtracting the individual phases from each other the relative phase angle between the sensor voltage and coil current waveforms can be found:
<math display="block">\Delta\mathbf{\varphi} = \mathbf{\varphi_V} - \mathbf{\varphi_I}</math>
 
The sign of this phase information indicates the axial orientation of the electromagnetic sensor with respect to the magnetic field.
 
With a simulated reference signal it can be difficult to lock the frequency to the signal source without the use of phase locking techniques. In our system this often results in a small mismatch in frequency since the simulated reference signal for a particular coil <math> \omega_{ri}</math> is slightly different from the frequency to be demodulated <math> \omega_i</math>since they are not locked. This results in a <math> \Delta\omega=\omega_{ri} - \omega_r$ causing a low frequency oscillation in the demodulated signal, which would not be present in synchronous demodulation.
 
To demonstrate this, consider a single frequency where the coil current and sensor voltage waveforms are given by:
<math display="block">i(t) = I\sin(\omega t + \varphi_I)</math>
<math display="block">v(t) = V\sin(\omega t + \varphi_V)</math>
 
The simulated reference signals used for demodulation are given by:
<math display="block">Y(t) = \sin(\omega_r t)</math>
<math display="block">X(t) = \cos(\omega_r t)</math>
 
Starting with the sensor voltage $v(t)$, we multiply by the reference signals just as in the synchronous case to produce:
<math display="block">v(t)Y(t) = \frac{V}{2}[\cos((\omega-\omega_r) + \varphi_V) - \cos((\omega+\omega_r) + \varphi_V)]</math>
<math display="block">v(t)X(t) = \frac{V}{2}[\sin((\omega-\omega_r) + \varphi_V) - \sin((\omega+\omega_r) + \varphi_V)]</math>
 
Extracting the low frequency components using a low-pass filter yields two quadrature voltage signals:
<math display="block">v_x=\frac{V}{2}\sin(\Delta\omega t + \varphi_V)</math>
<math display="block">v_y=\frac{V}{2}\cos(\Delta\omega t + \varphi_V)</math>
 
where the difference in frequency is given by:
<math display="block">\Delta\omega = \omega-\omega_r</math>
 
These signals are close to DC since they oscillate at a frequency of <math> \Delta\omega$. The amplitude <math> V$ can be determined as in the synchronous case using:
<math display="block">V = 2\sqrt{(v_x^2 + v_y^2)}</math>
The phase can be determined using:
<math display="block">\gamma_V(t) = \arctan\frac{v_x}{v_y} = \Delta\omega t +\varphi_V</math>
 
Its clear that the phase has a time dependency. This is due to the frequency mismatch of the carrier and reference signals. In order to remove this dependency, the same demodulation procedure above is performed to the coil current waveform i(t) to produce <math> I</math> and <math> \gamma_I$. Subtracting the phase component <math> \gamma_V</math> from <math> \gamma_I</math> gives the constant relative phase angle between the two waveforms:
<math display="block">\gamma_V - \gamma_I = \varphi_V-\varphi_I</math>
 
This 'double demodulation' allows both the accurate retrieval of the amplitude and phase of each of the induced sensor voltages. Implementation details of how this demodulation is achieved are described in the next section.
 
==Demodulation implementation==

Navigation menu