Background of the Invention
[0001] In ultrasonic imaging systems utilizing a phased array of transducer elements, pulses
of ultrasonic waves are successively transmitted along different radial lines having
their origin in the center of the array. When a pulse traveling along a radial line
meets body tissue, a portion of its energy is reflected back to the array, but because
the distances between the point of reflection and each of the transducers is different,
the electrical waves produced by the transducers in response to the reflection have
different phases. Summing these electrical waves would produce a weak signal for the
purpose of controlling the intensity of an image. In order to obtain a strong signal,
the electrical waves must be brought reasonably close to a cophasal relationship.
This is not done at all points along a radial line but at each of a plurality of what
are called "focal points". Best focus is attained at these points but if they are
close enough together, the worst focus at points between them is tolerable. The distance
between the points of worst focus on either side of a focal point is called a "focal
zone".
[0002] In attaining the desired cophasal relationship, it is necessary to compensate for
the respective differences in the time it takes the reflections from a focal point
to travel the different distances to the respective transducer elements. Compensation
is attained by introducing the proper effective compensating delays for each focal
point into the paths of the electrical waves for each transducer element. Initially,
the required information was burned into ROMs that were read at the appropriate times
and used to control the means for providing the necessary delays. As this necessitated
a large ROM capacity, microprocessors were used to provide in real time the information
as to the difference in the time required for a reflection to travel from each focal
point to each transducer. Whereas this method was satisfactory for systems having
64 transducers, 16 focal zones and 128 radial lines, it is impracticable for system
in which the numbers of these parameters are substantially increased. If, for example,
a system has 128 transducers, 256 radial lines and requires many more focal zones
because of the loss in depth of field resulting from the increased aperture, the magnitude
of the task of making the calculations increases by a factor of about 8.
Brief Summary of the Invention
[0003] In accordance with this invention a hard wired circuit calculates the differences
D between the radius R of a focal point and the distances between the focal point
and the transducer elements of the array just prior to the time when reflections from
the focal point reach the transducers. The differences D are provided to means for
inserting the directly related compensating delays into the circuits for the individual
transducer elements. The process is then repeated for each successive focal point
in turn. Because of its speed, the circuit can make these calculations in real time
for a system having more transducer elements and focal zones than could be practicably
handled by a microprocessor.
[0004] The basic circuit includes a plurality of accumulators connected in series that are
respectively preloaded with different values for each focal point before the calculation
of D for the transducer elements are made. The values that are preloaded change with
the radius R of the focal point, the angle ϑ that the radial line on which the focal
point is located makes with a line perpendicular to the array and the space ΔX between
the centers of adjacent transducer elements. All accumulators are clocked at the same
time. The preloaded value of the last accumulator in the series corresponds to the
difference, D, between the radius of the focal point and the distance between that
focal point and a transducer element that is on one side of the array. As each clock
pulse occurs, the preloaded values work their way through the accumulators so as to
produce a value at the output of the last accumulator that is the difference, D, for
the next transducer element. If only one series of accumulators is used, the process
would then be performed for the transducer elements on the other side of the array.
[0005] In general, the respective values with which the accumulators are preloaded are different
combinations of the coefficients, or portions thereof, of terms of a series expressing
the difference, D, between the radius of a focal point and its distance from a transducer
element as a function of the distance X of that element from the center of the array.
Each term of the series includes a different power of the independent variable X.
The highest power used depends on the required resolution, and the number of accumulators
equals the highest power.
[0006] If the coefficients of the powers of X are those of a Taylor or Maclaurin series,
the calculated distance, D, will be correct for a transducer element at the center
of the array but will have an error that increases with the distance of a transducer
element from the center. A more evenly distributed and smaller error results if the
coefficients for the powers of X are derived from Legendre polynomials.
[0007] One of the advantages of the invention is the fact that simultaneous calculations
for the distance D can be made for different groups of transducer elements of the
array so as to save time. One way of doing this is to provide a separate series of
accumulators for each group and respectively preload them with the values that the
accumulators of a single series would have when it reaches the transducer element
at the end of the group closer to the center of the array.
[0008] The method just mentioned for simultaneously calculating the distances D for transducer
elements in groups spaced from the center of the array would have the same error as
would result from calculating the distances D for these same transducers with a single
series of accumulators. Smaller errors would result if a series with an offset, such
as that of Taylor is used instead of a Maclarin series, in which case, the distance
between a focal point and the center of the group would be substituted for the radius
in the equation and the angle ϑ′ between a line from the focal point to the center
of the group and a vertical line would be substituted for the angle ϑ between vertical
and the radial line passing through the focal point. In such case, there would be
zero error for the central transducer element of the group and increasing error for
the transducer elements on either side unless the coefficients of the equation are
derived from Legendre polynomials.
Brief Description of the Drawings
[0009]
FIGURE 1 shows an array of transducers, one of the radial lines along which pulses
of ultrasonic waves are transmitted and the difference between the distance of a focal
point from the origin and its distance from a particular transducer element.
FIGURE 2 is a block diagram of a series of accumulators and the preloading means therefore.
FIGURE 3 is a table of the values in the registers of the respective accumulator of
FIGURE 2 where a transducer element at one end of a group is at the center of the
array.
FIGURE 4 is a table of the values in the registers of the respective accumulators
of FIGURE 2 where a transducer element at one end of a group is spaced from the center
of the array by ΔX/2 where ΔX is the spacing between transducer elements.
FIGURE 5 is a block diagram of a system utilizing a number of series of accumulators
in parallel and illustrates use of R to center of group.
FIGURE 5A illustrates use of R to center of group.
FIGURE 6 illustrates a special situation used in comparing results attained by coefficients
derived from Legendre polynomials and coefficients of a Maclaurin series; and
FIGURE 6A is a graphical comparison of the error distribution resulting from the use
of coefficients of a series derived from Legendre polynomials and the error obtained
using the usual coefficients.
Detailed Description of the Invention
The Mathematics
[0010] Although individual transducers are not shown in FIGURE 1, they are assumed to be
distributed along a line A so as to form an array having its center at X=0. Consider
a focal point F located on a radial line r that makes an angle of 0 with a line V
that is perpendicular to the array A. The radial distance of F from X=0 is R, and
its coordinates are XF, YF. A circular arc C having a radius R is drawn with F as
its center so that it passes through X=0, and a dash-dot line is drawn from F so as
to intersect the array A and the arc C.
From inspection
(1) D + L = R
(2) D = R - L
(3) D = R - √(XF - X)² + YF²
Multiplying and dividing the radical by R gives
(4) D = R - R √(

F -

)² + (

)²
Since

