Implementation of Physicallayer Network Coding
Abstract
This paper presents the first implementation of a twoway relay network based on the principle of physicallayer network coding. To date, only a simplified version of physicallayer network coding (PNC) method, called analog network coding (ANC), has been successfully implemented. The advantage of ANC is that it is simple to implement; the disadvantage, on the other hand, is that the relay amplifies the noise along with the signal before forwarding the signal. PNC systems in which the relay performs XOR or other denoising PNC mappings of the received signal have the potential for significantly better performance. However, the implementation of such PNC systems poses many challenges. For example, the relay must be able to deal with symbol and carrierphase asynchronies of the simultaneous signals received from the two end nodes, and the relay must perform channel estimation before detecting the signals. We investigate a PNC implementation in the frequency domain, referred to as FPNC, to tackle these challenges. FPNC is based on OFDM. In FPNC, XOR mapping is performed on the OFDM samples in each subcarrier rather than on the samples in the time domain. We implement FPNC on the universal soft radio peripheral (USRP) platform. Our implementation requires only moderate modifications of the packet preamble design of 802.11a/g OFDM PHY. With the help of the cyclic prefix (CP) in OFDM, symbol asynchrony and the multipath fading effects can be dealt with in a similar fashion. Our experimental results show that symbolsynchronous and symbolasynchronous FPNC have essentially the same BER performance, for both channelcoded and unchannelcoded FPNC.
keywords:
physicallayer network coding, network coding implementation, software radio1 Introduction
In this paper, we present the first implementation of physicallayer network coding (PNC) on the software radio platform. We believe this prototyping effort moves the concept of PNC a step toward reality. Our implementation work also exposes and raises some interesting issues for further research.
PNC, first proposed in PNC06 (), is a subfield of network coding AhlswIT00 () that is attracting much attention recently. The simplest system in which PNC can be applied is the twoway relay channel (TWRC), in which two end nodes and exchange information with the help of a relay node in the middle, as illustrated in Fig. 1. Compared with the conventional relay system, PNC could double the throughput of TWRC by reducing the needed time slots for the exchange of one packet from four to two PNC06 (). In PNC, in the first time slot, end nodes and send signals simultaneously to relay ; in the second phase, relay processes the superimposed signals and maps them to a networkcoded packet for broadcast back to the end nodes. From the networkcoded packet, each end node then makes use of its self information to extract the packet from the other end node PNC06 (); ShengliGlobecom08 (); PNCSurvey ().
Prior to this paper, only a simplified version of PNC, called analog network coding (ANC) KattiANC07 (), has been successfully implemented. The advantage of ANC is that it is simple to implement; the disadvantage, on the other hand, is that the relay amplifies the noise along with the signal before forwarding the signal, causing error propagation.
To our best knowledge, the implementation of the original PNC based on XOR mapping as in PNC06 () has not been demonstrated, even though it could have significantly better performance. A reason is that the implementation of XOR PNC poses a number of challenges. For example, the relay must be able to deal with symbol and carrierphase asynchronies of the simultaneous signals received from the two end nodes, and the relay must perform channel estimation before detecting the signals.
This paper presents a PNC implementation in the frequency domain, referred to as FPNC, to tackle these challenges. In particular, FPNC is based on OFDM, and XOR mapping is performed on OFDM samples in each subcarrier rather than the samples in the time domain. We implement FPNC on the universal soft radio peripheral (USRP) platform. Our implementation requires only moderate modifications of the packet preamble design of 802.11a/g OFDM PHY. With the help the cyclic prefix (CP) in OFDM, symbol asynchrony and the multipath fading effects can be dealt with in a similar fashion. Our experimental results show that symbolsynchronous and symbolasynchronous FPNC have nearly the same BER performance, for both channelcoded and unchannelcoded FPNC.
Challenges
In the following, we briefly overview the challenges of PNC, and the implementation approaches taken by us to tackle them:
Asynchrony
There are two possible implementations for PNC: synchronous PNC and asynchronous PNC. In synchronous PNC, end nodes and have the uplink channel state information (CSI). They perform precoding and synchronize their transmissions so that their signals arrive at relay R with symbol and carrierphase alignments. For highspeed transmission, such tight synchronization is challenging; in addition, timely collection of CSI is difficult in fast fading scenarios.
Asynchronous PNC is less demanding. It does not require the two end nodes to tightly synchronize and precode their transmissions. In particular, knowledge of the uplink CSI is not needed at the two end nodes. The simplicity at the end nodes comes with a cost. Without precoding and synchronization of the two end nodes, their signals may arrive at the relay with symbol and carrierphase misalignments. A key issue in asynchronous PNC is how to deal with such signal asynchrony at the relay SyncPNC06 (); UPNCICC11 ().
This paper focuses on the implementation of asynchronous PNC. To deal with asynchrony, our FPNC implementation makes use of OFDM to lengthen the symbol duration within each subcarrier. Then, independent XOR PNC mapping is performed within each subcarrier. OFDM splits a highrate data stream into a number of lowerrate streams over a number of subcarriers. Thanks to the larger symbol duration within each subcarrier, the relative amount of dispersion caused by the multipath delay spread is decreased. The OFDM symbols of the two end nodes become more aligned with respect to the total symbol duration, as illustrated in Fig. 2. In particular, if the relative symbol delay is within the length of the CP, the timedomain misaligned samples will become aligned in the frequency domain after DFT is applied. This property will be further elaborated later in Section 2.
Channel Estimation
For good performance of asynchronous PNC, the relay must have the knowledge of the uplink CSI. This has been the assumption in many prior works on PNC (e.g., PNC06 (); ZorziSPAWC09 ()). This means that in implementation, the relay will need to estimate the channel gains. Most channel estimation techniques for the OFDM system assume pointtopoint communication in which only one channel needs to be estimated. In PNC, the relay needs to estimate two channels based on simultaneous reception of signals (and preambles) from the two end nodes. This poses the following two problems in PNC that do not exist in pointtopoint communication:

Channel estimation in a pointtopoint OFDM system (e.g., 802.11 dot11std07 ()) is generally facilitated by training symbols and pilots in the transmitted signal. If used unaltered in the PNC system, the training symbols and pilots from the two end nodes may overlap at the relay, complicating the task of channel estimation. In our implementation, we solve this problem by assigning orthogonal training symbols and pilots to the end nodes. The details will be given in Section 4.

It is well known that carrier frequency offset (CFO) between the transmitter and the receiver can cause intersubcarrier interference (ICI) if left uncorrected. In a pointtopoint system, CFO can be estimated and compensated for. In PNC, we have two CFOs at the relay, one with respect to each end node. Even if the two CFOs can be estimated perfectly, their effects cannot be both compensated for totally; the total elimination of the ICI of one end node will inevitably lead to a larger ICI for the other end node. To strike a balance, our solution is to compensate for the mean of the two CFOs (i.e., compensate for ). The details will be elaborated in Section 4.
Joint Channel Decoding and Network Coding
For reliable communication in a practical PNC system, channel coding needs to be incorporated. This paper considers linkbylink channelcoded PNC, in which the relay maps the overlapped channelcoded symbols of the two end nodes PNCSurvey (); ShengliJSAC09 () to the XOR of the source symbols ^{1}^{1}1This process is called ChanneldecodingNetworkCoding (CNC) in ShengliJSAC09 () because it does two things: channel decoding and network coding. Unlike the traditional multiuser detection (MUD) in which the goal is to recover the individual source information from the two end nodes, CNC aims to recover the XOR of the source information during the channel decoding process. CNC is a component in linkbylink channelcoded PNC critical for its performance PNCSurvey (); ShengliJSAC09 ().; after that, the relay channelencodes the XOR source symbols to channelcoded symbols for forwarding to the end nodes. Such a linkbylink channelcoded PNC system has better performance than an endtoend channelcoded PNC system PNCSurvey (); ShengliJSAC09 ().
In our FPNC design, we adopt the convolution code as defined in the 802.11 a/g standard. The relay first maps the overlapped channelcoded symbols to their XOR on a symbolbysymbol basis. After that it cleans up the noise by (i) channeldecoding the XOR channelcoded symbols to the XOR source symbols, and then (ii) rechannelcoding the XOR source symbols to the XOR channelcoded symbols for forwarding to the two end nodes.
The remainder of this paper is organized as follows: Section 2 details the delay asynchrony model of this paper. Section 3 presents the FPNC frame format design. Section 4 addresses the key implementation challenges. Experimental results are given in Section 5. Finally, Section 6 concludes this paper.
2 Effect of Delay Asynchrony in Frequency Domain
In asynchronous PNC, symbols of the two end nodes may arrive at the relay misaligned. We mentioned in the introduction that if the relative symbol delay is within the length of the CP in FPNC, then the timedomain misaligned samples will become aligned in the frequency domain after DFT is applied. This section is devoted to the mathematical derivation of this result. Here, we will derive a more general result that takes into account multipath channels as well.
2.1 Effective Discretetime Channel Gains
We consider the following multipath channel model. Suppose that there are paths from node to relay with delays and corresponding channel gains . The channel impulse response of is . Similarly, there are paths from node to relay with delays and channel gains , with channel impulse response . Without loss of generality, we assume that frame arrives earlier than frame : specifically, . Note that our model allows for the case where nodes and do not exactly transmit at the same time. If one node transmits slightly later than the other, we could simply add the lag time to all the path delays of that node. We assume that the net effect is such that the signal of arrives earlier than the signal of , whether this is due to earlier transmission or shorter path delay of .
We first derive the effective discretetime channel gains for the uplink in FPNC. As shown in Fig. 3, the discretetime channel gains capture not just the continuoustime channel gains, but also the operations performed by pulse shaping and matchedfilteringandsampling. Let us assume that the pulse shaping function is of finite length: specifically, we assume for and . The continuoustime baseband signal fed into the continuoustime channel is . The time domain received signal if only node transmits is
(1) 
where is the noise, assumed to be AWGN. MatchedFiltering (MF) and sampling are then performed on (1), by sampling at the first multipath channel tap of the uplink channel between node and relay , to get the received samples
(2) 
where . We see that the effective discretetime channel of is such that .
Note that if . In other words, for and . Define .
Let us now consider what if both end nodes transmit. The received signal at the relay node is
(3) 
Sticking to the above MF that is defined with respect to first path delay of , we have
(4) 
where for and , and for and .
2.2 DelaySpreadWithinCP Requirement
The delay spread of node is , and the delay spread of node , with respect to time , is . We define the delay spread of the PNC system as (i.e., it combines the delay spreads of and into a potentially larger delay spread, as illustrated in Fig. DelaySpread)
(5) 
The above derivation is general and do not have any requirement on the modulation. This subsection, we will present the OFDM modulated PNC system. In particular, we will present the “DelaySpreadWithinCP Requirement” for FPNC. That is, we combine the Cyclic Prefix (CP) and Discrete Fourier Transform (DFT) to show that the timedomain symbol asynchrony of FPNC disappears in the frequency domain, when the uplink frames satisfy the DelaySpreadWithinCP Requirement.
First, let be the point DFT of given by OppenheimDTSPBook () (Note that, in the following derivation, we assume the subcarrier indices start from , i.e, )
(6) 
The point circular convolution of and is written as
(7) 
where denotes modulo . In other words, is a periodic version of with period . From the definition of DFT, circular convolution in time leads to multiplication in the frequency OppenheimDTSPBook ():
(8) 
The channel output, as in (4), however, is not a circular convolution but a linear convolution. The linear convolution between the channel input and impulse response can be turned into a circular convolution by adding a special prefix to the input called a cyclic prefix (CP) GoldsmithWCBook ().
For FPNC, let and denote the frequency responses of the discretetime channels, and let denote the length of the CP. One OFDM symbol duration is then . The CP for is defined as : it consists of the last values of the sequence. For each input sequence of length , these last samples are appended to the beginning of the sequence. This yields a new sequence , , of length , where . Note that with this definition, for , which implies that for .
Suppose and are inputs to a discretetime channel with impulse response and , respectively. The channel output , is then (assuming that the delay spread of FPNC is no large than the CP length )
(9) 
where the third equality follows from the fact that for , for . Thus, by appending a CP to the channel input, the linear convolution associated with the channel impulse response for becomes a circular convolution. Taking the DFT of the channel output in the absense of noise then yields the following FPNC frequency domain digital expression:
FPNC Frequency Domain Digital Expression:
Define as the length of the CP, and assuming FPNC (where and are functions of the multipath delays and , respectively) the received signal at subcarrier is given by
(10) 
Note that the timedomain delay spread has been incorporated into and respectively. In FPNC, we will map for each subcarrier into the XOR, . This will be detailed in Section 4.3. The main point here is in (10), the signals of different subcarriers are isolated from each other, and we only need to perform PNC mapping within each subcarrier.
We remark that our discussion so far in this section has assumed the absence of CFO. When there is CFO, intercarrier interference (ICI) may occur, and this will be further discussed in Section 4.1.
3 FPNC Frame Format
This section focuses on the PHY frame design to enable asynchronous operation, channel estimation, and frequency offset compensation in FPNC. As previously mentioned, the asynchronous operation requires the PNC delay spread to be within CP. To ensure this, a simple MAC protocol as follows could be used to trigger nearsimultaneous transmissions by the two end nodes. The relay could send a short polling frame (similar to the “beacon frame” in 802.11 that contains only 10 Bytes) to the end nodes. Upon receiving the polling frame, the end nodes then transmit. With this method, the symbols would arrive at the relay with a relative delay offset of , where is the round trip time, including the propagation delay and the processing time at the end nodes. This delay offset is not harmful to our system as long as the sample misalignment of two end nodes is within the CP length.
Given this loose synchronization, our training symbols and pilot designs described below can then be used to facilitate channel estimation and frequency offset compensation in FPNC. We modify the PHY preamble design of 802.11a/g for FPNC. The overall FPNC frame format is shown in Fig. 5. The functions of the different components in the PHY preamble are described in the next few subsections.
3.1 FPNC Short Training Symbol
In 802.11, the short training symbol (STS) sequence contains 160 timedomain samples, in which 16 samples form one STS unit () for a total of 10 identical units, as shown in Fig. 7. FPNC adopts the same STS sequence as in 802.11, as illustrated in Fig. 7. The STS sequence is used by the relay node to perform the sample timing recovery on the received frame. In particular, the relay node applies a crosscorrelation to locate the sample boundary for the long training symbols that follow the STS sequence. The normalized crosscorrelation is defined as follows:
(11) 
where is the received sample index, is the th sample at the relay , and is the length of each . For FPNC, this crosscorrelation will result in 20 peaks over the STS sequences (see Fig. 8) of the two frames if the frames are not synchronized. From this profile of peaks, we can identify the last two peaks. If the DelaySpreadWithinCP requirement is satisfied, then the last two peaks must be the last peaks of and , respectively. This is because the CP as well as the sts are of 16 samples in length. From there, we could locate the boundaries of the LTS of and that follow. Note that when the STS sequences of nodes and overlap exactly, we will have ten peaks only. In this case, the LTS boundaries of and also overlap exactly, and we simply use the last peak to identify the common boundary.
3.2 FPNC Long Training Symbol
With reference to Fig. 7, the 802.11 LTS sequence contains 160 timedomain samples in which there is a CP followed by two identical LTS units, . The receiver uses the LTS sequence to perform channel estimation and CFO compensation.
For FPNC, in order to estimate two uplink channel gains, we design the LTS so that it contains twice the length of LTS in 802.11a/g, as shown in Fig. 7. In Fig. 7, we intentionally show the case in which the LTS sequences of the two end nodes are not exactly synchronized. Note that we change the 802.11 LTS design by shortening its original CP length from 32 to 16 to make sure that the two units of will not overlap with the data of that follows under the condition that the delay spread is less than the CP length of 16. This does not impose additional requirement on the delay spread, since the CP of the data OFDM symbols in 802.11a/g (and FPNC) have only 16 samples anyway (i.e., the delay spread must be within 16 samples anyway). Section 4 will detail the CFO compensation and channel estimation methods for our implementation.
3.3 FPNC Pilot
There are four pilots for each OFDM symbol in 802.11, as shown in Fig. 9. The four pilots are used to finetune the channel gains estimated from LTS. In a frame, there are multiple OFDM symbols, but only one LTS in the beginning. In practice, the channel condition may have changed by the time the later OFDM symbols arrive at the receiver. That is, the original channel gains as estimated by LTS may not be accurate anymore for the later OFDM symbols. The pilots are used to track such channel changes.
In FPNC, we design the FPNC pilots of nodes and by nulling certain pilots to introduce orthogonality between them, as shown in Fig. 9. As will be detailed in Section 4.2, this allows us to track the channel gains of and separately in a disjoint manner in FPNC. We conducted some experiments for a pointtopoint communication system using the twopilot design rather than the fourpilot design. We find that for our linear interpolation channel tracking scheme described in Section 4.2, the BER performances of the twopilot and fourpilot designs are comparable for BPSK and QPSKmodulated systems.
4 Addressing Key Implementation Challenges in FPNC
We next present our methods for carrier frequency offset compensation, channel estimation, and FPNC mapping, assuming the use of the PHY frame format presented in Section 3.
4.1 FPNC Carrier Frequency Offset (CFO) Compensation
For CFO compensation, we first estimate the two independent CFOs (namely and ) caused by the carrier frequency offsets between nodes and and relay , respectively. We then compensate for the mean of the two CFOs (i.e., ). The details are presented below.
4.1.1 CFO Estimation
For the uplink phase, when there are CFOs, the received frames at relay R will suffer from timevarying phase asynchronies. We need to compensate for the CFOs to alleviate intercarrier interference (ICI) among data on different subcarriers.
Recall that in Section 3, we mentioned that a loose synchronization MAC protocol can be used to ensure that the difference of the arrival times of the frames from nodes and are within CP. That means that the LTSs from nodes and will overlap with each other substantially, with the nonoverlapping part smaller than CP (see Fig. 5). Recall also that we introduce orthogonality between the LTSs of nodes and so that when the LTS units in are active, the LTS in are zeros, and vice versa, as shown in Fig. 7. This allows us to separately estimate and . Without loss of generality, in the following we focus the estimation of using .
is given by (i.e., the difference in the frequencies of the oscillators of node and relay ). We define the normalized to be , where is the duration of one OFDM symbol, and is the number of samples in one OFDM symbol not including CP. In other words, is the additional phase advance introduced by the CFO from one sample to the next sample.
To estimate , we multiply one sample in the first unit of (see Fig. 7) by the corresponding sample in the second unit of to obtain . Then, is given by
(12) 
where .
For our experimental testbed, USRP, we found that the accuracies of the onboard oscillators are such that they do not induce large CFOs so that (interested readers are referred to Savo4Gbook () for CFO estimation when .). Hence, we could write (12) as follows:
(13) 
Strictly speaking, (13) is an expression for the noiseless case. Because of noise, for different could be different. Thus, in our computation, we first obtained for , and then estimate by
(14) 
We obtain similarly.
The reason we use the median CFO instead of the mean values is that we find the median is more stable. In particular, some samples of are outliers that appear to be caused by unknown errors of significant magnitudes. We will show the BER results comparing the use of mean and median for CFO compensation (in Fig. 10(b)).
4.1.2 Compensation for Two CFOs
In FPNC, we adopt the mean of the two CFOs for compensation purposes:
(15) 
Experimental results show (see Fig. 10(a)) that compensation by the mean in (15) is better than compensation by either or . We believe a theoretical study to explore and compare different compensatation methods may be worthwhile in the future. As far as we know, there have been no theoretical treatments of compensating for two CFOs. Fig. 10(b) shows the BER performance of using median for the estimate of or as in (14), versus using mean. It shows that he use of median results in better performance.
After compensation, our received data in the time domain is given by
(16) 
In the frequency domain, we have
(17) 
We should emphasize that the computation complexity of FPNC CFO compensation is exactly the same as that of pointtopoint communication, thus realtime decoding is possible.
4.2 FPNC Channel Estimation
In this subsection, we present the channel estimation and tracking method for FPNC. Note that CFO compensation was performed on the timedomain signal. For channel estimation, however, we are interested in the channel gains for different subcarriers in the frequency domain. This means that channel estimation will be performed after DFT. Thus, in the following we look at the signal after CP removal and DFT.
For FPNC channel estimation, we use the LTS to obtain a first estimate. Pilots are used to obtain additional estimates for later OFDM symbols within the same frame. In the following, we consider channel estimation of . Estimation of is performed similarly.
For channel estimation based on LTS, define one FPNC LTS unit of node (i.e., with respect to Fig. 7, one unit is ) in the frequency domain as , where . Based on the first unit of the received frequency domain (i.e., ), we perform channel estimation of as follows:
(18) 
As mentioned in Section 3, each LTS contains two identical units in our design. The uplink channel gain between node and relay is estimated by taking the average of the two units results
(19) 
In general, the channel may have changed from the first OFDM symbol to the last OFDM symbol within the same frame. The estimate based on LTS in (19) applies only for the earlier symbols. Pilots are used to track the channel changes for later symbols. Our pilot design was shown in Fig. Pilot. In each FPNC OFDM symbol, there are two pilots per end node. Note from Fig. 9 that the two pilots of node and the two pilots are node are positioned at different subcarriers and nonoverlapping in the frequency domain. Therefore, we could separately track the changes in and . In the following, we consider the tracking of . Tracking of can be done similarly.
Let and denote the subcarriers occupied by the two pilots of . Consider OFDM symbol . Let and be the received signal in the frequency domain. Because the pilots of and do not overlap, and contain only signals related to the pilots of . We first multiply and by and obtained from (19), respectively. Let and be the two pilots. Then, we compute
(20) 
After that, we perform linear fitting to obtain for , as follows:
(21) 
To obtain the final channel estimation for the th OFDM symbol, we compute
(22) 
4.3 FPNC Mapping
For reliable communication, channel coding should be used. Channel coding in PNC systems can be either done on an endtoend basis or a linkbylink basis ShengliJSAC09 (); PNCSurvey (). The latter generally has better performance because the relay performs channel decoding to remove noise before forwarding the networkcoded signal.
The basic idea in linkbylink channelcoded PNC is shown in Fig. 11. It consists of two parts. Let denote the vector representing the overall channelcoded overlapped frames received by relay . The operation performed by the first part is referred to as the Channeldecoding and NetworkCoding (CNC) process in ShengliJSAC09 (). It maps to , where and are the vectors of source symbols from nodes and , respectively, and the operation represents symbolbysymbol XOR operation across corresponding symbols in and . Note that the number of symbols in is more than the number of symbols in because of channel coding. Importantly, CNC involves both channel decoding and network coding. In particular, CNC channeldecodes the received signal not to and individually, but to their XOR. The second part can be just any conventional channel coding operation that channel code to for broadcast to nodes and , where is the channel coding operation.
As mentioned in ShengliJSAC09 () and PNCSurvey (), the CNC component is unique to the PNC system, and different designs can have different performance and different implementation complexity. We refer the interested readers to PNCSurvey () for a discussion on different CNC designs.
In this paper, we choose a design that is amenable to simple implementation, as shown in Fig. 12. We refer to this CNC design as XORCD. In this design, any linear channel code can be used. In our implementation, we choose to use the convolutional code. In XORCD, the channeldecoding and network coding operations in CNC are performed in a disjoint manner. As shown in Fig. 12, based on the CFOcompensated obtained as in (17), we obtain the overall vector . We then perform symbolwise PNC mapping to get an estimate for the the channelcoded XOR vector , where and are the channelcoded vectors from and , respectively. We assume the same linear channel code is used at nodes , , and . Note that since we adopt the convolutional code, is linear. Therefore, we have , and thus the same Viterbi channel decoder as used in a conventional pointtopoint communication link can be used in the second block of Fig. 12.
The mapping in the first block in Fig. 12 could be performed as follows. Based on the channel gains estimated in (22), we could perform the XOR mapping for the th subcarrier in the th OFDM symbol (assuming BPSK modulation) according to the decision rule below:
(23) 
where we have assumed Gaussian noise with variance . The computation complexity in (23)^{2}^{2}2Note that (23) is similar to (7) in Ref. UPNCICC11 (), except that here we allow for the possibility that , however, is large. In our implementation, we adopt a simple “logmax approximation” BoydCOBook () (i.e., ) that yields the following decision rule:
(24) 
This decision rule can also be interpreted as in Table 1, where
(25) 
1  
1  
1  
1 
Note here that this decision rule could be used even for nonGaussian noise. This is because (25) corresponds to finding the nearest point in the constellation map (constructed by combining the two end nodes’ channel gains).
Based on the XORed samples detected using the decision rule of Table 1, we then perform the channel decoding to get the XORed source samples. In our implementation, we use a Viterbi decoder with hard input and hard output. In general, a soft Viterbi algorithm could also be used for potentially better BER performance SklarDCbook ().
5 Experimental Results
This section presents details of our FPNC implementation over the software radio platform and the experimental results.
5.1 FPNC Implementation over Software Radio Platform
We implement FPNC in a 3node GNU Radio testbed, with Software Defined Radio (SDR). The topology is shown in Fig. 1. Each node is a commodity PC connected to a USRP GNU radio GNURadio ().

