## Abstract

The advantages of optics that include processing speed and information throughput, modularity and versatility could be incorporated into one of the most interesting and applicable topics of digital communication related to Viterbi decoders. We aim to accelerate the processing rate and capabilities of Viterbi decoders applied for convolution codes, speech recognition, inter symbol interference (ISI) mitigation problems. The suggested configuration for realizing the decoder is based upon fast optical switches. The configuration is very modular and can easily be increased to Viterbi decoder based upon state machine with larger number of states and depth of the trellis diagram.

©2007 Optical Society of America

## 1. Introduction: Viterbi algorithm and its applications

The Viterbi algorithm^{1-4} is an efficient method to find the most probable state path through a “trellis”. Let *s _{i}: 0≤t≤T* be a time sequence of (unobserved) states chosen out of a finite number of states denoted

*Q*, i.e.

*s*∈ {

_{t}*s*,…

_{1},s_{2}*s*}. In each state a message symbol

_{Q}*o*=

_{t}*z*is emitted. If the transition mechanism between the states is governed by a Markov process, i.e.

_{t}then the entire sequence of observations {*o _{0}*=

*z*,

_{0}*o*=

_{1}*z*…,

_{1}*o*=

_{T}*z*} constitutes a hidden Markov process. Two questions may arise. In the first one, we want to estimate the hidden states given the sequence of observations:

_{T}The other question is of interest in classification problems. This question involves the computing of the likelihood of a given observation set for several possible models:

where *M _{k}*∈{

*M*…

_{1},M_{2}*M*} belongs to the set of all

_{k}*K*possible models. The classification problem is merely the decision which model most likely produces the observed sequence.

The joint distribution of the set of observations and states can be calculated by further assuming that the observations generated by different states are independent:

Maximizing the joint probability is sufficient for solving both above mentioned questions. Thus, taking the logarithm of the right-hand side of the equation, the Viterbi algorithm focuses on the maximization of the following cost function:

where, *V _{i}(t)*=log

*P*{

_{r}*o*=

_{t}*z*/

_{t}*s*} and

_{t}*B*=log

_{j,i}(t)*P*{

_{r}*s*=

_{t}*s*/

_{i}*s*=

_{t-1}*s*}. The terms

_{j}*V*are associated with the nodes of the trellis diagram and the terms

_{i}(t)*B*are associated with the respective branches, as depicted the Fig. 1. The path weight is defined as the sum of the nodes and branches along the path. Finding the optimal path is based on the following principle: Suppose that an optimal path has been determined from the initial state at time

_{j,i}(t)*t=0*to each node

*j*in some time

*t*(corresponding to a column in the trellis diagram). Denote the total weight of these optimal paths by

*W*and note that

_{j}(t-1); l≤j≤Q*one*of these paths must be part of the optimal path to any node in the subsequent column. In particular, if the optimal path to any specific node

*i*in column

*t*passes through the node

*j´*in column

*t-1*, then the total path weight is

*W*(

_{j´}*t-l*)+

*B*+

_{j´,i}(t)*V*. If the path is truly optimal, then the node

_{i}(t)*j´*is the node that maximizes this quantity. Thus,

The maximization can be easily found by considering all the nodes in column *t-1*. The weight of the optimal path is computed and the node *j´* in the previous column from which the path extends is stored in a list associated with node *i*. The procedure continues from column to column. When the last column has been processed, the maximization is complete. The optimal state sequence simply corresponds to the path with the largest weight.

The fact that the Viterbi algorithm employs only forward recursion constitutes its main advantage. Many problems in communication and the problem of speech recognition can be modeled as a Hidden Markov Model (HMM).

The optical realization of the Viterbi decoder that is presented in this paper addresses three main applications:

#### 1.1. Inter-symbol interference mitigation

Consider the classical discrete time channel in which the received signal is comprised of the transmitted symbols suffering from ISI and contaminated by additive white Gaussian noise (AWGN)^{2}. Let *x _{t}* be a sequence of transmitted symbols. The received signal is given by:

