CHANNEL/SYSTEM IDENTIFICATION USING TOTAL LEAST MEAN SQUARES ALGORITHM by Viput Subharngkasen Final Project in ECE 539 Introduction to Artificial Neural Network and Fuzzy systems ABSTRACT The Total Least Mean Squares (TLMS) algorithm is recursive technique used to identify transfer function of unknown systems by using input and output data, which is corrupted by noise. This paper evaluates the accuracy and stability of the TLMS algorithm. The TLMS algorithm demonstrates a better performance over the Least Mean Square (LMS) and Total Least Square (TLS) algorithms. It provides accurate results and faster computational time as compared to conventional approaches. 2 TABLE OF CONTENTS I. INTRODUCTION ………………………………………………………… 1 II. REVIEW OF LITERATURE ……………………………………………... 4 Least Mean Squares (LMS) algorithm ……………………………. 4 Total Least Mean Squares (TLMS) algorithm ……………………. 8 III. METHODOLOGY ………………………………………………………... 12 Part I ……………………………………………………………….. 12 Part II ……………………………………………………………… 13 IV. RESULTS …………………………………………………………………. 15 Part I ……………………………………………………………….. 15 Part II ……………………………………………………………… 19 V. DISCUSSION ……………………………………………………………... 22 VI. CONCLUSION ……………………………………………………………. 25 VII. REFERENCE ……………………………………………………………… 26 APPENDIX A ……………………………………………………………………... 27 APPENDIX B ……………………………………………………………………... 31 3 I. INTRODUCTION In the adaptive signal processing, the adaptive linear combiner is the simplest and the most widely used method. The basic properties of the adaptive linear combiner system are time varying and self-adjusting performance. Thus, the adaptive linear combiner systems are adjustable, and their adaptations usually depend upon the average values of finite-duration of input rather than upon the instantaneous values of the input. The adaptive system can be used in various applications such as the prediction application, the inverse modeling application, the interference canceling application, the channel equalization application, and the system identification application. In the system identification application, the Least Mean Squares (LMS) algorithm is widely used to determine the transfer function of an unknown system. By using inputs and outputs of that system, the LMS algorithm is applied in an adaptive process based on the minimum mean squares error. The LMS algorithm is the unsupervised learning algorithm, which is used to extract some features from data. The LMS algorithm can be used with both stationary and non-stationary signal processing. In the situation of having no interference in both inputs and outputs or having interference only in the outputs of the unknown system, the LMS algorithm’s results can always achieve the optimal solution. However, if the interference exists in both the input and the output of the unknown system, the LMS algorithm’s results can obtain only the sub-optimal solution for that unknown system. 1 The Total Least Squares (TLS) algorithm, proposed in 1901, is also used in the adaptive signal processing to identify the impulse response of the unknown system. The solutions of the TLS algorithm can be determined by minimizing the Frobenius norm of the cascaded matrix between the input interference matrix and output interference matrix. The results of this minimization can be achieved from the singular value decomposition (SVD) of that combined matrix. The results of the TLS algorithm are based on the assumption that the interference in the input and output are independent of each other. The computation time of the TLS algorithm is substantially time consuming; for example, the N-by-N matrix is 6N3 per iteration. The TLS algorithm’s performance, which is the same as the LMS algorithm’s performance, cannot be used to find the global optimal solution for the situation if the interference exists in both the input and the output signals of that system. One of the ways to find the optimal solution of the impulse response of the unknown system when it has the interference presented in both the input and the output is by using the Total Least Mean Squares (TLMS) algorithm. Instead of basing the approach on the minimum mean squares error as the LMS algorithm does, the TLMS algorithm is based on the total least mean squares or the minimum Raleigh quotient approach. Like the LMS algorithm, the TLMS algorithm is the unsupervised learning algorithm. The TLMS algorithm was derived from Oja and Xu’s learning algorithm, which is used for extracting only the minor features from the data sequence, unlike the LMS algorithm. By extracting only the subsidiary information, the effect of the interference can be eliminated. Moreover, the TLMS algorithm has also an advantage over the Total Least Squares (TLS) algorithm in the computation time. The TLMS algorithm’s 2 computation time for N-by-N matrix is 4N per iteration, whereas the TLS algorithm’s is 6N3 per iteration. In this paper, I developed the methodology for making comparisons between the LMS and TLMS algorithm. These comparisons will help to prove the accuracy of the two methods. In addition, it will also show the different results for both methods from the ideal solution. 3 II. REVIEW OF LITERATURE Least Mean Squares (LMS) algorithm The LMS algorithm is very useful and easy to compute. The LMS algorithm will perform well, if the adaptive system is an adaptive linear combiner, as well as, if both the ndimensional input vector X (k) and the desire output d (k) are available in each iteration, where X (k) is x1 (k ) x (k ) X (k ) 2 x n (k ) and the n-dimensional corresponding set of adjustable weights W(k) is w1 (k ) w (k ) W (k ) 2 wn (k ) By having the input vector X (k), the estimated output y (k), can be computed as a linear combination of the input vector X (k) with the weight vector W (k) as y(k ) X T (k )W (k ) Thus, the estimated error e (k), the difference between the estimated output y (k), and the desired signal d (k), can be computed as e(k ) d (k ) y(k ) d (k ) X T (k )W (k ) 4 From a mathematics perspective, to find the optimal solution is to minimize the E {e2 (k)}, whereas E {.} is the expectation value. In order to find the minimum value of e2(k), lets expand the e2 (k), and get e 2 (k ) d 2 (k ) 2 d (k ) X T (k )W (k ) W T (k ) X (k ) X T (k )W (k ) After that, take the expectation value for both sides of the equation, E{e 2 (k )} E{d 2 (k )} 2 E{d (k ) X T (k )}W (k ) W T (k ) E{ X (k ) X T (k )}W (k ) Let R be defined as the autocorrelation matrix as R E{ X (k ) X T (k )} and also let P be defined as P E d (k ) X T (k ) Thus, E{ e2(k) } can be rewritten as E{e 2 (k )} E{d 2 (k )} 2 P T W (k ) W T (k ) RW (k ) Since the LMS algorithm is the descending on the performance surface algorithm. Therefore, we use e2(k) to estimate the gradient vector, (k ) e 2 (k ) 2 e(k ) X (k ) W (k ) From the steepest descent type of adaptive algorithm. W (k 1) W (k ) (k ) Replace (k), we get W (k 1) W (k ) 2e(k ) X (k ) Substitute e(k), we get 5 W (k 1) W (k ) y(k ) d (k )X (k ) This equation is the LMS algorithm, which uses the difference between the desired signal d(k) and the estimated output y (k) to drive each weight tap to find the impulse response of the unknown system. W(k) is the present value of weight and W(k+1) is the new value, which eventually will be converted. The parameter is a positive constant that controls the rate of convergence and the stability of the algorithm, called the learning rate. The value of the learning rate has to be smaller than 1/2max, where max is the largest eigenvalue of the correlation matrix, R, or the learning rate can be selected as small as possible to make sure that the algorithm will be converted. The smaller the learning rate is employed, the longer the training sequence needs to be. Input X (k) Weight W (k) x1 W1k Desire Signal d(k) k x2 W2k + + + _ Sum k + xn Sum Output Y(k) + Error E(k) Wnk k Figure 1: LMS algorithm diagram From the LMS algorithm diagram in figure 1, the estimated output Y(k) is computed from a linear combination of the input signal, X(k) and the weight vector, W(k). The estimated output 6 y(k) is then compared to the desired output, d(k), to find the error, e(k). If there is any difference, the error signal will be used as a feedback mechanism to adjust the weight vector W(k). On the other hand, if there is no difference between these signals, it means that no adjustment is needed, since the estimated output is desirable. 7 Total Least Mean Squares (TLMS) algorithm Let Z(k) be the augmented vector of the input vector, X(k), and the desired output, d(k) Z (k ) X (k ) T | d (k ) T x1 (k ) x (k ) 2 x n (k ) d (k ) Assume that interference exists in both the input and the output called X(k) and d(k) respectively. Also, define the augmented interference vector as Z(k) Z (k ) X (k ) T | d (k ) T x1 (k ) x (k ) 2 x n (k ) d (k ) Thus, the augmented observation vector can be shown as ~ T ~ ~ Z (k ) Z (k ) Z (k ) X T (k ) | d (k ) where ~ X ( k ) X ( k ) X ( k ) ~ d (k ) d ( k ) d ( k ) Recall that the weight vector W(k) is 8 ~ x1 (k ) ~ x 2 (k ) ~ x n (k ) ~ d (k ) W1 (k ) W (k ) W (k ) 2 Wn (k ) Therefore, let the augmented weight vector to be ~ W (k ) W (k ) T | Wn 1 T W1 (k ) W (k ) 2 Wn (k ) Wn 1 (k ) In the TLMS algorithm, the estimation of the desired output, y(k), can be expressed as a linear combination of the input, X(k), and the weight vector, W(k), as shown in the LMS algorithm as y (k ) X T (k ) W (k ) To find the optimal solution, the effect of the interference has to be minimized. Thus, min E X T (k ) | d (k ) 2 min E Z (k ) 2 x1 (k ) x 2 (k ) min E x (k ) n d (k ) 2 where || . ||2 is the Euclidean Distance. The above equation can also be achieved through the minimization of ~ 2 ~T min E X (k )WTLMS d (k ) 2 ~ ~ min E Z T (k )W (k ) Subject to W (k ) 9 2 Note in the above equation that WTLMS is changed in each iteration, and can be any positive constant. When the equation is expended, we get ~ ~ ~ ~ min E W T (k ) Z (k ) Z T (k )W (k ) ~ ~ min E W T (k ) RW (k ) where R is the augmented correlation matrix ~ ~ R E Z (k ) Z T (k ) ~ ~ According to LaGrange expansion, min E W T (k ) RW (k ) can be expressed as ~ ~ ~ J W T (k ) RW (k ) W (k ) 2 where is a constant. Next, in order to find the minimum value of J, use the differentiation technique J ~ 2 RW (k ) 0 ~ W (k ) Hence, the solution of this optimization problem is the eigenvector, which relates to the smallest eigenvalue of the augmented correlation matrix. Referred to the LMS algorithm, the search equation for finding the eigenvector of the augmented correlation matrix R is ~ ~ ~ ~ W (k 1) W (k ) [W (k ) W (k ) 2 2 ~ RW (k )] where k is an iteration number. The parameter is a positive constant that controls the rate of convergence and the stability of the algorithm. The augmented correlation matrix R is a positive 10 definite matrix, thus, it makes the term ||W(k)||22 RW(k) be a higher order decay term. Hence, the weight vector, W(k), is bounded. Recall that the augmented correlation matrix R is 1 ~ ~ R E Z (k ) Z T (k ) M M ~ ~T Z (k ) Z (k ) k 1 where M is the total number of samples. However, in the TLMS algorithm, we take each Z(k)ZT(k) value as an augmented correlation matrix in each iteration. In addition, we can also rewrite the searching equation as ~ ~ ~ Y (k ) Z (k ) T W (k ) ~ ~ ~ ~ W (k 1) W (k ) W (k ) W (k ) 2 2 ~ ~ Y (k ) Z (k ) The above equation is the TLMS algorithm that will be used in the simulation processes in this study. As a final note, the value of the constant , it has to be very small in order to make ensure that the TLMS algorithm is converted. However, if we pick the value of too small, the algorithm will need a lot of training sequences to make it converted. 11 III. METHODOLOGY Part I By using the inputs and the outputs of the unknown system, the Least Mean Squares (LMS) and the Total Least Mean Squares (TLMS) algorithms are employed to identify the impulse response. In this simulation, the inputs and the outputs that are corrupted with zero mean Gaussian Noise are used. First, we apply the signals with signal to noise ration (SNR) equal to 10 dB into the algorithm while the lengths of the input and the output samples are varied from 1,000 to 100,000 samples. Next, the LMS and TLMS algorithms are used to compute the transfer function of the unknown system at each length of the samples (see figure 2). Start Number of samples = 1,000 Increase number of samples Use TLMS and LMS algorithm to compute the transfer function No 100,000 Samples Find the average of the last 100 results Find Error Error = ||HAverage - HIdeal ||2 Yes Plot the Error of TLMS and LMS algorithm Vs the number of sample in semilog graph End Figure 2: The flow chart shown the simulation process for each SNR in the methodology part I 12 The last 100 results were averaged. Then, the error of each of the averaged results compared with the ideal situation are computed by the following formula Error H Average H Ideal 2 where || . ||2 is the Euclidean Distance or norm. The results of the errors at each SNR are shown in semi-logarithm graphs in which the Yaxis represents the number of samples used in the simulations, and the X-axis represents the errors in dB. The processes are repeated for different SNR: 5, 2, 0, and –2 dB. Part II To better demonstrate the ability and stability of the TLMS algorithm over the LMS algorithm, the fixed number of inputs and outputs at 50,000 samples were used in the 2nd simulation. These inputs and outputs are also corrupted with Gaussian Noise. In addition, fixed SNRs at 10, 5, 2, 0, and –2 dB are used respectively. As in the part one, the simulation begins with SNR equal to 10 dB. The averages of the last 100 results were computed for both the LMS and the TLMS techniques. After that, we repeated the simulation and computation 50 times in order to find the true averages and variances of the result (see figure 3). All processes were repeated for the different SNRs and the results computed at the different SNRs were compared to the ideal solution in a table format. 13 Start Number of samples =50,000 Use TLMS and LMS algorithm to compute the transfer function No Repeat for 50 times Find the average of the last 100 results Find Error Error = ||HAverage - HIdeal ||2 Yes Compute average of the average and its variance End Figure 3: The flow chart shown the simulation process for each SNR in the methodology part II 14 IV. RESULTS Part I In the first simulation, I used the TLMS and LMS algorithms to find the transfer function of an unknown system from the varied length of inputs and outputs. As mentioned in the methodology section, the last 100 values of the results are used to compute the averages, which represent the computation of the TLMS and LMS algorithms for each number of samples. In order to determine the performance of the TLMS and LMS algorithms, we have to find the errors between the averaged results of both algorithms and compare those to the ideal solution for every number of samples. The error can be computed by Error 20 log H Average H Ideal 2 where || . ||2 is the Euclidean distance. At each SNR, the error of both LMS (- -) and TLMS (--) algorithms are shown in semi-logarithm graphs in which the Y-axis represents the number of samples, and the X-axis represents the errors in dB (see figure 5-9). According to the error plots, we can see that the TLMS algorithm’s performance is better than the LMS algorithm’s performance after being subjected to enough training sequences. In this simulation, the enough training sequences are about 20,000 samples. Moreover, the errors appear to convert after being subjected to 50,000 samples of training sequences for the TLMS algorithm. However, after the errors were converted, the error plots of both the LMS and TLMS algorithms still fluctuate. For the TLMS algorithm, the error plots appear to move back and forth 15 between the ranges of –10dB to -25 dB. For the LMS algorithm, the error plots appear to swing around 0 to 5 dB Error of TLMS Vs Error of LMS in Noise 10 db 10 Error LMS Error TLMS 5 0 Error in dB -5 -10 -15 -20 -25 -30 0 1 2 3 4 5 6 Number of samples 7 8 9 10 x 10 4 Figure 5: The error of TLMS and LMS algorithm Vs the number of samples at SNR = 10 dB 16 Error of TLMS Vs Error of LMS in Noise 5 db 20 Error LMS Error TLMS 15 10 Error in dB 5 0 -5 -10 -15 -20 -25 -30 0 1 2 3 4 5 6 Number of samples 7 8 9 10 4 x 10 Figure 6: The error of TLMS and LMS algorithm Vs the number of samples at SNR = 5 dB Error of TLMS Vs Error of LMS in Noise 2 db 15 Error LMS Error TLMS 10 5 Error in dB 0 -5 -10 -15 -20 -25 0 1 2 3 4 5 6 Number of samples 7 8 9 10 4 x 10 Figure 7: The error of TLMS and LMS algorithm Vs the number of samples at SNR = 2 dB 17 Error of TLMS Vs Error of LMS in Noise 0 db 20 Error LMS Error TLMS 15 10 Error in dB 5 0 -5 -10 -15 -20 0 1 2 3 4 5 6 Number of samples 7 8 9 10 4 x 10 Figure 8: The error of TLMS and LMS algorithm Vs the number of samples at SNR = 0 dB Error of TLMS Vs Error of LMS in Noise -2 db 25 Error LMS Error TLMS 20 15 Error in dB 10 5 0 -5 -10 -15 -20 0 1 2 3 4 5 6 Number of samples 7 8 9 10 4 x 10 Figure 9: The error of TLMS and LMS algorithm Vs the number of samples at SNR = -2 dB 18 Part II According to the 2nd simulation, I developed a method to compare the ability and the stability of the TLMS algorithm and the LMS algorithm. The fixed numbers of input samples are used. The simulations in part one show that the TLMS algorithm’s results have already been converted after 50,000 samples are used. Thus, I used 50,000 samples in this simulation to ensure the conversion of the TLMS algorithm. Like the first simulation, the last 100 converted results are employed to compute the averages, which represent the results of the TLMS and LMS algorithms. In order to find the true average and the variance of the computed results, I repeated the simulation 50 times, and computed the average of those 50 averages and variances. Afterwards, the whole process (see figure 3) is repeated for the different SNRs to determine the averages and the variances. The results of each SNR are shown in the table 1. According to table 1, the averages computed from the TLMS algorithm are much closer to the ideal solution than the results computed from the LMS algorithm. When the SNR is equal to 10 dB, the average weight computed from the LMS algorithm starts to deviate from the ideal weight. For the rest of the SNRs, the results derived from the LMS algorithm continue to deviate away from the ideal transfer function. However, the results of the TLMS algorithm, unlike the LMS algorithm, were close to the ideal situation even at the low SNR. Furthermore, the variances of the averages computed from both the TLMS and the LMS algorithm are considerably small; most of the variances are less than 0.01. Meaning that for each algorithm the computed averages are close to each other and to its mean. 19 Table 1: The TLMS and LMS average weights and their variances SNR Average Weight 10 dB H1 = [-0.3003, -0.9016, 0.8091, -0.7046, 0.6180] Var1 = [0.0020, 0.0035, 0.0028, 0.0028, 0.0026] H2 = [-0.2270, -0.6757, 0.6033, -0.5262, 0.4583] Var2 = [0.0038, 0.0023, 0.0025, 0.0032, 0.0023] H1 = [-0.3054, -0.9014, 0.7969, -0.7044, 0.5966] Var1 = [0.0024, 0.0032, 0.0044, 0.0030, 0.0033] H2 = [-0.1977, -0.5550, 0.4932, -0.4351, 0.3714] Var2 = [0.0053, 0.0039, 0.0037, 0.0049, 0.0049] H1 = [-0.2924, -0.9080, 0.8053, -0.7016, 0.6054] Var1 = [0.0038, 0.0049, 0.0052, 0.0055, 0.0041] H2 = [-0.1538, -0.5097, 0.4336, -0.3777, 0.3291] Var2 = [0.0051, 0.0054, 0.0046, 0.0055, 0.0050] H1 = [-0.3148, -0.8988, 0.7875, -0.6937, 0.6152] Var1 =[0.0030, 0.0043, 0.0049, 0.0048, 0.0039] H2 = [-0.1678, -0.4230, 0.3912, -0.3481, 0.3209] Var2 = [0.0050, 0.0043, 0.0069, 0.0059, 0.0039] H1 = [-0.2983, -0.8934, 0.8041, -0.6942, 0.5920] Var1 =[0.0051, 0.0057, 0.0050, 0.0046, 0.0047] H2 = [-0.1384, -0.3882, 0.3428, -0.3088, 0.2382] Var2 = [0.0090, 0.0085, 0.0080, 0.0095, 0.0065] H1 = [-0.2966, -0.8950, 0.7934, -0.7026, 0.5984] Var1 = [0.0039, 0.0099, 0.0069, 0.0056, 0.0044] H2 = [-0.0869, -0.3227, 0.2699, -0.2470, 0.2173] Var2 = [0.0105, 0.0106, 0.0102, 0.0097, 0.0072] 5 dB 2 dB 0 dB -2 dB -5 dB Variance of average weight Notes: 1. Ideal transfer function = [ -0.3, -0.9, 0.8, -0.7, 0.6 ] 2. Number of samples = 50,000 3. TLMS = 0.001 4. LMS = 0.001 5. H1 = TLMS average weight 6. H2 = LMS average weight 20 7. Var1 = Variance of TLMS weight 8. Var2 = Variance of LMS weight 21 V. DISCUSSION According to the results shown in the previous section, the performance of the Total Least Mean Squares (TLMS) algorithm is superior to the Least Mean Squares (LMS) algorithm. From figure 5-9, the errors resulted from the TLMS algorithm are minimized after using 30,000 samples, where the LMS algorithm’s errors can not be minimized even though the larger numbers of samples are used. Recall that in these simulations 100,000 samples are employed. When the SNR is decreased, the errors of both the TLMS and LMS algorithms are increased. Although, the errors of both methods are increased, only the errors of the TLMS algorithm are eventually minimized to the acceptable value. The errors resulted from the TLMS algorithm are averaged around –15dB which is considerably negligible, while the errors computed from the LMS algorithm are averaged around 0 dB. As shown in figure 5-9, the errors of the simulations fluctuate. This variation is due to the nature of the Gaussian interference. To reduce this effect, more simulations are needed in order to find the true average result. As a consequence, the simulation in part two were developed. From part one, I learned that the errors of the TLMS algorithm are converted after being subjected to 50,000 training samples. Therefore, we use 50,000 samples for the 2nd simulation. In order to find the true averages of the results, the simulation needed to be repeated 50 times as mentioned in the methodology section. 22 In table 1, the results show that the averages computed from the TLMS algorithm are closer to the ideal solution than the results computed from the LMS algorithm. The variances of both algorithms are significantly small, which means the averages of both algorithms do not vary much from each other and its mean. These small variances strengthen the stability of both algorithms. However, the TLMS algorithm has smaller variances than the LMS algorithm, this implies that the TLMS algorithm has more stability in computation over the LMS algorithm. Although the LMS algorithm gives a small value of variances, the average results still significantly deviate away from the desired value. As mentioned in the introduction section, the nature of the LMS algorithm is used to extract information from the input signals. However, due to the heavy noise corruption in the signals, the LMS algorithm cannot extract the information since the algorithm extracts the noise effects from the signal instead of the original information (input signals). Therefore, the LMS algorithm results in poor performance. On the other hand, the TLMS algorithm provides even a smaller value of variances and its average results are very much closer to the ideal solution. Because the TLMS algorithm, unlike the LMS algorithm, extracts only the minor features from the signals, the TLMS algorithm shows a better performance over the LMS algorithm in both the ability and the stability aspects. Consequently, the TLMS algorithm is recommended for applying in the system identification applications in most situations. In general, when no interference is involved, both the TLMS and LMS algorithms can be used to achieve the global optimal solution. However, the LMS algorithm’s computation time is 23 slightly faster than the TLMS algorithm. On the contrary, when the interference is presented, only the TLMS algorithm shows the desired results, whereas the LMS algorithm offers unacceptable solutions (see table 1). One of the difficulties in using the TLMS algorithm is how to choose the appropriate value of the learning rate, . If the selected is too small, the TLMS algorithm needs a substantial number of samples to make the algorithm convert. However, if the value is too large, the algorithm will fail to convert. For that reason, we need to trade off between the value of the learning rate, , or the number of samples used in the simulation. As a result, I recommend in a further study that search should be conducted to discover the best way to select the appropriated learning rate in order to utilize the efficiency of the TLMS algorithm. 24 VI. CONCLUSION The Total Least Mean Squares (TLMS) Algorithm is the unsupervised learning adaptive linear combiner based on the total least mean squares or the minimum Raleigh quotient, which is used to extract minor features from training sequences. This algorithm can be best used in situations when there is interference presented in both the input and output signals of the system. According to the simulations in this study, I found that the TLMS algorithm provides better ability and stability and a more accurate way to identify the transfer function of the unknown system than the LMS algorithm does. In addition, the TLMS algorithm’s computation time, 4N per iteration, is also faster than the TLS algorithm’s, 6N3 per iteration. However, one of the problems of using the TLMS algorithm is the difficulty of selecting the suitable learning rate, . In conclusion, the advantages of using the TLMS algorithm are its ability to perform in a system, which is heavily corrupted with noise, and the stability of its results. 25 VII. REFERENCES 1. Abatzoglou, T.J., Mendel, J.M., and Harada G.A. (1991), The Constrained Total Least Squares Technique and its Application to Harmonic Supersolution, IEEE Transactions on Signal Processing, vol. 39, pp. 1053-1086. 2. Feng, D.Z., Bao, Z., and Jiao, L.C. (1998) Total Least Mean Squares Algorithm, IEEE Transactions on Signal Processing, vol. 46, pp. 2122-2130. 3. Mendel, J.M. (1995). Lessons in Estimation Theory for Signal Processing, Communications, and Control. Englewood Cliffs, NJ: Prentice-Hall. 4. Proakis, J.G., Rader, C.M., Ling F., and Nikias, C.L. (1992). Advanced Digital Signal Processing. Macmillan, NY: Macmillan. 5. Widrow, B. and Stearns, S.D. (1985). Adaptive signal processing. Upper Saddle River, NJ: Prentice-Hall. 26 APPENDIX A Part1: The simulation in Methodology part1 This program uses the TLMS and LMS algorithms to identify the system (Hi), which is corrupted with noise at SNR equals to s. This program simulates from 1,000 data to maximum data. The results are transfer function computed by the TLMS and LMS algorithms including their errors, and also a plot shows the relation between errors and number of samples at selected SNR. Input Hi : Transfer function used in the simulation. s : Signal to Noise Ratio. maxnum : Maximum number in the simulation. u_tlms : The learning rate of the TLMS algorithm. u_lms : The learning rate of the LMS algorithm. Output h1 : Transfer function computed from the TLMS algorithm. h2 : Transfer function computed from the LMS algorithm. e1 : Error in dB of the TLMS algorithm's results. e2 : Error in dB of the LMS algorithm's results. 27 function [h1,h2,e1,e2] = part1(Hi,s,maxnum,u_tlms,u_lms) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Part1 : The simulation in Methodology part1 % Find the error of the TLMS and LMS algorithms Vs % the number of samples at the different SNRs. % % Input % Hi : Transfer function used in the simulation. % s : Signal to Noise Ratio. % maxnum : Maximum number in the simulation. % u_tlms : The learning rate of the TLMS algorithm. % u_lms : The learning rate of the LMS algorithm. % % Output % h1 : Transfer function computed from the TLMS algorithm. % h2 : Transfer function computed from the LMS algorithm. % e1 : Error in dB of the TLMS algorithm's results. % e2 : Error in dB of the LMS algorithm's results. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Ideal System H_Ideal = Hi; % Signal to Noise ratio SNR = s % Maximum number of the simulation MaxNumber = maxnum % Learning rate for TLMS and LMS algorithms mu_tlms = u_tlms mu_lms = u_lms % Number of sample using in the simulation num1 = 1000:1000:9000; num2 = 10000:2000:MaxNumber; Number = [num1, num2]; t = length(Number); Taps = length(H_Ideal); PP = 1; Last = 50; AA = eye(Taps); AA = [AA, zeros(Taps,1)]; H_TLMS = []; H_LMS = []; Error_TLMS = []; Error_LMS = []; for i = 1:length(SNR), 28 for j = 1:t, Signal = PP*randn(1,Number(j)); % Find the Power of the Signal Power = 0; for k = 1:Number(j), Power = Power + Signal(k)^2; end Power = Power/Number(j); % Noise % SNR = 20 log(Px/No) % No = Px*10^(-SNR/20) No = Power* 10.^(-SNR/10); % Ideal Signal come out of the system DesireSignal = conv(H_Ideal,Signal); Signal = Signal + No*randn(1,Number(j)); DesireSignal = DesireSignal + No*norm(H_Ideal)^2*(randn(1,length(DesireSignal))); % Beginning the weight with random number h_tlms = zeros(Number(j)-Taps+1,Taps+1); h_tlms = [randn(1,Taps+1)/10; h_tlms]; h_lms = zeros(Number(j),Taps); for k = 1:Number(j)-Taps+1, X = []; for q = 1:Taps, X = [X; Signal(k+Taps-q)]; end Z = [X; DesireSignal(k+Taps-1)]; Y = Z'*h_tlms(k,:)'; h_tlms(k+1,:) = h_tlms(k,:) + mu_tlms*(h_tlms(k,:) norm(h_tlms(k,:))*Y*Z'); Error = DesireSignal(k+Taps-1) - h_lms(k,:)*X; h_lms(k+1,:) = h_lms(k,:) + mu_lms*Error*X'; end W1 = zeros(Taps+1,1); for k = 1:Taps+1, for q = Number(j)-Last-Taps:Number(j)-Taps, W1(k) = W1(k) + h_tlms(q,k); end end H1 = W1/Last; H1 = H1/(-H1(6)); H1 = AA*H1; H_TLMS = [H_TLMS H1]; E1 = norm(H_Ideal - H1); Error_TLMS = [Error_TLMS, E1]; 29 W2 = zeros(Taps,1); for k = 1:Taps, for q = Number(j)-Last:Number(j), W2(k) = W2(k) + h_lms(q,k); end end H2 = W2/Last; H_LMS = [H_LMS H2]; E2 = norm(H_Ideal - H2); Error_LMS = [Error_LMS, E2]; end end h1 h2 e1 e2 = = = = H_TLMS H_LMS 20*log10(Error_TLMS) 20*log10(Error_LMS) figure; plot(Number,e1,'-',Number,e2,'-.'); title('TLMS Vs LMS Algorithm at SNR = 0'); xlabel('Number of samples'); ylabel('Error in Db'); legend('Error TLMS','Error LMS'); 30 APPENDIX B Part2: The simulation in Methodology part2 This program uses the TLMS and LMS algorithms to identify the transfer function of system (Hi), which is corrupted with noise at SNR equals to “s” by using fixed number of samples (num). This program repeats the simulation for T times. The results are average transfer function computed by the TLMS and LMS algorithms including their variances at selected SNR. Input Hi : Transfer function used in the simulation. s : Signal to Noise Ratio. num : Number of samples using in the simulation. u_tlms : The learning rate of the TLMS algorithm. u_lms : The learning rate of the LMS algorithm. T : Number of repetitions. Output h1 : Average transfer function computed from the TLMS algorithm. h2 : Average transfer function computed from the LMS algorithm. v1 : Variance of the transfer function computed by the TLMS algorithm v2 : Variance of the transfer function computed by the LMS algorithm 31 function [h1,h2,v1,v2] = part2(Hi,s,num,u_tlms,u_lms,T) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Part2 : The simulation in Methodology part2 % Find the average transfer function of the TLMS and LMS % algorithm and their variances. % % Input % Hi : Transfer function used in the simulation. % s : Signal to Noise Ratio. % num : Number of samples using in the simulation. % u_tlms : The learning rate of the TLMS algorithm. % u_lms : The learning rate of the LMS algorithm. % the average. % T : Number of repetitions. % % Output % h1 : Average transfer function computed from the TLMS algorithm. % h2 : Average transfer function computed from the LMS algorithm. % v1 : Variance of the transfer function computed by the TLMS alg. % v2 : Variance of the transfer function computed by the LMS alg. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Ideal System H_Ideal = Hi % Signal to Noise ratio SNR = s % Number of sample using in the simulation Number = num % Learning rate for TLMS and LMS algorithms mu_tlms = u_tlms mu_lms = u_lms time = T; Last = 50; Taps = length(H_Ideal); PP = 1; AA = eye(Taps); AA = [AA, zeros(Taps,1)]; H_T = []; H_L = []; E_T = []; E_L = []; mu_tlms = 0.001; mu_lms = 0.001; for i = 1:length(SNR), 32 for iteration = 1:time, Signal = PP*randn(1,Number); % Find the Power of the Signal Power = 0; for k = 1:Number, Power = Power + Signal(k)^2; end Power = Power/Number; % Noise % SNR = 20 log(Px/No) % No = Px*10^(-SNR/20) No = Power* 10.^(-SNR/20); % Ideal Signal come out of the system DesireSignal = conv(H_Ideal,Signal); Signal = Signal + sqrt(No)*randn(1,Number); DesireSignal = DesireSignal + sqrt(No)*randn(1,length(DesireSignal)); h_tlms = zeros(Number-Taps+1,Taps+1); h_tlms = [randn(1,Taps+1)/10; h_tlms]; h_lms = zeros(Number,Taps); for k = 1:Number-Taps+1, X = []; for q = 1:Taps, X = [X; Signal(k+Taps-q)]; end Z = [X; DesireSignal(k+Taps-1)]; Y = Z'*h_tlms(k,:)'; h_tlms(k+1,:) = h_tlms(k,:) + mu_tlms*(h_tlms(k,:) norm(h_tlms(k,:))*Y*Z'); Error = DesireSignal(k+Taps-1) - h_lms(k,:)*X; h_lms(k+1,:) = h_lms(k,:) + mu_lms*Error*X'; end W1 = zeros(Taps+1,1); for k = 1:Taps+1, for q = Number-Last-Taps:Number-Taps, W1(k) = W1(k) + h_tlms(q,k); end end H1 = W1/Last; H1 = H1/(-H1(6)); H1 = AA*H1; H_T = [H_T, H1]; E1 = norm(H_Ideal - H1); E_T = [E_T, E1]; W2 = zeros(Taps,1); 33 for k = 1:Taps, for q = Number-Last:Number, W2(k) = W2(k) + h_lms(q,k); end end H2 = W2/Last; H_L = [H_L, H2]; E2 = norm(H_Ideal - H2); E_L = [E_L, E2]; end end h1 = sum(H_T')/time h2 = sum(H_L')/time v1 = var(H_T') v2 = var(H_L') 34