Hardware: We use the Universal Software Radio Peripheral (USRP) Ettus () as our radio hardware. Specifically, we use the XCVR2450 daughterboard operating in the 2.4/5GHz range as our RF frontend. We use the USRP1 motherboard for baseband data processing. The largest bandwidth that USRP1 could support is 8MHz. In our experiment, we use only use half of the total bandwidth for FPNC (i.e., 4MHz bandwidth).

Software: The software for baseband signal processing is based on the open source of GNURadio project GNURadio (). We build our system by modifying the 802.11g transmitter implementation in the FTW project FTW (). The FTW project FTW1 (), however, does not have a 802.11g receiver. Therefore, we develop our own OFDM receiver, designed specifically to tackle various issues in the FPNC system, such as CFO estimation and compensation, channel estimation, and CNC processing as presented in Section 4.
5.2 Experimental Results
We conduct our experiments over the channel one of 802.11g, with 2.412GHz being the central frequency. For each transmitter power level (we vary the SNR from 5dB to 20dB), we transmit 1000 packets and examine the resulting BER performance. Both the symbolsynchronous and symbolasynchronous cases are investigated. The packet length is 1500Bytes, which is a normal Ethernet frame size.
5.2.1 TimeSynchronous FPNC versus TimeAsynchronous FPNC
In Section 2, we derived theoretically that as long as the DelaySpreadWithinCP requirement is satisfied, FPNC will not have asynchrony in the frequency domain. Of interest is whether this reduces the asynchrony penalty in practice. In our first set of experiments, we investigate this issue. We study both unchannelcoded as well as channelcoded FPNC systems.
To create different levels of time asynchrony, we adjust the positions of the end nodes. One of the setups corresponds to the perfectly synchronized case (the STS correlation has only ten peaks in the perfectly synchronized case: see Section 3). Fig. 13(a) shows the BERSNR curves for the synchronous case, and Fig. 13(b) shows the curves for the asynchronous case with eight samples offset between the early and late frames. Note that this asynchrony still satisfies the DelaySpreadWithinCP requirement because the CP has of 16 samples. We find that the performance results of the asynchronous cases with other time offset to be similar, and we therefore present the results of the eightsample offset only.
From Fig. 13(a) and (b), we see that the asynchronous FPNC has essentially the same BER performance as that of the synchronous FPNC. Hence, we conclude that FPNC is robust against time asynchrony as far as BER performance is concerned.
5.2.2 FPNC versus Other Approaches for TWRC
Our next set of experiments is geared toward the comparison of FPNC with other TWRC schemes. Recall that FPNC TWRC is a twophase scheme using two time slots for the exchange of a pair of packets between two end nodes. We consider the following two additional approaches PNCSurvey ()