= SIN ϑ and

= COS ϑ
equation (4) becomes
(5) D = R - R √(SINϑ

)² + COS²ϑ
(6) D = R - R √SIN²ϑ -

SINϑ +

+ COS²ϑ

Equation (7) has the form
(8) D = R - R √aX² + bx + 1 where

[0011] The Maclaurin series for D as a function of X is
(9) D(X) = D(0̸) + D′(0̸) X + D˝(0̸)

+ D‴(0̸)

+ D
m(0̸)

It can be shown that
(10) D(0̸) = 0̸
D′(0̸) = SINϑ
D˝(0̸) = +

(1 - SIN²ϑ)

So that by substitution in (9) we obtain

Equation (11) can be expressed in the form
(12) D(X) = AX³ + BX² + CX where

B = †

S²ϑ
C = SINϑ
An Embodiment of the Invention
[0012] Figure 2 is a block diagram of an embodiment of the invention designed to calculate
the values of D in accordance with equation (12) in which X³ is the highest power
of X. Although it is not the usual practice, it will be assumed that there is a transducer
element at the center of the array so that, as will appear, the operation will be
more apparent.
[0013] A scanner 2 for the ultrasonic imaging system may operate in ways described in U.S.
Pat No. 4,140,022 to transmit pulses of a few cycles of pressure waves along successive
radial lines and to provide the delays required for each transducer element that are
necessary to focus the array at each focal point. The value of the radius R and the
angle ϑ of the radial line as well as the spacing ΔX between adjacent transducer elements
of the particular array being used are readily derived from the scanner. These values
are applied to ROMs 1, 2, 3 and 4 which respectively output the values of 0̸, A+B+C,
6A+2B and 6A for each focal point. From equation (12) it can be seen that the values
of A, B and C are different for each focal point.
[0014] Because the highest power of X is X³, three accumulators AC1, AC2 and AC3 are provided
each having an adder coupled to a register via a multiplexer. Only accumulator AC1
will now be described, but AC2 and AC3 are identical. The output of an adder A1 is
conected to one input of a multiplexer MX1, and its output is connected to the input
of a register REG1. The other input of MX1 is connected to the output of the ROM1.
One input of A1 is connected to the output of REG1 so as to perform the accumulating
function, and the other input of A1 is connected to the output of a register REG2
for the accumulator AC2.
[0015] The ouptut of ROM4 is connected to a register REG4, and its output is connected to
one of the inputs of the adder A3 for the accumulator AC3.
[0016] Clock pulses for the system are derived from the scanner 2 are applied to a multiplexer
MX4. When reflections from a point half way between adjacent focal points are due
to arrive at the array, the value of R is updated to the radius of the next farther
focal point. This fact is detected by an update detector 3. Its output is applied
to MX4 so as to cause it to output a clock pulse that is applied to the clear terminals
of the registers REG1, REG2, REG3 and REG4. Subsequent clock pulses are applied to
the clock terminals of the registers. The ouput of the detector 3 is also applied
to load terminals of the multiplexers MX1, MX2, and MX3 so as to cause them to preload
the values of 0̸, A+B+C and 6A + 2B for the next focal point into the registers REG1,
REG2 and REG3, respectively. On the next clock pulse and for the rest of the calculation,
the multiplexers MX1, MX2 and MX3 connect the outputs of their adder to the input
of this register. The value of 6A from the ROM4 is always applied to one input of
the adder A3 for the accumulator AC3.
[0017] The ROM1 supplies the value of D for the transducer element closest to the center
of the array. In this particular example the transducer is at the center of the array
so that X=0 and D also equals 0. If, as is usual, the transducer element closest to
the center is at ΔX/2, the value provided by the ROM1 would be A/8 + B/4 + C/2. In
any event at each successive clock pulse the preloaded values step through the accumulators
AC3, AC2, and AC1 so as to provide a value D for the next outer transducer element
at the output of the register REG1 for the accumulator AC1. Its output is supplied
to the scanner 2 so as to give it information as to the delay to be used for each
transducer element in turn.
[0018] This operation is now explained in greater detail in connection with Figure 3 wherein
columns C1, C2, C3 and C4 respectively show the outputs of the registers REG1, REG2,
REG3 and REG4 at every clock pulse, and a column C5 shows the clock pulse number and
the number of the transducer element corresponding to the value of D at the output
of REG1.
[0019] At clock pulse #1 all registers are cleared. At clock pulse #2 the load pulse from
the detector 3 causes the multiplexers MX1, MX2 and MX3 to preload the registers REG1,
REG2 and REG3 with the values 0̸, A+B+C and 6A + 2B respectively. The value of D at
the output of REG1 is 0̸, as is required for the transducer element at the center
of the array.
[0020] At clock pulse #3, the value of D for transducer element #1 that is ΔX from the center
of the array appears at the output of REG1. By substituting it for X in equation (12),
since ΔX is the unit of measure, the value of D for this transducer element is seen
to be A+B+C. That this value is produced can be seen from the fact that A1 adds the
value of 0̸ at the ouptut of REG1 to the output, A+B+C from the output of REG2.
[0021] At clock #4, the delay D is for the transducer #2, which, by substitution of 2 for
X in equation (12) is seen to be 8A+ 4B +C. This is derived at clock #4 in the following
manner. At clock #3 the adder A2 adds its preloaded value of A+B+C to the preloaded
value of 6A+2B from REG3 so as to derive 7A+3B+C, and at clock #4 the latter value
is added by A1 to A+B+C which was produced at the output of REG1 at clock #3 as described
above so as to produce the required value of D = 8A+4B+2C. It takes until clock pulse
#5 for the value 6A to affect the out of REG1. The values of D for the other transducer
elements are derived in a similar manner.
[0022] In this example, the values of X and 0̸ are positive so that the values of D are
for transducer elements in FIGURE 1 that are at the right of the center 0̸ of the
array and for focal points in the quadrant where the focal point F is located. The
values with which the registers are preloaded for other situations will not be fully
derived, but it can be seen from FIGURE 1 that D would have a negative value for transducer
elements to the left of the center 0̸ of the array and that this would result from
making X negative For a transducer element at X = -1, the value of D determined from
equation (12) would be -A+B-C, so as to be negative, and this value would be preloaded
into REG2 from ROM2, at the second clock pulse. At clock pulse #3 the value of D would
be for the transducer element at X = -2 so as to have a value determined from equation
(12) of -8A+4B-2C. In order to attain this value, the value preloaded into REG3 by
ROM3 would have to be -6A+2B. By continuing to work backward the value preloaded into
REG4 by ROM4 would be found to be -6A.
[0023] In deriving the preloaded values for a focal point in the left quadrant of FIGURE
1 the sign of SIN ϑ would be negative so as to make the sign of A plus and the sign
of C minus.
[0024] Let us define the values of the four registers as follows:
F(X) = REG1
G(X) = REG2
H(X) = REG3
I(X) = REG4
[0025] What we need for the initial register preloads are the four values F(0), G(0), H(0),
I(0).
[0026] From the block diagram we see that:
F(X+1) - F(X) = G(X) (i)
G(X+1) - G(X) = H(X) (ii)
H(X+1) - H(X) = I(X) (iii)
Also, since the final desired output is to come from REG1,
F(X) = AX³ + BX² + CX (iv)
By solving (iv) at X=0 we have F(0) = 0 (v)
We get G(0) by solving (i) at x=0 G(0) = F(1) - F(0) = A + B + C (vi)
We get H(0) by solving (ii) at x=0 We have H(0) = G(1) - G(0) (vii)
In order to evaluate this, we need G(1)
G(1) = F(2) - F(1) from equation (i).
Solving,
G(1) = 8A + 4B + 2C - (A + B + C) = 7A + 3B + C (viii)
Substituting (viii) into (vii), and using (vi) we have H(0) = 7A + 3B + C - (A + B
+ C) = 6A + 2B (ix)
[0027] We get I(O) by solving (iii) at x = 0.
[0028] We have I(0) = H(1) - H(0) (x)
In order to evaluate this, we need H(1) H(1) = G(2) - G(1) from equation (ii) (xi)
G(2) = F(3) - F(2) from equation (i) (xii)
Substituting (xii) into (xi) We have H(1) = F(3) - F(2) - G(1)
Solving, using (viii) above for G(1), we have H(1) = 27A + 9B + 3C - (8A + 4B + 2C)
- (7A + 3B + C) = 12A + 2B (xiii)
Finally substituting (xiii) into (x) we have I(0) = 12A + 2B - (6A + 2B) = 6A (xiv)
We have not solved for F(0) = 0
G(0) = A + B + C
H(0) = 6A + 2B
I(0) = 6A
[0029] The preloaded values can be expressed in terms of the function F as follows:
REG1 = F(0)
REG2 = F(1) - F(0)
REG3 = F(2) - 2F(1)
REG4 = F(3) - 3F(2) + 3F(1)
[0030] FIGURE 4 illustrates some of the values that would be in the registers REG1, REG2,
REG3 and REG 4 for a focal point in the right half of an array having 128 elements
that is constructed in the usual manner wherein the center of a transducer element
closest to the center of the array is ΔX/2 from the center. In this case the values
preloaded by ROM1, ROM2, ROM3 and ROM4 into REG1, REG2, REG3 and REG4 respectively
are A/8 + B/4 + C/2; 26A/8 + 2B + C; 9A + 2B and 6A. Because of the fractions it is
much more difficult to recognize what occurs than it was in FIGURE 3. As previously
discussed, different preloaded values would be used in calculating D for transducer
elements in the left half of the array and for focal points in the other quadrant.
Parallel Operation
[0031] One of the advantages of this invention is that a number of series of accumulators
such as shown in FIGURE 2 can be operated in parallel as shown in FIGURE 5 so as to
simultaneously derive the values of D for transducer elements in each of a plurality
of groups. ROMs 8, 10, 12 and 14 respectively provide preloading values to ROMs in
each series of accumulators SA8, SA10, SA12. They in turn provide the values of D
for the transducer elements in groups G1, G2, G3 and G4. Assume that G1 is immediately
to the right of center, G2 is to the right of G2, G3 is to the left of center and
G4 is to the left of G3 as shown in FIGURE 5A. The transducer elements of G1 and G3
that are closest to the center 0̸′ are ΔX/2 away from it.
[0032] One way of operating the system of FIGURE 5 is as follows: If G1 has elements at
X = 1/2 to X = 63/2, the registers in the series of accumulators not shown that derive
the value of D for these transducer registers that respectively correspond to REG1,
REG2, REG3 and REG4 of FIGURE 2 are respectively preloaded with A/8 + B/4 + C/2; 26A/8
+ 2B + C; - 9A + 2B and 6A, and if G2 has elements at X= 65/2 to 129/2, its registers,
not shown, that correspond to REG1, REG2, REG3 and REG4 are respectively loaded with
251,607 A/8 + 39,77B/4 + 63C/2; 23,018A/8 + 62B + C; 195A + 2B and 6A which are seen
to be the values that would appear in the registers of G1 when it made the calculation
of D for its transducer element that is farthest to the right and next to the first
transducer element in G2.
[0033] It will be found that the error in D is nearly zero at the center of the array and
that it increases as the calculation proceeds to outer transducer elements. In the
parallel method of calculation just described, the series of accumulators SA10 that
make the calculation of D for the transducer elements in G2 would be deriving the
same values that the series SA8 would derive if it were permitted to continue the
calculation of D for the elements in G2. Therefore, the errors are the same.
[0034] Another method for operating a plurality of series of accumulators in parallel so
as to reduce the increase in error that occurs as the distance X of the transducer
from the center 0̸ of the array increases is now explained by reference to Figure
5A as follows. For G1, the value of R′, which is the distance between a focal point
F′ and the center of G1, is substituted for R in the expressions for A and B used
in equation (12), and ϑ′, which is the angle between R′ and a line V′ that is perpendicular
to the array A′, is substituted for ϑ in the expressions for A, B and C. It will be
found that there is no error in D for a transducer element at the center of G1, that
the error increases with the distance of a transducer element of G1 from its center
and that the error for the outermost transducer element of G1 will be less than before.
This same error will exist for the innermost element of G1 whereas in the other method
it was zero.
[0035] A much more significant reduction in error will occur when this technique is applied
to the calculation of D for the transducer elements of a group like G2 that is further
out on the array. The value of the distance R˝ between F′ and the center of G2 is
substituted for R in the expression for A and B and ϑ˝, the angle between R˝ and V′,
is substituted for ϑ in the expressions for A, B and C. The error at the center of
G2 will be zero, and although the error increases with the distance of an element
from the center of G2, the error will be much less than that occurring in the first
method.
[0036] Another way of describing the second method is as follows. Express the equation (8)
for the distance D in the form of a Taylor series where the offset, a, in the series
is the distance between the center of a group and the center of the array. New values
of A, B, and C, as well as a value D equal to D(a) will be derived and used to preload
the registers of FIGURE 2. Once again, however, it will be necessary to derive these
preload values by working backward and to realize that they will be different for
the calculations for one half of a group of elements than for the other.
[0037] Another method for reducing and more evenly distributing the error over the transducer
elements of the array is to expand the expression for D in terms of Legendre polynomials
and substitute these polynomials for A, B, and C in equation (12). Although the Legendre
technique is known, a brief summary follows.
[0038] Repeating equation (8) for convenience
(8) D = R - R √ax² + bx + 1
where a = 1/R² and

