IQ Demodulation

Starting from version 6.0 software, we are moving away from frequecy compounding and adopting the IQ demodulation instead. In this page, the general signal processing to generate the B mode image using IQ demodulation on the Sonix Series is explained.

In the latest software, the general signal processing to generate B mode image from RF signal is as follows:

1- Down mixing (multiplication with sine and cosine table) 2- Low pass filtering both signals 3- Envelope detection 4- Log compression

1- Down Mixing

Down mixing is the first step in IQ demodulation. The real valued RF-signal is multiplied/mixed with a sine/cosie signals. After this step, the frequency spectrum is moved down in the frequency plane. In version 6.x software, the center frequency for both sine and cosine table are adjustable as a sliding frequency.

I = RF x cosine(wt) Q = RF x -sine(wt)

Typically the down mixing starts with a high frequency at the probe location (start freq) and goes down linearly as we image deeper (stop freq). After a certain depth (stop freq depth) it remains the same value. This can be displayed as follows

Depth
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)
 * --> Freq (w)

2- Low Pass filtering

After down mixing, the signal is low-pass filtered to remove the negative frequency spectrum and noise outside the desired bandwidth.

Currently, the low pass filter is an FIR filter and implemented as follows

b = fir1( nTaps, cutoff);

I = filter(b,1, I); Q = filter(b,1, Q);

Where cutoff is the "cutoff" parameter in BIQ-Filter (in percent) and nTaps is equal to the

nTaps = numberOfRFSamplesPerPixel x "windowFactor"

where

numberOfRFSamplesPerPixel = ( SamplingFreq >> rfDecimation) / "bSampling freq" And Sampling Freq = 40MHz and "rfDecimation" is a parameter which is typically 0 for linear probes and 1 for phased array and convex probes since they are working with lower frequencies.

To make the filter band width narrower, set the "cutoff" to zero and increase the "window factor" parameter.

3- Envelope detection

Is simply impleted as follows

Env = sqrt(I*I + Q*Q)

where IQ are the output of low pass filtering.

4- Log compression

Roughly speaking the compression table is 20*log10(Env). Both reject and dynamic range parameters can be adjusted through the interface in B-DYNRANGE. However in the system this curve is only applied up to a certain value (Pivot out). After this point the compression is linear instead of logarithmic.