Defining the state vector *s _{t}^{T}*=

*[x*,

_{t-L}*x*,…,

_{t-L+1}*x*and

_{t}]*h*=

^{T}*[h*the output signal can be rewritten as

_{0}, h_{1},…,h_{L}]*z*=

_{t}*h*+

^{T}s_{t}*w*. Recognize the observations as the sequence

_{t}*z*. Note, that the state-vector has only a finite number of states (for instance, in BPSK modulation we have 2

_{t};0≤t≤T^{L}states), and that

*w*are independent variables.

_{t}The Viterbi procedure can then be applied for the resulting HMM process:

As the decision on the optimal path is made only at the end of the sequence, it implies that a long delay might occur before a decision is made for each symbol. To avoid this problem the original sequence is truncated into smaller sequences. Usually the length of the truncated sequence is taken to be approximately *5L*.

Note, that the Viterbi algorithm provides the most likely *sequence*. However, it does not guarantee an optimal estimation for each *single* symbol.

#### 1.2. Speech recognition

Modern speech recognition systems^{3} are mainly based on hidden Markov modeling of speech production. Real-life, large vocabulary, continues speech recognizers are too complex for this brief summary, so we will concentrate on isolated-words small vocabulary systems. With this technique, we take, as a model of speech generation, a system which is capable of being in only a finite number of different states. It is intuitively easiest to think of this mechanism as different positions of the vocal organs, and of the outputs as the acoustical observables associated with each articulator position. However, the HMM does not require this correspondence. Usually, a left-to-right hidden Markov model with a single starting state and a single finite state is used. Once the process enters a state it cannot go back, but only repeat the current state or advance one or two states. HMM speech recognition systems do not work with the time waveforms but rather with some features related to the LPC coefficients (mostly represented by MEL-Cepstrum coefficients).

Each speech recognition system, based on HMM, is comprised of two stages. The first, an offline stage is the training phase. The second is the recognition phase. In the latter, we are interested in recognizing the model which most probably gave rise to the observed sequence. This problem is actually the classification problem we introduced before. The recognition stage can thus be implemented by the Vitebi algorithm (after obtaining the features from the speech signal).

The training stage, in which the transition probabilities and the probability of an observation given the state are implemented in an iterative procedure, is related to the Estimate-Maximize algorithm (usually denoted in this context as the Baum-Welch algorithm). This stage is only conducted once (on a training speech utterance) before applying the recognizer on the actual speech signal.

#### 1.3. Convolution codes

Decoding of convolution codes was the first application of the Viterbi algorithm^{1-2}. This problem is elaborated in the simulation study.

The paper is structured as follows. The general description of the concept is presented in section 2. The description of the experimental investigation is done in section 3. Simplified realization and the algorithmic are explained in section 4 and the full optical experimental realization is introduced in section 5. The paper is concluded in section 6.

## 2. General description of concept

The basic concept of optical Viterbi decoder is easy to describe using multi stage interconnection network (MIN) optical switching technology^{5}. In our examples we assume that the number of states in the state-machine is 2 (convolution code of 2 bits) in addition we will assume that the information is inserted as QPSK modulation, i.e. ′00′ is zero phase, ′10′ is π/2 phase, ′11′ is π phase and ′01′ is 3π/2 phase. The all-optical decoder includes two stages: In the first stage the weights of each branch in the trellis diagram are determined. In the second stage the weights are used to operate a set of 2 by 2 optical switches. Let us start with the first stage. One of its possible optical realizations is as follows: the input bits are split into 4 optical paths as described in Fig. 2(a). To each path a different constant source is added. The four different sources represent the four possible QPSK states (′00′, ′01′, ′10′ and ′11′). The four sources interfere with the input bits and the phase information may be extracted. The interferometer realizes a subtraction between the input bits and the reference sources. A 4 by 1 optical switch time-sequentially directs the output to a detector. The detector samples the output and its energy readout corresponds to the distance between the input and the four reference states (the smaller the energy the smaller the distance between the input bit and the reference state). The electronic output of the detector is the weighting to be used in the Viterbi decoder. Note that the MIN switching technology can allow fully connected switching block as well as multicasting (directing the same input to several output ports simultaneously) and variable optical attenuation (VOA) for each input port (controllable attenuation for each port). The distances that were extracted in the interferometer setup of Fig. 2(a) are now used as the attenuator in the switching module.