This can be put into the approximate form:
(13) D(X) = AX³ + BX² + CX + K
(A, B, C and K will be determined by a Legendre expansion)
[0039] A Legendre Expansion can be made as follows:
Step 1
[0040] Choose the interval of X as α through β in which α and β are the positions of the
first and last transducers in the group.
Step 2
[0041] Calculate the integrals from the Table I below


Step 3 -
[0042] Calculate the Coefficients Given in Table II Below:

Step 4 -
[0043] Use Table III to calculate A, B, C, and k

EXAMPLE OF LEGENDRE METHOD
[0044] Reference is made to FIGURES 6 and 6A for a comparison of the errors resulting from
using for the coefficients A, B, and C of the powers of X in a series the values determined
by the Legendre method and values ordinarily used. In FIGURE 6 an array of transducer
elements is assumed to lie between +X and-X, and a focal point F is placed two units
away from the array in a line that is perpendicular to its center at 0̸. This is a
special case in which calculations are simplified because SINϑ = 0̸ and COSϑ = 1.
[0045] Applying the steps of the Legendre method we find
Step 1
[0046] α = - 1, β = +1
a =

=

From Equation 8

From Equation 8
Step 2 -
[0047] Evaluate integrals of Table I
I
E = 2 LOG [ √1.25 + .5] - 2LOG[ √1.25 - .5]
≅ 1.9248473
I
k = √1.25 + 5I
E ≅ 2.08045764
I
C = 0 by symmetry
I
B = 2(1.25)
3/2 - I
k ≅ .71462733
I
A = 0 by symmetry
Step 3 -
[0048] Calculate coefficients in Table II
Z
A = 0
Z
B = √