SNC: The straightforward network coding (SNC) scheme makes use of conventional network coding at the higher layer using three time slots. In SNC, node transmits to relay in the first time slot; node transmits to relay in the second time slot; relay then XOR the two packets from and and transmits the XOR packets to nodes and in the third time slot.

TS: Traditional scheduling (TS) scheme uses four time slots. In the first time slot, node transmits to relay ; in the second time slot, relay forwards the packet from to node . Similarly, the packet from node to node uses two additional times slots for its delivery.
Our overall goal is the compare the throughputs of the three schemes. To derive the throughputs, we first measure the following three frameerror rates:

: frameerror rate of the uplink of FPNC.

: frameerror rate computed from the two uplink time slots in SNC

: frameerror rate of a pointtopoint link.
Channel coded systems are considered in our implementation. All three systems use the convolutional channel code with 1/2 coding rate, as specified in the 802.11a/g standard dot11std07 ().
Note for 1) and 2), and refers to the error rate of the XOR of the two source frames. That is the error rate for the frame . For , we gather the decoded and from the two uplink time slots, and the compute their XOR before checking whether there is an error in the XOR frame. For , the CNC scheme as described in Section 4.3 is used to decode directly based on the simultaneously received signals. In Fig. 14(a), we plot , , and versus SNR obtained from our experiments. The FER measurements are all from channelcoded systems.
The throughputs per direction of the three TWRC schemes are computed as follows:
(26) 
In Fig. 14(b), we plot the throughputs (, , and ) of FPNC, SNC and TS versus SNR based on the , , and in Fig. 14(a). With reference to Fig. 14(b), for the high SNR regime (above 19dB), the throughput of PNC is approximately 99% higher than that of the TS scheme, and 49% higher than that of the SNC scheme. This is essentially the same as the ideal 100% and 50% throughput gains derived by slot counting in PNC06 () (i.e., the errorfree case), with the difference that we have channel coding here to ensure reliable communication. If we use the guideline that the common decodable 802.11 link usually works at an SNR regime that is higher than 20dB GeierSNR (); KattiANC07 (), we can conclude that our FPNC implementation has very good performance in this regime. We note that for this regime, KattiANC07 () mentions that ANC can achieve 70% and 30% throughput gains relative to TS and SNC. Hence, FPNC has better performance in this SNR regime by comparison.
We note from Fig. 14(b) that the performance of FPNC is not as good as that of SNC or TS at the lower SNR regime (say below 17dB). This is most likely due to our specific implementation of FPNC in this paper rather than a fundamental limitation of FPNC in general. In particular, recall that we implement the CNC function in FPNC mapping (see Section 4.3) using the socalled XORCD approach. In XORCD, (i) we first perform XOR mapping for the channelcoded symbol pairs from the two end nodes; (ii) after that channel decoding is applied on the channelcoded XOR symbols to get the XOR of the source symbols. Step (i) loses information that could be useful for the decoding of the XOR of the source symbols, and may lead to inferior performance in the low SNR regime. This phenomenon is explained in ShengliJSAC09 (); PNCSurvey (), and an joint CNC scheme APNC (); PNCSurvey () for the PNC system can potentially achieve better performance than the XORCD scheme implemented in this paper, at the cost of higher implementation complexity.
6 Conclusion and Future Work
This paper presents the first implementation of a PNC system in which the relay performs the XOR mapping on the simultaneously received signals as originally envisioned in PNC06 (). In particular, in our implementation, the XOR mapping is performed in the frequency domain of an OFDM PNC system. We refer to the OFDM PNC system as FPNC. The implementation of FPNC requires us to tackle a number of implementation challenges, including carrier frequency offset (CFO) compensation, channel estimation, and FPNC mapping.
A major advantage of FPNC compared with PNC in the time domain is that FPNC can deal with the different arrival times of the signals from the two end nodes in a natural way. We show by theoretical derivation that if the simultaneously received signals in FPNC have a maximum delay spread that is less than the length of the OFDM cyclic prefix (CP), then after the Discrete Fourier Transform, the frequencydomain signals on the different subcarrier are isolated from each other. That is, in the frequency domain, the signals are synchronous. Then, straightforward XOR mapping can be applied on the different subcarrier signals separately in a disjoint manner. To validate the advantage of FPNC, we present experimental results showing that timedomain symbol asynchrony does not cause performance degradation in FPNC.
To date, most work related to PNC focuses on its potential superior performance as derived from theory. In this paper, we evaluate the throughput gain of PNC relative to other twoway relay schemes. Our implementation indicates that PNC can have a throughput gain of 99% compared with traditional scheduling (TS), and a 49% throughput gain compared with straitforward network coding (SNC), in the high SNR regime (above 19 dB) in which practical technology such as WiFi typically operates.
Going forward, there are many rooms for improvement in our FPNC implementation. In this paper, when faced with alternative design choices, we opt for implementation simplicity than performance superiority. For example, we choose to use a simple PNC mapping method called XORCD in this paper, which is simple to implement but has inferior performance compared with other known methods PNCSurvey () in the low SNR regime. In addition, our implementation exercise reveals a number of problems with no good theoretical solutions yet, and further theoretical analysis is needed; in such cases, we use simple heuristics to tackle the problems. For example, CFO compensation for FPNC is an area that is not well understood yet, because we have to deal with CFOs of more than one transmitter relative to the receiver. In this paper, we simply compensate for the mean of the CFOs of the two end nodes. Better methods await further theoretical studies. Last but not least, we base our design on the 802.11 standard to a large extent with only moderate modifications. If we do not limit our design within the framework of 802.11, there could be other alternatives with potentially better performance.
References
 (1) S. Zhang, S. C. Liew, and P. P. Lam. “Hot Topic: Physical Layer Network Coding,” in Proc. 12th MobiCom, pp. 358365, NY, USA, 2006.
 (2) R. Ahlswede, N. Cai, S.Y. R. Li, and R. W. Yeung, “Network Information Flow,” IEEE Trans. on Information Theory, vol. 46, pp. 12041216, 2000.
 (3) S. Zhang, S. C. Liew, and L. Lu, “Physical Layer Network Coding Schemes over Finite and Infinite Fields,” in Proc. IEEE GLOBECOM 2008.
 (4) S. C. Liew, S. Zhang, and L. Lu “PhysicalLayer Network Coding: Tutorial, Survey, and Beyond,” submitted to Phycom.
 (5) S. Katti, S. Gollakota, and D. Katabi, “Embracing Wireless Interference: Analog Network Coding,” ACM SIGCOMM, 2007.
 (6) S. Zhang, S. C. Liew, and P. P. Lam, “On the Synchronization of PhysicalLayer Network Coding,” Information Theory Workshop, Oct 2006.
 (7) L. Lu, S. C. Liew, and S. Zhang, “Optimal Decoding Algorithm for Asynchronous PhysicalLayer Network Coding,” in Proc. IEEE ICC 2011.
 (8) Rossetto, F. and Zorzi, M., “On the Design of Practical Asynchronous Physical Layer Network Coding,” IEEE 10th Workshop on SPAWC, 2009