Another approach for realizing the computation of the weight coefficients using all optical means is described in Fig. 2(b). Here instead of 4 references and a periscope composed out of 4 beam splitters a regular interferometer configuration is used. 4 detectors are placed at the output of the setup while each one is located in a different position along the interference fringes pattern (as schematically described in Fig. 2(c)). When the input signal is changed the interference fringes are spatially shifted and thus the readout of the 4 detectors is changed. The shift is caused due to a change of π/2 in the phase of the input. Since the difference in phase between the 4 inputs is a phase of π/2, the shift is 1/4 of a period of the interference fringes. Table 1 describes the allocation of the various intensity levels to the 4 combinations of the information (originated from the 2 state-machine we are dealing with and that is described in Fig. 2(d). Note that Fig. 2(d) also depicts the commands required in order to move from one state to the next in the state machine and the convolution code related to the two-state machine which we analyze). The weight coefficients of every branch are the commands one needs to apply in order to change the state of the machine. The columns of table 1 are the connections to the detectors while the rows are the input bits sequence. As to be seen in the table indeed the difference between the various rows (due to the change in the input sequence) is only a lateral shift. The ′0′ designates a dark fringe (minimum intensity), ′1′ is mid level intensity and ′2′ is the intensity of a bright fringe. Those intensity levels which are also the readout of the 4 output detectors correspond to the weight coefficients.

Note that the number of switching stages used in the diagram of Fig. 2(e) correspond to the required depth of memory for the trellis diagram. The first bit enters the first switching stage. We assume that the switching rate is faster than the rate of arrival of the bits. The input is switched to all the possible outputs of the first stage. A detector observes the output energy. All the switching possibilities having the minimal energy are chosen and the switching state of the first switch is being fixed. Now, the second bit is entering. It is passed through the first stage and enters the second stage. Its overall energetic weighting corresponds to the multiplication between the weighting of the first switching state and the possible weightings of the second stage. The second switch runs through all the possible switching state while for each state a different weight is applied following the readout of Fig. 2(a). Once again the detector examines the energy output of the second stage and the switching states providing the minimal overall energy (corresponds to minimal distance of the first and the second stage) is chosen. The switching state of the second stage is fixed. We continue to the third stage etc. At the end of the process the chosen switching path starting from the first switch until the last switch determines the decoding of the input bits sequence.

Note that the input bits are used in the interferometer of Fig. 2(a) and 2(b) in order to determine the proper weighting. The inputs to the switching modules of Fig. 2(e) could be a constant reference source while synchronized update of the weights is done to each switching stage following the readout of the module of Fig. 2(a) and 2(b) that corresponds to the sequence of the input bits. Note that when the interferometer configuration is in use several practical difficulties may arise. Those difficulties are related to the implementation of coherent communication systems including laser line-width, induced phase and polarization drifting. In the case that the reference beam is a laser that is fixed in the detection circuit one solution to overcome the polarization and phase drifting is by using an electronic control circuit providing adaptive corrections to the reference beam. Such a control circuit although complicated, is feasible. A more adequate and interesting solution can be using the input beam itself to extract the reference. The input beam is first low pass filtered in order to extract the reference carrier. The bits as well as their phase information are filtered out and the carrier of the reference beam is extracted. Now the carrier can be interfered with the bits information and the relative shift of fringes can be inspected and analyzed.

## 3. Experimental investigation