[I
k - 3I
B]= -.05014136
Z
C = 0

Step 4 -
[0049] Use Table III to determine A, B, C and K:
A = 0
B = 3 √

Z
B ≅ -.237841368
C = 0
k = 2 - √2 Z
k - √

Z
B ≅ -.001177184
[0050] Therefore:
D ≅ AX³ + BX² +CX + K ≅ -.23784X² - .00118
[0051] If we use the Maclaurin series, equation (12), we get

C = SINϑ = 0
k = 0
[0052] Which yields the following approximation for D(X):
D(X) ≅ -.25X²
[0053] In FIGURE 6 a graph L shows the error in d resulting from the use of the Legendre
method and a curve M shows the errors resulting from the use of the Maclaurin method.
[0054] Note that the error due to the Maclaurin method is correct at X = 0 and that it increases
with the values of X whereas the error due to the Legendre method is correct at points
on either side of X = 0 and is generally less than that of Maclaurin at larger values
of X.
[0055] In applying the Legendre method to a system such as that shown in FIGURE 2, the value
of α and β are chosen in Step 1 to be the numbers of the transducer elements of a
group that are respectively the closest and farthest from the center 0 of the array.
By doing this the error within a group is generally reduced and more equally distributed
throughout the group.
Summary
[0056] In carrying out the invention the difference D between the distance of a focal point
from a reference point on the array, usually the center, and the distance between
a focal point and a transducer element is expressed as a function of the distance
X of a transducer element from the reference point. The expression for D is expanded
into a series having terms respectively containing different powers of X. The coefficients
of these terms will include trigonometric functions of an angle between a perpendicular
to the array and a line drawn between the focal point and the reference point, or,
in another method, a line drawn between the focal point and the center of a group
of transducer elements. The coefficients, i.e. the A, B, and C referred to, also include
the distance of the focal point from the reference point or, in another method, the
distance between the focal point and the center of a group of transducer elements.
The unit of X is the distance ΔX between the center of adjacent transducer elements
of the array in use.
[0057] The number of terms of the series that are required for the desired resolution is
determined, and a number of accumulators equal to the highest power of X are coupled
in series. In the procedures illustrated by FIGURES 3 and 4, the last accumulator
in the series was preloaded with the combination of A, B, anc C or parts thereof for
the transducer elements of a group of elements that was closest to the center of the
array, and the preloading for the previous accumulators in the series was determined
by working backwards to see what the respective preloading had to be in order to give
the correct values of D. The first accumulator in the series was preloaded in two
ways, i.e. by preloading the register and by supplying the value 6A to its adder.
After the accumulators have been clocked a sufficient number of times for the value
6A to contribute to the value provided by the register of the last accumulator of
the series all preloaded values except 6A have no further effect.
[0058] Instead of calculating the values of D for the transducer element of a group that
is closest to the center of the array, it would be possible to start with the outermost
element and work toward the center. In order to do this, the preloaded values would
be determined by preloading the register of the last accumulator with the values of
A, B, C, etc. determined from equation (12) by substitution therein of the value of
X for the outermost transducer element and working backward as before.
[0059] In all of these methods the values of A, B, and C can be derived from Legendre polynomials.