2.3. Multiplex

Multiplexing can be used to reduce the number of frames T. This accelerates the recording time at the cost of increased measurement uncertainty.

2.3.1. Spatial Division Multiplexing

In spatial division multiplexing (SDM) [Par08], the fringes for each direction are additively superimposed, which results in crossed fringe patterns, cf. Fig. 2.4. The amplitude B is halved, i.e. for each direction only have the signal strength is available. The number of frames T is halved.

 1"""Spatial Division Multiplexing.
 2https://doi.org/10.1117/12.816472
 3"""
 4
 5import fringes as frng
 6from matplotlib import pyplot as plt
 7
 8f = frng.Fringes()
 9f.X = f.Y = 1024
10f.v = 10
11f.D = 2
12f.SDM = True
13
14I = f.encode()
15
16plt.imshow(I[0], cmap="gray")
17plt.show()
../_images/SDM.png

Fig. 2.4 Spatial division multiplexing (SDM).

In the decoding stage, the recorded fringe pattern sequence \(I^*\) is Fourier-transformed and the directions are separated in frequency space. Because this is done within the camera frame of reference, the demultiplexed directions only correspond to the encoded ones when the camera and scree are well aligned, i.e. they must face each other directly. Otherwise, the decoded coordinate directions can not be assigned to the screen axes correctly.

2.3.2. Wavelength Division Multiplexing

In wavelength division multiplexing (WDM) [Hua99], the shifts are multiplexed into the color channel, resulting in an RGB fringe pattern, cf. Fig. 2.5. Therefore it is required that all shifts N \(= 3\). The number of frames T is cut into thirds.

 1"""Wavelength Division Multiplexing.
 2https://doi.org/10.1117/1.602151
 3"""
 4
 5import fringes as frng
 6from matplotlib import pyplot as plt
 7
 8f = frng.Fringes()
 9f.X = f.Y = 1024
10f.v = 10
11f.N = 3
12f.WDM = True
13
14I = f.encode()
15
16plt.imshow(I[0])
17plt.show()
../_images/WDM.png

Fig. 2.5 Wavelength division multiplexing (WDM).

This works best when an RGB-prism-based camera is used, because its spectral bands don’t overlap and hence the RGB-channels can be separated sharply. Additionally, a white balance has to be executed to ensure equal irradiance readings in all color channels.

Also, the effect of color absorption by the surface material cannot be neglected. This means that the test object itself must not have any color.

Overall, less light is available per pixel because it is divided into the three color channels. Therefore, it requires about 3 times the exposure time compared to grayscale patterns.

Spatial and wavelength division multiplexing can be used together [Tru16]. If only one set K \(= 1\) per direction is used, only one frame T \(= 1\) is necessary, cf. Fig. 2.6. This allows single shot applications to be implemented.

 1"""Spatial and Wavelength Division Multiplexing.
 2https://doi.org/10.1364/OE.24.027993
 3"""
 4
 5import fringes as frng
 6from matplotlib import pyplot as plt
 7
 8f = frng.Fringes()
 9f.X = f.Y = 1024
10f.v = 10
11f.D = 2
12f.K = 1
13f.SDM = True
14f.N = 3
15f.WDM = True
16
17I = f.encode()
18
19plt.imshow(I[0])
20plt.show()
../_images/SDM%2BWDM.png

Fig. 2.6 Spatial and wavelength division multiplexing combined.

2.3.3. Frequency Division Multiplexing

In frequency division multiplexing (FDM) [Liu10], [Liu14b], the directions D and the sets K are additively superimposed. Hence, the amplitude B is reduced by a factor of D \(*\) K. This results in crossed fringe patterns if we have D \(= 2\) directions, cf. Fig. 2.8 and Fig. 2.9.

Each set \(k\) per direction \(d\) receives an individual temporal frequency \(f_{d,k}\), which is used in temporal demodulation to distinguish the individual sets. A minimal number of shifts \(N_{min} \ge \lceil 2 * f_{max} \rceil + 1\) is required to satisfy the sampling theorem.

 1"""Frequency Division Multiplexing (1 direction, 2 sets).
 2https://doi.org/10.1364/OE.18.005229
 3"""
 4
 5import fringes as frng
 6from matplotlib import pyplot as plt
 7
 8f = frng.Fringes()
 9f.X = f.Y = 1024
10f.v = 10, 13
11f.f = 1, 2
12f.D = 1
13f.K = 2
14f.N = 5  # 2 * max(f.f) + 1
15f.FDM = True
16
17I = f.encode()
18
19plt.imshow(I[0], cmap="gray")
20plt.show()
FDM-D1K2

Fig. 2.7 Frequency division multiplexing (FDM). Two sets are superimposed.


 1"""Frequency Division Multiplexing (2 directions, 1 set).
 2https://doi.org/10.1515/aot-2014-0032
 3"""
 4
 5import fringes as frng
 6from matplotlib import pyplot as plt
 7
 8f = frng.Fringes()
 9f.X = f.Y = 1024
10f.v = 10
11f.f = [[1],
12       [2]]
13f.D = 2
14f.K = 1
15f.N = 5  # 2 * max(f.f) + 1
16f.FDM = True
17
18I = f.encode()
19
20plt.imshow(I[0], cmap="gray")
21plt.show()
FDM-D2K1

Fig. 2.8 Frequency division multiplexing (FDM). Two directions are superimposed.


 1"""Frequency Division Multiplexing (2 directions, 2 sets).
 2https://publikationen.bibliothek.kit.edu/1000088264
 3"""
 4
 5import fringes as frng
 6from matplotlib import pyplot as plt
 7
 8f = frng.Fringes()
 9f.X = f.Y = 1024
10f.v = [[10, 13],
11       [10, 13]]
12f.f = [[1, 2],
13       [3, 4]]
14f.D = 2
15f.K = 2
16f.N = 9  # 2 * max(f.f) + 1
17f.FDM = True
18
19I = f.encode()
20
21plt.imshow(I[0], cmap="gray")
22plt.show()
FDM-D2K2

Fig. 2.9 Frequency division multiplexing (FDM). Two directions and two sets are superimposed.


If one wants a static pattern, i.e. one that remains congruent when phase shifted, the spatial frequencies must be integers: v \(\in \mathbb{N}\), must not share any common divisor except one: \(gcd(\) v \()= 1\), and the temporal frequencies must equal the spatial ones: v \(=\) f. With static/congruent patterns, one can realize phase shifting by moving printed patterns [Klu18].

 1"""Frequency Division Multiplexing (2 directions, 2 sets, static pattern).
 2https://publikationen.bibliothek.kit.edu/1000088264
 3"""
 4
 5import fringes as frng
 6from matplotlib import pyplot as plt
 7
 8f = frng.Fringes()
 9f.X = f.Y = 1024
10f.v = [[5, 13],
11       [7, 11]]
12f.f = f.v
13f.D = 2
14f.K = 2
15f.N = 27  # 2 * max(f.f) + 1
16f.FDM = True
17f.static = True
18
19I = f.encode()
20
21plt.imshow(I[0], cmap="gray")
22plt.show()
FDM-D2K2-static

Fig. 2.10 Frequency division multiplexing (FDM). Two directions and two sets are superimposed; static pattern which remains congruent when phase shifted.