The main disadvantage of the realization of Fig. 2(e), although it is very straight forward, is its lack of modularity and the large number of optical switches that it consumes. If one wishes to increase the depth of the trellis diagram or have state machine with larger number of states the number of switches is significantly increased. To solve this problem the scheme of Fig. 2(e) will be realized using the optical concept described in Fig. 3(a) which also presents a two state Viterbi decoder. The main advantage of the configuration of Fig. 3(a) is that increase in the depth of the trellis diagram will not affect the configuration at all and no additional elements need to be added. The scheme of Fig. 3(a) can be divided into three parts: the upper optical loop including the switch, amplifier (gain) and laser, the lower part which is similar to the upper one and the right part that includes a 2×1 switch, variable optical attenuator (VOA) and a detector. The first two parts are actually optical memory buffers. They include the accumulative weights of chosen paths in the trellis diagram. Since for two states machine there are no more than two simultaneous paths, one of which is eventually chosen (the chosen path indicates the optimal decoding of the input bit sequence), we have only two optical memory buffer cells. The two parts are connected via optical shutters in order to allow switching of the accumulated information between paths. Note that the upper path is an optical buffer that keeps the best path and the lower keeps the second best. Switching is performed when the situation is changed. Such an operation is part of the required operations set in order to perform the decoding of the most likely input bit sequence.

In each optical buffer accumulated attenuation is maintained. Each time that additional attenuation is to be added it is performed using the 2×2 switch which is responsible to throw out of the loop the relevant energy portion (i.e. to generate the required additional attenuation). Optical Y couplers constantly connect the output of each one of the two optical buffers to the third part allowing for constant monitoring of the accumulated energy. The third part is responsible for choosing the weight to be added to both buffers. It samples the energy in the first part. The weight of the present bit from the four reference states that is computed using the interferometer of Fig. 2(a) or 2(b) is inserted as an external command to the VOA of the third part of Fig. 3(a). Thus, this third part samples the accumulated energy of the first two parts using the 2x1 switch and by applying the proper weight (i.e. the weight that is related to the current decision we added to the path) in the VOA decides in the detector what is the new attenuation to be added to each one of the two buffers [as mentioned before the attenuation is to be added in the switches by throwing the energy away (by directing energy to the null output)], which actually signifies the direction at which each one of the two paths is directed.

The amplifier that is added to the feedback loops of the first and the second part is required for compensating for the undesired attenuation that is added to the accumulative buffer due to the passage of the light through the loop itself (the inherent attenuations of the fiber, the 2×2 switch and the Y coupler). Figure 3(b) presents the optical setup that was constructed following the sketch of Fig. 3(a). Note that a small difference exists between the schematic sketch of Fig. 3(a) and the experimental setup of Fig. 3(b). In Fig. 3(b) we have added additional switch of 2×2 just in front of the 2×1 switch of the third part. This 2×2 switch is not really needed but it may ease up the control logic of the analysis by always allowing the connection of the ´0´ state path to the upper input of the 2×1 switch and the ´1´ state path to the lower input, as these states might have been switched by the preceding stage (the 2×2 switch operates at bypass/exchange mode only). All the optical setups are controlled through the computer which is not performing any computations and is only responsible for the synchronization of the operation of all the optical elements. For the optical realization of the described configuration we used Civcom’s 1×2 and 2×2 switches and VOAs^{6}.

## 4. Simplified realization and algorithmic