(9)
IEEE 802.112007. Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications.
http://standards.ieee.org/getieee802/download/802.112007.pdf.  (10) S. Zhang, and S. C. Liew, “Channel Coding and Decoding in a Relay System Operated with PhysicalLayer Network Coding,” IEEE J on Selected Areas in Commun. vol. 27, no. 5, pp. 788796, June 2009.
 (11) A. V. Oppenheim, et al., DiscreteTime Signal Processing (3rd Edition), Prentice Hall, 2009.
 (12) A. Goldsmith, et al., Wireless Communications, Cambridge University Press, 2005.
 (13) L. Lu, and S. C. Liew, “Asynchronous PhysicalLayer Network Coding,” http://arxiv.org/abs/1105.3144.
 (14) S. G. Glisic, Advanced Wireless Networks: 4G Technologies (second eidtion), John Wiley & Sons, 2007.
 (15) S. Boyd, and L. Vandenberghe, Convex Optimization, Cambridge University Press, 2004.
 (16) B. Sklar, Digital Communications: Fundamentals and Applications (2nd Edition), Prentice Hall PTR, 2003.

(17)
G. FSF. GNU Radio  Gnu FSF Project,
http://gnuradio.org/redmine/wiki/gnuradio 
(18)
Ettus Inc. Universal Software Radio Peripheral,
http://www.ettus.com/ 
(19)
P. Fuxjaeger, et al., FTW IEEE802.11a/g/p OFDM Frame Encoder,
https://www.cgran.org/wiki/ftw80211ofdmtx  (20) P. Fuxjër et al., “IEEE 802.11p Transmission Using GNURadio,” in Proc. IEEE WSR, 2010.

(21)
J. Geier. SNR Cutoff Recommendations, 2005.
http://www.wifiplanet.com/tutorials/article.php/3468771