In this section we have realized experimentally the optical buffer loop which is one of the main components in the overall configuration for the optical Viterbi decoder. Full experimental realization is presented in section 5. The required graphic user interface (GUI) was written using LabView. The GUI controls the optical elements in the setup. At the first step the user is requested to load a set of bits that he wishes to transmit (see Fig. 4(a)). Eventually the software will compare this set with the decoded set in order to compute the bit error rate (BER). Executing the program will apply the convolution code to the inserted sequence of bits. The convolution code increases the length of the sequence by a factor of 2 and the new result is displayed to the user. Now the user is requested to insert the probability for error for a bit in the encoded sequence. The meaning is that when the decoding procedure is performed on a sequence without errors, at every step one can make a decision regarding the optimal single sequence that was transmitted up to one step prior to the current step. Insertion of errors allows generation of two paths in the trellis diagram that can exist simultaneously during several decoding steps. For the realized trellis the system is not capable of recovering successive errors. After the insertion of the error the new sequence will appear on the screen. In the next step, and as was described, the information sequence will be fed in all-optical manner according to the following configuration: for each pair of bits there will be four detectors that will check optically the distance of this pair from any other legal pair of bits. For instance, if at the moment a pair of bits ´11´ was received then its distance from ´11´ is zero, from ´10´ and ´01´ the distance is ´1´ and from ´00´ it is ´2´. Actually for each pair of bits we will always get one distance of ´0´ and of ´2´ and two distances of ´1´. Following these distances we will control the optical attenuation in the two paths in the trellis diagram. This terminates the preparation stage of the experiment.

#### 4.1 The decision process

The experiment process will be described step-by-step. In each instant of time, the computer uploads to the experimental setup data from the data matrix. These data bits determine the attenuations that should be applied. We used this matrix since in this section we realized experimentally only the optical buffer loop while the interferometer setup which is responsible for providing the weight coefficients was not yet tested. The data matrix imitated the interferometer module and provided synthetically the required weights for the buffer.

A detector that samples the optical readout in the output of the system determines for each set of the four attenuations, which are the two best one and those two will be inserted into the two optical memory buffers (that contain the accumulated attenuation in each one of the two optimal decoding paths). After all the checks were conducted (i.e. the entire information matrix was fed in), the path with the highest energy is declared as the optimal path. Now, by going back tracing the decisions made, the decoded information may be extracted. The decoded result is displayed to the user while this sequence and the corresponding BER is calculated.

#### 4.2 The attenuation process

The decoder is realized with two types of switches 1 by 1 and 2 by 2. The 1 by 1 switch is actually a VOA that is controlled by an RS-232 interface. Using a dedicated LabView interface, proper attenuation values, ranging between 0 (no attenuation) and 4095 (40dB attenuation) can be fed into the VOA.

Note that Fig. 3(a) presented the schematic sketch for the suggested setup for the Viterbi decoder. However the optical switches of Civcom that we had were somehow problematic for such a straight forward realization and the realization we eventually used in the experiment is presented in Fig. 4(b) and 4(c). It is based on the same principle as the schematic sketch of Fig. 3(a) but it allows realization of the required attenuations despite the technical limitation of the optical switches we had: Although the switching time of those switches was fast (around 250nsec) their operation frequency was limited to only 6KHz (period time of 167micro seconds). The operation rate of the VOA was even slower, when operated as variable attenuator, while it is as fast as the switch, when operated as shutter (On/Off). This operation is obtained when TTL command is applied on the VOA device. Hence, since a slow rate in optics is equivalent to long fiber length, a simplified configuration was considered. This configuration included the 2 by 2 switch and the VOA, operated only in the TTL mode. In this operation mode the control over the switch was made through TTL command via the BNC cable. For the 2 by 2 switch, a command of 5Volt sets the switch to the *exchange mode* (input 1 goes to output 2 and vise versa). For 0Volt, the switch is set to the bypass mode (input 1 to output 1 and input 2 to output 2).

There are two types of required attenuations:

- 1. Attenuation in the VOA device in front of the detector for examining the distance between a certain input bit and the reference positions of the convolution code (´00´, ´01´, ´10´ and ´11´).
- 2. Attenuation in the optical buffer loops that accumulating the information in the two best paths.

For the first attenuation we used the VOA operated in the TTL mode. Since there are 4 levels of attenuation two of which are equal (no attenuation, one unit of attenuation and two units of attenuation) we have sampled, with the detector, 6 times a time range of 0.5msec. For no attenuation the light was the same for all the 6 times. For one unit of attenuation we switched one time the VOA (for 167 micro seconds) and through out the energy. For two units of attenuation we switched the VOA twice (i.e. for 334 micro seconds) and for full attenuation the 1 by 1 switch was closed during the entire sampling time. After the sampling process the obtained samples were averaged in the computer.

The attenuation in the optical buffer loop was realized as follows: It takes 1 micro second for the light to travel through a fiber of 200meter. The laser source was fed to the system through a 1 by 1 switch. A Y coupler of (50%-50%) was connected to the output of the switch as depicted in Fig. 3(a). The output of the Y coupler was inserted to one of the inputs of the 2 by 2 switch and both of its outputs were coupled using coupler of 51%-49% (see Fig. 4(b) and the following explanation). The output of this coupler was inserted into another Y coupler of 95%-5% while its 5% output went to the detector and the 95% was connected through 4km long fiber and EDFA (Erbium doped optical fiber amplifier) back to the optical loop. The aim of the optical amplifier is to compensate for the losses caused to the light while passing trough the loop. The fiber’s attenuation is 0.2dB/km and the Y coupler of 50%-50% adds additional loses of 3.2 dB (3dB due to the coupling and 0.2dB due to the connectors), the switch has insertion loses of 0.7dB. All together the overall attenuation of the loop is 8dB. Thus, if no switching is made the energy is conserved due to the amplification. Since the switching period is 167 micro seconds and since the output of the 2 by 2 switch is combined with Y coupler of 51%-49% (see Fig. 4(b) and the following explanation) it means that during these 167 micro seconds 3% (1-0.49/0.51) of the energy is lost by switching to the null output of the switch. Since light passes more than 8 times through the loop during the 167 micro seconds (the loop comprises a fiber of 4km) the obtained overall attenuation is about 30% (1.5dB). At the detector we decide how many times one should switch (each switch is 1.5dB of loses) and it will be either one unit of lose or two. The decision is made following the logic that we have explained before. The plot of the described configuration appears in Fig. 4(b).

We assume that every optical buffer loop is a path in the decoding algorithm. The 2 by 1 switch appearing in the Fig. 4(c) is responsible for alternate sampling of the accumulated attenuation, for loops A and B. In each time instant the VOA performs 4 attenuations (2 of them are equal) which are sampled at the detector. This compares the 4 different transitions: from ´0´ to ´0´, from ´0´ to ´1´ from ´1´ to ´0´ and from ´1´ to ´1´. At the end of the process, the Viterbi algorithm decides on the most probable origin for the next ´0´ and ´1´, respectively. Thus, the first sample corresponding to the transition from ´0´ to ´0´, will be compared to the third sample (for the transition from ´1´ to ´0´) since at the current step it is important for us to determine what is the optimal path to ´0´. Respectively we will compare the second sample against the fourth which corresponds to transition to ´1´. There are 4 options:

- 1. The first sample is better than the third and the second is better than the fourth.
- 2. The first sample is better than the third and the fourth is better than the second.
- 3. The third sample is better than the first and the second is better than the fourth.
- 4. The third sample is better than the first and the fourth is better than the second.

For the first possibility we would like to “copy” the content of the upper loop A (that was the digit ´0´ in the previous time instant) into the lower loop B. For possibility 2 we would like the 2 by 2 switch to be in a bypass mode. For possibility 3 we would like the 2 by 2 switch to be in the exchange mode and for possibility 4 we would like to “copy” the content of the lower loop B into the upper one (loop A). In the next step again 4 samples will be done and the decoding proceeds following the described algorithm.

In Fig. 4(d) we present measurements of the VOA realizing the three possible attenuations (there 4 attenuations but 2 of them are equal, see also section 5 for further explanation).

## 5. Full optical experimental realization

The experimenting described in this section present the full optical realization of the Viterbi decoder. This operation validation was done in several steps as to be described. The first experimental result that is presented in Fig. 5 is the realization of the optical weight coefficients that is done using optical interferometer. The optical interferometer, consisting of mirrors and beam splitters, was constructed (basically based on Fig. 2(b)). At its output interference fringes are obtained. The spatial position of these fringes depends on the relative phase between the input beam and the reference beam (we used the configuration of Fig. 2(b)-2(c) for the experimental extraction of the weight coefficients). The fringes are shifted following the value of this relative phase. This shift varies the intensity readout obtained in the detector. This intensity is designed to correspond to the required weight coefficients. Figure 5(a) is the experimental realization of the setup and the fringes obtained in the output plane. In Fig. 5(b) one may see the spatial shift of the fringes when relative phase is introduced.

In order to demonstrate the full setup we decided to demonstrate the basic configuration described in Fig. 2(e) since by the experimental demonstration of the realization of loop A (in Fig. 6) we actually verified the concept of Fig. 3(a) and 4(c). The constructed experimental setup is seen in Fig. 7(a).

The next step of the experimental realization includes the construction of the optical buffer seen in loop A in Fig. 4(c). The experimental results demonstrating the external control over the optical intensity of the beam passing through the loop in depicted in Fig. 6. Five levels of energy are clearly demonstrated. These levels correspond to the external decisions made by the control unit regarding the optimal path through the trellis diagram.

In Fig. 7(b) we present the GUI of the control unit that is controlling the optical setup. In the GUI we address the following example: the sequence ´0100´ is encoded by the convolution code to the sequence ´00111000´. We inserted bit error rate of 12.5% resulting in the sequence ´00101000´, i.e. the forth bit was mistakenly received as ´1´ instead of ´0´.

The trellis diagram of this configuration is depicted in Fig. 8. The trellis presents the decoding of the incoming sequence. The corresponding weight is depicted on each branch. The accumulated attenuation is depicted on each node. In the experiment we relate ´0´, ´-1´, and ´-2´ levels to attenuations of 3dB, 6dB, and 9dB, respectively. These values ensure noise robustness of the accumulated weight.

Let us now follow the logic of the optimal path selection that is obtained in real time experiment and compare it with the trellis diagram of Fig. 8. In Fig. 9(a) one may see the output of the first 2 by 2 switch (node M_{3}). The switch samples first the input coming from node M_{1} which has overall attenuation of ´-1´ (or 6dB) then it samples the input coming from M_{2} which has overall attenuation of ´-2´ (or 9dB) and eventually decided to lock its output on the ´-1´ since it has lower attenuation. One may see in Fig. 9(a) that indeed after the two samples the output is locked on the higher energetic level which indicates that the switch chose the connection to M_{1} rather than the one to M_{2}. The decision made at node M_{4} is depicted in Fig. 9(b).

The 2 by 2 switch samples the energy coming from node M_{1} and which has overall attenuation of ´-1´ and then the energy coming from node M_{2} which has overall attenuation of ´-4´ (15dB) and decides to choose the path with the smaller attenuation connected to M_{1}. As seen in Fig. 9(b) after the two samples the energy is locked on the higher level. In Fig. 9(c) the readout at junction M_{5} is tested by sampling first the accumulated attenuation from M_{3} (which is ´-2´) and then from M_{4} (which is ´-1´). After the two samples the switch is locked on the connection to node M_{4} having smaller attenuation. The energy that the switch is locked upon equals to the energy level that was sampled in the second sample (the one connected to M_{4}). In Fig. 9(d) the switch performs samples of the connection to node M_{3} (overall attenuation of ´-2´) and then the connection to node M_{4} (overall attenuation of ´-3´).

The connection to M_{3} is chosen and the energy is locked since this path has smaller attenuations. In Fig. 9(e) we present the final samples made at the detector. First the switch makes connection to node M_{5} (over all attenuation of ´-1´) and then it samples the energy at node M_{6} (overall attenuation of ´-3´). The connection to M5 is chosen and locked. The final decisions made by the switch were the following connection: ->M1->M4->M5->M7 which means that the correct sequence is: ->´00´ -> ´11´ -> ´10´ -> ´00´ and indeed this decision made by the control unit is the correct one.

Although in this research we intended to show only the feasibility of this new architecture it is worth saying several words regarding the anticipated performance in terms of signal to noise ratio (SNR). In general in our validation we saw that since interference concept is used to obtain the weight of the input bits, very high SNR performance can be obtained. By usage of lock-in amplifier one is capable of measuring phase difference of few micro radians which means that for information bits with phase modulation of π/2 the anticipated SNR will be of about 60dB (π/2/μRadian). Therefore since this number is so large, the phase measurement sensitivity will not be the limiting factor. The SNR will rather be limited by the dynamic range of the detector, setting the final SNR to about 40dB. Another factor that limits the SNR is related to the SNR of the switching circuits. Usually switches used in optics communication and specifically the switches of Civcom are capable of working with SNR of above 45dB. Therefore the overall SNR will be limited by the SNR of the detector. Note that the noises visible in Fig. 6 are obtained due to bad electronic driver of the optical shutter. Those noises will be eliminated when full integrated switching circuit is used.

Another important remark is to be done regarding the advantage in using the all-optical configuration. The main advantage of the proposed configuration in comparison to the electronic based processing is in the processing speed. The complexity of the demonstrated decoding circuit is 8 addition operations and 2 comparison operations for each processing stage 0<t<T (see Eq. 8). If a processing circuit is capable of doing computations at 200Mips (200 Mega operations per second) the processing rate of those 10 operations will be done at 20Mhz. In our optical realization two switching operations are required for every processing step. Although the optical switches that were used in the experiment had response time of 250nsec, much faster optical switching modules are available. Due to the fast evolving of the field of optics communication modulators at rates of 10GHz and even 40Ghz are available. Switching machines based on electro-optical effects that are capable of reaching switching rates of few Ghz are commercially starting to be obtainable as well. Therefore for identical processing complexity, about 100 times faster processing rate is feasible. However, note that the main advantage of the proposed all-optical configuration is also its modularity and its capability to be extended to larger state machines and to trellis diagrams with longer depths. In such case the electronic complexity of processing will be:

While in optics in average the complexity will be proportional to the number of bits. Therefore for the case of 10 bits rather than the 2 bits demonstrated in the experiment, one will obtain in electronics: 2500 operations i.e. operation rate of less than 100KHz for 200Mips machine while in optics it will be 1Ghz for the 10Ghz switch. Now it is 10,000 times faster.

## 6. Conclusions

In this paper we demonstrated a novel configuration for optical realization of Viterbi decoder for communication networks. The configuration is based on cascading a set of 2 by 2 switches to realize the trellis diagram, or, alternatively, by connecting two optical buffers (memory cell). Both configurations were tested and validated experimentally. The advantage of the proposed configuration is mainly faster decision capabilities via lower computation complexities. In this paper we used switches with rise time of around 250nsec. For commercial implementation switches capable of operating at higher rates, which are currently available, can be used instead.

The proposed all-optical configuration is very modular and can easily be extended to larger state machines and to trellis diagrams with longer depths.

## Acknowledgements

The authors would like to thank the Horowitz fund in Bar-Ilan University that supported this research.

## References and links

**1. **G. D. Forney, “The Viterbi Algorithm,” Proceedings of the IEEE ,**61**,268–278 (1973). [CrossRef]

**2. **J. G. Proakis, *Digital Communications*, (McGraw-Hill Science/Engineering/Math, 4th edition 2000).

**3. **T. W. Parsons, *Voice and Speech Processing*, (McGraw-Hill, 1987).

**4. **C.W. Therrien, *Discrete Random Signals and Statistical Signal Processing*, Signal Processing Series (Prentice-Hall, New-Jersy, 1992).

**5. **J. E. Midwinter, *Photonics in Switching* , Vols.1 and2, (Academic press, 1993).

**6. **Z. Zalevsky, D. Mendlovic, E. Marom, N. Cohen, E. Goldenberg, N. Konforti, A. Shemer, G. Shabtay, U. Levy, and R. Appelman, “Ultra fast all optical switching,” J. Opt. Netw. **1**,170–187 (2002).