UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

A study of wide-band time-delayed phased-arrays with phase and frequency encoded signals for arrival-time… Ho, Nelson 1996

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-ubc_1998-0126.pdf [ 10.56MB ]
Metadata
JSON: 831-1.0064848.json
JSON-LD: 831-1.0064848-ld.json
RDF/XML (Pretty): 831-1.0064848-rdf.xml
RDF/JSON: 831-1.0064848-rdf.json
Turtle: 831-1.0064848-turtle.txt
N-Triples: 831-1.0064848-rdf-ntriples.txt
Original Record: 831-1.0064848-source.json
Full Text
831-1.0064848-fulltext.txt
Citation
831-1.0064848.ris

Full Text

A STUDY OF WIDE-BAND TIME-DELAYED PHASEDARRAYS WITH PHASE AND FREQUENCY ENCODED SIGNALS FOR ARRIVAL-TIME MEASUREMENT by Nelson H o B . A . Sc. Hon., (Electrical Engineering) University of British Columbia  A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF T H E REQUIREMENT FOR T H E DEGREE OF MASTER OF APPLIED SCIENCE  in  T H E FACULTY OF GRADUATE STUDIES ELECTRIAL ENGINEERING  W e accept this thesis as conforming to the required standard  T H E UNIVERSITY OF BRITISH COLUMBIA A p r i l 1996 ©Nelson H o , 1996  Abstract Phase-encoded signals are useful for arrival-time estimation after correlation. The bandwidth to carrier frequency ratio for the phase-encoded signals used in certain applications is very high.  A s the narrow-band assumption is violated, conventional phase-tuned phased-arrays  suffer from dispersion and do not function properly for these applications.  Time-delayed  phased-arrays do not suffer from dispersion and function normally under the wide-band requirement. This thesis studies the time-delayed array and three types of modulated signals: linear Frequency Modulated ( F M ) signal, complementary Barker-coded Phase Modulated ( P M ) signal and Golomb-coded P M signal, for the purpose of arrival-time estimation. It is shown that the time-delay tuning for the linear F M signal is equivalent to linearly offsetting the initial frequency and adding a quadratic phase across the array. A new way of adjusting the element spacing for the time-delayed phased-array for the three types of signal to minimize off-tuning angle correlation is presented. Performance of the time-delayed phasedarray using the three types of signal are simulated and compared. performed to verify the practicality of the time-delayed phased-array.  I  ii  Experiments have been  Table of Contents Abstract  ii  Table of Contents  iii  List of Tables  vi  List of Figures  vii  Acknowledgments  xi  I.  Introduction  1  II.  Time Steering Array  4  III.  IV.  Array Configuration and Tuning  4  Received Signal at a Distinct Point  6  Finite Duration Signal Pulse  9  Linear Frequency Modulated Signal Array  13  Far-field Field Pattern of the Linear Chirped Array  15  Edge-Effect Correction  23  Directivity  26  Chirp Processing and Element Spacing  28  Simulation of the Chirped Array Signal  34  Practical Consideration - Alternative Tuning Method  37  Phase Modulated Signal Array  41  Far-Field Field-Pattern of a P M Array  42  Edge-Effect Correction  50  Directivity  51  Barker Code and Complementary Code and Processing  52  Golomb Pseudo-random Code and Processing  58  Source Element Spacing for the P M Array  65  Simulation of the P M Array signal  66  iii  V.  Comparison of the Simulated Correlation Function Plots  70  Equivalence of the Correlation Function for the Barker-coded and Golomb-coded  VI.  VII.  P M signals  71  Parameter Selection for the Correlation Function Comparison  72  Comparison  79  Other Considerations  87  Array Experiment  88  Components of Experiment  89  Experimental Considerations and Parameters  92  Received Signal Processing  94  Results  98  Conclusions and Future Work  113  Future Directions  116  Bibliography  117  Appendix — Circuit Diagrams and Program codes  120  Circuit Diagram  121  chirpm.m  121  pmm.m  125  tlx  130  tms.c  134  pci.c  140  fmda.m  148  finanal.m  151  cmpsnd.m  156  cmpda.m  161  cpmanal.m  165  pnsnd.m  172  pnda.m  177  iv  pnanal.m  181  v  List of Tables Table 1. Simulation Parameters for the Chirped Array  18  Table 2.  Simulation Parameters for the Multiple Peak leakage of a Chirped Array  21  Table 3.  Simulation Parameters for the Sidelobe Cancellation of a Chirped Array  33  Table 4.  Simulation Parameters for a Chirped Array M o v i e  34  Table 5. Parameters for Time-Delay Tuning of a Chirped Array  39  Table 6.  Parameters for Simultaneous-Start Tuning of the Chirped Array  39  Table 7.  Simulation Parameters for the P M array  45  Table 8. Barker Codes  53  Table 9.  54  A Complementary Barker Code and its Correlation  Table 10. Binary Patterns of the First 5 Golomb Pseudo-Random Sequences  59  Table 11. A D C offset Golomb Code, the Corresponding Filter and its Correlation  61  Table 12. Simulation Parameters for a P M Array M o v i e  67  Table 13. The Modulation Codes Used in the Experiment  93  vi  List of Figures Figure 1. Tuning of an Linear Array with N Elements  5  Figure 2. Receiving Distance of an Linear Array with N Elements  6  Figure 3. Arrival-time when y/ = 90 °  8  Figure 4.  Arrival-time when y/ = 180 °  8  Figure 5. Wave-front of the Radiated Signal Figure 6.  9  Arrival-time For Different Sources in the Array at the Tuning Angle  10  Figure 7. Far-field Arrival-times at the Off-tuning Angle  10  Figure 8.  12  Decomposition of the Array Signal  Figure 9. Example of the Interference Pattern from the Chirped array  19  Figure 10. Contour M a p of a Chirped Array Field Pattern Example  19  Figure 11. Square of the Amplitude of a Chirped Array  20  Figure 12. Radiation Pattern of a Chirp (Multi-peak)  22  Figure 13. Range of Correction Terms  24  Figure 14. The Simulation Gain of a Chirped Array  27  Figure 15. The Simulation Gain of a Chirped Array in dB  27  Figure 16. The Auto-correlation of the Chirp  30  Figure 17. Alignment for Cancellation of Consecutive Compressed Signals  31  Figure 18. The Auto-correlation of the Chirped Array at the Cancellation Angle  33  Figure 19. The Auto-correlation of the Chirped Array at the Tuning Angle  33  Figure 20. Interference Pattern to Show Beam-forming in the Chirped Array  35  Figure 21. Received Signal after Matched Filter Processing  36  Figure 22. Simulation of Time-delayed Tuning  40  Figure 23. Simulation of Simultaneous-start Tuning  40  Figure 24. The Difference between Delay-time Tuning and Simultaneous-Start Tuning  40  Figure 25. Simulated Composite Signal of the P M Array  45  vii  Figure 26. The Radiation Pattern of the P M array  46  Figure 27. The Contour of the Radiation Pattern of the P M array  46  Figure 28 Polarity Reversal of the P M signal at off-tuning Angles  47  Figure 29. Sections of the Radiation Pattern of a four-source P M array  49  Figure 30. The Simulation Gain of a P M array  52  Figure 31. The Simulation Gain of a P M array in dB  52  Figure 32. Auto-correlation of the Modulation Codes [1, 1,-1, 1] and [1, 1, 1,-1]  57  Figure 33. The Smoothing Wavelet  57  Figure 34. Auto-correlation of the P M Signal for each Complementary Code  57  Figure 35. Auto-correlation of the P M Signal—Sum of the Results Shown in Figure 34  57  Figure 36. Received Golomb Code with Delay at Symbols 25 and 37  61  Figure 37. Periodic Representation of the Code in Figure 36  62  Figure 38. Periodic Cross-correlation Result of Code in Figure 37  62  Figure 39. Example of the D C offset Golomb-coded P M Transmit signal, T  63  Figure 40. Example of the D C offset Golomb-coded P M Filter signal, F  63  Figure 41. Cross-correlation of the Golomb Code Sequence  65  Figure 42. Cross-correlation of the D C offset Golomb-coded P M Signal  65  Figure 43. Time Delay for Cancellation  66  Figure 44. Cross-correlation at the Chosen Cancellation Angle  66  Figure 45. Interference Pattern to show Beam-forming in a P M Array  68  Figure 46. Processed Signal From Complementary Barker-coded P M signal  69  G  G  Figure 47. Processed Signal From Golomb-coded P M Signal  .69  Figure 48. Correlation Function Plot of an F M Array with Eight Sources and Variable Element Spacing  74  Figure 49. Correlation Function Plot of an F M Array with a Fixed Cancellation Spacing of 0.29A . and a Variable Number of Sources C  75  Figure 50. Correlation Function Plot of a P M Array with Eight Sources and a Variable Element Spacing  77  viii  Figure 51. Correlation Function Plot of a P M Array with Fixed Cancellation Spacing of  0.29A and a Variable Number of Sources  78  Figure 52. 3-dB Beam-width as a Function of Element Spacing  80  Figure 53. 3-dB Beam-Width as a Function of the Number of Sources in an Array  80  6  Figure 54. M a i n lobe to Sidelobe Ratio as a Function of Element Spacing ( Eight Sources ) 81 Figure 55. M a i n lobe to Sidelobe Ratio as a Function of the Number of Sources  81  Figure 56. Boundary Definition of the "Main Cloud"  82  Figure 57. Interference for the Array as a Function of Element Spacing with Eight Sources. 83 Figure  58. Interference for the Array as a Function of Source Element for 0.29A Spacing... 83 C  Figure 59. Correlation Directivity as a Function of Element Spacing with Eight Sources..... 85 Figure  60. Correlation Directivity as a Function of the Number of Sources with 0.29AcSpacing  85  Figure 61. Time-Dependent Correlation Directivity  86  Figure 62. B l o c k Diagram for the Experimental Setup  89  Figure 63. Recording Structure for the Experiment  91  Figure 64. Space Required by the Recording Structure  92  Figure 65. Typical Transmitted Chirp  94  Figure 66. Typical Received Chirp  94  Figure 67. Experimental F M Array Response for 90° Tuning  101  Figure 68. Simulation of the F M Array Response for 90° Tuning  102  Figure 69. Experimental F M Array Response for 135° Tuning  103  Figure 70. Simulation of the F M Array Response for 135° Tuning  104  Figure 71. Experimental Complementary P M Array Response for 90° Tuning  105  Figure 72. Simulation of the Complementary P M Array Response for 90° Tuning  106  Figure 73. Experimental Complementary P M Array Response for 135° Tuning  107  Figure 74. Simulation of the Complementary P M Array Response for 135° Tuning  108  Figure 75. Experimental Golomb Code P M Array Response for 90° Tuning  109  Figure 76. Simulation of the Golomb Code P M Array Response for 90° Tuning  110  ix  Figure 77. Experimental Golomb Code P M Array Response for 135° Tuning  Ill  Figure 78. Simulation of the Golomb Code P M Array Response for 135° Tuning  112  Acknowledgments I wish to thank Dr. Matthew Yedlin for the guidance and the editorial assistance of my work. Especially, his emotional support is greatly appreciated. Thanks are also due to Natural Sciences and Engineering Research Council of Canada for the financial support.  I  gratefully acknowledge, Ernie Majer, head of the Subsurface Geophysics Group, Lawrence Berkeley National Laboratory ( L B N L ) for providing office space and computer equipment and Lai-Fong Tarn, my godmother, for providing accommodation during my work-visit at L B N L in the Summer of 1994. Finally, I would like to dedicate this thesis to my parents, M i u - S a n H o and Chi-Leung H o , and my brother Ming-Sun H o , for their constant support and encouragement.  xi  Chapter I. Introduction  I.  Introduction  Travel-time estimates are essential in many applications, including, radar, medical imaging, non-destructive testing and o i l exploration. The linear frequency modulated ( F M ) signal, which is also known as a chirp, Barker-coded phase modulation ( P M ) signal and msequence pseudo-random encoded P M signals are some of the most commonly used frequency and phase-encoded signals utilized for arrival-time estimates. The long duration of these signals do not hinder the accurate determination of the arrival-time, as the signal can be pulse-compressed to a duration approximately equal to the reciprocal of its bandwidth. In fact, transmitting a continuously coded signal and then compressing it into a high resolution pulse improves the total signal to noise ratio (SNR). Birdsall (1988) has produced a complete tutorial on the processing of pseudo-random m-sequences for arrival-time estimation for use in undersea applications. Haller (1993) has used the pseudo-random code modulated signal for a sonar sea floor charting experiment which involves echo arrival estimation and obtained a 23 dB gain. Such results clearly show the advantage of correlation techniques over arrivaltime estimation from the classical echo pulse technique.  For the applications requiring  arrival-time estimation, being able to focus the energy to obtain an arrival-time from a particular angle is highly desirable. One option available to focus the energy is the use of a phased-array.  However, current phase-steered phased-arrays are based on a narrow-band  approximation. For some applications such as o i l deposit location, the chirp signal used for seismic reflection usually has a carrier frequency of about 45 H z and a bandwidth of about 70 Hz.  Since the carrier frequency is comparable to signal bandwidth, the narrow-band  assumption of the conventional phase-steered phased-array fails.  A number of researchers have examined the response of the phased-array.  Plumb  (1993) tried to increase the array bandwidth by approximating the response of the timedelayed array using time-varying weights (Plumb, 93). Rogers et al. (1973) found bounds on  1  Chapter I. Introduction  2  array length, modulation index and scan angle to avoid dispersion in transmitting a wideband signal. Knittel (1974) examined the relation between array bandwidth, range resolution and S N R for planar arrays. Arora and Arora (1976) have looked into the matched response of a linear F M signal from an array. Patel and Arora (1978) also looked at the dispersion effect for a linear frequency modulated signal from an array. It is clear from their results that if the traditional phase steering technique is used for the wide-band frequency settings for the seismic reflection, then not only is the radiated signal predicted by the phase-steered phasedarray theory inaccurate, but also the distortion is so large that a beam w i l l not even form at the focusing angle. In other applications where the narrow-band assumption is satisfied, the main beam still suffers from distortion at the tuning angle (Plumb, 1991).  Therefore, a  different method to focus the beam energy and to analyze the field pattern of the array is required so that a focused beam can be tuned electronically to illuminate an arbitrary angle and generate a better target image.  A n alternative to phase-steering technology is the time-delayed steering technology. The time-delay steering does not suffer from the problem of limited bandwidth as there is no distortion on the tuning axis (Plumb, 1991). However, there have been limited studies done on time-steered phased-arrays because time-delay steering is equivalent to phase-steering under the narrow-band assumption" and the narrow-band assumption holds under most applications.  There has been no study done on the behavior of the wide-band linear F M  single signal or other highly compressible P M signal applied to the time-delayed array for arrival-time estimation. Recent advances in digital signal processing hardware also enable the synthesis of the delayed wide-band signal required to feed the array.  Wide-band here  means a bandwidth to carrier frequency ratio of about 0.5 to 2, which would cover signals used for geological (10-80 H z ) and wide-band undersea (500-10000 Hz) experiments.  This thesis studies the basic principle of the time-delayed phased-array with the assumption that the duration of the signal sent is finite. The implication for the field pattern under such an assumption is also examined.  Since the signal pulse needs to be pulse-  3  Chapter I. Introduction  compressed in determining the arrival-time, a new scheme of setting the element spacing is developed to reduce the compression sidelobes at off-tuning angles. The field pattern of the time-delayed array is signal dependent.  Three types of wide-band frequency and phase  encoded signals are examined in detail in order to find a suitable signal for the array. The signals examined are :  1) Linear frequency-modulated signals; 2) Phase modulated signals using the complementary Barker code; 3) Phase modulated signals using the Golomb pseudo-random binary sequence.  For the F M and P M signal, the far-field approximation is used and the field pattern is obtained. From the field pattern, the gain is computed for a sample signal. For each signal, the radiated field result is match filtered so that the arrival-time estimates may be compared.  In Chapter U , the general concept of the time-delayed phased-array is examined. Chapter U l covers the linear F M signal where the signal and its processing results are examined.  The far-field field pattern of the time-delayed phased-array and the gain is  analyzed. Simulations to show interference and beam-forming are included. A new way of adjusting the array-element spacing which would result in the reduction of correlation sidelobes at off-tuning angles is developed.  In Chapter I V , the P M signal and the field  pattern of the P M array are examined. The two types of coding schemes, namely, the Barker code and the Golomb pseudo-random code are reviewed. The frame by frame simulation of a Barker code P M array is included. The array spacing requirement is also examined.  In  Chapter V , the simulations of the processed signals from the F M and P M arrays are plotted and parameters such as half power angle, main lobe to sidelobe ratio, level of interference and correlation directivity are compared.  Chapter V I , presents the actual data collected  experimentally. This data is then compared with the simulated data. Conclusions and future research directions are summarized in Chapter VII.  4  Chapter II. Time Steering Array  II.  Time Steering Array  The physical construction for the time-delayed phased-array is the same as that for the phase steered array. The only difference between the two is the tuning signal fed to the array. In a phase-steered phased-array, beam focusing is achieved by controlling the phase angle of the feeding signal to the array. This is normally done by phase shifters.  For a monotonic  frequency signal, the phase shift or delay is directly proportional to the time delay. Hence, feeding a phase-delayed signal is equivalent to feed a time delayed signal, provided the signal used is narrow-band. The delay compensates for the travel-time difference due to the spatial displacement of different elements of the array.  The transmitted signal constructively  interferes at the tuning angle. Therefore, the conventional type of phased-array achieves the required time delay by adjusting the phase of the narrow-band signal with phase shifters. For a wide-band signal, constant phase shift for all the different frequencies translates into different  time delays experienced by each different  frequency  making up the signal.  Consequently, the different time delays result in dispersion of the signal pulse and the proper delay is not achieved. This is the fundamental reason that phase-delayed steering does not work on wide-band signals. To generate the required time delay for the wide-band signal, a digital to analog converter under the control of a digital signal processor can be utilized. However, for the time-delayed phased-array to work properly, the medium in which the array operates must be linear and non-dispersive.  Otherwise, the transmitted signal w i l l be  dispersed in the medium and constructive interference w i l l not occur at the tuning angle of the array.  Array Configuration and Tuning Consider an even N-element array with non-directive sources as shown in Figure 1. The distance between source elements is d and the tuning angle at which the energy is focused is y/. The center of the array is A . There is no source at the array center, A , and the c  c  Chapter II. Time Steering Array  5  sources are indexed according to their distance from the array center. This indexing scheme is adopted so that the field pattern and the phase of a two-element chirped array can be easily determined.  Target Direction / ' / ' / / / ' / / / ' / / / ' / / / / ' / / / ' / / / ' / / / ' / / / f / / / ' / / /  \id72 cos  .  /  Source Position :  -N+1...-3  -1  -3d/2  -d/2  A  /  A/  /  T h e ith Source :  /  c  1  /  3...N-1  d/2  3d/2  Figure 1. Tuning of an Linear Array with N Elements  To achieve maximum signal power at an angle y/ as shown in the diagram above, the signal wave from a source left of the array center, A , must be advanced while those sources c  to the right must be delayed. The delay/advance is required to compensate for the difference in. travel distance from the source to a distant point at tuning angle yf. W i t h such a traveltime correction, each signal radiated from all of the different sources constructively interferes with the others, resulting in a beam at the tuning angle. The rays from the sources to the target are assumed to be parallel. Then, the difference in distance between a ray from the center of the array and a ray from the ith source is I id/2 cosy/ I, as shown. If the center of the array is chosen to be the reference of the array, the time delay or steering delay, t , for the si  ith source is calculated by dividing the extra ray distance with the velocity of the medium. Thus,  id cos w  6  Chapter II. Time Steering Array  where v is the velocity of the signal wave in the medium (which is assumed to be nondispersive and isotropic). W e note that element spacing d, and the tuning angle yf can be chosen arbitrarily. For any given d and yr, a correct steering delay, t , can be obtained from si  ( 1 ). That is, i f the signal to be sent is/(0 with reference to the center of the array, A , the c  signal, f(t-  t ), si  sent by the ith source would have the correct time delay to constructively  interfere at the tuning angle y/.  Received Signal at a Distinct Point In order to determine the total time delay experienced by a signal from the ith source before reaching a receiver at a distance R and at an angle 0 , the distance, R , from the ith {  source to the receiver point needs to be determined. The distance, R, from the center of the array configuration to the receiver point is shown in a dotted line in Figure 2.  Receiver (R,(j>)  The ith Source : -N+1...-3 Source Position :  Figure 2.  -3d/2  -1 -d/2  1 dll  3 ... N - l 3d/2  Receiving Distance of an Linear Array with N Elements  Then, the distance,  from the ith source to the receiver is:  (2)  1  Chapter II. Time Steering Array  In all the discussion to follow, we assume that the sources are line sources. geometrical analysis is done in the source plane.  Therefore, all  B y expanding the above equation by a  Taylor series and keeping only the linear term, this distance can be simplified. Therefore,  Ri = R- {id/2) cos <f>.  (3)  The simplification is valid provided that the array length is much less than the receiver distance, i.e. ( N - l ) - i i «  R. This is consistent with the far-field assumption.  the transmitters in the array fire instantaneously, the distance, delay,  t „i, se  If all  w i l l dictate the travelling  for a signal from the ith source received at the point ( R,(p ).  tgeoi  (4)  = Rilv = R / v - id / 2v -(cos (p)  However, since the different elements of the array are fired with the tuning or steering delay t in order to tune the maximum beam angle at yr, the total delay t- , w i l l contain si  t  contributions from the geometrical delay  t , geoi  in addition to the steering delay. The delay U is  also known as the retarded time or the arrival-time and is given by  ti = t i + tgeoi - R S  / v + id-(cos y/ - cos (p)/(2v).  (5)  A l o n g the tuning angle, (0 = yf), the retarded time for all the sources reduces to U = R/v, which confirms that all the different signals from different sources are aligned and therefore constructively interfere with each other to create the maximum beam.  Note that  given an arbitrary tuning angle yr, the arrival-time, U, from an arbitrary source to a point is identical to the arrival-time for the point  (R,-(j)).  (R,(j))  Conversely, given an arbitrary receiver  8  Chapter II. Time Steering Array  angle (p , the arrival-time is an even function of yf. Thus, i f the array is tuned for the angle yf, there are two main beams forming, one at the angle yf, and the other at the angle -yf. Since the radiation is generated by the interference of the delayed signals from all sources, and the delays at the angle <p equal the delays at angle -0, the field pattern of the array is symmetrical about the line formed by the different sources.  For a four-element array tuned at yf = 9 0 ° , with a wave velocity of 1000 meters per second, array separation d and the receiver distance R set to be 0.01 meter and 1 meter, respectively, the arrival-time can be approximated by the far-field assumption, and is plotted as shown below in Figure 3. In this case where yf= 90°, the steering delay, t equals 0 for all Si  of the sources. Hence, Figure 3 is also a scaled plot of distance from each source to a point on a circle of 1 meter radius centered at the array center, A . c  If the tuning angle is set to be  other than 9 0 ° , each graph of the arrival-time is shifted up and down the time scale to intercept at the tuning angle as shown in Figure 4 where yf - 180°. Since the arrival-time is an even function of both angles yf and (j), it is evident that the graphs of Figure 3 and Figure 4 are symmetrical about the zero degree point. Hence, there w i l l be 2 angles at which the beam is at its maximum except when iff is 0° or 180°.  Figure 3. Arrival-time when yf = 90 °.  Figure 4. Arrival-time when yf = 180 °.  Chapter II. Time Steering Array  9  Finite Duration Signal Puise Suppose a finite duration signal /( t) is sent by a four-element array labeled in the convention shown in Figure 1. The signal from the ith source reaching an arbitrary receiver point (R, </>) would be given by  At-U)  =f(t-  t - tg i )=f(t-(R/v si  e0  + id-(cos y/-cos  0) / 2 v ) ) .  (6 )  If the tuning axis is set to 90°, then all the sources are fired at the same time and the wave-front of each signal from the different sources would appear as shown in Figure 5.  Pseudo-Wave-Front Approximated (from Center) Wave-Front from Sources -{-  Source Location  Figure 5. Wave-front of the Radiated Signal  Since the sources are linearly displaced along the x-axis, the complete wave-front of the radiated patterns would not be spherical, as shown by the outermost line in Figure 5. If the tuning angle is not set as 90°, the circular wave-fronts of each source w i l l not be of equal size.  It is obvious that at the tuning angle, the signals are all arriving at the same instant, Rlv, and the signals are aligned as shown in Figure 6. Note that each rectangle in Figure 6  10  Chapter II. Time Steering Array  represents a signal from one of the sources.  Since the acoustic wave is a scalar field, the  composite received signal at the tuning angle would be the sum of the signals. In this case, the composite received signal is equal to one of the source signals with a magnitude amplification of four.  From Source -3 -1 1 3 J_J_  Time  t=R7v  Figure 6. Arrival-time For Different Sources in the Array at the Tuning Angle  A l o n g an arbitrary receiver angle other than the tuning angle, the signals would be misaligned as shown in Figure 7.  From Source -3 -1 1 3  A ^ = d(cosy/- cos0 )/v  R/v  I  I I I  I  Time  t-3 t-i t\ ts  Figure 7. Far-field Arrival-times at the Off-tuning Angle  The times t.  3i  t.j t i  ly  t  3i  are the far-field arrival-times for the four sources.  Then, as  indicated in Figure 7, the time displacement, A <p, for signals between adjacent sources to ¥  reach the receiver point is determined by the difference in the far-field arrival-times. those particular sources derived in ( 5 ), the displacement A ^ is given by  For  11  Chapter II Time Steering Array  A 0 = I (cos y/-cos V  <p)-d/v I.  (7)  The time displacement is independent of the radial distance of the array under the farfield assumption. From Figure 7, it becomes evident that the characteristic of the composite interference waveform depends on the time displacement A ^ , which is directly proportional to the element spacing. If the element spacing of the array is set to 0, meaning that there is only one source at the array center, the signals from each sources w i l l always be aligned and there w i l l not be any focusing to generate a beam. If the element spacing is set to be nonzero, the time displacement is non-zero for off-tuning angles, making it possible for destructive interference to occur at those angles.  The level of destructive interference  depends on the type of waveform used in the array. Therefore, the wide-band phased-array does not have a general array field pattern as is the case in the narrow-band phased-array. In Chapter m and I V , the F M and P M signals are extracted from the composite wave formula to obtain the field pattern for the 3 types of modulated signals: (linear F M signal, P M signal using the complementary Barker code, and P M signal using the Golomb pseudo-random binary sequence).  It w i l l be shown that the field pattern of the wide-band array, unlike the  narrow-band phased-array, is time dependent.  Figure 7 shows that the amount of misalignment depends on the tuning and the receiving angle. Hence, the duration of the composite waveform changes according to the receiving angle.  The wave-front of the composite signal reaches the receiver point at  Rlv+\&. $\(N-\)I2, where N is the total number of sources. The factor of half is put in because W  the signal from the 1'" source is shifted by the amount IA^I/2 from the arrival-time from the center of the array, and subsequent signals are shifted by l A ^ I .  However, in calculating the  field pattern, the wide-band signal itself is factored from the equation denoting the composite signal. Therefore, the starting point of the composite signal is of particular importance for the factorization. Since the center of the array is set to be the reference, the starting point of  12  Chapter II. Time Steering Array  the composite signal should be considered as i f it has arrived at the time Rlv in order to calculate the field pattern. The detailed procedure is demonstrated in the following chapter. From Figure 7, the duration of the composite wave is determined to be r + I A ^ K A M ) , which should be adjusted to the signal duration T for the purpose of calculating the field pattern. Therefore, the composite wave transmitted from the time-steered array is separated into 2 parts: an essential part and the edge-effect part as shown in Figure 8.  When A ,j, is much less than the duration, the significance of the edge-effect decreases v  as the energy carried in the edge signal is proportionately reduced. For a signal with long duration, this energy is negligible compared to that of the essential part of the composite signal.  Therefore, the edge-effect portion of the signal is often discarded when the time-  varying gain of the array is calculated.  Essential Interval  From Source  4 4  1  • •  Edge effect  4  •  A^/2 t.j R/v tj  Time  Figure 8. Decomposition of the Array Signal  13  Chapter III. Linear Frequency Modulated Signal Array  . Linear Frequency Modulated Signal Array The interference pattern of a time-delayed array fed with a linear frequencymodulated ( F M ) signal is formed by summing delayed chirp signals.  Therefore, a  representation of the chirp signal pulse is described in this section first. The instantaneous frequency of the frequency-modulated pulse signal depends on the frequency modulation rate, which is also know as the chirp-rate and is given by  dco t-T/2 — =rect(——- )•/„(*). dt T  (8)  In ( 8 ) , 0) is the instantaneous frequency, T is the duration and f (t) cr  is the chirp-rate of the  F M pulse. The function rectit) is defined so that it is unity for the interval [-1/2,1/2] and zero otherwise. If the chirp-rate function f (t) cr  is constant, the signal is a linear F M pulse. The  chirp-rate function is not assumed to be a constant for generality.  The instantaneous  frequency of the pulse can be determined i f the initial frequency is also known. Suppose the initial frequency of the pulse is b. The instantaneous frequency can be determined by the integral formula given by  t-T/2 G)(0 = r e c t ( — - — )  ( t  \f (s)ds cr  +b  (9)  Assuming that the initial phase of the signal pulse is zero, we can determine the phase function (pit) by integrating the instantaneous frequency and obtaining  <p(0 = r e c t ( - — ^ ^ ) • \ (O(s)ds.  (10)  14  Chapter III. Linear Frequency Modulated Signal Array  If the chirp signal starts at t =  then, the differential equation ( 8 ) is modified as follows  dm.,  t-t-T/2  (11)  Here CO, is the instantaneous frequency of the new delayed signal.  The  instantaneous  frequency is then given by  ft  ,t-t,-TI2. fi),(f) = rect( '—  jf (s-t )ds+-b  )•  cr  i  (12)  Then, the phase function, (p,(t) of a delayed F M pulse which starts at t = f, is given by  J-t-T/2 q>,(t) = rect(-  )•  jaWds  (13) = rect(  r  '' T  r  /  2  r  )-J  lf (v- )dv cr  ti  + b du.  Equation ( 13 ) allows us to determine the phase of an F M pulse with an arbitrary chirp-rate f {t) cr  and initial frequency b.  chirp-rate function f (f) cr  To determine the phase of a linear F M pulse, the  can be set to be a constant. For generality, the chirp-rate is assumed  to be a power law of the form  f {i) = af. cr  (14)  Since any rational function can be decomposed into Taylor series which is a sum of ( 14 ) with different a's and n's, ( 13 ) and ( 14 ) allow the determination of the phase of any  15  Chapter III. Linear Frequency Modulated Signal Array  function with a rational chirp-rate function. Combining ( 14 ) and ( 12 ) yields the following result  t-L-T/2 FL),.(0 = rect(  f  )  a  (15)  (t-t^+b n+1  The phase of the delayed F M pulse is the integral of ( 15 ). This can also be obtained by combining ( 13 ) and ( 14 ) and is given by  <p,(0 = rect(  t-t-T/2  )  .(« + ! ) ( « + 2)  (16)  ( t - t ^ + K t - O  W i t h the phase of the signal determined, the signal is represented by the real part or the imaginary part of theexp(j'<p,(0) • For practical reasons, the signal is normally set to be 0 at t = tj. Therefore, the imaginary part is used. Thus,  S\ ( 0 = rect(  t-t-T/2 '—  (17)  ) • imag(exp(79,.)).  Far-field Field Pattern of the Linear Chirped Array The phase of a linear F M signal can be obtained by setting n = 0 in ( 16 ). Then, a linear F M signal with a delay t is obtained. Substituting this result into ( 17 ), the linear F M t  signal is given by  S,(t) = rect(  t-t-T/2  fa ) • lmag^ exp J -{t-t f+b{.t-t ) i  i  ^  (18)  Chapter III. Linear Frequency Modulated Signal Array  16  For a two-element array similar to the one shown in Figure 2 with a tuning angle set to y/, the delays experienced by the signals transmitted by the sources before reaching the a receiver point are determined by ( 5 ) and ( 7 ). The delays for 1st source, tj and -1st source, t.i are  t] = R/v + d{cos iff- cos (f) )/2v = R/v + A  I2  ¥lj)  t-i = R/v - d(cos yf- cos (j))/2v = R/v - A^I  (19) (20)  2  In ( 19 ) and ( 2 0 ) , R is the radial distance from the array center, v is the velocity of the medium, d is the array element separation distance and yr and (j) are the tuning and receiving angles respectively. Replacing the delay t in ( 18 ) with the t/ of ( 19 ) determines the wave t  pattern, Si, for the 1st source as a function of radial distance R and observation angle (p . The 1/-JR  spatial attenuation factor is ignored. Therefore,  5, (f, R, 0) = rect(  t-Rlv-A^ll-TIl -f )•  imags exp  S«---4| ) *«---^> t  2  v  2  i  +  v  (21)  2  Similarly, the wave pattern, S.j, for the -1st source can be determined. Note that ( 21 ) is dependent on R in a manner analogous to the time variable t.  If the wave pattern is  observed with the same radial travelling velocity, the pattern described by ( 2 1 ) would appear stationary.  Thus, it is convenient to introduce the retarded time t'= t-Rlv to  incorporate the effect of the travelling pattern, with the wave-front of the travelling wave at /'=0.  The effect of distance can then be isolated. Therefore, the definition of the time-  dependent gain of the array is possible as the pattern is normalized to start at t'= 0. Using the shifted time variable t' equation ( 21 ) reduces to  17  Chapter III. Linear Frequency Modulated Signal Array  5 (r',0) = rect(  w  1  ±  -  )• (22)  imagjexpl J  a  The wave pattern in the medium from the -1st source is  S^t'j)  = rect(  ^  T  )• (23)  imag^ expi  a  Because the medium which the array is transmitting is assumed to be linear, the interference pattern generated by the two-element chirp phased-array can be obtained by adding the wave pattern from the 1st source and the -1st source, denoted by ( 22 ) and ( 23 ) respectively. The interference pattern for the two-element array becomes  S (t',(p) = 5_, + 5 j T  /+A„/2-772 . rect( ) • imagi exp n  /-A^/2-772^ . + rect( )-.imag^ exp  a 2  2  2  2 '  (24) J  2  j  Note that there is a time misalignment for off-tuning angles as explained in Figure 7. If the time A ^ is much less than the pulse duration T, this misalignment can be ignored and the interference pattern is considered in the essential period 0 < t' < T as shown in Figure 8. T o find the field pattern from the interference pattern in the narrow-band array, the carrier portion of the wave is factored out from the interference formula ( 24 ) . The part left behind is the envelope of the array signal or field pattern. In the linear F M case, factoring out one  18  Chapter III. Linear Frequency Modulated Signal Array  monochromatic frequency at aT/2+b as carrier is not practical because the wide-band signal is different from a single monochromatic frequency. factor the interference pattern instead.  The wide-band signal itself is used to  This is feasible because the modulus of the chirp  signal, I exp{ j( (at'/2) +bt) ) I, is also unity as in the case of narrow-band array. The power 2  of the signal can also be determined by the envelope. I exp{ j( (at'!2) +bt) 2  Factoring out the chirp pulse,  ) I, the signal for the two-source array becomes  f-T/2 S (t',(p) = recti——  )'  T  • imagi exp K-r+bf)  •2 cos  (25)  \{af+b)\ • • exp|  This expression is exact on the tuning axis and for the time range -lA^kf^r+IA^I for off-tuning angles due to the misalignment shown in Figure 7.  It is obvious for the signal  pattern of a chirped array with only two sources, the chirp carrier, the gain and the phase can be easily identified in ( 25 ) . For ( 25 ) , the edge-effects have been ignored. Table 1 lists the set of parameters of a chirped array for an underwater application.  Duration  Initial Freq.  Final Freq.  Separation  Velocity  Tune Angle  Elements  2.667 ms  2000 H z  4000 H z  0.015 m  1500 m/s  0°  2  Table 1. Simulation Parameters for the Chirped Array  Figure 9 and Figure 10 below show the radiated signal and the corresponding contour map generated using ( 25 ) with the parameters of Table 1. It is obvious that there is no angle at which the response is null for the duration of the chirp. However, there is a curved null line as shown in the figures.  Furthermore, the height and width of the islands wrapped  around the vertical axes in Figure 10 approximate the instantaneous wavelength and the  19  Chapter III. Linear Frequency Modulated Signal Array  beam-width of the signal. It clearly shows that the wavelength is decreasing and the beamwidth is also decreasing as time is progressing.  150  Figure 9. Example of the Interference Pattern from the Chirped array  200 Angle  300  350  Figure 10. Contour M a p of a Chirped Array Field Pattern Example  For an even N-element array which has more than two sources with the configuration of that defined in Figure 2, the interference pattern for the essential period can be obtained by summing equation ( 25 ). The result is  5 (f',0) = rect( w  t'-T/2 ^ )• T  a . \ \ ^ £ • imags exp j(-f +bt')[\ f  2  f(at'+b)kA 2cos|  ^  2  A2  •exp j — k A  (26)  k = —N + \,—N + 3,.. .-3 -1,1,3, - N - 3, N - 1 ,  The field  pattern  of the array is obtained by dropping the common term,  t'-T/2 ) , w i l l not be included I exp{ ./'((at'/2) +bt) ) I. From now on, the gate function, rect( 2  explicitly. The field pattern is then given by  20  Chapter III. Linear Frequency Modulated Signal Array  (at'+b)kA  N-l  E W ><!>)= X N  2  COSi  k=-N+\,k odd  a • exp j-k A V 8 r  2  2  ^  (27)  j  This sum represents the field pattern of a chirped array and is very similar to the discrete form of a Fresnel integral. The sum cannot be simplified further into a closed form. Therefore the field pattern has to be computed numerically.  Unlike the field o f the  monochromatic phase-steered phased-array, the field of the chirp phased-array is not only angle dependent but also time dependent.  Figure 11 shows the magnitude squared of  equation ( 2 7 ) which is the magnitude of the chirped array with the parameters defined i n Table 1. The magnitude squared of the array is of particular interest as it relates to the radiated energy of the array by a constant factor. A s the tuning angle of the array is set to be 0° in Table 1, the peak of Figure 11 occurs at 0 ° . If any other tuning is chosen other than 0 ° or 180°, two peaks w i l l occur as explained in page 8 of Chapter II.  Figure 11. Square of the Amplitude of a Chirped Array  In choosing the parameters for the array, care must be taken to ensure that multiple peak leakage does not occur. The exponential term in ( 27 ) , is normally much less than zero. For example, for a typical underwater application, the product has a maximum value of 0.013.  In that case, i f a small number of sources is used, then the exponential term,  21  Chapter III. Linear Frequency Modulated Signal Array  exp(jak A <fJ%) is approximately unity as the product inside the parenthesis 2  2  v  approaches 0.  Then, the field pattern in ( 27 ) can be approximated by  „N-l  X  E {f,4>)= N  {(at'+b)kA  ^  2cos  k=-N+\,kodd  u  sin Mi;  (28)  sin£ (at'+b)A^ where £ —  In ( 28 ), TV is an even integer representing the total number of elements i n the array. The approximated E has a peak value when £ equals 0 or multiples of %. Therefore, it is possible N  for the chirped array to have multiple peaks i f the following two conditions are m e t :  1. The exponential term in ( 27 ) exp(jak A j,/ 8) = 1 for every k. 2  2  ¥<  2. The term % in equation ( 28 ) is such that I £ I > 7t for some A and t'.  If the duration of the chirp in Table 1 is doubled, the conditions above would be satisfied. The corresponding parameters are listed in Table 2 below. Since the chirp-rate, a, i n Table 2 is equivalent to the value calculated from Table 1 and the duration is doubled, the highest frequency is also increased.  Initial Freq.  Final Freq.  Duration  Velocity  Separation  Tuning A n g .  2000 H z  6000 H z  5.222 ms  1500m/s  0.15m  0 Degree  Table 2. Simulation Parameters for the Multiple Peak leakage of a Chirped Array  Since the foregoing conditions are met, the radiation pattern with multiple peaks with phase error (since we set exp(jak A j/8) =1) is shown i n Figure 12. Note that the radiation 2  2  v<  Chapter III. Linear Frequency Modulated Signal Array  22  pattern has a peak not only at the tuning angle of 0 degrees, but also has more peaks developing as £ in ( 28 ) increases beyond it as time progresses.  Angle  Figure 12. Radiation Pattern of a Chirp (Multi-peak)  Figure 9 and Figure 10 show that the chirped array interference pattern does not have a constant null as in the narrow-band array, which can be explained by examining ( 27 ). For the interference pattern to have a null at an arbitrary angle, either the cosine term or the exponential phase term in ( 27 ) has to be zero. Since the exponential term is never zero, the envelope function is null whenever the cosine has an argument of itll+nit.  That is, equation  ( 29 ) below is satisfied:  (at'+b)kA^=(l±2n)7r k =...-3-1,1,3,...  (29)  n = 0,1,2,...  A t a fixed receiving and tuning angle,  is a constant term. Thus, for a null to occur at that  receiving angle, the above equation has to hold for all t' and k, which is obviously not possible. Therefore, unlike the narrow-band phased-array, constant null angles do not exist in the linear F M array.  Chapter III. Linear Frequency Modulated Signal Array  23  The effect of the tuning angle and receiving angle is included i n the normalized angle difference variable A Q.. For the field to attain a maximum modulus, the arguments for the V  cosine term and the exponential function in ( 27 ) must both be integer multiples of 7t, for all valid f and all source index value k. It is obvious that  A  VIJ)  -  0 is the only solution i f the  multiple peak leakage conditions are not met. Therefore, the maximum beam occurs only at the tuning angle and its mirror reflection angle as explained before. In that case,  = 0 and  the sum ( 26 ) simplifies to :  rect(  t'-T 12 T  (30)  In this case, the signal magnitude at the tuning angle is the sum of individual magnitude of the sources, without interference.  Edge-Effect Correction It is sometime advantageous to have the complete field pattern instead of an approximate one. The complete pattern can be obtained by adding a correction term to the approximation pattern i n equation ( 27 ) . B y comparing the range of existence of the signals in ( 24 ) and ( 25 ) and examining Figure 8, the correction term has to include the beginning portion of the advanced signals and the trailing portion of the delayed signals, both outside the essential region.  The correction also has to remove the portion of the signal not  transmitted but included i n the essential interval field approximation.  The portions to be  removed are the interval before the beginning of the delayed signal and the interval after the end of the advanced signal as shown in Figure 13 below  24  Chapter III. Linear Frequency Modulated Signal Array  From Source  Actual Signal Transmitted < —  -1  •  Essential Interval Actual Signal Transmitted < -•  HE  _1__L  U R/v t,  Time  1^1  Y , portion of signal to be added back to the beginning  1=1  Y , portion of signal to be removed from the end  uh  rn  K /,, portion of signal to be removed from the beginning r  Y , portion of signal to be added back to the end an  Figure 13. Range of Correction Terms  For a pair of sources about the array center, the additive correction term can be derived from the delay equations ( 19 ) and ( 20 ) and the signal equation ( 18 ) with the gate function set according to the interval not included in the essential region  exp  a , , 'A J -(?'+——y  '^yA  +b(t'+——)  2  VP'  2  <f<0  otherwise  0 exp  -IA  2  2  IA.J T< t'< T + -  (31)  otherwise  0  The subtractive field correction term is obtained in a similar fashion with the gate function set to include the interval for the portion of the signal that should not be included  (  25  Chapter III. Linear Frequency Modulated Signal Array  -exp  a -(f  IA  2  0<t'<  2  w1>'  otherwise  0 -exp  IA  Jhl  — (t'+——) +b(t'+——)T 2 2 2  <  f  (32)  <  T  2 otherwise  0  The equations ( 3 1 ) and ( 3 2 ) are the field pattern correction terms for a pair o f sources. Regrouping and simplifying the correction terms for the leading edge and trailing edge, the following results are obtained :  W -sgn(f')cos (at'+b)-  + 7  sin  (af+b)-  • recti  exp  J  V  8  /  (  sgn(r')cos (af+b)-  j s i n (at'+b)-  D  rect2  J)  V  In ( 33 ) Cf and C  exp  (33)  are the field correction terms for the leading and trailing edges,  respectively. The sgn(t), rect\{t) and recflii) are defined as follows :  sgn(f) =  recti (t) =  rect2(r) =  I1  t>0  [-1  r<0  fl  -0.5<r<0.5  [0  otherwise  [1  -0.5<r<0.5  10  otherwise  (34)  W e note that the correction terms in ( 33 ) are computed for a pair of sources F o r an array with even-N elements, the complete field correction terms can be derived by summing ( 33 ). The effect of different separations between each pair of elements about the array center can  26  Chapter III. Linear Frequency Modulated Signal Array  be included by multiplying A ^ . in ( 33 ) by the index k. Therefore, the total field-correction term for an N-element array is :  N-\  kA„ -sgn(7')cos (at'+b)-  + 7  *=1,3,  kA„ sgn(?')cos (at'+b)-  ' r ' r-T  A  kA ^ sin (at'+b)- v<t> Exp • recti f  J sin (at'+b)  kA  ^  v<t> Exp • rect2  *=1,3,  ^  (35)  k\A Aj  K  v  Exp = exp'  The complete field pattern is therefore the sum of the approximate field pattern i n ( 27 ) and the correction terms in ( 35 ). It is shown in ( 36 ) and is given by  f f-TI2 E =^rect(—-—)• s  « „ | W 2, 1 2 c o s  A ~  J a ^ f • exp j—k A,„, 8 f  (36)  Directivity The time-dependent directivity of the phased-array signal is the ratio of the maximum signal energy at a particular time across all angles with respect to the average energy. For the line source array defined earlier, D{t) is given by  D{t) =  Pit) y )  m  m  P(t)  mm  IK  LJ>(r,4>)dQ  ( 37)  27  Chapter III. Linear Frequency Modulated Signal Array  In ( 37 ) P(t,9) is the radiated energy at a paticular time t at a the receiver angle 6, P(t)  is  max  the maximum value of P(t,ff) across all angles at a paticular time t. The radiated energy is related to the square of the field pattern, E, in equation ( 36 ) or its approximated value in ( 27 ) and is given by  P(t,(j)) =  ,  (38)  where Z is the medium impedance which is assumed to be unity. Because the 1/ a  was neglected in deriving ( 27 ) and ( 36 ), ( 38 ) need not be multiplied with R.  term W i t h the  parameters of the chirp defined in Table 1 and its corresponding radiation pattern shown in Figure 11, the time-dependent gain of the chirped array is simulated and plotted in Figure 14 and Figure 15 below.  Figure 14. The Simulation Gain of a Chirped Array  Figure 15. The Simulation Gain of a Chirped Array i n dB  There is a gain increase due to reduction of the beam-width as time increases and then the gain decreases due to leakage of energy as other peaks begins to develop as seen in Figure 11.  Chapter III. Linear Frequency Modulated Signal Array  28  Chirp Processing and Element Spacing It is obvious that as the source elements are more closely spaced, the resulting field pattern would more and more closely mimic that which is generated from a single source which has unity gain at all receiving angles. A s the elements are spaced farther and farther apart, the misalignment at the off-tuning angles becomes more and more severe.  Hence,  there is more interference at the off-tuning angles and the gain at the tuning angle becomes higher in general. Therefore, the spacing of the source elements can be used to tune the array to the gain required by the application. It should be noted that the gain is not only a function of the tuning and receiving angle.  It is also time-dependent.  The gain mentioned in the  traditional sense is the maximum power at an angle divided by the average power output of the array. However, optimizing merely the power gain of the array is not the only concern, as adjusting the source element spacing to control the angle-dependent sidelobes at off-tuning angles is desirable.  Please note that the sidelobes are not the traditional time sidelobes  arising in signal auto-correlation. Weights or windows in the matched filtering process can be applied to control the compression sidelobes near the tuning angle.  It w i l l later be  demonstrated that an element spacing setting can be used to control the angle-dependent sidelobes at the off-tuning angles of the correlation function plots.  Let us now consider the auto-correlation processing of a single chirp signal.  The  auto-correlation processing of a chirp is of particular interest as it allows for the recovery of the travel-time from the array to the receiver point.  The basic form of the chirp signal  transmitted by the phased-array can be derived from equation ( 18 ) . Assuming the delay t is t  zero, a simple chirp signal has the form  5 (0 = rectO cA  t-T/2 T  The auto-correlation function for ( 39 ) with positive lag is defined as  (39)  Chapter III. Linear Frequency Modulated Signal Array  29  f fa ) fa R (x) = sin —t +bt -sin — (t-x) 2  2  ch  + b(t-x) d r .  (40)  Equation ( 4 0 ) can be easily calculated i f the quantities 0(t) and A0(t) are defined as  9(t) =  -t +bt 2  2  (41)  A0(f,T) = 0 ( f ) - 0 ( f - T )  Then, ( 40 ) can be rewritten as follows:  R () ch  T  = Jsin(0(O)sin(0(r)-  A6{t,x))dt  X  (42)  = -Hcos(A0(f,T))df-Jcos(20(O-A0(r,T))dr = —cos 2  V  2  ^| s i n ( f l T ( r - T ) / 2 ) l r ' / ZJ)T • — ^ — ' - - - J cos (20(0 -  x A9(t,T))dt  The first term contains the essential information of the auto-correlation of the chirp signal, which is the correlation envelope multiplied by a sinusoid at the carrier frequency. The second term is related to the edge-effects of the auto-correlation which can be ignored (Aldridge, 1992). Since ( 42 ) is calculated with the assumption of positive lag, the above function is only valid in the range 0 < x < T. However, since the auto-correlation function of any real signal is even, the full auto-correlation function can be obtained by replacing x in ( 42 ) with I x I and discarding the second term in ( 42 ), R hif) is given by c  30  Chapter III. Linear Frequency Modulated Signal Array  1 —cos 2  aT  f  V  \  sin(aT(7-lTl)/2)  J  ar/2  -T<lTl< T  (43)  otherwise  0  It can be easily verified that the peak of the auto-correlation function occurs at the delay experienced by the original chirp signal. Figure 16 below shows the auto-correlation of a chirp signal starting at t=0, and having a frequency range of 2000 H z to 4000 H z and a pulse duration of 3 ms. The dotted line outlines the envelope of the auto-correlation, which peaks at t=0.  x 1 0  A u t o - c o r r e l a t i o n of Chirp  -3  1.5  i  i  i  r  / /  0.5 /  \  /  0) T,  f e <  A  /i  \ \  .  o  T V  .  • - -V. _\  /  N  - \  /_.v.--  -0.5  r  After Democ ulation  — -1.5 -  I  J  3  -  2  -  1  Before D e m pdulation  I  I  l_  0 Time  1  2 x  1 ( )  3 -3  Figure 16. The Auto-correlation of the Chirp  If a composite signal made up from multiple, time-shifted chirps is pulse-compressed, then the resultant signal after compression would be the sum of the shifted auto-correlated signal in ( 43 ) because auto-correlation ( pulse-compression ) is a linear operation, we recall that the far-field response of the time-delayed chirped array at a particular angle is the sum of a set of the time-shifted chirps as shown in Figure 7. Therefore, the pulse-compression result  Chapter III. Linear Frequency Modulated Signal Array  31  of the composite received signal defined by ( 3 6 ) at a particular receiving angle can be expressed as  N-l  S(t) + SM)  N-]  1*^(0=  = \^i=~N+l,i  5Xc-o-  (44)  i=-N+]  odd,N even  In ( 44 ), S is the array signal defined in ( 36 ), S H is the zero lag reference defined in C  ( 39 ) and R h is the auto-correlation of the chirp defined in ( 4 2 ). The delays, r,-, between c  each individual compressed signal are equal to the delays experienced by the chirp signal itself as determined by ( 7 ) . The ' * ' represents the auto-correlation integral. Recall that the total delay experienced by a signal before reaching the receiver relates to the element spacing, as shown in ( 5 ) in Chapter n. Therefore, for a particular f, , the peak point and the lowest point of the individual correlation results can be aligned to cancel out each other as shown in Figure 17.  Time  X  1  0  -3  Figure 17. Alignment for Cancellation of Consecutive Compressed Signals  Chapter III. Linear Frequency Modulated Signal Array  32  Suppose that the carrier frequency, f , equals (aT/2+b). It is obvious from examining c  ( 4 3 ) that the  should equal a half period of the carrier signal to achieve the cancellation  effect. Thus,  (45)  Note that in the timing arrangement shown in Figure 17, each peak is aligned with the 2 minimums from adjacent signals, one advanced and delayed respectively. Furthermore, the amplitude ratio between the peak and the minimum is 2:1 as shown by Figure 16. Therefore, the intrinsic cancellation is almost optimal already.  It can be enhanced by weighting the  source elements which w i l l be examined further in future research.  Putting the delay cancellation into a time-delayed array perspective, the implication is that for a particular arbitrary tuning angle yr, it would be possible to choose an element separation d so that for a receiving angle <p not equal to yr, there is maximum sidelobe cancellation. This is achieve by equating r, in ( 4 5 ) to  in ( 7 ) Thus,  X =2-d\ (cos yr-cos </>) I, c  (46)  where X is the wavelength at the carrier frequency. The tuning and receiving angles at which c  the minimum should occur can be assigned to be yf and (j) respectively. The element spacing d can then be chosen to satisfy the equation ( 4 6 ) .  Since the spacing of the chirped array  affects the delay time required to tune the maximum beam angle, the time delay required for tuning should be calculated by ( 1 ) with the element spacing generated from ( 4 6 ). In that case, both the maximum beam angle and the minimum sidelobe angle can be specified. For example, for an end-firing array with the maximum tuning angle set at 0° and cancellation  Chapter III. Linear Frequency Modulated Signal Array  33  angle set to be 180°, the element spacing required is X I 4. The other parameters of such an c  array are listed in Table 3.  Initial Freq.  Final Freq.  Duration  Velocity  Separation  Tuning A n g .  2000 H z  4000 H z  2.666 ms  1500 m/s  Xc/4=0.125 m  0 Degree  Table 3. Simulation Parameters for the Sidelobe Cancellation of a Chirped Array  Figure 18 and Figure 19 show the auto-correlation results for a four-element array at the cancellation angle and the tuning angle, respectively. Because of the canceling effect of signals from adjacent sources, the peak amplitude of the auto-correlation as shown in Figure 18 w i l l not increase as the number of elements in the array increases. In that case, the figure would expand sideways with almost zero sidelobes in the middle. However, the peak of Figure 19 increases linearly with the number of sources in the array because of constructive interference.  Figure 18. The Auto-correlation of the  Figure 19. The Auto-correlation of the  Chirped Array at the Cancellation Angle  Chirped Array at the Tuning Angle  34  Chapter III. Linear Frequency Modulated Signal Array  Simulation of the Chirped Array Signal In the earlier sections, some properties of the F M time-delayed array were discussed. The simulation of the transmitted signal is shown in this section to demonstrate beamforming.  Snap shots of the interference patterns of a composite wave generated by the  superposition of waves emitted by the source elements of the array can be simulated to show this beam. In each of the interference patterns, the amplitude of the wave is indicated by the level of brightness. Since the interference wave pattern is a function of time, each pattern can be computed and saved as a frame of a movie. The first frame starts at t=0.  Subsequent  frames of the wave field ( acoustic pressure ) can be generated at regular time intervals. A stream of frames can be displayed continuously showing the progress of the wave. A n ideal line source is assumed in the simulation. Because the high amplitude created at source points due to the singularity would skew the contrast making the rest of the simulation unreadable, the IIdecay  factor is ignored in the pressure wave simulations. The parameters for the  simulation are listed in Table 4. The element spacing, d, is chosen accord to ( 46 ) such that the maximum cancellation occur at 180°. Then the spacing, d, obtained is determined from  (47)  Duration  Initial Freq.  Final Freq.  Spacing  Velocity  Tune A n g  Elements  2.667 ms  2000 H z  4000 H z  0.14645m  1500m/s  45°  8  Table 4. Simulation Parameters for a Chirped Array M o v i e  35  Chapter III. Linear Frequency Modulated Signal Array  (a)  (b)  (c)  (d)  (e)  (f)  Figure 20. Interference Pattern to Show Beam-forming in the Chirped Array (a) Time (T)=0 msec (b) T=6.5e-3 msec (c) T=1.3e-3 msec (d) T=1.95e-3 msec (e) T=2.6e-3 msec (f) T=3.26e-3 msec  Chapter III. Linear Frequency Modulated Signal Array  36  The simulation clearly shows that two beams form at 4 5 ° and -45°. The Matlab code used to generate the above simulation is included in the appendix.  In order to precisely  determine the arrival-time of the energy pulse from the time-delayed array, the signal is match-filtered at each angle.  The matched filtering can be efficiently implemented by the  F F T . The matched filter result of the chirped array signal is simulated in Figure 21 with a receiver distance of 20 meters using the array parameters shown in Table 3. The axes are travel-time and receiving angle, respectively.  The intensity in this figure is related to the amplitude with the maximal positive value shown in white and maximal negative value in black. The figure clearly shows energy being focused at the tuning angle even with the energy leakage shown in Figure 11. The peak of the correlation function plot appears at the illumination angle at the expected arrival time. The horizontal lines near the tuning angle are the time sidelobes from normal autocorrelation. The eye-shape lines in the center of the figure show the off-tuning side-lobes. Application of the cancellation spacing ensures that there is almost zero sidelobe energy inside the eye-shaped lines. In Chapter V , simulations of array correlation function plots from different array configurations will be compared.  Chapter III. Linear Frequency Modulated Signal Array  37  Practical Consideration - Alternative Tuning Method Tuning the array by delaying the starting time of the chirp signal might not be feasible due to application-specific constraints. In that case, the sources must start transmitting at the same time. It is obvious that this is achievable mathematically by adjusting the starting point of the gate function. To elaborate this, suppose the chirp signal required to be transmitted starts at t-U as shown in ( 18).  In order to make the signal start transmitting at f,=0, a  different gate function can be used. The signal is given by  S,.(0 = g ( 0 - i m a g j e x p j\ ^(t-t )  2  t  + b(t-f.)  L  with yj  (48)  However, there is a physical problem of starting the chirp at negative time. It w i l l be shown that the effect of starting a chirp with increasing frequency at negative time is equivalent to starting the chirp at a lower frequency with a constant phase. Therefore, it is possible to tune the array by adjusting both the start frequency and phase.  In starting the  vibrating sources at the same time, there is a side-effect of introducing distortion in the leading and trailing edges of the signal even at the tuning angle. However, the effect is not discussed here as it is assumed that the duration of signal is much longer than the tuning delay and hence the energy in the portions added in order to allow for simultaneous firing of the sources is very small and therefore can be neglected.  Let us consider a delayed chirped signal at one of the source points to find the starting frequency and phase to achieve tuning for simultaneous firing.  Suppose we know that t is t  the time delay required to tune the array. From ( 18 ), the phase of the delayed chirp is given by  Chapter III. Linear Frequency Modulated Signal Array  38  (49)  ^(t-tf+bit-t;).  A zero delay chirp with a new chirp-rate and new initial frequency and initial phase is denoted by  a' , — t +b't + c'.  (50)  2  Expanding ( 49 ) and equating the result with ( 50 ) yields the following results  (51)  Therefore, sending a chirp signal ( 5 0 ) with the parameters determined by ( 51 ) is equivalent to sending the signal ( 49 ). It should be noted that ( 50 ) is applicable only i f b' obtained in ( 51 ) non-negative. The result shows that a delayed chirp is equivalent to a chirp with a different initial frequency and initial phase. Because the chirp signals from different sources of the array are forced to start at the same time, the duration of each signal is set differently to ensure that the trailing end of the signal at the tuning angle do not suffer from distortion. The duration Dj for the ith source is then (Do+t,). D is the duration for the source 0  at the center of the array.  The following example provides the tuning requirements for an eight-element chirped array for time-delayed tuning and simultaneous-start tuning. The velocity of the medium is assume to be 2100 m/s, the tuning angle is 60°, the duration is 0.10 second and the frequency range is 20-80 H z . The duration and frequency vary across the source array for simultaneousstart tuning. For simultaneous-start tuning, the duration and frequency given applies to the source at array center (if it exists) only. To set the maximum correlation cancellation angle at  Chapter III. Linear Frequency Modulated Signal Array  39  180°, the spacing is determined to be: /L /(2 + V 2 ) = 12.3015m. The parameters for timec  delayed tuning are listed below:  Source number :  -7  -5  -3  -1  1  3  5  7  Start time, u (msec)  -1.03  -0.73  -0.44  -0.15  0.15  0.44  0.73  1.03  Duration (sec)  0.1  0.1  0.1  0.1  0.1  0.1  0.1  0.1  Table 5. Parameters for Time-Delay Tuning of a Chirped Array  If the simultaneous-start tuning method is used, the initial frequency, phase and duration required are:  Source number :  -7  -5  -3  -1  1  3  5  7  Chirp rate (Hz/s)  7  7  7  7  7  7  7  7  Initial Freq. (Hz)  26.15  24.39  22.64  20.88  19.12  17.36  15.61  13.85  Initial Phase (Rad)  1.486  1.021  0.589  0.188  -0.180  -0.516  -0.819  -1.090  Duration (msec)  89.7  92.7  95.6  98.5  101.5  104.4  107.3  110.3  Table 6. Parameters for Simultaneous-Start Tuning of the Chirped Array  Figure 22 and Figure 23 below show the interference pattern for time-delayed tuning and simultaneous-start tuning, respectively. .  Note that the sources in Figure 22 start in  sequence, resulting in the egg-shaped wave-front, while the sources in Figure 23 start simultaneously as shown by the ellipsoidal wave-front. are listed in the Table 5 and Table 6, respectively.  The parameters for the simulations  40  Chapter III. Linear Frequency Modulated Signal Array  1  0  -200  -150  -100  -50  0  50  100  150  200  Figure 23. Simulation of Simultaneousstart Tuning  Figure 22. Simulation of Time-delayed Tuning  The amplitude difference obtained from subtracting the interference pattern in Figure 23 from that of Figure 22 is shown below in Figure 24. The edge differences caused by simultaneous starting in Figure 23 are clearly shown. There is no difference between the two patterns if the edge error caused by simultaneous-start tuning is not considered. Note that the maximum amplitude for the 2 interference plots of Figure 22 and Figure 23 is ± 8 as there are eight sources in each case. 150  •oo 50  0  -50  -100  -150 -200  0 x (meter)  Figure 24. The Difference between Delay-time Tuning and Simultaneous-Start Tuning  Chapter IV. Phase Modulated Signal Array  41  IV. Phase Modulated Signal Array The P M signal is a sinusoidal signal modulated by binary message code symbols consisting of positive and negative ones. A n offset is sometimes added to the code symbol for sidelobe cancellation.  The signal amplitude of a P M signal is proportional to the  amplitude of the modulating code symbol. A positive code symbol leaves the phase of a period of the sinusoid carrier in the P M signal unmodified while a negative code symbol adds a phase of n to the sinusoidal carrier (Birdsall, 1988a). If each code symbol modulates one period of the carrier, the sidelobe level of the code after correlation processing relates directly to the sidelobes of the P M signal after processing.  Therefore, a code with high auto-  correlation or cross-correlation and low sidelobes is desirable for the array.  T w o types of  codes, the Barker (1953) code and the Golomb (1992) pseudo-random code with offset, are well known for their low correlation sidelobes. Even though the two signals are similar in appearance, the two types of codes requires two different types of processing for sidelobe minimization, namely aperiodic cross-correlation processing and periodic cross-correlation processing, respectively. Before the codes and their required processing are introduced, let us examine some properties of P M signals.  If we assume that the sinusoidal carrier has a frequency co , then the P M signal can be c  written as  (52)  where T is the duration of the P M signal and O(t) is the phase modulation function depending on the code symbol a used. O(t) is given by n  Chapter IV. Phase Modulated Signal Array  f  0(0 =  P(t) =  5>l t-  42  In  n=0  V  1  0<t<—  0  otherwise  0  I  n  2  J  •7T  0<n<M-l otherwise (53)  -lorl  0<n<Af-l  0  otherwise.  When the code symbol is one, the phase 0(£) which is added to the sinusoidal carrier is 0, leaving the polarity of the carrier unchanged in the period. When the code symbol is a negative one, a phase of % is added to the sinusoid carrier, reversing its polarity. The signal is represented in this form so that the auto-correlation of signal can be simplified in the later sections.  The half power bandwidth of the P M signal is directly related to the number of  periods of the carrier signal that a code symbol modulates (Birdsall, 1988a).  In this case,  since each code modulates one period of the carrier, the highest bandwidth of the P M signal can be obtained by considering the windowing effect of a period of the carrier. Therefore, the bandwidth of the P M signal is equivalent to the bandwidth of a period of the sinusoidal carrier. A s a result, the bandwidth to carrier frequency ratio is one, and because of this high ratio, the traditional narrow-band field pattern analysis of phased-arrays does not apply at all.  Far-Field Field-Pattern of a PM Array The far-field field-pattern of the P M array is constructed using delayed P M signals. The form of a P M signal with an arbitrary delay t , can be derived from ( 5 2 ) . it  exponential form is used to simplify future calculations.  The  The imaginary function is not  shown explicitly. Thus, a P M signal with an arbitrary delay t , is given by ti  B (0 = plj  exp(X»  c  •(t-t,) +  <D(f - f,.))) • rect(  '—  ).  ( 54 )  Chapter IV. Phase Modulated Signal Array  43  In ( 54 ), the delay r, is dependent on the array geometry and viewing angle. T o find the field pattern of the time-delayed P M phased-array, a pair of sources configured as in Figure 2 with the tuning angle set to y/is considered first. The delay experienced by the signal transmitted by the first source before reaching the a receiver point is found in ( 19 ) and the delay for -1st source is listed ( 20 ). The sources are named as described in Chapter U. The two delays are substituted in ( 54 ) to obtain  5, = exp J(G> (tc  5_,  - exp  j(co (t-c  R  \  v  v  2  + ^)  2  -) + <D(f-  + 0(t--  R A„ v  2  R v  +  -))  t-R/v-A,„J2-T/2 • rect(-  ^)) • rect(  t-RJv  +  2  - f  -)  A^2-TI2  (55) ).  In ( 55 ) co is the carrier frequency, O is the modulation function defined i n ( 53 ), R c  is the distance from the center of the array to the receiver point, v is the velocity o f the wave in the medium and A ^ = (cosy/- costy)d/v is the angle dependent delay function defined i n Chapter H The quantities Si and S.i are the wave patterns transmitted by the two sources. The interference pattern for the two-element array can be obtained by adding the two equations in ( 55 ). The whole interference pattern is travelling outward from the center of the array with velocity v. Except for the II^R  amplitude decay which has been ignored, the  pattern does not vary as it progressed outward. Therefore, a pseudo-stationary interference pattern can be created by adding the 2 equations in ( 5 5 ) and then setting t' = t-Rlv. The interference pattern is then given by  / 2 - 77 2  t'—A  S - expj  + exp|  rect(  )  (56)  f+A /2-772 #  rect(  )  44  Chapter IV. Phase Modulated Signal Array  It can be noted that at a particular receiver angle (j), one of the two signals is advanced by A ^ 2 .while the other one is delay by  If the signal duration Tis much greater then  A ^ , then, the energy carried by the leading edge and the trailing edge is insignificant and the signal pattern can be approximated by those values existing in the range 0<t'<T. Ignoring the edge-effects due to the misalignment, the interference pattern can be written as  f  f  \  exp  )  2  V  V  f  \  +exp  (57)  t'-T/2 rect(—-—)  -))  J)  Equation ( 57 ) is an approximated interference pattern emitted from the center of the array center. A s the wave travels outward, it is being retarded by Rlv. Therefore, f=0 should be considered as the start of the interference wave for the purpose of computing the field pattern.  The P M signal is factored out from the interference pattern of ( 5 7 ) i n order to  obtain the field pattern. Then, equation ( 57 ) becomes  S = expUa>/+Mt'))-exp(-j0(ny + expl  ( A exp K-coc^H  A  ^  mt'-f) (58)  t'-T/2 rect(—-—).  2  The term exp(jco f + jQ>(f)) in ( 58 ) is the common signal of the interfered phasedc  array signal. The portion of ( 58 ) without this signal is the field pattern for a pair of sources configured in the arrangement shown in Figure 2. Since the pattern depends on the discrete code used in the modulation, there is no general closed form for the pattern. The pattern can be computed numerically for the different codes used in the phase modulation. For the code  Chapter IV. Phase Modulated Signal Array  45  with the parameters listed in Table 7, the simulated composite signal for the array is shown in Figure 25.  Carrier Freq.  Separation  Velocity  Tune A n g  Element  3000  0.15  1500 m/s  0°  4  Table 7.  Code +  +  +  —  +  -  -  +  -  Simulation Parameters for the P M array  Figure 25. Simulated Composite Signal of the P M Array  For an even N-source array with the arrangement as shown in Figure 2, the field pattern can be obtained by summing the interference pattern ( 58 ) and omitting the P M carrier signal yielding  exp( j((0{\ + 2k)^  +  0(f'-(1 +  2*)^*-)))  (59) f-T/2 expOW))'rect( ^  ).  46  Chapter IV. Phase Modulated Signal Array  N-l N-l This expression is exact within the range — - — < t ' < T-—-—A^ the number of sources.  where N is  This is the case because the range is clear of edge-effects.  It is  important to note that at the tuning angle, where A ^ = 0, the magnitude of ( 5 9 ) becomes identically N. The field in equation ( 59 ) w i l l be examined in more detail. A s the square of the amplitude function is related to the radiated energy, the square of ( 59 ) is computed and plotted in the figure below with its corresponding contour map so readers can have a clearer perception of the shape and formation of the radiation envelope. The tuning angle is 0 ° in the following figures.  X10°  }ggg<8 ^ = f f i ^311!  j  20  ,i 0  i  i  MI  50  11  i  100  i  i  150  200  i  250  nn ii  300  •  i  u  350  Angle  Figure 26. The Radiation Pattern of the P M array.  Figure 27. The Contour of the Radiation Pattern of the P M array.  Recall that the sequence used to modulate the P M signal listed in Table 7 consists of 3 leading +'s.  Therefore, at early times across all angles i n Figure 26 and Figure 27, the  familiar radiation pattern of a narrow-band array is exhibited. The subsequent changes of the radiation pattern can be explained by the polarity reversals caused by the modulation and the different amounts of misalignment of the array signals as the receiver angle is varied. Let us look at the signal received at a particular off-tuning angle, as shown in Figure 28.  Chapter IV. Phase Modulated Signal Array  47  From Source  -3 -1 1 3 t-d\ III Ifr t-i t,  Time  ]  Non-Reversed Period  3  Reversed Period  Figure 28 Polarity Reversal of the P M signal at off-tuning Angles  In Figure 28, each horizontal bar shows a signal from a particular source.  The  interference pattern is the sum of all 4 signals. The vertical line denote the received signal at a particular point in time. A t the first vertical line in Figure 28, all signals from the array are of equal sign. That is O(r)=0. Note that Figure 28 shows the composite signal at a particular angle only. If there is no amplitude reversal across all received angles, then, the field pattern of the array in ( 59 ) becomes the narrow-band field pattern result given by  (60)  E =  N o w suppose there is only one signal reversing its sign across all angles, as denoted by the second vertical line in Figure 28. The field pattern changes to  E=  f  - 2 • exp - jco V  (61)  Chapter IV. Phase Modulated Signal Array  48  The field pattern for 2, 3 and 4 signals reversed can be calculated similarly. For the four-source array shown in Figure 28, there are 4 possible reversals. A l l the signals have the same sign again at 4 reversals. source P M array system.  In general, the field pattern can be generalized for an M -  When none of the signal or all of the signals are amplitude  reversed, the field is described by the narrow-band result, where the field pattern is given by  sin coN-  (62)  E=sin co  There are M - l amplitude reverses possible before all the signals are of equal sign again. The fields for the M - l possibility can be described by the following generalized field equation :  A  sin coX VP  sin coN  — 2- exp -jco^(N-X)  E = sin co  (63) sin co-  In ( 6 3 ) X , which satisfies the inequality 0<X<N, is the number of periods of the carrier experiencing a sign change at the receiver. For a four-element array with parameters shown in Table 7, there are 5 different field patterns as shown by the 5 vertical lines in Figure 28. The 5 radiation patterns, which are the square of the field patterns, are plotted below  Chapter IV. Phase Modulated Signal Array  49  16 T w o signals reverse sign  O n e signal reverse sign  All signals::are equal sign  o  0  50  100  150  200 250 Angle in Degree  300  350  400  Figure 29. Sections of the Radiation Pattern of a four-source P M array  The two plots of signals with all signs equal are identical, as are the two plots for 1 signal or 3 signals reversed. Therefore, there are only 3 distinct curves in Figure 29 instead of 5. A s the tuning angle of the array is 0°, the peak for the field pattern, where all signals have the same sign at that angle.  Note that these 3 curves make up the sections of the  radiation envelope in Figure 26. To understand why, let us consider the following.  At a  particular receiver point, because of the misalignment of the signals, a signal from one of the array elements arrives at the receiver earlier than the others. advanced the most.  This is the signal which is  The receiver would receive a polarity-reversed carrier from the most  advanced signal at some point in time before it would receive a polarity reversal from the other signals. Subsequently, as time progress, a second sign change of the signal from an adjacent source is received and so on.  Therefore, the radiation pattern is divided into  different sections according to the number of signals that have reversed polarity as time progress.  Each following section has one more signal polarity reversal at the receiver, as  shown in Figure 28. The field pattern of each section is therefore exactly expressed by ( 63 ) across all angles.  Chapter  IV. Phase Modulated  Signal  50  Array  From Figure 29, it is obvious that energy leakage in each of these sections is caused by the amplitude reversal of the periods. In fact, in this particular case, the signal is focused at some angle other that the desirable tuning angle at some later time.  Furthermore,  increasing the number of sources in the array also increases the possible number of amplitude reversals in ( 63 ) . Therefore, we cannot be sure that the leakage problem w i l l improve even if more sources are used. Finally, since the misalignment of the signal does not change sign all at once across all angles, Figure 27 shows that the section boundary is a curve.  Edge-Effect Correction The exact field pattern can be obtained by adding correction terms to ( 5 9 ) . A s explained in previous sections, additive terms have to be included for the leading part of the advanced signal and the trailing part of the delayed signal.  Again, a pair of sources is  considered first. The additive corrective part is obtained by applying ( 5 4 ) to the regions which have been omitted in ( 5 8 ) . T < t'< T +A 4/2 V  That is, A p/2 < t'<0 for the advanced signal, and ¥<  for the delayed signal.  The subtractive correction part is obtained from  applying ( 54 ) to the extra regions which have been included in ( 58 ) . That is, 0< t'< for the delayed signal, and T-A ^2 <t'<T ¥  A ^I2 ¥  for the advanced signal. Rearranging the additive  and subtractive correction terms yields the correction term for the leading edge. This is given by  exp(;a>^  +  7 W +  exp(y'0(r'))'rect  ^))-exp(-><A -,W+%))' t'  The correction term for the trailing edge is  (64)  Chapter IV. Phase Modulated Signal Array  51  ;W+^)) exp(y'0(7'))-rect  (65)  t'-T IA  These correction terms cannot be simplified further into closed form. For an even N element array, the complete field pattern can obtained by summing ( 6 4 ) and ( 65 ) and ( 58 ). Note that the sum is obtained by multiplying A ^ with a constant factor to account for the location of each pair of sources. The complete field pattern is therefore  exp(yX«(l + 2 & ) ^ + 0 ( f ' - ( l + 2 £ ) ^ ) ) ) V  t'-T 12  rect(^—) +  2  I N-[  ex ( jcok^ + Mf+k ^ ) ) - e x r f - y a * ^ P  - W+k  ^))  rect-  a l  (  - exp( jcok ~Y + jQ(t'+k - y - ) ) + exp(- jivk k=],3,5,..\  • mt'+k-*-))  rect-  -+  (66)  t'-T  \kA,J  exp(;«l>(0)-  Directivity The directivity equation is defined in equation ( 37 ) with the power density function defined i n ( 38 ) i n Chapter HI.  The directivity of the P M signal can be obtained by  substituting the field pattern equation in ( 59 ) into ( 38 ) and then into ( 37 ). Figure 30 and Figure 31 show the directivity of the four-element array with parameters defined in Table 7.  Chapter IV. Phase Modulated Signal Array  x NT  Figure 30. The Simulation Gain of a P M array  52  3  Figure 31. The Simulation Gain of a P M array in dB  The gain at the leading edge in Figure 30 and Figure 31 is a constant which can be determined by the narrow-band phased-array theory. A s time progress, some of the period of the signals that make up the composite waveform experience a sign change. A s a result defocusing or leakage occurs. The gain therefore drops. Figure 30 and Figure 31 show that the gain peaks at some points where the sign change of the signal is half-completed. In this case, the gain is not a good measure of the performance because the main beam has disappeared and a second beam has formed at an off-tuning angle as shown in Figure 29. Therefore, the high gain in Figure 30 and Figure 31 is not a effective performance measure as i n the linear F M case, where the energy is always focused at the tuning angle.  Barker Code and Complementary Code and Processing In his (1953) paper, Barker presented a set of 9 binary codes which are highly compressible. Table 8.  These are now know as the Barker codes.  The codes are listed below in  Chapter IV. Phase Modulated Signal Array  Length  53  Auto-correlation of Code Symbols  Code Symbols  2  i, - i  -1, 2,-1  2  i, i  1, 2, 1  3  I,  1,-1  4  i,  1,-1,  4  I,  I,  1,-1  5  I,  I,  1,-1,  7  I,  I,  1,-1,-1,  11  I,  I,  1,-1,-1,  -1, 0,  3, 0,-1  1, 0,-1, 4,-1, 0,  i  -1, 0, 1, 0,  I 1,-1  1, 4, 1, 1, 0,  1  0,-1  1  5,  0,  1,  -1, 0,-1, 0,-1,  0,  7, 0,-1,  0,-1,  0,-1, 0,-1,  0,11,  0,  0,-1 -l,  1,-1,-1,  I,  0,-1, 0,-1, 0,  -l 13  I,  -1, 0,-1, 0,-1,  I,  I,  I,  l  1,-1,  I,  -1,-1,  I,  1,-1,  1, 0,  1, 0,  0. 13, 0,  1,  1, 0,  -1, 0,-1, 0,  1, 0,  1, 0,  0,-1  1, 0, 1,  1, 0,  1, 0,  1, 0, 1  Table 8. Barker Codes  These nine codes have the property that for the code of length N , the maximum sidelobe level is 1/N relative to the main peak, which is normalized to 1.  Because the  sidelobe of the P M signal generated with a code is directly related to the sidelobe level of the correlation of the original code, the Barker code is a very good choice for modulating the P M signal. However, since there is no Barker code with length longer then 13, the usefulness of the code is severely limited.  If the auto-correlations of the two Barker codes with length four listed in Table 8 are added together, the sum is a peak with no sidelobe at all. This class of code pairs for which the sidelobes would cancel out are referred to as complementary Barker codes. There are a number of different ways in which these complementary codes can be generated. Levanon (1987) presents a recursive algorithm which can generate the codes with a pair of complementary codes as "seed" codes. The algorithm proceeds as follows:  1. Let B , and B j be a complementary code pair. C  2. Bi+i = [Bj, Bj ]. C  Chapter IV. Phase Modulated Signal Array  3.  B(i+i)  C  54  = [B;, - B i ] . c  4. Let i = i + 1 5. G o back to 2.  The length 4 complementary Barker code pair listed in Table 8 can be generated by using Bo = [1] = B  0 c  as follows:  B = [l] 0  B c 0  = [l]  B, = [ l , l ] B =[l,-1] l c  B = [ l , 1, 1,-1] 2  B  2 c  = [ l , 1,-1, 1]  Longer complementary codes for modulating the P M signals can be generated i f the algorithm is iterated a number of times. For the cancellation of the sidelobes to occur, the two codes must be transmitted and correlated respectively before adding the correlation results.  For some applications that might present a problem as the target might move  between the two transmissions. This is not true in the case of exploration seismology, as the target is stationary. Table 9 shows the auto-correlation of a pair of the complementary Barker codes and their sum.  Auto-correlation of Codes  Code 1,1,-1,1,1,1,1,-1  -1,0,3,0,1,0,1,8,1,0,1,0,3,0,-1  1,1,-1,1,-1,-1,-1,1  1,0,-3,0,-1,0,-1,8,-1,0,-1,0,-3,0,1  Sum of Auto-correlations 0,0,0,0,0,0,0,16,0,0,0,0,0,0,0  Table 9. A Complementary Barker Code and its Correlation  Chapter IV. Phase Modulated Signal Array  55  Let us now examine the auto-correlation function of the P M signal modulated by the Barker code alone without the array. A s the amplitude of O(r) can only be 0 or 71, ( 52 ) can be rewritten in a different form as  t T12 B {t) = sin(<o ?)-cos(<S>(0)-rect(—-—) T —  p  c  t-n I a \ (M-\ sm(co t)- rect(a„S(t In I co. c J Bperiod ( 0 * J U „ - , ( 0 .  —)  c  co„  (67)  y  In ( 6 7 ) ,  is the convolution integral function.  The first part of ( 67 ) is a  truncated version of the carrier which has the duration of one period. The second part o f the equation controls the polarity of each period of the carrier in the wave. M is the total number of cycles in the P M signal. The auto-correlation function, R (t), of a P M signal can be easily p  obtained using ( 67 ) . It is given by  R (t) =  B (t)*B (t)  P  P  =  p  * B , (t)) • (B po arily  (t) *  perind  \  =  B  Rpolarity(t)  ^  ^period  {t))  volarity  I  = \ p o l a r i t y ^ ) * BpolarityW) * \ period^) B  B  \ *  (  6  8  )  period^))  B  (0 •  In ( 68 ) Rpoiarityif) is the auto-correlation of the polarity controlling signal,  B i (t) po  arity  and Rperiodil) is the auto-correlation function of one period of the carrier. The auto-correlation of the controlling signal, R iarity( 0, can be determined by po  Chapter IV. Phase Modulated Signal Array  r  V«=0  c  W  56  y Vm=0  y  ®c  *=1-Af  (  6  9  )  t = X i- .--i»i  fe  a  fl  1=0  k=  0—M)..(M-l).  The sequence Z?„ is the discrete convolution of the sequence that modulates the P M signal. Figure 32 shows the function R iarity( t) for each of the complementary Barker codes. po  The carrier frequency equals 3000 H z and modulation codes are [1, 1, -1, 1] and [1, 1, 1,-1], respectively. It should be noted that the time duration between each delta function is exactly the period of the carrier frequency. P M signal, the wavelet, R i„d{t),  To obtain the complete auto-correlation function of the is generated from the auto-correlation function o f one  per  period of the carrier signal, which is calculated in ( 70 ) below as  2K_ 0>r  RpenoAt)  =  't-Klco  1  J* sin(fi) T) • sin(fi> c T-l f I )dx • rect c  t  2K/  ^  m  (70)  f t-n I a 1 , ,2n , , s'mcojtl \ rect' -cos(ft) 0 ( — - l r l ) + 2m 2K I co. CO„ c J 'c J s  s  Figure 33 below shows the auto-correlation, R riod(t), of a period of the carrier signal. pe  Since R iod{t), is much shorter than the delta function series from auto-correlating the per  modulation code ( R iarit {t) i n ( 6 9 ) ), R u,diS) po  y  per  acts as a smoothing function for the delta  series. Therefore, the sidelobe ratio of the auto-correlation of the Barker-encoded P M signal, depends greatly on the auto-correlation of the binary modulation sequence, as shown in ( 68 ).  Chapter IV. Phase Modulated Signal Array  57  x10""  Figure 32. Auto-correlation of the Modulation Codes [1, 1,-1, 1] and [1, 1,1,-1]  Figure 33. The Smoothing Wavelet  The auto-correlation function of the P M signal is therefore the convolution of the two signals shown in Figure 32 and Figure 33. Because of the delta series nature of  R iarity( po  the auto-correlation function of the P M signal is a shifted and scaled sum of the function as shown in Figure 34.  t),  R riod(t) pe  The figure clearly shows that the peak of the correlation  occurs at the delay between the signal and its reference, which is zero in this case.  Figure 34. Auto-correlation of the P M Signal for each Complementary Code  Figure 35. Auto-correlatiori of the P M S i g n a l Sum of the Results Shown in Figure 34  58  Chapter IV. Phase Modulated Signal Array  Before continuing to examine spacing for the elements in the Barker signal array, let us consider a second pseudo-random code, the Golomb pseudo-random code.  Golomb Pseudo-random Code and Processing The high compressibility of the pseudo-random m-sequence code makes this code another prime candidate for modulating the P M signal (Birdsall, 1988a) . In particular, zero side-lobes in the code auto-correlation are made possible by introducing a D C offset in the code. In this case, however, periodic correlation is used instead of the aperiodic correlation normally used in matched filtering.(Birdsall, 1988)  However, the code length of the m -  sequence pseudo-random code is limited to 2 - l , where n is any positive integer. n  Since  periodic auto-correlation is required to achieve the zero sidelobes, the duration of the P M signal used in the array must be greater than the longest possible travel-time to be measured to avoid ambiguity. Therefore, the code-length of the m-sequence pseudo-random sequence might be inconvenient for some applications as a longer code-length imposes higher storage and processing power requirements. A new class of quadratic-residue pseudo-random codes exhibit many of the same properties of the m-sequences and exists in code lengths of prime integers of the form 4 m + l .  This was developed by Golomb (1992).  The code is more  flexible than the m-sequence in modulating the P M signal because there are more codes of different lengths. The result of the Golomb paper are included for reference (Golomb, 1992).  If we let a represent the nth element of the code sequence {a }, the individual terms n  n  are determined by  +1  i f n is a quadratic residue modulo L  -1  otherwise  The quadratic residue is defined as those number satisfying the congruence equation  (71)  Chapter IV. Phase Modulated Signal Array  59  x =n{modL).  (72)  2  A simple method of implementing the sequence can be found in the Golomb paper. Table 10 below listed the first 5 sequences.  Length  Sequence  5  l,  1,-1,-1,  l  13  l,  1,-1,  l  -1,-1,-1,-1,  l  17  l,  l ,  l  -1,-1,-1,  l ,  l  -1,-1,-1,  1,-1  l ,  29  l,  1,-1,-1,  1,-1,  l  -1,-1,-1,  1,-1  - l ,  1,-1,-1,-1  1,-1,-1  - l ,  1,-1,-1,-1  - l ,  l  l , - l , 37  l, -l,  l ,  l , - l  l ,  1,-1,  l  l ,  l ,  l  l , - l , - l ,  l ,  l  1,-1,-1,-1  l ,  -1,-1, l ,  l ,  l l  l  1,-1, l ,  l , - l ,  l  l , - l  l ,  l ,  1,-1,-1,  l ,  l  Table 10. Binary Patterns of the First 5 Golomb Pseudo-Random Sequences  It has been shown by Golomb that i f the sign of the first element is reversed to form a new sequence {b }, the periodic cross-correlation of these pair of sequence has two values: a n  zero lag cross-correlation peak at L-2 and -1 at all other lags. The periodic cross-correlation is defined as :  L-\  i =EA.'+;)modL-  C  a  i=0  Cj itself represents a periodic sequence which has a period of L.  (  7  3  )  T o realize the zero  sidelobes, two offset values a and (3 are added to each sequence respectively. The crosscorrelation is then given by  (74)  60  Chapter IV. Phase Modulated Signal Array  For perfect sidelobe cancellation, C, = 0 for all j * 0, conditions ( 75 ) below must be satisfied. In that case, the peak cross-correlation value in ( 74 ), turns out to be L - l instead of the peak of L-2 when no offset is added to the Golomb code.  The condition for perfect  sidelobes are as follows :  a =  l-B  H  Lp-l n  or  p = n  H  l+ a  (75)  La +1  It is important to note that the transmitted signal is different from the reference signal used in circular cross-correlation. This is of course not the case in matched filtering where the transmitted and reference signal are the same.  A s a result, there is a loss of detection  probability, which would result in a lower S N R . However, as we are examining the response of the array in an ideal situation in this thesis, we are not concerned about this loss. In an environment where noise does exist, the receiver energy lost resulting from the mismatch of the signals can be minimized i f a and (3 are set according to the following criteria. That is, a and (3 should be set to the following :  a =(V(L-l)-l)/L , ,  v  (76)  P =U(L-l) + \)/L  W e w i l l use this result for the array experiment which is included in Chapter V I . The two sequences of length 29 with D C offset determined by ( 76 ) which are cross-correlated to produce  zero  sidelobes  are  listed  in  Table 11  below.  Note  that  in  Table 11  w= 1 + a = 1.1480, x = -1 + a s -0.8520, y= 1 + p = 1.2169 and z =-1 + (3 = -0.7831.  Chapter IV. Phase Modulated Signal Array  Type  Sequence w  Transmit  W,  W,  X,  {Grn}  W,  X,  w, w, w  Or  Filter or  {GRn}  crosscorrelation  61  X,  w, w, w,  x,  w,  w  X , X,  w  z, y, z, z, y  y- y, y. z, y  y, z, y, y, y  y, z, z, y  28, 0, 0, 0, 0  o, 0, 0, o, 0 o, 0, 0, 0  0, 0, 0, 0, 0  x, X,  x,  w,  X  X,  w,  x,  x,  X  z, z, z, y, z  z, y, z, z, z  0, 0, 0, 0, 0  0, 0, 0, 0, 0  Table 11. A D C offset Golomb Code, the Corresponding Filter and its Correlation.  A s mention earlier, the use of aperiodic correlation in the detection of the Golomb code limits the unambiguous range.  To see how this ambiguity arises, let us consider a  received code which is composed of two transmission codes in Table 11 with a delay of 25 and 37 symbols, respectively. The received code is shown below in Figure 36.  1  1  1 TTTTTTT  II J  L  0  i  10  i  20  l_i i 30 40 Bin Number  111  11  i  50  l  i _  60  Figure 36. Received Golomb Code with Delay at Symbols 25 and 37  To detect the delay of the code, it is separated into sections of 29 symbols, which is the code length, denoted by the vertical lines in the graph. The sections in Figure 36 are summed up to obtain a periodic representation of the received signal, as shown in Figure 37 below.  The  62  Chapter IV. Phase Modulated Signal Array  periodic cross-correlation result of Figure 37 and its reference in Table 11 is shown in Figure 38 below.  nn nnl  nnnnnnnnl  10  15 Bin Number  20  or  10  25  Figure 37. Periodic Representation of the Code in Figure 36  15 Bin Number  Figure 38. Periodic Cross-correlation Result of Code in Figure 37  The result in Figure 38 shows a two impulses, delayed at 8 symbol and 25 symbol respectively, which are clearly different from the actual delay at 25 symbol and 37 symbol. The ambiguity occurs when the code is delayed by more than the code length. In that case, the arrival-time is wrapped around, thus creating the ambiguity.  The two sequences in Table 11 or signals generated similarly can be used to modulate the transmitted  signal and to generate the receiver filter for the time-delayed  array  application. Let us first consider the representation of the Golomb-coded P M signal alone in the absence of the array. Similar to the Barker-coded P M signal i n ( 67 ) , the Golomb-coded transmit signal To, and filter signal FG, can be decomposed into the convolution of two dirac delta modulation function sequences, B~SGTx(t) and B>SGR (t), and a single period of the signal X  carrier. Therefore,  Chapter IV. Phase Modulated Signal Array  • t  ^  63  ,t-Kl(0  sin(a> ?) • rect(  c  c  v  2K  c  ,  -)  I co  c  2nK^ CO.  j  c  J  (77) •  ,  ,  F (t) = sin(ft)j) • rect(  J  -  K  /  C  c  G  I a {t).  2K  =  B  {t)*B  period  O  -) \n=0  CO.  c  J  SGRx  The aperiodic convolution is denoted by  G  Tn  and G  Rn  are elements of the Golomb  sequence. A n example of the Golomb code P M transmit and filter signals are simulated with the parameters listed in Table 11. The transmit and filter signals are shown in Figure 39 and Figure 40 below.  Time  Figure 39. Example of the D C offset Golomb-coded P M Transmit signal, Tc  Time  Figure 40. Example of the D C offset Golomb-coded P M Filter signal, FQ  The periodic cross-correlation, Re, of the transmission signal, T , G  signal, Fc, can be expressed as  and the receiver filter  Chapter IV. Phase Modulated Signal Array  R (t) = G  64  T QF G  G  = ( J W O*W > ) ©  © 5 ^ ( 0 ) O (B  = (B^it)  In ( 7 8 ) ,  (t)  ©  IKriod  =  * W ) )  ( ^ ( 0  B  R (t)OR (t). SGn  period  and ' O ' , ' O ' denote the aperiodic covolution, periodic convolution, and  periodic correlation, respectively. The auto-correlation function, in  ( 70).  (78)  {t))  perit)d  It is obvious that the cross-correlation function  R riod, pe  RSGTR  has been determined  for the modulating delta  sequence, Bscrxit) and BsGRx(t) can be expressed as  wo = X *  )  C  k=0  Wc  M-\ Q  = S  G  7  :  G  ^ , m o d M -  (79)  =0  fc = 0..(Af-l)  For the D C offset value determined i n ( 76 ), Co = M-l and  = 0. Therefore, the  cross-correlation function RSGTRU) generated by sequence i n Table 11 which uses the D C offset value from i n ( 7 6 ) has a peak with value 28 and zero elsewhere, as shown i n Figure 41 below. Figure 42 shows the periodic cross-correlation, defined in ( 7 8 ) , for the Golomb-coded P M signals, T  G  and F , which are shown i n Figure 39 and Figure 40, G  respectively. Note that a delay is introduced in the figure so that the delta function does not occurs at r=0.  Chapter IV. Phase Modulated Signal Array  65  1:1  Figure 42. Cross-correlation of the D C offset Golomb-coded P M Signal  Figure 41. Cross-correlation of the Golomb Code Sequence  Source Element Spacing for the PM Array In the previous two sections, the processing of two types of binary codes was examined. It was shown that the correlation result of the two types of P M signals both equal a scaled and shifted version of Rpenodf). It was noted that the peak of R riod(t) occurs at the pe  delay between the signal and its reference.  W e recall that the signal transmitted  from  different sources of the array would be delayed differently at angles other then the tuning angle. It was shown in Chapter II that the delay is proportional to the element spacing. A s the correlation applied to the received array signal is a linear operation, it is therefore possible to align the peak and trough of an individual correlation result by adjusting the element spacing of the array to achieve cancellation.  To determine the spacing required, the  minimum of R i„d{t) can be determined by per  d_ dt or  * W O  =o  t = 0,  :  co„ ' CO,  66  Chapter IV. Phase Modulated Signal Array  Therefore, it is obvious from ( 8 0 ) that the delay, t , between arrival to achieve  the  t  cancellation effect is  (81)  Coincidentally, this is the same as the result for the linear F M array. Thus, the cancellation condition in ( 46 ) applies to the P M array as well. Figure 43 shows the time delay required to achieve the cancellation and Figure 44 shows effect of cancellation on the auto-correlation for the Barker-coded P M signal and cross-correlation for the Golomb-coded P M signal.  I  1  1  1  1  )  ;  1  1  r  1.5h  1h  Figure 43. Time Delay for Cancellation  Figure 44. Cross-correlation at the Chosen Cancellation Angle  Simulation of the PM Array signal A simulation of the Barker-coded P M signal is shown to demonstrate beam-forming. The simulation of Golomb-coded P M signal transmission is not generated. Processed results for both types of phase-coded signals are included. W e begin by the simulation of a Barkercoded array.  67  Chapter IV. Phase Modulated Signal Array  In each of the following interference patterns, the amplitude of the wave is indicated by the level of brightness. Each individual figure is a snapshot of the transmitted signal at different times. The parameters are listed in the following table. The cancellation spacing for 180° is used.  Carrier Freq.  Spacing  Velocity  Tuning Ang.  Elements  Code  3000 Hz  0.14654m  1500m/s  45°  8  [1, 1,-1, 1, 1, 1, 1,-1]  Table 12. Simulation Parameters for a P M Array Movie  Shown below are 6 frames from one of the complementary Barker codes.  -4  3  -  2  -  1  0 x (meter)  (c)  1  2  3  4  -4  -3  -2  -1  0 x (meler)  (d)  1  2  3  4  Chapter IV. Phase Modulated Signal Array  x (meter)  x {meter)  (e)  (f)  Figure 45. Interference Pattern to show Beam-forming in a P M Array (a) Time (T)=0 msec (b) T=6.5e-3 msec (c) T=1.3e-3 msec (d) T=1.95e-3 msec (e) T=2.6e-3 msec (f) T=3.26e-3 msec The simulation clearly shows a energy beam emitting from the center of the array. It should be noted that the 1/  spatial attenuation factor is ignored in order to prevent the  high intensity near the center of the array from masking out the results. To obtain zero sidelobes along the tuning angle in order to determined the arrival-time, a second P M signal, with the code [1, 1,-1, 1,-1,-1 ,-1, 1], has to be transmitted. The two received signal are respectively match filtered. The match-filtered results are added to obtain the figure shown in Figure 46 below. Note that the signal is received at a 20m radius with the parameters of Table 12 for the simulation. Figure 47 shows the simulated correlation result for a Golombcoded P M array. The 29 symbol Golomb code in Table 11 is used with the parameters of Table 12 for the simulation. The signal is received at a 10 m radius rather that 20m because of the limitation imposed by the code length. Both figures use the cancellation spacing. The figures clearly show that the energy is focused at 45° and 315°. The eye-shaped figure in the center of both plots represents angular sidelobes. Because the cancellation spacing is used in the simulation, there are minimal sidelobes inside the eye-shaped boundary.  69  Chapter IV. Phase Modulated Signal Array  Figure 46. Processed Signal From Complementary Barker-coded P M signal  Figure 47. Processed Signal F r o m Golomb-coded P M Signal  The arrival-times are clearly marked in both Figure 46 and Figure 47. In is important to note that as these figures are simulated in an noise free environment, they are only different by a constant factor introduced by the different in peak level of 2L in the Barker-coded P M signal and L - l in Golomb-coded P M signal, where L is the length of the code.  Therefore,  considering the performance in term of processing requirements in the noise-free simulation, the Golomb-coded P M signal has an advantage over the Barker-coded P M signal.  Chapter V. Comparison of the Simulated Correlation Function Plots  70  V. Comparison of the Simulated Correlation Function Plots Methods to calculate the field pattern and the correlation function plots of the timedelayed array have been examined in previous chapters.  In this chapter, simulations of  correlation function plots for the different array settings are generated so that the performance can be compared.  The main lobe in these function plots has been defined by a threshold  approach in this thesis for comparing performance quantities such as the main lobe to sidelobe ratio.  A s the boundary of the main lobe has to be determined numerically, a  numerical comparison approach is chosen for all the quantities, instead of an analytic approach.  The effect of the two array parameters, element spacing and number of source elements, is now examined. The effect of the tuning angle is not studied in this chapter because, as in the narrow-band phase-delayed array, the correlation patterns of the timedelayed array for different tuning angles are very similar except where the peak occurs. The concept that the field pattern for a narrow-band array is a window of the underlying sine function still applies in the time-delayed array. However, the underlying function is not a sine and is signal dependent in the time-delayed array case. Other parameters such as bandwidth, duration and carrier frequency are also not examined in this chapter in order to maintain the fairness of the comparison for reasons listed below. Although the duration have been shown to be related to the envelope of the auto-correlation of the F M signal, hence affecting the correlation function of the F M array, the intrinsic envelope of the autocorrelation of the P M signal does not depend on the duration of the P M signal. O n the other hand, the carrier frequency of the P M signal expands or compresses the envelope of the autocorrelation of the P M signal while the carrier frequency of the F M signal has no effect on the envelope of the F M auto-correlaion provided the chirp rate and the duration are kept constant.  Chapter V. Comparison of the Simulated Correlation Function Plots  71  Thus, the duration and carrier frequency for both signals must be matched for a fair comparison. Since the bandwidth of the P M signal can only be increased by changing the number of cycles that the modulation code modulates, varying the bandwidth of the P M signal changes the modulation scheme and different processing is required to generate the correlation function plots. A fair comparison between the two types of signals is not possible if different processing schemes are used for P M signals w i t h different bandwidths. T o ensure the fairness of this comparison, the duration of the two types of signals are also set to be equal. Furthermore, the bandwidth to carrier frequency ratio is set to one and the same type of processing is applied to both types of signals.  Four performance measurements are computed for each of the simulated correlation function for the two types of signals, F M and P M , for comparison. First, a 3 dB angle for each function is computed to show that the beam-width is directly related to element spacing. Second, the main lobe to sidelobe ratio is computed to measure the efficiency. However, it w i l l be shown that the ratio decreases with the number of sources used in both the P M and F M arrays.  Third, it w i l l be shown that the amount of sidelobe energy beyond the third  sidelobe is minimized i f the cancellation spacing is used for the P M array. Finally, the timedependent correlation gain w i l l be computed.  Equivalence of the Correlation Function for the Barker-coded and Golombcoded PM signals In the last two chapters, time-delayed arrays utilizing the linear F M signal, the complementary Barker P M and Golomb-coded pseudo-random  P M signals have  been  examined in detail. It has been shown that the processed signal of the time-delayed array can be used to generate a correlation function whose peak location yields an estimate of the arrival-time of the signal. Both the complementary Barker-coded signal and the Golombcoded signal generate correlation functions with perfect sidelobe cancellation as shown in Figure 46 and Figure 47. The Golomb code suffers from a minor S N R reduction due to the  Chapter V. Comparison of the Simulated Correlation Function Plots  mismatch between the transmitting and the filtering signals. decreases as the length of the code increases (Golomb, 1992).  72  The amount of signal lost However, as this thesis is  considering the correlation function plots produced in a noise-free environment, there is no meaning for this reduction in signal level. Because the two types of P M signal produce the same zero sidelobes correlation after processing, the correlation function plots generated from the time-delayed array with the complementary Barker code array and the G o l o m b code P M array have the exact same shape.  Therefore, even though that the Barker signal needs  two separate transmissions to achieve the cancellation while the Golomb signal needs only one, performance measures for the two signal types yield equivalent results. These are the 3dB bandwidth, main lobe to sidelobe ratio, level of interference and the correlation gain. Therefore, the following section only compares the correlation functions obtained from the linear F M signal and that of the complementary Barker code, as the two P M correlation function plots are considered to be equivalent.  Parameter Selection for the Correlation Function Comparison The parameters for the simulated correlations must be chosen in order to obtain a fair comparison between the F M signal and the P M signal. A s has been mentioned in Chapter IV, the carrier frequency to bandwidth ratio for the P M modulation scheme is 1. The same ratio is set for the F M signal. This is very important for the F M signal because of the dependence duration.  of the correlation function on the carrier frequency, bandwidth and signal The carrier frequencies for both signals are chosen to be 3000 H z and the  bandwidth of both signals are chosen to be 3000 H z . In the F M case, the signal is sweeping from 1500 H z to 4500 H z . The duration for both signals are chosen to be 9.666 ms which is 29 periods for the P M signal. This number is chosen because of the existence of a Golomb code in this length. However the mismatch lost for the Golomb code signal is ignored and it should be noted that the correlation pattern from Golomb code array, other that a multiplicative factor, is equal to that generated by the Barker-coded P M signal. The velocity of the signal in the simulation assumed to be 1500m/s, which is the speed of sound under  Chapter V. Comparison of the Simulated Correlation Function Plots  73  water. The tuning angle has been chosen as 45° and the cancellation angle has been chosen as 180°.  To simulate the correlation function plots, the tuning delay and geometric delays are computed from equation ( 1 ) in Chapter H However, the component of the geometric delay that corresponds to outward travel of the wave has been ignored This effectively shifts the peak of correlation function plot to t'=0 and the far-field pattern is obtained. That is, we are using retarded time, which is zero right at the wave-front.  Since correlation is a linear  function, the correlation of the sum of the transmitted signals equal the sum of the correlation of each signal. A s a result, the correlation function plots can be simulated by summing the appropriately-delayed absolute valued correlation functions for the F M and P M in ( 43 ) and ( 7 0 ) in Chapter HI and I V . The absolute value is required so that the average volume underneath the correlation function plots can be evaluated in order to compute the correlation gain. The functional representation of the correlation function is necessary in order to allow for the adaptive integration of the functions to reduce integration error in computing the performance parameters.  Because of the symmetry of the correlation function plots, all the  performance measures are computed for 1/4 of the angle time domain. That is, all correlation function plots generated have angles ranging from 0° to 180° and time greater than zero.  For each of the two signal types, two sets of correlation function simulations are generated for a tuning angle of 45°. The first set consists of 5 simulations which has eight sources and an element spacing that runs from 0.1 X to 0.5 X , in steps of 0.1 A, . The second c  c  c  set of 5 simulations has a constant spacing of 0.29 X , which is the cancellation spacing for c  180°, and has four to twelve sources in steps of two. Figure 48 shows the correlation results for the F M array simulation with a fixed number of sources with variable array-element spacing. Figure 49 is the processed result of the F M array simulation with a fixed spacing and a variable number of sources.  Chapter V. Comparison of the Simulated Correlation Function Plots  (c)  74  (d)  (e) Figure 48. Correlation Function Plot of an F M Array with Eight Sources and Variable Element Spacing (a) with 0.1 A Spacing (b) with 0.2 A Spacing (c) with 0.3 A Spacing (d) with 0.4 A Spacing (e) with 0.5 A Spacing c  c  c  c  c  7  Chapter V. Comparison of the Simulated Correlation Function Plots  75  (e) Figure 49. Correlation Function Plot of an F M Array with a Fixed Cancellation Spacing of 0.29A and a Variable Number of Sources (a) with Four Sources (b) with Six Sources (c) with Eight Sources (d) with Ten Sources (e) with Twelve Sources t  Chapter V. Comparison of the Simulated Correlation Function Plots  76  The sidelobes of the correlation function plots for the F M signal actually extend beyond the boundary of the figures in the time axis. The correlation function plots included are truncated so the leading part of the correlation function plot can be shown more clearly. Figure 48 (c) is a simulation of eight sources with an element spacing of 0.3 X which is very c  close to the 0.29 X of Figure 49 (c) in which the cancellation angle is 180°. c  Therefore,  Figure 48 (c) has very minimal sidelobes at off-tuning angles. If the cancellation angle is set to 122.88° and 107.03°, the corresponding spacing computed is 0.4 and 0.5 X , respectively. c  Figure 48 (d) and Figure 48 (e) are simulated with such spacings and it is clearly visible that there are minimal sidelobes at those angles. From the examination of Figure 49, it is obvious that the cancellation spacing provides a fair compromise between beam-width and sidelobes at off-tuning angles. Figure 49 shows that the amplitudes of the peaks at the tuning angle in the figures increases linearly as the number of sources in the array increases.  Figure 50 presents the correlation results for the P M array simulation with a fixed number of sources and a variable spacing. Figure 51 is the processed results of the P M array simulation with a fixed spacing and a varying number of sources.  Chapter V. Comparison of the Simulated Correlation Function Plots  (a)  (b)  (c)  (d)  77  (e) Figure 50. Correlation Function Plot of a P M Array with Eight Sources and a Variable Element Spacing (a) with 0.1 A Spacing (b) with 0.2 A Spacing (c) with 0.3 X Spacing (d) with 0.4 X Spacing (e) with 0.5 X Spacing c  c  c  c  c  Chapter V. Comparison of the Simulated Correlation Function Plots  (e) Figure 51. Correlation Function Plot of a P M Array with Fixed Cancellation Spacing of 0.29X and a Variable Number of Sources (a) with Four Sources (b) with Six Sources (c) with Eight Sources (d) with Ten Sources (e)with Twelve Sources C  78  Chapter V. Comparison of the Simulated Correlation Function Plots  79  Again, the P M correlation function plots exhibit behavior similar to the F M results in terms of the cancellation behavior.  Figure 50 (c) is a simulation of eight sources with an  element spacing of 0.3 k which is very close to the 0.29 X of Figure 51 (c) in which the c  c  cancellation angle is 180°. Therefore, Figure 50 (c) has very minimal sidelobes at the offtuning angles.  If the cancellation angle is set to 122.88°  and 107.03°, the corresponding  spacings are 0.4 and 0.5 X . Figure 50 (d) and Figure 50 (e) are simulated with such spacing c  and it is clearly visible that there are minimal sidelobes at those angles. F r o m an examination of Figure 51, it is obvious that the cancellation spacing again provides a fair compromise between beam-width and sidelobes at off-tuning angles. Figure 51 shows that the amplitudes of peaks at the tuning angle in the figures increase linearly as the number of sources in the array increases.  Comparison Performance  of the  arrival-time estimation  of the  wide-band  array is solely  determined by the performance of its correlation function plots. F r o m the visual comparison of the correlation function plots, it is clear that the P M correlation function plots are much cleaner than the F M .  In both cases, the beam-width decreases when the spacing increases,  with additional sidelobes appearing.  In the following section, the performances  of the  simulated correlation function plot are computed and compared in terms of the beam-width, beam efficiency, sidelobe level and correlation gain.  Figure 52 and Figure 53 show the 3 dB beam-width in angle at the fixed geometrical arrival-time of the 3-dimensional correlation function plots generated in the section above. Since the behavior of the cross-correlation function plot at the tuning angle is equivalent to the auto-correlation of the linear F M or Barker-coded P M signal, the 3 dB beam-width in the time axis is not included here.  Chapter V. Comparison of the Simulated Correlation Function Plots  Element Spacing  Figure 52. 3-dB Beam-width as a Function of Element Spacing  80  Number of Source  Figure 53. 3-dB Beam-Width as a Function of the Number of Sources in an Array  Figure 52 and Figure 53 show that both arrays perform very similarly in terms of the beam-width. To understand why the P M array has a wider 3-dB beam width, we recall that the auto-correlation of the F M signal is a product of the carrier and a envelope function, which is defined in ( 43 ). The auto-correlation of the P M signal is a scaled auto-correlation of a period of the carrier, which is computed in ( 7 0 ) .  It can be easily shown that for the  same carrier frequency, the auto-correlation of the P M signal in ( 70 ) has a wider 3-dB width the F M one in ( 4 3 ). Because, the correlation function plots for the F M and P M arrays are composed fo the time-shifted auto-correlation function in ( 4 3 ) and ( 7 0 ) , the wider autocorrelation 3-dB width in the P M signal results in a wider 3-dB beam width in P M array. A s mentioned in Chapter n, for a particular tuning angle y/, there are 2 beams occurring at y/ and  -y/. Therefore, it is possible for the 2 beams to joint up and appear as a single beam i f each of the two beams do not decay fast enough across the receiver angles.  This is the case in  Figure 48 (a), Figure 49 (a), Figure 50 (a), and Figure 50 (b), Figure 51 (a). A s a result, the beam width appears much wider in the measurement, which is the case for the leading portion of both curves in Figure 52 and Figure 53. Both figures show a gradual drop in the 3-dB beam-width. This result is expected as the level of focusing should increase when the  81  Chapter V. Comparison of the Simulated Correlation Function Plots  spacing of the source elements are increased or when the number of sources used in the transmission is increased.  Analogous to the beam efficiency of the radiation plot in a narrow-band array, the efficiency of the correlation function plot is measured in terms of the main lobe to sidelobe ratio of the correlation functions. However, there is a problem for the definition of the main lobe.  Unlike the narrow-band array where the main lobe and sidelobes are separated  definitely by zero crossings or nulls, the correlation function plots of the wide-band array do not behave like this, as nulls do not exist at a constant angle. M a n y approaches have been tested to define the lobe boundary and a threshold approach has been chosen. The threshold is defined by the maximum value across all angles at the time at t '= l/4f for each correlation c  function plot, where, f is the carrier frequency. c  The time at t' = l / 4 / correspond to the first c  zero crossing of the correlation function at the tuning angle for an F M array.  Such a  threshold ensures that there is a boundary close to the main lobe. Figure 54 and Figure 55 show the main lobe to sidelobe ratio.  i  4  —  Mainlobe to Sidelobe ratio of PM  —  Mainlobe to Sidelobe ratio of FM  0.1  0.15  0.2  0.25 0.3 0.35 Element Spacing  L  Mainlobe to Sidelobe ratio of PM Mainlobe to Sidelobe ratio of FM  0.4  0.45  i  0.5  Figure 54. M a i n lobe to Sidelobe Ratio as a Function of Element Spacing ( Eight Sources )  i  Number of Source  Figure 55. M a i n lobe to Sidelobe Ratio as a Function of the Number of Sources  The efficiency decreases rapidly as the element spacing increases, while adding to the number of source elements has little effect on the efficiency for both signals. A s shown in  Chapter V. Comparison of the Simulated Correlation Function Plots  82  the figures, the efficiency of the P M array is almost triple that of the F M array, clearly showing superiority of the P M array.  Since most of the volume under the correlation function plot is included in the main lobe and the first sidelobes on each side of the time axis, this correlation segment is useful in determining the arrival-time of the signal from the array, and is defined to be the "main cloud" of the plot. The rest of the volume is considered to be unwanted interference.  The  boundary of "main cloud" is not clear as there is no zero-crossing point at some angle. For the reason of convenient measurement, a rectangular bound for the "main cloud" is defined. The boundaries along time axis are t=0, t=l/f , and the boundaries along the angle axis are c  defined by the two lines where the beam width decays by 1 Neper from the peak at t '= 0, as shown in Figure 56 below.  Figure 56. Boundary Definition of the "Main Cloud"  To show the effect of the cancellation spacing, the volume underneath the correlation function plot outside the "main cloud", which represents the level of the interference, is plotted in the following figures.  unwanted  83  Chapter V. Comparison of the Simulated Correlation Function Plots  Element Spacing (lambda)  Number of Source  Figure 57. Interference for the Array as a Function of Element Spacing with Eight Sources  Figure 58. Interference for the Array as a Function of Source Element for 0.29 A Spacing c  Since the cancellation spacing for the simulation is approximately 0.29 A , Figure 57 c  clearly shows that the optimal spacing shown in ( 46 ) provides for minimal interference for the P M case. For the F M case, the minimum does not occur at the cancellation spacing at 0.29 A . To understand why, let us examine the cancellation spacing i n detail. c  The  cancellation spacing is obtaining by adjusting the time delay between the signals making up the correlation function plot.  The peak of a signal is aligned to the trough of an adjacent  signal to produce a lower overall sidelobe. However, unlike the correlation of the P M signal, the correlation of the F M signal is much longer. Hence, aligning the peak and trough is not good enough as the contribution from the rest of the signal is not considered. However, the graph clearly shows that the delay produced by the cancellation spacing is a very good first approximation. general.  Again, the P M array is superior as it is has a lower interference level in  It should be noted that the interference level of the P M array signal seems to be  quite insensitive to the number of sources utilized in the array.  Finally, the correlation directivity of the F M and P M arrays can be defined in a similar fashion as for the narrow-band array from the correlation function plots denoted by \R \ which are shown in Figure 48 to Figure 51. dt  The normalized correlation function  Chapter V. Comparison of the Simulated Correlation Function Plots  84  \Rn,et(9,t)\ is obtained by dividing the angle and time-dependent correlation function \Rg,(6,f)\ by is maximum value, l/?&(0,r) l. Therefore we have max  I/?  (0,^)1=  \RA6,t)\ ft  \R {e,t) J a  .  (82)  m  The directivity D of the array is given by the ratio of the peak correlation value to the average value of the correlation function plot over all times and angles. The average volume per unit time and angle of the correlation function plot can be founded by  '7K  vol  = (1/2*17-)J  avg  \\R {d,t)\dedt.  ( 83 )  m  00  Because of the time shift misalignment effect explained in Chapter TJ, the effective duration of the array would be different for each tuning angle and element spacing. However, for  simplicity, the transmitted  signal duration is used instead.  Then, the correlation  directivity is defined as  JRe,(e,t) j  D  m  _L  =  vol  °°  (y27tr)j j\R #(0,t)\dedt n  00  The correlation directivity for the simulations in Figure 48 to Figure 51 are generated according to ( 8 4 ) .  Figure 59 and Figure 60 below show the directivity as a function of  element spacing with eight sources and the directivity as a function of the number of sources with the cancellation spacing of 0.29 X . c  Chapter V. Comparison of the Simulated Correlation Function Plots  85  i—  : —  0.25 0.3 0.35 Source Separation (lambda)  10  Number of Sources  Figure 59. Correlation Directivity as a Function of Element Spacing with Eight Sources  PM  :  FM:  11  12  Figure 60. Correlation Directivity as a Function of the Number of Sources with 0.29X Spacing c  A high level of directivity is obtained due to the signal processing applied to the signal. Therefore, comparing this directivity to the conventional directivity in a narrow-band array signal would not be fair. The maximum directivity for eight sources should occur at a source separation of about 0.40 X for both the F M and P M arrays instead of the cancellation spacing c  of 0.29 X . However, the cancellation spacing is a fairly good first approximation for finding c  the spacing for maximum gain. The maximum directivity seems to be a linear function of the number of sources used.  For a time-dependent correlation gain of the array, the numerator, \Re (6,i) \, of the t  max  ( 8 4 ) is replaced with a time-dependent maximum function, \Rm,max(t)\, where \Rot,,nax(t)\ is local maximum of the normalized correlation function at each time across all angles. Then, ( 8 4 ) becomes  D(t):  \R,6t,  max  vol avg  (r)l  (85)  Chapter V. Comparison of the Simulated Correlation Function Plots  86  In ( 85 ) the time-dependent correlation directivity is computed by considering the maximum absolute value of the correlation at each time, for all angles. The quantity vol  avg  is the same  as that defined in ( 83 ). From the simulations presented in Figure 48 to Figure 51, the timedependent directivities are calculated from ( 85 ). The results are shown in Figure 61 below.  x  -  »  • 12 sources.FM  •- if  10 sources,FM  .A : — fl sources.FM  ft  :••••  6sources,FM  j  4 sources,FM  ;'••••>  1 V  VL  YK . If] li *, V fc  A  ^  _  Retarded Time  (b) I  -12 sources.PM  •0.5 wavelength.PM  •:.\ 'i :  —  0.4 w a v e l e n g t h . P M  - • - 0 . 3 wavelength.PM  : —  10 sources,PM  : —  8 sources,PM  ji -1'.  n *i  o  •T  =1500! 810  0.2 w a v e t e n g t h ; P M  V'  p  6 sources,PM  H  11 <'. ; 0.1 w a v e l e n g t h . P M  4 sources,PM  I  a  N * ^ ~ -  Retarded Time  Retarded Time  (d)  (c)  Figure 61. Time-Dependent Correlation Directivity (a) as a Function of Element Spacing with Eight Sources, ( F M ) (b) as a Function of the Number of Sources with 0.29 X spacing, ( F M ) (c) as Function of Element Spacing with Eight Sources, ( P M ) (d) as a Function of the Number of Sources with 0.29 X spacing, ( P M ) c  c  87  Chapter V. Comparison of the Simulated Correlation Function Plots  The directivity plot for the F M signal actually extends beyond what is being shown on the graph while the P M directivity plot drops to zero fairly quickly. It is for that reason that P M signal has a much lower average in ( 8 3 ) compared to the F M one. directivity for F M signal is much lower than that for the P M signal.  Hence, the  Since the local  maximum is picked at each time when the directivity plot is computed, the angle at which the maximum occurs might be different than the tuning angle. It is for that reason that a high directivity in the later part of the plot is not desirable. Therefore, the P M signal has a much better performance than the F M case because the directivity plot approaches zero rather quickly.  Other Considerations The computational and storage requirements for the 3 types of signals should also be compared.  The Golomb code is most efficient in term of computing and storage  requirements as it utilizes circular correlation processing.. The complementary Barker code is not as efficient because 2 separate processing steps are required to achieve the perfect sidelobe cancellation. disadvantages.  Finally it should be noted that P M signals suffer from some  For the Golomb-coded P M signal, because of the circular correlation  processing used, the range of detection is limited by the duration of the signal.  For the  Barker code P M sequence, two separate transmissions with a transmission gap are required. Furthermore, in order to achieve perfect sidelobe cancellation, the transmission gap must be greater than the time for a return trip of the transmitted signal at the maximum range. Such a requirement might be unacceptable for some applications. It should also be noted that the P M array has a leakage of energy in transmission as shown in Figure 29 where as the F M array does not suffer from this problem i f enough sources are used. However, this leakage does not result in worse sidelobe performance.  In fact, the P M array out-performs the F M  array in terms of sidelobe performance. Therefore, the P M array has an advantage when the energy leakage does not cause any application-specific side-effects.  Chapter VI. Array  Experiment  88  VI. Array Experiment In Chapters HI and I V , we have examined some of the signals that can be used in the phased-array for travel-time measurement.  This chapter describes the array experiment with  non-ideal radiating elements without an extensive correction algorithm. It is important to test the array under such conditions because electromechanical transducers in most applications are less than ideal devices. T w o good examples are the submersible sonar element and the vibrating truck used in o i l exploration. These transducers are difficult to adjust and are nonlinear to a certain degree.  If it could be shown that the array works with such non-ideal  radiating elements, the number of applications possible for the array would be greatly increased. Other expected sources of error for the array include, sampling time and the AID, D / A conversion error, mismatch between the radiating or receiving elements. In addition, the multi-channel output amplifier and receiver pre-amplifier may exhibit gain or phase error. These errors are typical in real operating systems. W i t h these possible sources of error, an experiment is required to verify the practicality of the array system.  Once the simulated  response of the array is verified by the experimental setup, the setup can then be calibrated to serve as a test-bed for a new signal generation scheme or serve as a verification tool for more complex simulations. Such simulations are essential to application development such as the array response of an inhomogeneous medium.  The behavior of the array is tested experimentally using acoustic speakers, which are typical electro-mechanical transducers.  The signals are generated digitally then converted  and transmitted by audio speakers. The response of the array is recorded simultaneously at seven different angles due to the hardware limitations at the required sampling speed. Recorded signals are then processed and compared with simulated results. In the following sections, the components of the experiment, parameters of the signals and processing involved are presented. These are followed by the results of the experiment.  89  Chapter VI. Array Experiment  Components of Experiment Three are 3 major components in the experimental setup. The first component of the setup is a 486 computer.  The 486 computer is mainly responsible for data generation and  processing. The second component consists of a 386 computer data acquisition system. The third component of the experiment consists of the external devices attached to the sampling computer.  The block diagram detailing the interconnection of the components in the  experimental configuration is shown in Figure 62 below.  The role of each component is  explained in more detail in the section following the diagram.  Processing Computer Ethernet Intel 80486 C P U  External Hardware  Sampling Computer PC EISA BUS Intel 80386 C P U  T o 4 Channel Output P o w e r A m p .  T M S 3 2 0 C 3 0 D S P Card 16 Channel Output C a r d 32 Channel Input C a r d  U  Recording Structure 4 T o 8 Channel M i c r o p h o n e P r e - A m p .  D S P L I N K 32bit B U S  Figure 62. B l o c k Diagram for the Experimental Setup  The 486 computer is responsible for signal data generation, recorded signal processing and file-serving a data drive mapped to the 386 computer. Hence, data collected by the 386 computer can be transferred directly to the 486 computer.  The 386 sampling computer is the host for the TMS320C30-based D S P system. A n output card and a sampling card are connected to the D S P system board via a proprietary 32bit D S P - l i n k bus. The four array signals are generated by the output board and the response of the array is recorded by the sampling card. The sampling rate is set at 50 p:sec, which is the sampling limit for concurrent four channel D \ A conversion and seven channel A \ D  Chapter  VI. Array  90  Experiment  conversion. The D S P card system also provides analog filtering before the A \ D conversion to avoid aliasing in sampling and after the D \ A conversion to smooth out sharp conversion edges.  External components include seven omni-directional condenser microphones and four units of an 8-ohm 0.25Watt speaker, the four-channel speaker amplifier, the eight-channel microphone pre-amplifier and the recording structure. Circuit diagrams for the two customdesigned single power supply amplifiers are included in the appendix.  The four-channel  output amplifier takes the output of the D \ A card of ± 8.192 Volts and converts the signal to a ± 4 Volts signal. The amplifier is required to provide enough current and individual gain control for the speakers.  To avoid cross-talk between the different microphone input  channels, each of the eight channels of the microphone pre-amplifier is isolated with a 12 V o l t regulator (Motorola part number T7812CT).  This is particularly important as the  condenser microphones required a D C bias. The D C bias requirement makes the amplifier particularly susceptible to cross-talk between channels, as any unwanted signal can leak through the bias resistor i f the power supplied to each amplifier is not isolated properly. T w o levels of gain control are provided with each channel of the microphone pre-amplifier. The overall gain can be controlled by an adjustable potentiometer or by replacing the gaincontrolling resistor to create signal levels of ±2.5 Volts from the 100 m i l l i V o l t input signals. The potentiometers are necessary for compensating the microphone output-levels as they differ even i f each microphone is supplied with the same bias current.  The removable  resistors are used for quick adjustment of the overall gain.  Hardware calibration is required, as the microphones and speakes.  amplitude response differs  for  the  Furthermore, the D C offset for the different input channels,  inherent for A \ D conversion, should be removed by the software before signal processing is applied. The D C offset levels for each channel can be determined by taking the average of  Chapter VI. Array Experiment  91  the recorded signals for each channel with the microphones replaced by 1 KQ. terminating resistors.  In order to record and analyze the response of the time-delayed phased-array without multipath interference, a structure, as shown in Figure 63, is created. The structure consists of a semi-circular arch of inner radius 3'8" raised by wooden doweling to a height of 3'6" on a 4' by 8' sheet o f plywood.  Reflection Distance  •  Receivers  Figure 63. Recording Structure for the Experiment  The condenser microphones are placed on top of the arch at arbitrary angular intervals to record the sound wave generated by the acoustic array.  The source array is placed at the  center of the semi-circular arch without coupling to the base sheet. The travelling distance from the array to any one of the receivers through reflection from the base is determined by the method of images to be 7.9 feet. The reflection distance is shown i n Figure 63. This distance is the primary limitation before multipath interference occurs. duration of a signal without interference is determined by  The maximum  Chapter VI. Array Experiment  92  Lenght of reflective path - radius of arch velocity of sound i n air 7.9 ft - 3.666ft  (86)  in air  Assuming the velocity of a sound wave in air is 1000 ft per second, the maximum signal length is approximately 4 ms. T o ensure that the reflected signal from the objects placed next to the recording structure do not arrive within the 4 ms recording period, the structure should be placed i n an area with 2 feet of space in the front and on both sides and an empty space of at least 3.5 feet at the back as shown in Figure 64 below :  2 feet  Figure 64. Space Required by the Recording Structure  Experimental Considerations and Parameters The carrier frequency of all the signals to be tested is set to 3000 H z and the bandwidth of each signal is also set to 3000 H z . The effects of sampling rate, characteristics of the speaker and the microphone and the receiver distance from the array i n terms of the wavelength of the carrier, X , have been considered when the frequencies are selected. T o c  record a data sample with reasonable  frequency  resolution, over-sampling is not an  uncommon practice. A s the highest frequency of the experiment is 4.5 k H z , the array signal is being sampled at a rate of 20 k H z . Thus, the input signals have an over-sampling ratio of about two at the highest frequency. Also with this frequency setting, the receiver is at about  Chapter VI. Array Experiment  93  ten wavelengths away from the array which ensures that the far-field characteristic is observed. Although a higher carrier frequency effectively increases the distance, i n terms of X , between the array and the receiver and hence the signal recorded can better approximate C  the far field behavior of the array, the frequency response o f the speaker and the sampling rate limit the experimental carrier frequency. The element separation of the array is set to be 6 c m which is 0.5AXC or about 0.8 of the wavelength at the highest frequency.  This is the  lowest possible distance between the elements, as the diameter of the speaker is 5.7 cm. The microphone receivers are placed at 30°, 4 5 ° , 60°, 90°, 120°, 135° and 150° as shown i n Figure 63. Because of the radiation characteristics of the speakers, the signal level is very low at 0° and 180°. The low signal level results in an extremely low S N R and recording at those two angles is not feasible. Therefore, instead o f 30° equal angular placement o f the receivers, the placement scheme above is selected.  A l l three types of signals described in Chapter HI and I V are tested in the experiment. Each type of signal is tested with two different tuning angles, which are 90° and 135°. The chirp signal is transmitted from 1500 H z to 4500 H z . The code for the Barker-coded P M signal and the Golomb-coded P M signal are listed as follows :  Complementary P M code 1  1,  1,-1,  Complementary P M code 2  1,  1,-1,  G o l o m b pseudo N o i s e T x code  1,  1,-1,  1,  1  -1,-1,-1,-1,  1  1,-1,  1  1,-1,  1,  1  -1,-1,-1,-1,  1  1,-1,  1  G o l o m b pseudo N o i s e R x code  -1,  1,  1  1,-1  1,  1,-1  -1,-1,  1  Table 13. The Modulation Codes Used in the Experiment  For the chirp signal and the complementary P M signal, 600 data points per channel are collected at 50 (xsec sampling. For the Golomb pseudo-random array experiment, the sampling rate has to be set in such a way that an integer number of samples defines the signal duration. Since there are 13 periods of a sinusoid at 3000 H z , the sampling frequency has to  Chapter VI. Array  94  Experiment  be adjusted to 49.8 (isec from 50 (isec so that there is an integer number of samples for the Golomb-coded P M signal. A n integer number of samples is required for the circularization of the input signals.  Received Signal Processing Because of the transducer characteristics, the received signal is not simply a scaled version of the transmitted signal. For example, a typical transmitted chirp and a received chirp are shown in Figure 65 and Figure 66.  Sample  Sample  Figure 65. Typical Transmitted Chirp  Figure 66. Typical Received Chirp  Assuming the system is linear, the measured response can be expressed as the convolution of the transmitted signal and the system transfer function.  The equation is  expressed as follows in the time domain as  (  •  8 7  )  In ( 87 ) s  is the measured response, s is the system transfer function, t is the transmitted  signal and  denotes convolution. In order to estimate the transmitted signal, s , from the  m  t  s  t  measured response, s , digital deconvolution is applied. The approximated inverse system m  transfer function, S ~ , required for the deconvolution is obtained by x  Chapter VI. Array  Experiment  95  (88)  In ( 88 ) S i and T m  S!  are the time-corrected, frequency domain versions of the measured  impulse response and transmitted impulse, respectively.  The estimate of the signals are  denoted by a ~ below. Since the experimental structure shown in Figure 63 is only capable of recording a signal free of multipath interference for about 4.0 msec after the initial arrival of the transmitted impulse, only the section free of multipath interference is used for the inverse filter calculation. The frequency domain estimate, T , of the transmitted signal, t , S  s  from the array is therefore given by  Ts  =S  m  -i  •S  t  = T -S,-S;\  (89)  S  In ( 8 9 ) S , T , and S are the transforms from s , t and s in ( 8 7 ). m  S  t  m  s  t  Therefore, digital  deconvolution is an additional processing step required for all of the three types of signals used in the experiment.  This of course is followed by correlation processing. If a single  deconvolution operator is used for all the different channels, special care must be used to scale the signal samples recorded at different angles to account for the radiation amplitude differences at different angles.  For each of the recorded array signals, the estimated transmitted signal T , is X  correlated with its zero-lag reference signal and compared with the simulated result. For the chirp signal, deconvolution and auto-correlation can be applied together in the frequency domain before the inverse transform. Thus we obtain  mchirp• S , - ' - c o n j ( C r e / ) .  (90)  Chapter VI. Array  In ( 90 ) C  res  Experiment  96  is the estimated transmitted chirp, S i mcn  rp  is the measured chirp and C f  is the  re  zero-lag reference chirp signal i n frequency domain. A s the transforms of the reference and deconvolution filters are stored i n the signal processor, the time-domain recorded chirp response,  s hri , mc  P  is transformed,  multiplied with the stored deconvolution and auto-  correlation filter and then inverse transformed.  Therefore, only 1 transform and 1 inverse  transform is required to obtain the time domain estimated response c . The implementation res  of the processing is shown below. W e note that zero padding is necessary for computing the F F T o f the recorded chirp and its reference to avoid time-aliasing i n the aperiodic crosscorrelation. Therefore, c  res  is given by  c„ = ifft(fft(zeropad(s  mchirp  )) • conj(C )•£,-').  ( 91)  re/  For the Barker-coded P M signal, instead of applying the deconvolution directly to each of the two complementary signals, the processing can be simplified by summing the two correlated complementary Barker signal before applying the deconvolution, as shown i n the equation below. Thus, the estimated response B  ns  B =(s  -conj(5 ) + S  c  m  r  In ( 9 2 ) S  m B a r k e r  e  s  and S  \  ref  mBarker  J  v  J  re  '  mBarker  (92)  -conj(B )) • S,' . c  "I  ]  )  '  are the measured Barker signal and its complement i n the  m B a r k e r  frequency domain, B f and B  c  re  in frequency domain is given by  ref  are the zero-lag references for the Barker signal and its  complement i n the frequency domain. T o implement ( 92 ) by the F F T , the recorded Barker signals and its complement i n the time domain, denoted b y s  and s  m B a r k e r  transformed and cross-correlated with their respective reference signals, B  and B  c  ref  are stored in the computer.  mBarker  ref  , are  , which  The results are added before the deconvolution. Therefore, 2  Chapter VI. Array  separate transforms  97  Experiment  and  1 inverse transform  are required for the processing of the  complementary Barker signal as shown in ( 93 ). W e note that zero padding is necessary for computing the F F T of the recorded Barker signal, its complement and their references to avoid time-aliasing in the aperiodic cross-correlation. Thus, the correlation response, b , in res  the time domain is given by  b  res  = ifft((fft(zeropad(  W  e  r  ) ) • conj(5 ) + fft(zeropad(^ re/  For the Golomb pseudo-random  Barker  ) • conJCB',)) • S,"').  ( 93 )  signal, the three processing steps required are  deconvolution, circularization and circular cross-correlation. The steps are listed below :  g^ifftffftCzeropadC^)-^- )) 1  If=cir(£)  '  (94)  gZ = ifft(fft(gf ) - c o n j ( G ) ) re/  In ( 94 ) g  m  is the measured signal and g  is the estimate of the transmitted Golomb code  s  signal. The quantity g"  r  is the circularization result of g . s  Note that in the circularization  of g , it is cut into sections of length equal to the duration of the transmitted Golomb-coded x  signal stored in the computer. The sections are summed to obtain the periodic signal g" . r  In  order to limit the noise in the system, only the first 2 periods are used. This is done since the later periods contain deconvolution noise. computed by circular cross-correlation.  The quantity  g"  r e s  is the estimated response  W e note that zero-padding is not necessary for  computing g"J , as circular cross-correlation is required. The quantity G f is the transform of s  re  the P M filter signal modulated by the Golomb filter code without zero-padding. Because of the circularization required, the aperiodic deconvolution must be done first. This is followed by period cross-correlation.  A s a result, two sets of forward and inverse transforms  required to produce the response for the Golomb-coded signal.  are  Chapter VI. Array Experiment  98  Results Experiments are performed for the three different signals : linear F M signal, complementary Barker-coded and Golomb-coded P M signal for the parameters discussed in the earlier section in page 92. The processed results are shown together with the simulations in the following figures in the later part of this section. The experimental results show a little distortion and oscillation after the arrival of the main energy denoted by the peak.  Such  distortion and oscillation can be explained by the imperfect deconvolution operator.  Other  than that, the results match extremely well with the simulated plots. In most cases, even the signatures of the correlation match. Because the diameter of the speakers used is 0.52 X and c  the cancellation spacing is 0.29 X , an experiment using the cancellation spacing could not be c  conducted. Thus, the simulation and experiment were performed at a spacing of 0.54 X , with c  X being the wavelength of the carrier. The good match between the experimental and the c  simulated results for other spacings used in the experiment imply that the cancellation spacing w i l l work as shown in the simulations in Figure 49 and Figure 51 i n Chapter V .  From the experiment, it is found that an individual deconvolution operator for each channel is not required. The deconvolution operator generated with data recorded from the middle channel at 90° works for all the other channels. This is possibly due to the radiation characteristics of the microphone and speaker used. A s the main concern o f this thesis is not the response of the transducers, no further investigation of this was conducted. However, it is noted that the response from the middle channel has a slightly wider bandwidth. It is also observed that the correlation signature match is better in the two speaker source experiment. The results of the two-source experiments are not included because they show the same characteristics as the four-source experiment except for a lower oscillation amplitude after the peak. The better match for the two-source experiment can be attributed to a larger source of error in the four-source experiment.  Possible errors include source placement error and  Chapter VI. Array Experiment  99  response error as the speakers can only be placed with an error of one millimeter. Furthermore, the responses of speakers used were not calibrated.  Figure 67 and Figure 68 show the results of the chirp experiment and the simulation for 90° tuning. Figure 69 and Figure 70 are the results for 135°. The little wavelet at the end of Figure 69 accounts for the reflected arrival from the base of the recording structure. Figure 71 and Figure 72 shows the results for the complementary  P M experiment and  simulation for 90°, respectively. Figure 73 and Figure 74 are the results for 135°. The results clearly show the zero sidelobe properties of the complementary P M signal i n the leading edge of the main correlation lobe, representing the arrival-time.  The oscillations at the trailing  edge are caused by the imperfect deconvolution. The complementary P M results of Figure 71 and Figure 73 clearly show the advantage over the chirp results i n Figure 67 and Figure 69. The advantage should be more visible i f the cancellation spacing is deployed. reflection from the base of the recording structure can be easily identified.  Again, the  Figure 75 and  Figure 76 are experimental and simulation results for the array using the Golomb pseudorandom code for the tuning angle of 90°. Figure 77 and Figure 78 are the results using the same code for 135° tuning.  The results show a lower amplitude when compared with the  complementary P M code because of the mismatch between transmitted code and filter code and a shorter total transmitting duration.  For the Barker-coded signals, two sequences of  eight digits are transmitted while the Golomb code utilizes a single sequence o f thirteen digits. Even with the lower transmitted energy and S N R loss due to the mismatch between the transmit and filter signals, the Golomb code does not suffer from extensive distortion and noise problems.  Again, the zero sidelobe property of the code is clearly shown i n the  experimental results.  However, because of the circular convolution used in processing the  signal, the reflection from the base board is masked out by the main arrival. Furthermore, the leading part of the correlation function plots from the Golomb-coded signal experiment is more noisy than the correlation function plots from the other signals. correlation function plot is actually a periodic signal.  This is because the  Noise introduced by the imperfect  Chapter VI. Array Experiment  100  deconvolution wraps around to the front of the correlation function plot. Finally, it is noted that the Golomb-coded P M signal experimental result for 135° tuning appears better than that of 90°. A s the shape of the noise at the leading part of the plot appears quite similar at different receiving angles and we have used only one deconvolution function all the receiver angles, it is suspected that the noise is caused by the imperfect deconvolution function. Since it is not possible to obtain a perfect deconvolution function and using different deconvolution functions for different signals would invalidate the comparison of the experimental results, the noisy 90°-tuned Golomb-coded array result is included with all the other results obtained by using the same deconvolution function.  Chapter VI. Array Experiment  1000  1000  o  W W -  0 -1000  -1000 0  2  4  6  0  2  4  6  x 10  x 10  chirp response for channel 6(45deg)  chirp response for channel 2(135deg)  1000  1000  0  0  -1000  -1000 0  2  4  0  6  2  4  6  x 10  x 10  chirp response for channel 5(60deg)  chirp response for channel 1 (150deg)  1000  1000  0  0  -1000  1000 0  2  4  6  0 x 10"  2  4  6 x 10  chirp response for channel 4(90deg) 1000 0 -1000 n  9  A  R  Figure 67. Experimental F M Array Response for 90° Tuning  Chapter VI. Array Experiment  102  Simulation at 30 deg  Simulation at 120 deg  100  100  0  0  -100  -100 0  AA A  . .  ,_  0 x 10"'  x 10'  Simulation at 45 deg 1  Simulation at 135 deg  1  100  100 - A /\  0  T^^V V V  " , . .  0  •.  •  V v v  :  -100  -100 0 x 10"'  x 10'  Simulation at 60 deg  Simulation at 150 deg I  p  1  1  1  100  100 0  . . -  y\ A A A  0  ..  A  A  -100  -100  0  0 x 10'  Figure 68. Simulation of the F M Array Response for 90° Tuning  x 10'  er VI. Array Experiment  chirp response for channel 3(120deg)  chirp response for channel 7(30deg) 2000  2000  -2000  -2000 x 10'  x 10'  chirp response for channel 6(45deg)  chirp response for channel 2(135deg)  2000  2000  -2000  -2000 x 10"'  x 10"'  chirp response for channel 5(60deg) 2000  chirp response for channel 1 (150deg) 2000 F  -2000  -2000 0  2  4  6  0  2  4  6  x 10"'  chirp response for channel 4(90deg) 2000  -2000 0  2  4  6 x 10'  Figure 69. Experimental F M Array Response for 135° Tuning  x 10"'  Chapter VI. Array Experiment  104  Simulation at 90 deg 1  1  >———-x A A /-—  0  2  4  6 x10"  3  Figure 70. Simulation of the F M Array Response for 135° Tuning  Chapter VI. Array Experiment  P M response for channel 7(30deg)  P M response for channel 3(120deg)  1000 0 -1000 0  2  4  6 x 10"'  x 10'  P M response for channel 2(135deg)  P M response for channel 6(45deg) 1000  1000  0  0  -1000  -1000 0  2  4  0  6  2  4  6 x 10'  x 10"'  P M response for channel 1(150deg)  P M response for channel 5(60deg) 1000  1000  0  0  -1000  -1000 0  2  4  6  0 x 10'  2  4  6 x 10'  P M response for channel 4(90deg) 1000 0 -1000 0  2  4  6 x 10"'  Figure 71. Experimental Complementary P M Array Response for 90° Tuning  Chapter VI. Array Experiment  Simulation at 120 deg  Simulation at 30 deg 200  200  0  0  V V  -200  -200 0  x 10'  x 10"'  Simulation at 135 deg  Simulation at 45 deg  1I  200  200  0  0  i  V  i  V  -200  -200  0  0  x 10'  x 10"'  Simulation at 60 deg  Simulation at 150 deg -1  200  200 0  V  r—  0  V  -200  -200  0  0 x 10"'  x 10'  Simulation at 90 deg 200 0 -200 0  2  4  6 x 10'  Figure 72. Simulation of the Complementary P M Array Response for 90° Tuning  Chapter VI. Array Experiment  P M response for channel 7(30deg) 1  1000 *>•—~  .  1  1  P M response for channel 3(120deg) 1  1000  ^-~^fyU^A/\^Ayv\AA«vv.—j"*v°v  n U  0  2  4  6  1  1 1/ ^:  -1000  -1000  1  0  2  4  6  x 10"'  x 10'  P M response for channel 6(45deg)  P M response for channel 2(135deg) 1000  1000  0 -1000  -1000 0  2  4  6  0  2  4  6  x 10'  x 10'  P M response for channel 1(150deg)  P M response for channel 5(60deg) 1000  1000  0  0  I  1  2  4  r-  -1000  -1000 0  2  4  6  0 x 10'  6 x 10'  P M response for channel 4(90deg) 1000 0 -1000 0  2  4  6 x 10'  Figure 73. Experimental Complementary P M Array Response for 135° Tuning  Chapter VI. Array Experiment  Simulation at 120 deg  Simulation at 30 deg 200  200  0  0 -200  -200 0  2  4  0  6  2  4  6 x 10'  x 10"  Simulation at 135 deg  Simulation at 45 deg 200  200  0  0 -200  -200 0  2  4  0  6  2  4  6 x 10"'  x 10'  Simulation at 150 deg  Simulation at 60 deg  1  200  200  0  0  1  1/ j  -200  -200 0  2  4  0  6 X 10"'  2  4  6 x 10'  Simulation at 90 deg 200 0 -200 0  2  4  6 x 10"'  Figure 74. Simulation of the Complementary P M Array Response for 135° Tuning  Chapter VI. Array Experiment  Figure 75. Experimental Golomb Code P M Array Response for 90° Tuning  110  Chapter VI. Array Experiment  Simulation at 30 deg  Simulation at 120 deg 100  100 0-100  -100  x 10"  x 10"  Simulation at 135 deg  Simulation at 45 deg 100  100  0  0  -100  -100  x 10'  x 10'  Simulation at 150 deg  Simulation at 60 deg 100  100  0 -100  -100  x 10"  x 10'  Simulation at 90 deg 100 0-100  x 10"  Figure 76. Simulation of the Golomb Code P M Array Response for 90° Tuning  Chapter VI. Array Experiment  pn response for channel 7(30deg) 500-  pn response for channel 3(120deg) 500  0-500  -500  x 10"'  x 10"'  pn response for channel 4(90deg) 500 0-500  x 10"'  Figure 77. Experimental Golomb Code P M Array Response for 135° Tuning  Chapter  VI. Array  Experiment  112  Simulation at 30 deg  Simulation at 120 deg  100  100  o  0  — < A  -100  -100 0  1  2  3  4  0  1  2  3  x 10"  4 x 10"  ;  Simulation at 45 deg  :  Simulation at 135 deg 100  100 0  0  VA A A / V  -100  -100 0  1  2  3  4  0  x 10"  100  0  0  -100  -100 2  3  3  4 :  Simulation at 150 deg  100  1  2  x 10"  Simulation at 60 deg  0  1  :  4  0  x 10"  ;  1  2  3  4 x 10"  :  Simulation at 90 deg —I  1  1  100 0-100 0  1  2  3  4 x 10"  ;  Figure 78. Simulation of the G o l o m b Code P M Array Response for 135° Tuning  Chapter VII. Conclusions and Future Work  113  VII. Conclusions and Future Work In this thesis, we have studied the behavior of wide-band time-delayed phased-arrays for the three types of signals:  1. Linear frequency modulated signals, 2. Phase modulated signal using the complementary Barker code, 3. Phase modulated signal using the Golomb pseudo-random binary sequence.  In Chapter n, the general behavior of the time-delayed phased array are examined. The tuning delay and the geometrical delay combine to make up the complete delay experienced at a receiver point. Such a delay depends on the tuning angle and the receiver angle.  Misalignment of the signal occurs at off-tuning angles as the delay is not zero.  Summing the finite duration signals from different sources makes up the interference pattern of the array. The interference pattern is decomposed into two separate parts. The essential part, carries most of the energy and the edge part which can be ignored in most applications.  In Chapter HI, the instantaneous frequency and phase of the F M signal is obtained by integrating the chirp-rate.  For a linear F M signal, the chirp-rate is a constant.  The  interference pattern of the linear F M signal can be obtained by summing the linear F M signal in ( 21 ) with the total delay experienced found in ( 5 ). The field pattern can be obtain by factoring out the F M reference signal from the interference pattern.  The result is shown in  ( 27 ) i f only the essential region is considered. It is possible for the field pattern to have multiple-peak leakage i f the following two conditions are met:  1. The exponential term in ( 27 ): exp(jak A ^, I 8) = 1 for all the possible k terms; 2  2  v  2. The term \ in equation ( 28 ) is such that I \ I > %.  Chapter VII. Conclusions and Future Work  114  The first condition is met i f the chirp-rate is low, a small number of sources are used and the ratio of element spacing to velocity is very small. The second condition is met i f the duration of the signal is long.  The edge-effect correction terms, for the leading edge and trailing edge can be added back to the interference pattern to obtain the complete interference pattern as shown in ( 36 ). The time-dependent directivity of the F M array can be obtained by dividing the maximum power at the time across all angles with the average power as shown in ( 3 7 ). The gain increases until the secondary peak begins to emerge.  The arrival-time of the chirped array  signal can be obtained by cross-correlating the received array signal with a zero-lag reference signal.  The sidelobe at the off-tuning angle can be reduced by applying the cancellation  spacing as described in ( 46 ). A n alternative tuning method which simultaneously starts all the elements of the array is made possible by modifying the initial frequency and phase of the signal fed to each element.  In Chapter I V , the interference pattern of the linear P M signal is obtained by summing the P M signal ( 52 ) with the total delay found in ( 5 ). The field pattern can be obtained by factoring out the P M reference signal from the interference pattern. The result is shown in ( 59 ) i f only the essential region is considered. The P M array suffers from energy leakage before correlation which would not improve even i f the number of sources used in the array increases. The complete field pattern can be obtained by adding the leading edge and trailing edge correction terms as shown in ( 66 ).  Chapter I V also examines the Barker code and the Golomb code. The Barker code has the property that the maximum sidelobe level from compression is 1/N, where N is the length of the code. A pair of complementary Barker codes of length 2", n>l can be generated from the 4 word Barker code to achieve zero sidelobes, i f the complementary code is aperiodically auto-correlated separately and added to the aperiodic correlation result of the  Chapter VII. Conclusions and Future Work  115  initial code. The P M signal modulated with such a code yields zero sidelobes i f the same kind of processing is applied.  The Golomb pseudo-random code can be easily generated  by considering the  quadratic residue and it does not suffer from the limitation of a code length of 2 . n  A  reference code can be generated by replacing the first code symbol by a negative one. A n offset is required to be added to the two codes so that the periodic cross-correlation of such codes is included in ( 7 6 ) (Golomb, 1992). The P M signal modulated with such a code is shown to have zero sidelobes i f it is periodically cross-correlated with its reference signal generated by the Golomb D C offset reference code. Because periodic correlation is used in the signal processing, the longest unambiguous range is limited by the length of the modulation code.  Because there is a mismatch between the transmitting code and the  reference code, the signal-to-noise ratio is diminished. The spacing for off-tuning sidelobe cancellation for the P M array modulated with both codes is shown to be equivalent to that of the linear F M array.  In Chapter V , the performance for the time-delayed array with different signals is compared.  The correlation function plots for the complementary Barker code array and  Golomb code P M array can be considered as equivalent.  However, the Golomb code P M  array has a lower signal to noise ratio because of the mismatch between the transmitted and reference signal. The correlation function plots of the P M array are generally much cleaner than those of the linear F M signal. The 3-dB band-width for the P M array is slightly higher than that of the F M array. In terms of the efficiency measured in main lobe to sidelobe ratio, the P M array performance is much better than that of the F M array. It is also shown that the cancellation spacing provide the minimum unwanted sidelobe i f the main lobe is defined to include the 1 lobe on both sides of the time axis and a drop to a level of 1/e in the angle axis. st  However, it is shown that, for the F M signal, the cancellation spacing does not provide the maximum correlation directivity defined as ( 84 ).  Chapter VII. Conclusions and Future Work  116  In Chapter V I , an experiment for a four-source array is conducted and the response is measured at 7 angles across the array. simulated results.  The signal is processed and compared with the  T w o tuning angles, 90° and 135° are examined for all three types of  signals for this array. In all cases, the experimental results match the simulations extremely well.  In most cases, even the signature of the experimental signal matches closely the  experimental results.  Future Directions This thesis has studied the fundamentals of time-delayed steering for a linear array of line sources and the waveforms suitable for travel-time estimation.  Different array-  structures, for example, a circular array and planar array, should be studied, as these structures process a symmetrical property which is very useful in certain applications. For a linear array, suitable weights that minimize both the correlation sidelobes along the tuning angle and sidelobes at off-tuning angles need to be developed.  Different signal and  processing techniques can be examined. In particular, the response of the array with a cubic chirp and the application of Hadamard processing for the P M signal modulated with D C offset Golomb code seem to be promising.  The reflected signal from the array merits  examination, especially when the target is not stationary and the reflected signal has a Doppler shift.  117  Bibliography Aldridge, D . F . (1992).  Mathematics of linear sweeps.  Canadian Journal of Exploration  Geophysics, vol 28, pp 62-68. (June 1992) Arora, K . and Arora, R. K . (1976). Matched-filter response to a linear F M signal transmitted through a phased array.  IEEE transactions on Aerospace and Electronic Systems,  A E S - 1 2 , 1 (Jan. 1976). Barker, R. H . (1953). Group sychronizing of binary digital systems. Communication Theory. Academic Press, N e w York, 1953, pp 273-287. Bhargava, V . K . , Haccoun, Matyas R. and Nuspl P. Digital Communications by Satellite, Modulation, Multiple Access and Coding. J. Wiley & Sons, N e w York, 1981, ch 9, pp 269-287. Birdsall, T . G . and Metzger, Jr., K . (1988a).  M-Sequence  Signal Tutorial.  Naval  Oceanographic Office Presentation. July 1988. Birdsall, T . G . and Metzger, Jr., K . (1988b).  Hadamard Processing of M-Swquence tutorial  examples. Naval Oceanographic Office Presentation. August 1988. Bracewell, Ronald N . The Fourier Transform and its Applications, 2  nd  Edition. M c G r a w -  H i l l , N e w York, 1978. Davis, Harry F. Fourier Series and Orthogonal Functions. A l l y n and Bacon, Boston, 1968. Golomb, Solomon W . , Gottesman, Stephen R. and Grieve, Philip G . (1992)  A Class of  Pseudonoise-Like Pulse Compression Codes. IEEE Transactions on Aerospace and Electronic Systems, 28, 2 (April. 1992).  118  Haller, Dennis R., and Lemon, David D . (1993). Sidescan Sonar Detection Performance with P R N Coded Signals. Ocean '93, pp I-237-I-242. Jain, A n i l K . Fundamentals of Digital Image Processing. Prentice H a l l , N e w Jersey, 1989, ch 5, pp 155-159. Knittel, B . H . (1974). Relation of radar range resolution and signal-to-noise ratio to phased array bandwidth.  IEEE transactions on antennas and Propagation, AP-22,3 ( M a y  1974). Kraus, John D . Electromagnetics. M c G r a w - H i l l , N e w York. Levanon, N . Radar Principles, J. Wiley & Sons, N e w York, 1988, ch.8, pp 161-162. Levy, S. and Oldenburg, D . W . (1982).  The Deconvolution of Phase-shifted Wavelets.  Geophysics, 41,9 (sept. 1982) Patel, M . R . and Arora, R. K . (1978). Array dispersion effects on Matched filter outpout for a linear F M signal. IEEE Transactions on Aerospace and Electronic Systems, A E S 14,4 (July 1978). Plumb, R . G . (1993). Matched Filter Response of a Linear Array with time-varying weights. IEEE Transactions on Aerospace and Electronic Systems, 29, 3 (July. 1993). Plumb, R . G . (1991).  Antenna array beam steering using time-varying weights.  IEEE  Transactions on Aerospace and Electronic Systems, 21, 6 (Nov. 1991). Proakis, John G .  Digital Communications. M c G r a w - H i l l , N e w York,  1983, ch 8,  pp 544-580. Rogers, J . D . , LaGrone, A . H . and Fowler, J. (1973). modulation system by phased arrays. Electronic Systems, A E S - 9 , 5 (Sept 1973).  Distortion generated i n anglue-  IEEE transactions on Aerospacce and  119  Schelkunoff, S. A . (1943). A Mathematical Theory of Linear Arrays. Bell System Technical Journal, 22,1 (January 1943) pp 81-107.  120  Appendix — Circuit Diagrams and Program codes This appendix contains some of the programs and circuit diagrams for amplifiers used in the thesis to generated results in the thesis.  The table below explain the function of each  program or circuit diagram included in the following sections.  Title :  Description :  Circuit Diagram  Power A m p . and Pre-Amp circuit diagram for the experiment.  chirpm.m  Matlab program to generate the movie for F M array.  pmm.m  Matlab program to generate the movie for P M array.  t2.c  Recording and Transmitting program running on the T M S D S P card.  tms.c  Library functions for the T M S D S P card.  pci.c  P C program to control and communicate with "t2.c".  fmda.m  Record data analysis program for F M signal.  fmanal.m  Program to compute and plot F M array simulation result.  cpmsnd.m  Program to compute the transmitting signal for complementary P M signal.  cpmda.m  Record data analysis program for complememtary P M signal.  cpmanal.m  Program to compute and plot complementary P M array simulation result.  pnsnd.m  Program to compute the transmitting signal for complementary P M signal.  pnda.m  Record data analysis program for Golomb code P M signal.  pnanal.m  Program to compute and plot Golomb P M array simulation result.  121  Circuit  Diagram  POWER  IC1-T7812  1 / 8 RECEIVER A M P . R1-10K C1-220uF  >R2-15I<  + C2-1uF  IC2-LF35B  IC3-LM741  •R3-19K  OUTPUT^ |—NAAr— ; R5-2.2K •R4-560  INPUT  +  ~ C3-1uF  > R7-2K 'R6-560  :R8-1I<  ~ C4-1DuF  +  C5-10uF  YA TRANSMITTING AMP.  POWER INPUT  J4 3,4 5,7 10 11 12  VR1-10K  IC1-LM3B4  C 4 - 4 7 0 u F OUTPUT  8  +  R2-2.7  C1-0.1uF~ C 2 - 4 . 7 u F ~ [ C 3 - Q 1 u F  chirpm.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % FILE:  chirpt.m  %  To s i m u l a t e t h e i n t e r f e r e n c e  %  waveforms  pattern with  chirp  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clg; clear; colormap(gray); %  PARAMETERS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FreqO  = 1000  %(Hz)  initial  Freqf  = 4000  %(Hz)  final  velocity  = 1500  %(m/s)  v e l o c i t y o f c h i r p wave  %  use v e l o c i t y t o c a l . lambda min  map_unit  = 0.05 ; %(meter)  frequency of c h i r p  frequency of c h i r p  and g e t map_unit  (see note)  duration  = 1/375; % ( s )  duration of chirp  init_phase = 0  ; %(radian)  initial  num_o_fra  ; %(frames)  minimum = 2 samples  = 20  phase  %  %  important note:  %  t h e min lambda i s a t 4000Hz w h i c h i s  %  1500(m/s) / 4000(Hz) = 0.375(m).  To a v o i d  %  s p i c i a l a l i a s i n g and have a good  resolution  %  we have s e t t h e map u n i t t o be 0.05(m)  %  i n t h a t case we w i l l have about 8 d a t a  %  p o i n t s f o r t h e minimum lambda  %  X_axis  = -80:80; %  * map_unit  (meter)  Y_axis  = -60:60; %  * map_unit  (meter)  %  %  When t h e "X/Y_axis range i s change  %  make s u r e the d i s p l a y space i s changed  %  i f X _ a x i s i s -80:80, and t h e map_unit  %  i s 0.05, t h e range o f t h e graph t o be  %  d i s p l a y e d i s -4(meter) t o 4(meter)  % source_d  =7.5;  %  not normalized  x_source  = [0 s o u r c e _ d 2*source_d 3 * s o u r c e _ d ] ;  %  * map_unit  (meter)  y_source  =[0 0  %  * map_unit  (meter)  0  0  ];  %  %  x/y_source are not normalized  %  To g e t t h e i r l o c a t i o n i n meter, t h e  %  v a r i a b l e i s m u l t i p i e d w i t h map_unit  %  thetha  = 0 /180*pi;  %Angle o f beam  %  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %  END PARAMETERS  [ i number_of_source] = s i z e ( x _ s o u r c e ) ;  % i i s temperary v a r i a b l  wf  = Freqf * 2 * p i ;  % i n i t i a l angular freq  wO  = FreqO * 2 * p i ;  %final  w_rate  = (wf - wO) / d u r a t i o n ;  %chirp-rate  dvcosthetha  angular freq  = source_d*map_unit/velocity*cos(thetha);  %  time f o r wave t o t r a v e l t h e d i s t a n c e  %  between p a r a l l e l r a y from a d j c e n t s o u r c e  123 t i m e _ s t a r t = [0 d v c o s t h e t h a 2*dvcosthetha 3 * d v c o s t h e t h a ] ; % ( s ) time_end  = time_start + duration;  %(s)  %  s t a r t and end time o f each  source  %  p l e a s e see sim3.doc f o r d e t a i l  x_mapsize  = length(X_axis)  %number o r element i n x d i r  y_mapsize  = length(Y_axis)  %number o r element i n y d i r  x_vector_ones  = ones([1,x_mapsize]);  % a l l ones o f l e n g t h x  y_vector_ones  = ones([1,y_mapsize]);  % a l l ones o f l e n g t h y  for s  = 1:number_of_source  dx  =  ( X_axis  x  =  y _ v e c t o r _ o n e s ' * dx;  - x _ s o u r c e ( s ) ).^2;  dy  =  ( Y_axis' - y_source(s) ). 2; A  y  =  dy  d  =  sqrt(x+y);  * x_vector_ones;  dist  = [dist; d];  % -  % I - d i s t a n c e from each % I source i s c a l c u l a t e d % I and p u t i n t o a m a t r i x cascade a l l m a t r i x e s  end dist  = dist  X_axis  = X _ a x i s * map_unit;  Y_axis  = Y _ a x i s * map_unit;  % n o r m a l i z e by m u l t i p y  * map_unit;  % w i t h map_unit  % i n i t i a l i z e movie  = moviein(num_o_fra);  frame  = 1;  delta  = 1/lelO;  %delta  zero_matrix= zeros([y_mapsize,x_mapsize]); time_step  =  %for  ( t o a v o i d d i v by 0)  initialization  ((time_end+duration/2)/(num_o_fra-1));  %  time s t e p i s s e t so t h a t 2/3 o f t h e frames f o r  %  t h e f i r s t source t o t r a n s m i t and 1/3 o f t h e frames  %  a f t e r the f i r s t source s t o p t r a n s m i t i n g  for  time_start:time_step:(time_end+duration/2)  time  amp  = zero_matrix;  for i  = 1: number_of_source  rowstart rowend d  % f o r each  source  %we o b t a i n i t s d i s t a n c e  = (i-1)*y_mapsize+l;  j  = i*y_mapsize; = dist(rowstart:rowend, : ) ;  % m a t r i x (d) back  124 mask_upper = d - (time - t i m e _ s t a r t ( i ) ) * v e l o c i t y + d e l t a ; mask_upper = mask_upper ./ abs(mask_upper) ; mask_upper = (l-mask_upper) / 2; %  1• s _  %  we o b t a i n a t r a v e l l i n g  0' s  |_ ( d i r e c t i o n -> i e outward  %  from t h e s o u r c e toward t h e edges o f t h e m a t r i x )  %  The p a t t e r n i s c i r c u l a r s y m e t r i c a l  %  mask_lower  = d - (time - t i m e _ e n d ( i )  mask_lower = mask_lower mask_lower  )*velocity + delta;  ./ abs(mask_lower);  = (l+mask_lower) / 2;  %  0's  _ 1' s  %  we o b t a i n a t r a v e l l i n g _|  %  from t h e s o u r c e toward t h e edges o f t h e m a t r i x )  ( d i r e c t i o n -> i e outward  %  The p a t t e r n i s c i r c u l a r s y m e t r i c a l  %  mask  = mask_upper .* mask_lower;  %  by m u l t i p i n g t h e two masks we o b t a i n a mask  %  so t h a t we can mask out t h e p a r t o f wave  %  o b t a i n e d i n t h e c a l c u l a t i o n which i s b e f o r e / a f t e r  %  t h e c h i r p p u l s e i s sent  %  NOTE: There w i l l be a mask f o r each s o u r c e p e r frame space_eff_time  = time - ( d / v e l o c i t y ) ;  eff_time  = space_eff_time - t i m e _ s t a r t ( i ) ;  arg  = 1/2 * w_rate * e f f _ t i m e . " 2 + wO * e f f _ t i m e + i n i t _ p h a s e ;  %  see sim3.doc f o r more d e t a i l amplitude  = sin(arg)  .* mask;  amp  = a m p l i t u d e + amp;  %mask o u t unwanted p a r t %add c o n t r i b u t i o n o f s o u r c e s  end amp(y_mapsize,x_mapsize  )  amp(y_mapsize,x_mapsize-l)  =  number_of_source;  %max a m p l i t u d e  = -1 * number_of_source;  %min a m p l i t u d e  %  w i t h each frame garuntee t o have t h e same max and  %  min a m p l i t u d e , we have s e t t h e g r a y s c a l e %amp(l:5,63:86)  = zeros(5,24);  % f o r t h e map s i z e from -5 :80  & -5 :80  %amp(1:10,120:161)= z e r o s ( 1 0 , 4 2 ) ; % f o r t h e map s i z e from -80:80 amp(l:7,120:161)  =  zeros{1,42);  & -80:80  c l e a r space f o r d i s p l a y  %  %for  t h e map s i z e from -80:80  %for  t h e map s i z e from -20:140 & -20:100  & -60:60  surf(X_axis,Y_axis,amp); view(0,90) shading  flat  %contour(X_axis,Y_axis,amp); s  = s p r i n t f ( ' T : % 5 . 2 e F:%d',time,frame); %text(2.9,-0.125,s); %for  t h e map s i z e from -5 :80  & -5 :80  %text(2,-3.75,s); %for  t h e map s i z e from -80:80  & -80:80  %text(5,-0.85,s); %for text(2,-2.85,s);  t h e map s i z e from -20:140 & -20:100  % f o r t h e map s i z e from -80:80  xlabel('x  (meter)');  ylabel('y  (meter) ') ;  M(:,frame)  = getframe;  frame  = frame + 1 ;  & -60:60  end  movie(M,5,10);  pmm.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % FILE:  pm.m  %  To s i m u l a t e t h e i n t e r f e r e n c e p a t t e r n w i t h phase modulated  %  waveforms  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  clg ; clear; colormap(gray); %  PARAMETERS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FreqO  = 4000 ; %(Hz)  Freqf  = 4000 ; %(Hz)  pulse_code = [ 0 0 1 %  1];  i n i t i a l frequency of c h i r p f i n a l frequency o f c h i r p %phase t o g g l e p a t t e r n  do n o t t o g g l e f o r 0 t o g g l e f o r 1  %  each t o g g l e / n o n - t o g g l e happen i n t h e  %  b e g i n n i n g o f each  velocity  = 1500 ; %(m/s)  map_unit  = 0.05 ; %(meter)  lambda v e l o c i t y o f c h i r p wave  %  use v e l o c i t y t o c a l . and g e t map_unit  init_phase =0  ; %(radian)  intial  num_o_fra  ; %(frames)  minimum = 2 samples  = 20  lambda min  (see note)  phase  % %  important note:  %  t h e min lambda i s a t 4000Hz which i s  %  1500(m/s) / 4000(Hz) = 0.375(m)  %  we have s e t t h e map u n i t t o be 0.05(m)  %  i n t h a t case we w i l l have about 8 d a t a  %  p o i n t s f o r t h e minimum lambda  %  X_axis  = -80:80; %  * map_unit  (meter)  Y_axis  = -60:60; %  * map_unit  (meter)  %  %  When t h e "X/Y_axis range i s change  %  make s u r e t h e d i s p l a y space i s changed  %  i f X _ a x i s i s -80:80, and the,map_unit  %  i s 0.05, t h e range o f the graph t o be  %  d i s p l a y e d i s -4(meter) t o 4(meter)  %  source_d  =7.5;  %  not normalized  x_source  = [0 s o u r c e _ d 2*source_d 3 * s o u r c e _ d ] ;  %  * map_unit  (meter)  y_source  =[0 0  %  * map_unit  (meter)  0  0  ];  %  %  x/y_source are not normalized  %  To g e t t h e i r l o c a t i o n i n meter, t h e  %  v a r i a b l e i s m u l t i p i e d w i t h map_unit  % thetha  = 0 /180*pi;  %Angle o f beam  %  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %  END PARAMETERS  [ i num_of_pulse] .= s i z e ( p u l s e _ c o d e ) ;  % i i s temperary v a r i a b l e  duration  % c a l c u l a t e the d u r a t i o n  = 1/Freq0 * num_of_pulse;  % time_at_phase_change %  o f t h e pm waveform = ( f i n d ( p u l s e _ c o d e > 0 ) -1 ) * 1/Freq0; c a l c u l a t e the time a t w h i c h t h e t o g g l e o c c u r s  [ i num_of_phase_change] = s i z e ( t i m e _ a t _ p h a s e _ c h a n g e ) ; %  c a l c u l a t e t h e t o t a l number o f t o g g l e p e r pm s i g n a l  [ i number_of_source]  = size(x_source);  % i i s temperary  variable  wf  = Freqf * 2 * p i ;  % i n i t i a l angular freq  wO  = FreqO * 2 * p i ;  %final  (wf - wO) / d u r a t i o n ;  w_rate dvcosthetha  angular freq  %chirp-rate  = source_d*map_unit/velocity*cos(thetha);  %  time f o r wave t o t r a v e l t h e d i s t a n c e  %  between p a r a l l e l r a y from a d j c e n t s o u r c e  t i m e _ s t a r t = [0 d v c o s t h e t h a 2*dvcosthetha time_end  3 * d v c o s t h e t h a ] ; %(s)  = time_start + duration;  %(s)  %  s t a r t and end time o f each  %  p l e a s e see sim3.doc f o r d e t a i l  source  x_mapsize  = length(X_axis);  %number o r element i n x d i  y_mapsize  = length(Y_axis);  %number o r element i n y d i  x_vector_ones  = ones([1,x_mapsize]);  % a l l ones o f l e n g t h x  y_vector_ones  = ones([1,y_mapsize]);  % a l l ones o f l e n g t h y  for s  = 1:number_of_source  dx  =  ( X_axis  x  =  y _ v e c t o r _ o n e s ' * dx;  - x_source(s)  ).*2; %  | - d i s t a n c e from  each  dy  =  ( Y _ a x i s ' - y _ s o u r c e ( s ) ).^2;  %  | source i s c a l c u l a t e d  y  =  dy  %  | and p u t i n t o a m a t r i x  d  =  sqrt(x+y);  dist  = [dist; d];  % cascade a l l m a t r i x e s  dist  = dist  ^ n o r m a l i z e by m u l t i p y  X_axis  = X _ a x i s * map_unit;  Y_axis  = Y _ a x i s * map_unit;  * x_vector_ones;  % -  end  =  * map_unit;  moviein(num_o_fra)  frame  = 1;  delta  = 1/lelO;  zero_matrix= zeros([y_mapsize,x_mapsize] ) ;  fcwith map_unit  ^ i n i t i a l i z e movie  % d e l t a ( t o a v o i d d i v by 0) %for initialization  one_matrix = ones([y_mapsize,x_mapsize]); time_step  = ((time_end(1)+duration/2)/(num_o_fra-1)) ;  %  time s t e p i s s e t so t h a t 2/3 o f t h e frames f o r  %  t h e f i r s t source t o t r a n s m i t and 1/3 o f t h e frames  %  a f t e r t h e f i r s t source s t o p t r a n s m i t i n g  f o r time  = time_start(1):time_step:(time_end(1)+duration/2);  amp  = zero_matrix;  for i  = 1:number_of_source  % f o r each source  rowstart  = (i-1)*y_mapsize+l;  %we o b t a i n i t s d i s t a n c e  rowend  = i*y_mapsize;  % m a t r i x (d) back  d  = dist(rowstart:rowend,:);  mask_upper = d - (time - t i m e _ s t a r t ( i ) ) * v e l o c i t y + d e l t a ; mask_upper = mask_upper ./  abs(mask_upper);  mask_upper = (l-mask_upper)  / 2;  %  1' s _  0's  %  we o b t a i n a t r a v e l l i n g  |_ ( d i r e c t i o n -> i e outward  %  from t h e source toward t h e edges o f t h e m a t r i x )  %  The p a t t e r n i s c i r c u l a r s y m e t r i c a l  %  mask_lower = d - (time - t i m e _ e n d ( i )  )*velocity + delta;  mask_lower = mask_lower ./ abs(mask_lower); mask_lower = (l+mask_lower)  / 2;  %  0's  %  we o b t a i n a t r a v e l l i n g _|  _ 1' s ( d i r e c t i o n -> i e outward  %  from t h e source toward t h e edges o f t h e m a t r i x )  %  The p a t t e r n i s c i r c u l a r s y m e t r i c a l mask  = mask_upper .* mask_lower; by m u l t i p i n g t h e two masks we o b t a i n a mask so t h a t we can mask out t h e p a r t o f wave o b t a i n e d i n the c a l c u l a t i o n which i s b e f o r e / a f t e r the c h i r p p u l s e i s sent NOTE: There w i l l be a mask f o r each source p e r frame  pmask  one_matrix;  for i i  1:num_of_phase_change  tpmask  d - (time - t i m e _ a t _ p h a s e _ c h a n g e ( i i ) - time_start(i)  tpmask  tpmask  pmask  pmask  end  ./ abs(tpmask); .* tpmask;  *velocity + delta;  129 %  0' s  _ 1' s  %  we o b t a i n a t r a v e l l i n g _|  ( d i r e c t i o n -> i e outward  %  from t h e source toward t h e edges o f t h e m a t r i x )  %  The p a t t e r n i s c i r c u l a r  %  a t each "time_at_phase_change" we m u l t i p y two  %  0s  _ 1' s  1  %  _|  %  symetrical  t o g e t h e r t o a c h i e v e t h e phase change a t  the "time_at_phase_change" space_eff_time  = time - ( d / v e l o c i t y ) ;  eff_time  = space_eff_time - t i m e _ s t a r t ( i ) ;  arg  = 1/2 * w_rate * e f f _ t i m e . 2 + wO * e f f _ t i m e + i n i t _ p h a s e ; A  %  see sim3.doc  f o r more d e t a i l  amplitude  = s i n ( a r g ) .* mask .* pmask;  %mask out and t o g g l e wave  amp  = a m p l i t u d e + amp;  %add c o n t r i b u t i o n o f s o u r c e s  end amp(y_mapsize,x_mapsize  )  amp(y_mapsize,x_mapsize-l)  =  number_of_source;  %max a m p l i t u d e  = -1 * number_of_source;  %min a m p l i t u d e  %  w i t h each frame garuntee t o have t h e same max and  %  min a m p l i t u d e , we have s e t the g r a y s c a l e %  amp(1:5,63:86) = z e r o s ( 5 , 2 4 ) ;  % f o r t h e map s i z e from -5 :80  & -5 :80  %amp(l:10,120:161)= z e r o s ( 1 0 , 4 2 ) ; % f o r t h e map s i z e from -80:80 amp(1:7,120:161) %  & -80:80  = zeros(7,42); c l e a r space f o r d i s p l a y % f o r t h e map s i z e from -80:80  & -60:60  % f o r t h e map s i z e from -20:140 & -20:100 surf(X_axis,Y_axis,amp); view(0,90) shading  flat  %contour(X_axis,Y_axis,amp); s  = s p r i n t f ( ' T : % 5 . 2 e F:%d',time,frame); %text(2.9,-0.125,s); % f o r t h e map s i z e from -5 :80  & -5 :80  %text(2,-3.75,s); % f o r t h e map s i z e from -80:80 %text(5,-0.85,s);  & -80:80  130 % f o r t h e map s i z e from -20:140 & -20:100 text(2,-2.85,s);  % f o r t h e map s i z e from -80:80  xlabel('x  (meter)');  ylabel('y  (meter) ' ) ;  M(:,frame)  = getframe;  frame  = frame + 1;  & -60:60  end  movie(M,5,10);  t2.c #include <stdlib.h> # i n c l u d e <math.h> #define  INTERVAL  0.0000500  /*second  (time between i n t e r r u p t )  */  #define  SIG_DURATION  0.004  /•second  (signal duration)  */  #define  PRE_DEAD_AIR  0.0005  /•second  (dead a i r between s i g n a l )  */  #define  POS DEAD AIR  0.0255  /•second  (dead a i r between s i g n a l )  */  /*make s u r e you s e t t h e end c o n d i t i o n f o r j i n t h e i n t e r u p t f u n c t i o n and w i l l not overflow i n t o c o l l e c t i o n area*/ #define. SOURCE_D  0.05  /•meter  ( d i s t a n c e between s o u r c e s )  */  #define  ANGLE  90.0  /•degree (maximum energy p a t h a t )  #define  VELOCITY  330.0  / • r a e t e r / s ( v e l o c i t y o f t h e wave)  */  #define  FreqO  1000.0  /•Hertz  ( i n i t i a l f r e q of signal)  •/  #define  /•Hertz  ( f i n a l f r e q of signal)  •/  */  Freqf  4000.0  #define  Pi  3.1415926535  #define  SAM P CH  ( i n t ) ((PRE_DEAD_AIR+SIG_DURATION+PO S_DEAD_AIR)/INTERVAL) /• number o f i n t e r r u p t r e q . t o gen. •/ /• t h e waveform  */  /•main c o u n t e r f o r o u t p u t wave c a l c . •/  float  G_TIME;  float  w_rate, wO, wf;  / • f r e q r a t e , i n i t and f i n a l  float  l_time0,l_timel,l_time2,l_time3;  / • l o c a l c o u n t e r f o r each s o u r c e */  float  l_factO,l_factl,l_fact2,l_fact3;  / * d i f f . % l o c a l and main c o u n t e r * /  int  •outp;  freq*/  /•array f o r output waveform / 4  131 int  *inp;  / * a r r a y f o r i n p u t waveform */  int  i ;  /*dummy v a r i a b l e  */  int  j=0;  /*interrupt  */  void  counter  c_intlO(void);  void  main(void)  { *(  (unsigned i n t *) Oxa ) = ( i n t ) * c _ i n t l O ;  / * i n s t a l l interrupt  vector*/  /*0xa i s TINT1  */  /* tmsbus i n i t ( ) ; * / *(  (volatile  int*)  0x808064) = 0x800;  ^initializations  */  *(  (volatile  int*)  0x808060) = 0x0;  ^initializations  */  *(  (volatile  int*)  0x800004) = 0x0;  /initializations  */  *(  (volatile  int*)  0x800004) = 0x200000;  ^initializations  */  *(  (volatile  int*)  0x800004) = 0x0;  ^initializations  */  /*tmschannelinit();*/  while( *(  !( * ( ( v o l a t i l e  (volatile  int*)  0x30000  outp = ( i n t * )  0x500;  inp  0x1000;  = (int*)  int*)0x800004) & 0x200000  wf  = F r e q f * 2.0 * p i ;  wO  = FreqO * 2.0 * p i ;  ) );  ) = 5;  w_rate = (wf-wO) / SIG_DURATION; l_fact0  = 0;  l_factl  = SOURCE_D/VELOCITY*cos(ANGLE/180.0*pi)*(1);  l_fact2  = SOURCE_D/VELOCITY*cos(ANGLE/180.0*pi)* (2) ;  l_fact3  = SOURCE_D/VELOCITY*cos(ANGLE/180.0*pi)*(3);  G_TIME=(-PRE_DEAD_AIR)  /*calculate  offsets  ;  G_TIME<= (SIG_DURATION+POS_DEAD_AIR-INTERVAL)  ;  G_TIME+=INTERVAL)  {  l _ t i m e 0 = G_TIME - l _ f a c t 0 l _ t i m e l = G_TIME - l _ f a c t l l _ t i m e 2 = G_TIME - l _ f a c t 2 1 time3 = G TIME - 1 f a c t 3  /*calculate  local  time  */  132 /*calc. if  ((l_timeO>=0)  &&  / s t o r e waveform  */  (l_timeO<=SIG_DURATION))  *outp++ = ( i n t ) ( 2 0 4 7 . 0 * s i n ( 0 . 5 * w _ r a t e * l _ t i m e 0 * l _ t i m e 0  + wO*l_time0))<<20;  else *outp++ = 0; if  ( ( l _ t i m e l > = 0 ) && (l_timel<=SIG_DURATION))  *outp++ = ( i n t ) ( 2 0 4 7 . 0 * s i n ( 0 . 5 * w _ r a t e * l _ t i m e l * l _ t i m e l + w 0 * l _ t i m e l ) ) « 2 0; else *outp++ = 0; if  ((l_time2>=0) &&  (l_time2<=SIG_DURATION))  *outp++ = ( i n t ) ( 2 0 4 7 . 0 * s i n ( 0 . 5 * w _ r a t e * l _ t i m e 2 * l _ t i m e 2  + w0*l_time2 ) ) « 2 0 ;  else *outp++ = 0; if  ((l_time3>=0) &&  (l_time3<=SIG_DURATION))  *outp++ = ( i n t ) ( 2 0 4 7 . 0 * s i n ( 0 . 5 * w _ r a t e * l _ t i m e 3 * l _ t i m e 3  + w0*l_time3 ) ) « 2 0 ;  else *outp++ = 0; )  /*tmstimmerinit(INTERVAL*1000.0);*/ /*unit i s i n milisecond*/ *(  (volatile int*)  0x808030  /* *( ( v o l a t i l e u n s i g n e d i n t * )  ) = 0x601; 0x808038 ) = 415;  *(  ( v o l a t i l e unsigned i n t * )  0x808038 ) =  *(  (volatile int*)  0x808030  *(  (volatile int*)  0x30000 ) = 0;  f o r PN e x p e r i m e n t * /  (int)(INTERVAL*8333333.333333333);  ) = 0x6cl;  w h i l e (1) { while  ( * ( ( v o l a t i l e i n t * ) 0 x 3 0 0 0 0 ) != 100 );  j = 1;  / * i n i t i n t e r r u p t c o n u n t e r */  * ( ( v o l a t i l e int*)0x30001) = j ; outp  = (int*)  0x500;  inp  = (int*)  0x1000;  asm( " OR 0200h,IE " );  /*tmstimmerinit(INTERVAL*1000.0);*/  asm( " OR 2000h,ST " );  /*unit i s i n milisecond*/  while }; }  ( * ( ( v o l a t i l e i n t * ) 0 x 3 0 0 0 0 ) != 0  );  /*asm( " .data " ) ; * / void  / * i n t e r u p t d r i v e n f u n c t i o n */  c_intlO(void)  { r e g i s t e r v o l a t i l e unsigned i n t * i n c t r  = (unsigned *)0x800004;  i n t *inadc  register volatile  = (int  *)0x800005;  r e g i s t e r v o l a t i l e unsigned i n t * o u t c t r = (unsigned *)0x800006; i n t *out  register volatile if  = (int  *)0x800007;  ( j > SAM_P_CH) { * ( ( v o l a t i l e int*)0x30001)  = j-l;  asm( " ANDN 0200h,IE " );  /*tmstimmerstop();*/  asm( " ANDN 0200h,IF " ); *(  ( v o l a t i l e i n t * ) 0x30000 ) = 0;  return; }  * i n c t r = 0x00000000;  /* s e l e c t channel  i = *inadc; while(  */  /* dummy r e a d c l e a r ST */  !( * i n c t r & 0x00080000 ) ) { } / * w a i t f o r mux d e l a y */  * i n a d c = ( i n t ) 0x0; * o u t c t r = 0x100000; *out while(  = *outp++;  !( * i n c t r & 0x00800000 ) ) { } / * w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ; * i n c t r = 0x00010000; /* s e l e c t channel  */  * o u t c t r = 0x110000; *out while(  = *outp++;  !( * i n c t r & 0x00800000 ) ) { } / * w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ; * i n c t r = 0x00020000; /* s e l e c t channel  */  * o u t c t r = 0x120000; *out while(  = *outp++;  !( * i n c t r & 0x00800000 ) ) { } / * w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ; * i n c t r = 0x00430000; /* s e l e c t channel  */  * o u t c t r = 0x130000; *out while(  = *outp++;  !( * i n c t r & 0x00800000 ) ) { } / * w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ;  134 * i n c t r = 0x00040000; /* s e l e c t channel i = *inadc; while(  */  /* dummy r e a d c l e a r ST */  !( * i n c t r & 0x00080000 ) ) { } / *  w a i t f o r mux d e l a y */  * i n a d c = ( i n t ) 0x0; i = *out; while(  !( * i n c t r & 0x00800000 ) ) { } / *  w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ; * i n c t r = 0x00050000; /* s e l e c t channel while(  */  !( * i n c t r & 0x00800000 ) ) { } / *  w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ; * i n c t r = 0x00460000; /* s e l e c t channel while(  */  !( * i n c t r & 0x00800000 ) ) { } / *  w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ; #if 0 * i n c t r = 0x00470000; /* s e l e c t channel while(  !( * i n c t r & 0x00800000 ) ) { } / *  */ w a i t f o r end o f c o n v e r s i o n */  *inp++ = * i n a d c ; #endif  tms.c #define PRIMWD  0x000800  #define EXPWD  0x000000  #define PRIMCTL_REG ( ( u n s i g n e d i n t *) 0x808064) #define EXPCTL_REG  ( ( u n s i g n e d i n t *) 0x808060)  #define RSTCTRL  0x000601  #define SETCTRL  0x0006cl  #define TIMER_CTRL_REG  ( ( u n s i g n e d i n t *) 0x808030)  #define ADC_COUNT_REG  ( ( u n s i g n e d i n t *)  #define CH_A  ( ( i n t *)  0x804000)  #define CH_B  ( ( i n t *)  0x804001)  #define TRIGGER  0x804008  0x808038)  #define OUTPUT_CTR  0x800006  #define OUTPUT DAC  0x800007  #define INPUT_CTR  0x800004  #define INPUT ADC  0x800005  volatile  s t a t i c i n t *channela, *channelb,  volatile  s t a t i c i n t *outctr  , *outdac,  volatile  static i n t*inctr  , *inadc;  *conversion;  i ;  i n t hello_how; v o i d t m s e o c i n i t ( f l o a t PERIOD) {  volatile  i n t*timer_config,  *timer_period;  t i m e r _ c o n f i g = ( i n t *) TIMER_CTRL_REG; timer_period  = ( i n t *).ADC_COUNT_REG;  PERIOD  = ( i n t ) (8333.333333333*PERIOD);  *timer_config  = RSTCTRL;/* r e s e t t i m e r b e f o r e s e t p e r i o d  *timer_period  = PERIOD; /* s e t p e r i o d  *timer_config  = SETCTRL;/* s e t t i m e r  ( c f example echo.c)  asm( " OR 0002h,IE " );  /* enable c l o c k i n t u r u p t  asm( " OR 2000h,ST " );  /* e n a b l e master  ( i n t 1)  inturupt  }  void tmstimmerinit(float  PERIOD)  {  volatile  i n t *timer_config,  *timer_period;  t i m e r _ c o n f i g = ( i n t *) TIMER_CTRL_REG; timer_period  = ( i n t *) ADC_COUNT_REG;  PERIOD  = ( i n t ) (8333. 333333333*PERI0D);  *timer_config  = RSTCTRL;/* r e s e t t i m e r b e f o r e s e t p e r i o d  *timer_period  = PERIOD; /* s e t p e r i o d  *timer_config  = SETCTRL;/* s e t t i m e r  asm(  " OR 02 00h,IE " );  asm( " OR 2000h,ST " );  v o i d tmseocstop( v o i d ) {  ( c f example echo.c)  /* enable c l o c k i n t u r u p t /* enable master  inturupt  ( i n t 1)  136 asm(  " ANDN 02h, I E " ) ;  asm( " ANDN 02h, I F " ) ; }  v o i d tmstimmerstop( v o i d ) { asm(  " ANDN 0200h, IE " );  asm(  " ANDN 0200h, I F " );  }  void tmsbusinit( void ) { volatile  i n t *pri_bus_wait,  *exp_bus_wait;  p r i _ b u s _ w a i t = ( i n t *) PRIMCTL_REG; exp_bus_wait = ( i n t *) EXPCTL_REG; *pri_bus_wait  = PRIMWD; /* s e t up p r i m a r y and e x p a n s i o n bus */  *exp_bus_wait  = EXPWD;  /* w a i t s t a t e , p g l 5 t e c h . r e f . menu */  }  void tmschannelinit(void)  '  { c h a n n e l a = ( i n t *) CH_A; channelb = ( i n t *) CH_B; conversion  = ( i n t *) TRIGGER;  o u t c t r = ( i n t *) OUTPUT_CTR; outdac = ( i n t *) OUTPUT_DAC; inctr  = ( i n t *) INPUT_CTR;  inadc  = ( i n t *) INPUT_ADC;  * i n c t r = 0x0;  /* c a l i b r a t e o f ad c o n v e r t e r  (see example */  * i n c t r = 0x00200000; /* tms32p.asm)  */  * i n c t r = 0x0; while(  !( * i n c t r & 0x00200000 ) ) {}; /* w a i t f o r end o f c a l .  void tmsinit(void) { tmsbusinit(); tmschannelinit(); tmseocinit(2e-3);  */  137 }  void  tmszero(void)  { *channela=*channelb=0; }  void tmspositive(void) { *channela=*channelb=0x7fff0000;  /* max p o s i t i v e v o l t a g e */  }  void  tmsnegative(void)  { *channela=*channelb=0x80000000;  /* max n e g a t i v e v o l t a g e */  }  void  tmstoggle(void)  { /* ISR f o r c l o c k ( i n t l )  i n t e r u p t */ '  static i n t flipflop=0; if  ( flipflop ) { tmsnegative() ; flipflop  = ! flipflop;  }  else { tmszero(); flipflop =  !flipflop;  } }  void  tmsconvert()  { i = 'conversion ; }  v o i d t m s o u t ( i n t number) { *channela  = (number << 16) ;  *channelb = (number << 16) ; }  void delay(void) { int  i,j,k;  for  (i=0;i<10000;i++)  { j=j+i; } }  v o i d d i g i t a l _ 2 _ a n a l o g ( i n t channel, i n t value) { v o l a t i l e s t a t i c i n t c h a n n e l _ c o n t r o l [ ] = { OxOOf00000,OxOOf10000, 0x00f20000,0x00f30000, 0x00f40000,0x00f50000, 0x00f60000,0x00f70000, OxOOf80000,OxOOf90000, OxOOfaOOOO,OxOOfbOOOO, OxOOfcOOOO,OxOOfdOOOO, OxOOfeOOOO,OxOOffOOOO }; 1234567 89012345678901234567 89012345678901234567890 /* assumption  : a l l 16 channel i s used t o output d/a s i g n a l  /* i f l e s s than 16 c h a n n e l i s used, change ? i n t h e 0x007*0000 /* above a c c o r d i n g t o page 13 o f t h e 16 channel d/a handbook /* a l l 16 c h a n n e l w i l l be c o n v e r t t o a n a l o g b u t s i n c e t h e /* c o n v e r s i o n i s done p a r a l l e l l y , i t does n o t m a t t e r /* a l s o assume c h a n n e l i n p u t i s v a l i d  (0-15); system  will  /* c r a s h i f o t h e r v a l u e i n p u t e d *outctr = channel_control[channel] ; *outdac = value<<20; }  void digital_2_analog_convert(void) { i = *outdac; }  i n t a n a l o g _ 2 _ d i g i t a l ( i n t channel ) { v o l a t i l e s t a t i c i n t channel_control[] = { 0x00400000, 0x00410000, 0x00420000, 0x00430000, 0x00440000, 0x00450000, 0x00460000, 0x00470000, 0x00480000, 0x00490000, 0x004a0000, 0x004b0000, 0x004c0000, 0x004d0000, 0x004e0000, Ox004fOOOO, 0x00500000, 0x00510000, 0x00520000, 0x00530000, 0x00540000, 0x00550000, 0x00560000, 0x00570000, 0x00580000, 0x00590000, 0x005a0000, 0x005b0000, 0x005c0000, 0x005d0000, 0x005e0000, Ox005fOOOO }; * i n c t r = channel_control[channel];  /* s e l e c t channel  */  139 i = * inadc; while(  /* dummy r e a d c l e a r ST */  !( * i n c t r & 0x00080000 ) ) {} /* w a i t f o r mux d e l a y */  * i n c t r = channel_control[channel];  /* s e l e c t channel  i = *inadc;  /* dummy r e a d c l e a r ST */  while(  !( * i n c t r & 0x00080000 ) ) { } / *  */  w a i t f o r mux d e l a y */  /* nowhere i n t h e mannual mention t h a t t h e s t a t u s r e g i s t e r has t o */ /* be c l e a r b e f o r e s t a r t c o n v e r s i o n , t h i s i s found o u t o n l y a f t e r  */  /* t h r e e day o f experiment t r y i n g t o i n p u t m u l t i p l e channel i n a  */  /* s i n g l e i n t e r u p t g e n e r a t e d by t h e c l o c k .  The mux d e l a y c h e c k i n g */  /* i s a g a i n n e c e s s a r y t o make sure the mux has s e t t l e ; a g a i n i t i s */ /* n o t mention i n any mannual. I f t h e dummy r e a d i s remove, t h e /* r o u t i n e s i m p l e won't work.  */  I f t h e mux d e l a y c h e c k i n g i s remove */  /* channel 0 cannont i n p u t any d a t a i f channel 4 i s used i n t h e  */  /* same i n t e r u p t .  */  * i n a d c = ( i n t ) 0x0; while( return  /* s t a r t c o n v e r t i o n */  ! ( . * i n c t r & 0x00800000 ) ) { } / *  w a i t f o r end o f c o n v e r s i o n */  ( * i n a d c >> 20 );  }  v o i d a n a l o g _ 2 _ d i g i t a l 4 ( i n t g r o u p , i n t * o l , i n t * o 2 , i n t * o 3 , i n t *o4) { v o l a t i l e s t a t i c i n t channel_control[] = { 0x00000000, 0x00010000, 0x00020000, 0x00430000, 0x00040000, 0x00050000, 0x00060000, 0x00470000, 0x00080000, 0x00090000, OxOOOaOOOO, 0x004b0000, OxOOOcOOOO, OxOOOdOOOO, OxOOOeOOOO, 0x004f0000, 0x00100000, 0x00110000, 0x00120000, 0x00530000, 0x00140000, 0x00150000, 0x00160000, 0x00570000, 0x00180000, 0x00190000, OxOOlaOOOO, 0x005b0000, OxOOlcOOOO, OxOOldOOOO, OxOOleOOOO, 0x005f0000 } ; * i n c t r = channel_control[group*4];  /* s e l e c t channel  i = *inadc;  /* dummy r e a d c l e a r ST */  while(  !( * i n c t r & 0x00080000 ) ) { } / *  */  w a i t f o r mux d e l a y */  * i n a d c = ( i n t ) 0x0; while(  !( * i n c t r & 0x00800000 ) ) { } / *  w a i t f o r end o f c o n v e r s i o n */  * o l = * i n a d c » 20; * i n c t r = c h a n n e l _ c o n t r o l [ g r o u p * 4 + l ] ; /* s e l e c t channel  */  140 #if 0 i = *inadc;  /* dummy r e a d c l e a r ST */  * i n a d c = ( i n t ) 0x0;  /* s t a r t c o n v e r t i o n */  #endif while(  !( * i n c t r & 0x00800000 ) ) ( } / *  w a i t f o r end o f c o n v e r s i o n */  *o2 = * i n a d c » 20; * i n c t r = channel_control[group*4+2];  /* s e l e c t channel  */  #if 0 i = *inadc;  /* dummy r e a d c l e a r ST */  * i n a d c = ( i n t ) 0x0;  /* s t a r t c o n v e r t i o n */  #endif while(  !( • i n c t r & 0x00800000 ) ) { ) / *  w a i t f o r end o f c o n v e r s i o n •/  *o3 = * i n a d c » 20; * i n c t r = channel_control[group*4+3];  /* s e l e c t channel  •/  #if 0 i = *inadc;  /* dummy r e a d c l e a r ST */  * i n a d c = ( i n t ) 0x0;  /• s t a r t c o n v e r t i o n */  #endif while(  !( * i n c t r & 0x00800000 ) ) { } / *  w a i t f o r end o f c o n v e r s i o n */  *o4 = * i n a d c >> 20;  pci.c #include<conio.h> #include<math.h> #include<stdlib.h> #include<process.h> #include<ctype.h> # i n c l u d e " t m s 3 0.h" #define  INTERVAL  0 0000500  /•second (time between i n t e r r u p t )  */  #define  SIG_DURATION  0 004  /•second ( s i g n a l d u r a t i o n )  */  #define  P RE_DEAD_AIR  0 0005  /•second (dead a i r between s i g n a l )  •/ •/ •/  #define  POS_DEAD_AIR  0 0255  /•second (dead a i r between s i g n a l )  #define  VELOCITY  330.0  / • m e t e r / s ( v e l o c i t y o f t h e wave)  #define  Pi  3 1415926535  #define  INPUT_CH  7  #define  OUTPUT_CH  4  #define  NUM_S  #define  IN_SAM  ((int)((SIG_DURATION+PRE_DEAD_AIR+POS_DEAD_AIR)/INTERVAL) (NUM_S*INPUT_CH)  #define  OUT_SAM  (NUM_S*OUTPUT_CH)  v o i d SendandRecord(void); int  Downloaddata(void);  void Creatdata(void); int  Readdata(void);  void  Uploaddata(void);  long  ToBeSend[OUT_SAM];  char  fileloaded[40];  main(void) { int  temp;  char key; clrscr(); strcpy(fileloaded,"DEFAULT") ; printf("die  here\n");  SelectBoard(0x290) ; switch  (LoadObjectFile("t2.out") )  {  case 0: p r i n t f ( " L o a d i n g o f ' t 2 . o u t ' s u c c e s s f u l \ n " ) ; case 1: p r i n t f ( " U n a b l e t o open f i l e  't2.out'\n");  case 2: p r i n t f ( " U n e x p e c t e d ending o f ' t 2 . o u t ' \ n " ) ; }  clrscr(); / * p r i n t f ( " % d %d %d",NUM_S, IN_SAM, OUT_SAM);*/ Reset(); do {  printf("Press  c  1  to creat  data\n");  printf("Press  's' t o send C h i r p \ n " ) ;  printf("Press  ' r ' to read  printf("Press  'd' t o download d a t a \ n " ) ;  /*printf("Press printf("Press  data\n");  'p' t o s t a r t dos prompt\n");*/  'q' t o q u i t \ n " ) ;  p r i n t f ( " i n sam->%d,out sam->%d\n",IN_SAM,OUT_SAM); key = g e t c h ( ) ; s w i t c h (key) { d e f a u l t : break;  break; exit(l); exit(2);  case ' s ' : SendandRecord(); break; case 'd': Downloaddata(); break; case 'c': C r e a t d a t a ( ) ; Uploaddata(); break; case ' r ' : i f (Readdata()!=-1) Uploaddata(); break; /*  case 'p': p r i n t f ( " E x e c  r e s u l t i s %d\n",  system("c:\autoexec.bat")  printf("done\n"); break; */ case 'q': p r i n t f ( " Q u i t i n g  Program");  }  } w h i l e (key != ' q ' ) ; return(0); }  v o i d SendandRecord( v o i d ) { u n s i g n e d i n t i=0,j=0,k=0; clrscr(); printf("Waiting /* f o r (k=0;k<3 0 for  f o r keyboard n o i s e t o d i e down C h i r p \ n " ) ; ;k++)  (j=0;j<50000;j++)  i = 0; j=0;  */  printf("Sending  and R e c o r d i n g C h i r p \ n " ) ;  while((Getlnt(0x30000,DUAL)  != 0)&&(i++<2000));  PutInt(0x30000,DUAL,100) ; printf("\nStart  Send and Record Data, j i s  while((GetInt(0x30000,DUAL) if  != 0)&&(j++<2000));  (i!=2001 && j !=2001)  { printf(  " F i n i s h Send and Record Data, j i s  p r i n t f ( " D o n e R e c o r d i n g %d % d \ n \ n " , i , j ) ; }  else p r i n t f ( " E r r o r i n R e c o r d i n g %d % d \ n \ n " , i , j ) ; }  %d\n",Getlnt(0x30001,DUAL))  %d\n",Getlnt(0x30001,DUAL))  143 i n t Downloaddata( v o i d ) { int i , j ; i n t Received[INPUT_CH][NUM_S]; i n t Sent[OUT_SAM]; char d a t a f i l e [ 2 0 ] , r f i l e n a m e [ 4 8 ] , s f i l e n a m e [ 4 8 ] ; FILE *Rstream,  *Sstream;  clrscr(); printf("\n\nLast  f i l e loaded i s : % s " , f i l e l o a d e d ) ;  printf("\n\nPlease scanf("%s", if  i n p u t f i l e n a m e t o be download  :  ");  &datafile);  (strcmp(datafile,"q")==0) return(0);  sprintf(rfilename,"e:\\data\\decov\\%sr.fil",datafile); p r i n t f ( " O p e n n i n g Data if  file:%s\n",rfilename);  ((Rstream = f o p e n ( r f i l e n a m e , "wt")) == NULL) { p r i n t f ( " E r r o r opening d a t a  file\n\n");  return(0); }  else p r i n t f ( " D o n e opening d a t a  file\n\n");  sprintf(sfilename,"e:\\data\\decov\\%ss.fil",datafile); p r i n t f ( " O p e n n i n g Data if  file:%s\n",sfilename);  ((Sstream = f o p e n ( s f i l e n a m e , "wt")) == NULL) p r i n t f ( " E r r o r opening d a t a  file\n\n");  else p r i n t f ( " D o n e opening d a t a  printf("Downloading printf("Holding  file\n\n");  Signal\n");  TMS P r o c e s s o r \ n " ) ;  HoldAndWait(); for  ( i = 0 ; i < IN_SAM ; i++)  Received[i%INPUT_CH][i/INPUT_CH] for  =  (int)(Getlnt((OxlOOO+i),ALL)>>20);  ( i = 0 ; i < OUT_SAM ; i++)  Sentfi]  = ( i n t ) ( G e t l n t ( ( 0x500+i),ALL)»20);  UnHoldAndWait(); printf("\nDownloading  Completed\n");  p r i n t f ( " \ n S a v i n g Data i n t o F i l e : for  ( i = 0 ; i < INPUT_CH  %s\n",rfilename);  ; i++)  { for  ( j = 1 ; j < (NUM_S+1) ; j++)  fprintf(Rstream,  ( j !=0 && j%10==0)? "%6d\n" :  "%6d",Received[i][j-1]  fprintf(Rstream,"\n\n"); }  fclose(Rstream); p r i n t f ( " \ n S a v i n g Data i n t o F i l e : for  ( i = 0 ; i < OUTPUT_CH  %s\n",sfilename);  ; i++)  { for  ( j = 1 ; j <= NUM_S ; j++)  fprintf(Sstream,  "%6d",Sent[(j-1)*4 + i ] )  (j%10==0)? "%6d\n"  fprintf(Sstream,"\n\n"); }  fclose(Sstream); p r i n t f ( " \ n S a v i n g Completed\n"); return(0) ; }  void  Creatdata(void)  {  /*main c o u n t e r f o r o u t p u t wave c a l c . */  double  G_TIME;  double  w_rate, wO, wf;  / * f r e q r a t e , i n i t and f i n a l  double  l_timeO,l_timel,l_time2,l_time3;  / * l o c a l c o u n t e r f o r each s o u r c e */  double  l_factO,l_factl,l_fact2,l_fact3;  / * d i f f . % l o c a l and main c o u n t e r * /  double  FreqO,Freqf,SOURCE_D,ANGLE;  int  /*dummy v a r i a b l e  i , j ;  FILE  *stream;  for  ( i = 0;i<OUT_SAM;i++)  ToBeSend[i] = 0; printf("\n\nPlease  i n p u t s t a r t f r e q (Hz)  ")  s c a n f ( " % l f , &FreqO); 1 1  printf("\n\nPlease scanf("%lf",  i n p u t f i n a l f r e q (Hz)  &Freqf);  printf("\n\nPlease  i n p u t d i s t a n c e between elements (cm)  s c a n f ( " % l f " , &SOURCE_D); printf("\n\nPlease  i n p u t maximum beam a n g l e  s c a n f ( " % l f " , &ANGLE);  (degree)  freq*/  1 4 5  strcpy(fileloaded,"CUSTOM"); wf  = F r e q f * 2.0 * p i ;  wO  = FreqO * 2.0 * p i ;  w_rate = (wf-wO) / SIG_DURATION; /*calculate  offsets*/  l _ f a c t 0 = SOURCE_D/VELOCITY*cos(ANGLE/180.0*pi)*(-1. 5)/100 l _ f a c t l = SOURCE_D/VELOCITY*cos(ANGLE/180.0*pi)*(-0.5)/100 l _ f a c t 2 = SOURCE_D/VELOCITY*cos(ANGLE/180.0*pi)*(  0.5)/100  l _ f a c t 3 = SOURCE_D/VELOCITY*cos(ANGLE/180.0*pi)*(  1.5)/100  for ( i = 0, G_TIME=(-PRE_DEAD_AIR) ; G_TIME<= ( SI G_DURAT I ON+PO S_DEAD_A IR -1NTERVAL) G_TIME+=INTERVAL) {  l _ t i m e 0 = G_TIME - l _ f a c t 0  /*calculate  l o c a l time  l _ t i m e l = G_TIME - l _ f a c t l l _ t i m e 2 = G_TIME - l _ f a c t 2 1 time3 = G TIME - l _ f a c t 3 / * c a l c . / s t o r e waveform if  */  ((l_time0>=0) && (l_time0<=SIG_DURATION))  ToBeSend[i++]  =  (long)(2047.0*sin(0.5*w_rate*l_time0*l_time0  +  w0*l_time0 ) ) « 2 0 ; else ToBeSend[i++] = 0; if  ((l_timel>=0)  && (l_timel<=SIG_DURATION))  ToBeSend[i++]  =  (long)(2047.0*sin(0.5*w_rate*l_timel*l_timel  +  w0*l_timel) ) « 2 0 ; else ToBeSend[i + +] = 0 ; if  ((l_time2>=0) &&  ToBeSend[i++]  (l_time2<=SIG_DURATION)) =  (long)(2047.0*sin(0.5*w_rate*l_time2*l_time2  w0*l_time2))<<20; else ToBeSend[i++] = 0; if  ((l_time3>=0) &&  (l_time3<=SIG_DURATION))  +  146 ToBeSend[i++]  =  (long)(2047.0*sin(0.5*w_rate*l_time3*l_time3  w0*l_time3))<<2 0; else ToBeSend[=  0;  }  if  ((stream = f o p e n ( " e : \ \ d a t a \ \ o u t . f i l " ,  p r i n t f ( " E r r o r opening d a t a for  ( i = 0 ; i < OUTPUT_CH  "wt")) == NULL)  file\n"); ; i++)  { for  ( j = 1 ; j <= NUM_S ; j++)  fprintf(stream,  (j%10==0)? "%61d\n" : "%61d",ToBeSend[(j-1)*4 + i]>>20) ;  fprintf(stream,"\n\n"); }  fclose(stream);  int  Readdata(void)  { FILE  *stream;  int  i , j = 0,data[IN_SAM] ;  char  ch, d a t a f i l e n a m e [ 2 0 ] , f u l l f i l e n a m e [ 4 0 ] , token[10]  for  ;  ( i = 0;i<OUT_SAM;i++)  ToBeSend[i] = 0; printf("\n\nPlease scanf("%s",  i n p u t f i l e n a m e t o be u p l o a d  :  ");  &datafilename);  strcpy(fileloaded,datafilename); s p r i n t f ( f u l l f i l e n a m e , " e : \ \ d a t a \ \ d e c o v \ \ % s . f i l " , datafilename); printf("\nOpening f i l e if  : %s\n",fullfilename);  ((stream = f o p e n ( f u l l f i l e n a m e ,  " r t " ) ) == NULL)  { p r i n t f ( " \ n E r r o r opening d a t a  file\n");  return(-1); }  else ch=fgetc(stream); do for  (;!isdigit(ch)&&ch!='-'&&ch!=EOF;ch=fgetc(stream));  +  147 f o r (i=0; isdigit(ch)||ch==' - ' ; token[i++]=ch,ch=fgetc(stream)); if  ( i != 0)  { t o k e n [ i ] = 0; data[j++] = a t o i ( t o k e n ) ; }  } while  (ch != EOF) ;  fclose(stream); if  (j!=OUT_SAM ) { printf("Error i n file, /*for  t h e r e i s %d d a t a p o i n t i n f i l e n o t %d\n\n\n",j,OUT_SAM);  (i=0;i<j;i++)  p r i n t f ( " T h e %dth data i s %d\n",i+1,data[i]);*/ return(-1); }  else { p r i n t f ( " C o n v e r t i n g format o f s i n g a l \ n " ) ; for for  (i=0;i<OUTPUT_CH;i++) (j=0;j<=NUM_S-l;j++)  ToBeSend[j*OUTPUT_CH+i] = ((long)data[i*NUM_S+j])«20; return(0); } }  v o i d Uploaddata(void) { int  i;  printf("\nUpload  Data\n");  p r i n t f ( " \ n H o l d i n g TMS P r o c e s s o r \ n " ) ; HoldAndWait(); printf("Uploading  Signal\n");  WrBlkInt(0x500,ALL,OUT_SAM,ToBeSend); /* we have assumed t h e s i g n a l i s 10ms max a t 50us i n t e r v a l w i t h 4 channels t h e r e f o r e we have 800 samples */ UnHoldAndWait(); }  148  fmda.m clear NUM_PER_CH  = 600;  NUM_PER_ROW = 10; INPUT_CH  = 7;  OUTPUT_CH  = 4;  time_step  = 50e-6;  g l o b a l range global  rangel  load  deltas.fil  load  yesr.fil  %load  iii5r.fil  load  dd90r.fil  load  dd90s.fil  load  . .\. . \ o f f s e t  deltar = yesr; %deltar = i i i 5 r ; c h i r p r = dd90r; chirps  = dd90s;  c l e a r y e s r dd90r dd90s  in_file_row  = NUM_PER_CH* INPUT_CH/NUM_PER_ROW;  out_file_row  = NUM_PER_CH*OUTPUT_CH/NUM_PER_ROW;  for  i=l:out_file_row  f o r j = 1:NUM_PER_ROW impout(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH)  + 1  ((((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH)- ... floor(((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH))*NUM_PER_CH + 1) = d e l t a s ( i , j ) ; chirpout(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH) + 1 ((((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH)- ... f l o o r ( ( (i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH) )*NUM_PER_CH + 1) = c h i r p s ( i , j ) ; end end for i = l : i n _ f i l e _ r o w f o r j =1:NUM_PER_ROW impin(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH) + 1  149 ((  floor( chirpin(floor(  (i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH)- ... (i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH))*NUM_PER_CH + 1) = d e l t a r ( i , j ) (i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH) + 1  ( ( (i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH)- ... f l o o r ( (i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH))*NUM_PER_CH + 1) = c h i r p r ( i , j ) end end offsetmat = offset.'*ones(1,length(impin)); impin  = impin-offsetmat;  chirpin  = chirpin-offsetmat;  c l e a r i j d e l t a s d e l t a r NUM_PER_ROW o f f s e t m a t o f f s e t c h i r p r c h i r p s impout = impout * 3.5 / 2 048; impin  = impin  * 2.5 / 2048;  impin  = impin  * (1+3300/560) / (1+82000/560);  c h i r p o u t = c h i r p o u t * 3.5 / 2 04 8; chirpin  = chirpin  * 2.5 / 2048;  %PEDDING_LEN = 600 %impout  = [impout  zeros(4,PEDDING_LEN)]  %impin  = [impin  zeros(7,PEDDING_LEN)]  % c h i r p o u t = [ c h i r p o u t zeros(4,PEDDING_LEN)] %chirpin  = [chirpin  zeros(7,PEDDING_LEN)]  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % u s i n g t h e same impulse response  f o r a l l channels  % w i t h t h e magnitude a d j u s t e d impinold = impin; scale =  max(impin.')/max(max(impin));  impin = s c a l e . ' * impin(4,:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCESS_LEN = 6 0 0 time_axis  = (1:PROCESS_LEN)*time_step;  discard_sam =  floor(42*2.54/100/330/0.00005);  impulse_b4_ref = floor(4.3e-3/0.00005); % i m p u l s e _ b 4 _ r e f = 90; espilon  = 0;  impintruc = [impin(:,discard_sam:discard_sam-l+impulse_b4_ref)  ..  zeros(7,PROCESS_LEN-impulse_b4_ref)].'; impintruco=  [impinold(:,discard_sam:discard_sam-l+impulse_b4_ref)  zeros(7,PR0CESS_LEN-impulse_b4_ref)] impinfft  =fft(impintruc);  i m p o u t f f t = fft(impout(3,1:PROCESS_LEN)  );  c h i r p o u t f f t = fft(chirpout(3,l:PR0CESS_LEN) chirpinfft  Txfcnfft  ) ;  = f f t ( chirpin(:,1:PROCESS_LEN).');  = impinfft./(impoutfft.'*ones(1,7));  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % a l t approaches t o c a l c u l a t e t x f e n i n one shot, %Txfcnfft  = (abs(impinfft).^2+espilon)  %  ./...  ((impoutfft.'*ones(1,7)).*conj(impinfft))  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  txfen  = ifft(Txfcnfft);  abstxfcnfft = abs(Txfcnfft) ; chirpfft  = chirpinfft./Txfcnfft;  filter  = chirpoutfft.'*ones(1,7);  result  = ifft(chirpfft.*conj(filter)) ;  result  = r e a l ( r e s u l t ) .';  xrange =0.0078; range  = max(max(result))*1.1;  rangel = max(max(result))*1.1; full_fig  = 0;  figure(1) if  full_fig  f i g u r e ( 4 ) ; e l s e s u b p l o t ( 4 2 6 ) ; end;  plot(time_axis,result(1,:)) a x i s ( [ 0 xrange -range  rangel])  t i t l e ( ' c h i r p response f o r channel l ( 1 5 0 d e g ) ' ) grid if  full_fig  f i g u r e ( 5 ) ; e l s e s u b p l o t ( 4 2 4 ) ; end;  plot(time_axis,result(2,:)) a x i s ( [ 0 xrange -range  rangel])  t i t l e ( ' c h i r p response f o r channel  2(135deg)')  grid if full_fig  f i g u r e ( 6 ) ; e l s e s u b p l o t ( 4 2 2 ) ; end;  plot(time_axis,result(3,:)) a x i s ( [ 0 xrange -range  rangel])  t i t l e ( ' c h i r p response f o r channel  3(120deg)')  151 grid if  full_fig  f i g u r e ( 7 ) ; e l s e s u b p l o t ( 4 2 7 ) ; end;  p l o t ( t i m e _ a x i s , r e s u l t ( 4 , : )) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' c h i r p r e s p o n s e f o r c h a n n e l 4(90deg)') grid if  full_fig  f i g u r e ( 8 ) ; e i s e s u b p l o t ( 4 2 5 ) ; end;  plot(time_axis,result(5,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' c h i r p r e s p o n s e f o r c h a n n e l 5(60deg)') grid if  full_fig  figure(9);  e l s e s u b p l o t ( 4 2 3 ) ; end;  plot(time_axis,result(6,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' c h i r p r e s p o n s e f o r c h a n n e l 6(45deg)') grid if  full_fig  f i g u r e ( l O ) ; e l s e s u b p l o t ( 4 2 1 ) ; end;  plot(time_axis,result(7,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' c h i r p r e s p o n s e f o r c h a n n e l 7(30deg)') grid %orient orient  portrait tall  p r i n t -deps \ n e l \ t h e s i s \ p c x \ d d 9 0 . e p s  fmanal.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % F I L E : fmanal.m %  To p u l s e compress t h e i n t e r f e r e n c e  %  f o r FM s i g n a l  %  and 180 degree d i s p l a y  pattern  (5x oversample)  % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  clg; clear; colormap(gray); %  PARAMETERS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  FreqO  = 1500  %(Hz)  i n i t i a l frequency of c h i r p  Freqf  = 4500  %(Hz)  f i n a l frequency of c h i r p  duration  = 4e-3  %(s)  time_step  = 0 . 00005 ;%(s)  t i m e - s t e p chosen f o r 5.8x  velocity  = 330 ; %(m/s)  v e l o c i t y o f t h e wave  source_d  = 0.06; % (m)  d i s t a n c e between a r r a y element  %  o v e r s a m p l i n g a t 4000Hz  % i n the x d i r e c t i o n %x_separ  = [ -0.5 0.5 ] ; %(number o f source_d)  x_separ  = [-1.5 -0.5 0.5 1.5 ] ; %(number o f source_d)  x_offset  = 0; %the a r r a y must be l i n e a r and must be i n i n c r e a s i n g o r d e r  Orig  = [0 0 ] ; %(m)  thetha  = 13 5;  ; %degree radius  O r i g i n [X Y] c o - o r d i n a t e  Angle a t which Max beam o c c u r s = 1.066800  ; %(m)  %  the s i g n a l i s recorded i n " r a d i u s " meter away  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  %  END PARAMETERS  x_source  = x _ s e p a r * s o u r c e _ d + x _ o f f s e t ; %(m)  y_source  = [ z e r o s ( s i z e ( x _ s o u r c e ) ) ] ; %(m)  %  MAKE UP ARC  angle  = 30:15:150; %range o f a n g l e t o be d i s p l a y e d  angler  = angle  / 180 * p i ; %convert the angle t o r a d i a n  arc_X  = Orig(l) + cos(angler) * radius;  arc_Y  = Orig(l) + sin(angler) * radius;  [ i number_of_source]  = size(x_source);  %  END MAKE UP ARC  %  DISTANCE CALCULATION  o n e _ v e c t o r _ 3 60  = ones(size(angle));  one_vector_NoS  =  % i i s temperary  variable  ones(number_of_source,1);  dx  = (one_vector_NoS  * arc_X - x _ s o u r c e . ' * o n e _ v e c t o r _ 3 6 0 ) . " 2 ;  dy  = (one_vector_NoS  * arc_Y - y_source.' * o n e _ v e c t o r _ 3 6 0 ) . 2 ;  d  = sqrt(dx+dy); % c a l c u l a t e t h e d i s t a n c e between each source and %each p o i n t i n t h e a r c .  A  %  END  DISTANCE CALCULATION  %plot(angle,d); %grid; % t i t l e ( ' D i s t a n c e from Each Source t o the A r c ' ) ; % x l a b e l ( ' A n g l e from C e n t e r of a r r a y ( d e g r e e ) ' ) ; % y l a b e l ( ' D i s t a n c e (meter)'); %pause;  %  FIRING TIME FOR ANGLE STEERING  thethar  = t h e t h a / 180 * p i ;  ^convert to r a d i a n  travel_time  = d/velocity;  dvcosthetha  = source_d / v e l o c i t y * c o s ( t h e t h a r ) ;  travel_time  = t r a v e l _ t i m e + d v c o s t h e t h a * x_separ.'  % c o n v e r t the d i s t a n c e d i f f e r e n c e t o time d i f f e r e n c e  % a n g l e compensation  % n o t i c e the +dvcos.... here %  END  *  one_vector_360;  here : x_separ i s -ve a l r e a d y  FIRING TIME FOR ANGLE STEERING  %plot(angle,travel_time) %grid; % t i t l e ( ' A r r i v i a l Time w i t h  Compensation');  % x l a b e l ( ' A n g l e from C e n t e r of A r r a y ( d e g r e e ) ' ) ; % y l a b e l ( ' A r r i v i a l Time (second) ') ; %s  = sprintf('Angle =  %d degree,  %dm',thetha,radius);  matime = m a x ( m a x ( t r a v e l _ t i m e ) ) ; mitime = m i n ( m i n ( t r a v e l _ t i m e ) ) ; % t e x t ( 2 0 0 , ( m a t i m e - m i t i m e ) / 5 + m i t im e , s ) ; %print %pause; % o r i g i n c o m p r e s a t i o n to be i n s e r t here wf  = Freqf * 2 * p i ;  % i n i t i a l angular f r e q  wO  = FreqO * 2 * p i ;  %final  w_rate  = (wf - wO)  %chirp-rate  / duration;  1  angular freq  154 %  MAKE UP THE  INTEFERENCE MARTIX  ph_m_x_axis = a n g l e ; ph_m_x_size = l e n g t h ( a n g l e ) ;  %180  degrees  % t h i s d e f i n e s the range of the d i s p l a y of x a x i s ph_m_y_size = f i x ( ( m a t i m e + l * d u r a t i o n  - ( m i t i m e - d u r a t i o n ) ) / t i m e _ s t e p + 4)  % c a l c u l a t e the p r o p e r s i z e of the phase m a t r i x ; %the s i z e i n c l u d e s zero padding t o a v o i d wrap around % e r r o r when d o i n g match f i l t e r i n g . ph_m_start  = mitime-duration-2*time_step; % c o r r e s p o n d i n g t o the s t a r t i n g time of the  first  %element (each column) of the phase m a t r i x . ph_m_y_axis =  ph_m_start:time_step:ph_m_start+(ph_m_y_size-l)*time_step; % d e f i n i n g the a x i s : time  (y) a g a i n s t a n g l e  (x)  t r a v e l _ t i m e _ n o _ o f f s e t = t r a v e l _ t i m e - ph_m_start; ph_m_pos  = t r a v e l _ t i m e _ n o _ o f f s e t ./ t i m e _ s t e p ; % f i n d i n g where the s i n g a l b e g i n t o appear i n the %phase m a t r i x  1  num_of_step = ( d u r a t i o n / t i m e _ s t e p ) ; %number of s t e p of the c h i r p  zero_ph__m  = zeros(ph_m_y_size,ph_m_x_size) %for  amp  = zero_ph_m; %set  for  ;  initialization  the t o t a l response t o be  zero  i = 1:number_of_source  ph_m_temp = zero_ph_m; %set for  the phase m a t r i x f o r a source t o be z e r o  ( i i = 1:length(angle))  ph_start_pos =  ceil(ph_m_pos(i,ii)  ph_end_pos  floor(ph_m_pos(i,ii)+num_of_step)+1;  =  )+l;  % f i n d where the s i g n a l appears i n the m a t r i x i n %a p a r t i c u l a r  angle  ph_m_temp(ph_start_pos:ph_end_pos , i i ) = . . . ((0:(ph_end__pos-ph_start_pos)).'+ph_start_pos-ph_m_pos(i,ii))*time_step; % p u t i n g the s i n g a l  ( i n time form) i n t o the m a t r i x  end arg  =1/2 * w_rate  * ph_m_temp.^2 + wO * ph_m_temp;  amplitude  = sin(arg);  amp  = a m p l i t u d e + amp;  % c o n v e r t t h e s i g n a l i n t o phase a n g l e  %adding t h e t o t a l respond from each  source  end %  END MAKE UP THE INTEFERENCE MARTIX  % time_span  MATCH FILTERING = [(0:floor(num_of_step)).' ;  ...  zeros (ph_m_y_size-f l o o r (num_of_step)-1, 1) ] ,time_span  = time_span * t i m e _ s t e p ;  arg  = 1/2 * w_rate  filter  = sin(arg);  * time_span.^2  + wO * time_span;  %make up a matched f i l t e r %fft_filter fft_filter  = kaiser(ph__m_y_size,2.5) =  conj(fft(filter))  .* c o n j ( f f t ( f i l t e r ) )  = fft(amp);  flt_result = ifft(fft_filter %  .* f f t _ a m p ) ;  END MATCH FILTERING  time_range_plot=0.0078; range = m a x ( m a x ( r e a l ( f l t _ r e s u l t ) ) ) *1.1; r a n g e l = m a x ( m a x ( r e a l ( f l t _ r e s u l t ) ) ) *1.1; figure(1) subplot(421) p l o t ( p h _ m _ y _ a x i s , r e a l ( f l t _ r e s u l t ( : , 1) ) ) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 30 deg'); subplot(423) p l o t ( p h _ m _ y _ a x i s , r e a l ( f l t _ r e s u l t ( : , 2) ) ) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 45 deg'); subplot(425)  * one_vector_360  * one_vector_360;  %make up a matched f i l t e r fft_amp  i n time domain.  i n f r e q domain.  p l o t ( p h _ m _ y _ a x i s , r e a l ( f l t _ r e s u l t ( : , 3)) ) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( S i m u l a t i o n a t 60 deg'); 1  subplot(427) p l o t ( p h _ m _ y _ a x i s , r e a l ( f l t _ r e s u l t ( : , 5) ) ) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 90 deg'); subplot(422) p l o t ( p h _ m _ y _ a x i s , r e a l ( f l t _ r e s u l t ( : , 7))) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 12 0 deg'); subplot(424) p l o t ( p h _ m _ y _ a x i s , r e a l ( f l t _ r e s u l t ( : , 8))) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 135 deg'); subplot(426) plot(ph_m_y_axis, axis([0  real(flt_result(:,9)))  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 150 deg'); %orient portrait orient  tall  p r i n t -deps \ n e l \ t h e s i s \ p c x \ d d s l 3 5 . e p s  cmpsnd.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % F I L E : cpmsnd.m %  t o c r e a t e pm d a t a t o be used i n t h e experiment  %  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear;  %  PARAMETERS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% need__plot  = 0;  sample_length %sample_length  = 3 0e-3;  %  t o t a l _ l e n g t h of signal  = 5e-3; %  t o t a l _ l e n g t h of s i g n a l  pre_dead_air  = -0. 5e-3;%  a l l o w f o r s i g n a l t o go i n t o -ve time  time_step  = 5 0e-6; % ( s )  to match t h e e x p e r i m e n t a l r a t e  velocity  = 330  v e l o c i t y o f t h e wave  FreqO  = 3000 ; % (Hz)  Freqf  3000 ; % (Hz)  ; %(m/s)  i n i t i a l frequency of c h i r p f i n a l frequency of c h i r p  1- 1 1 1 1  pulse_code = [ 1  1 -1 ] ; % each d i g i t o f t h e element  %  r e p r e s e n t a l e n g t h o f lambda  %  the phase i s r e v e r s e d f o r -1's and i s normal f o r 1's  %  pulse_code2=  [ 1  1 -1  source_d  = 0.06 ; %(m)  x_separ  = [-1.5 -0.5  1 -1 -1 -1  1 ] ; % complementary o f t h e above s i n g a l d i s t a n c e between a r r a y element % i n the x d i r e c t i o n  0.5 1.5 0] ; %(number o f source_d) % l a s t one i s r e f e r e n c e  x_offset  = 0; % t h e a r r a y must be l i n e a r and must be i n i n c r e a s i n g o r d e r  thetha  =90  ; %degree  A n g l e a t which Max beam o c c u r s  % Orig  " r a d i u s " meter away  = [0 0 ] ; % (m)  O r i g i n [X Y] c o - o r d i n a t e  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %  END PARAMETERS  % x_source  PARAMETERS CALCULATION = x_separ * s o u r c e _ d + x _ o f f s e t ; %(m)  [ i number_of_source] y_source  = size(x_source);  = zeros(1,number_of_source);  lambda_duration  % i i s temperary  variable  %(m)  = 1/FreqO; % ( s )  [ i num_of_lambda] = s i z e ( p u l s e _ c o d e ) ; duration  = num_of_lambda * l a m b d a _ d u r a t i o n ;  num_of_step= ( d u r a t i o n / t i m e _ s t e p ) ; %number o f s t e p o f t h e c h i r p sam__per_lambda  =  time_at_change  :  time_at_change2  1ambda_durat i on/1 ime_s t ep ; ( f i n d ( - l * ( pulse_code  :  [ i num_of_change ]=  - 1))  1)*lambda_duration;  ( f i n d ( - l * ( pulse_code2 - 1))  l)*lambda duration;  s i z e ( t i m e _ a t _ c h a n g e );  [ i num_of_change2]: s i z e ( t i m e _ a t _ c h a n g e 2 ) ; num_of_change  = [num_of_change; num_of_change2];  num_of_ch_max = max(num_of_change); sam_at_change  = [time_at_change time_at_change2  zeros(1,num_of_ch_max-num_of_change(1)); zeros(1,num_of_ch_max-num_of_change(2))  ]/ t i m e _ s t e p ; % i n case t h e change p o i n t a t lambda end %sam_at_change r e q u i r e adding one wf  = Freqf * 2 * p i ;  % i n i t i a l angular f r e q  wO  = FreqO * 2 * p i ;  %final  w_rate  = (wf - wO) / d u r a t i o n ;  %chirp-rate  %  END PARAMETERS CALCULATION  %  FIRING TIME FOR ANGLE STEERING  angular f r e q  thethar  = t h e t h a / 180 * p i ;  travel_time  = 0; ^ c o n v e r t t h e d i s t a n c e d i f f e r e n c e t o time d i f f e r e n c e  %convert to r a d i a n  dvcosthetha  = source_d / v e l o c i t y * c o s ( t h e t h a r ) ;  travel_time  = t r a v e l _ t i m e + d v c o s t h e t h a * x_separ; % a n g l e compensation  here  % n o t i c e t h e +dvcos.... here : x_separ i s -ve a l r e a d y %  END FIRING TIME FOR ANGLE STEERING  % o r i g i n c o m p r e s a t i o n t o be i n s e r t here  % ph_m_start  — SIGNAL CALCULATION = pre_dead_air;  ph_m_x_axis = x _ s e p a r ; ph_m_x_size = number_of_source;  %360 degrees  ph_m_y_size = s a m p l e _ l e n g t h / t i m e _ s t e p ; ph_m_y_axis = p h _ m _ s t a r t : t i m e _ s t e p : p h _ m _ s t a r t + ( p h _ m _ y _ s i z e - l ) * t i m e _ s t e p ; % d e f i n i n g t h e a x i s : time (y) a g a i n s t a n g l e (x) t r a v e l _ t i m e _ n o _ o f f s e t = t r a v e l _ t i m e - ph_m_start; ph_m_pos  = t r a v e l _ t i m e _ n o _ o f f s e t ./ t i m e _ s t e p ; % f i n d i n g where t h e s i n g a l b e g i n t o appear i n t h e %phase m a t r i x  zero_ph_m  =  =  amp  zeros(ph_m_y_size,ph_m_x_size); %for  initialization  %set  the t o t a l response t o be zero  [zero_ph_m,zero_ph_m] ;  ph_start_pos  =  c e i l ( p h m pos)  ph_end_pos  = floor(ph_m_pos  +1; +num_of_step)+1;  % f i n d where the s i g n a l appears i n the m a t r i x i n %a p a r t i c u l a r a n g l e f o r c c c =1:2 ph_m_temp  = zero_ph_m;  f o r i = 1:ph_m_x_size ph_m_temp(ph_start_pos(i):ph_end_pos(i),i)=... (0:(ph_end_pos(i)-ph_start_pos(i))).' %the  + ph_start_pos(i)  - ph_m__pos(  above l i n e i s double checked on J a n 24 96 t o  %ensure the s t a r t i n g p o s i t i o n %the  time s h i f t  %the  num_of_step  i s c o r r e c t and t h a t  i s correct cannot d e c i d e the number o f p o i n t s  % i n the m a t r i s as the s t a r t i n g p o i n t i s n o t c e r t a i n % t h e r e f o r e we have t o use p h _ e n d . . . - p h _ s t a r t for(k =  1:num_of_change(ccc))  flip_start_pos  =  ceil(ph_m_pos(i)+sam_at_change(ccc,k)  flip_end_pos  = floor(ph_m_pos(i)+sam_at_change(ccc,k)  ) + 1; + 1 +..  sam_per_lambda); ph_m_temp(flip_start_pos:flip_end_pos,i)=... ph_m_pos(i)  + sam_at_change(ccc,k)  (0:(flip_end_pos-flip_start_pos)).'  - f l i p _ s t a r t _ p o s + 1 + ... * (-1) ;  end end ph_m_temp  ph_m_temp * t ime_s tep; % p u t i n g the s i n g a l  ph_m  = 1/2 * w_rate  amplitude  =  ( i n time form) i n t o the m a t r i x  * ph_m_temp.~2  ^ c o n v e r t the s i g n a l  + wO * ph_m_temp;  i n t o phase a n g l e  round(2047*sin(ph_m));  160 amp(:,((ccc-1)*number_of_source+l):(ccc*number_of_source)) = amplitude; %adding t h e t o t a l respond from each s o u r c e end %  END SIGNAL CALCULATION  sb  = sprintf('pmb%ds.fil  ,thetha)  1  sc  = s p r i n t f ( ' p m c % d s . f i l ' ,thetha)  sbr  =  sprintf('pmbr%ds.fil',thetha)  scr  =  sprintf('pmcr%ds.fil',thetha)  FIDb = f o p e n ( s b  ,'w')  FIDc = f o p e n ( s c  ,'w')  FIDbr=  fopen(sbr,'w')  FIDcr=  fopen(scr,'w')  for  ( i =1:(number_of_source-l))  for (ii=l:ph_m_y_size) i f (round(ii/10)-ii/10)==0 fprintf(FIDb,  '%6d\n ,amp(ii,i));  fprintf(FIDc,  '%6d\n ,amp(ii,i+number_of_source))  1  1  fprintf(FIDbr,'%6d\n',amp(ii,  number_of_source))  fprintf(FIDcr,'%6d\n',amp(ii,2*number_of_source)) else fprintf(FIDb,  1  %6d'  fprintf(FIDc,  1  %6d'  f p r i n t f ( F I D b r , '%6d' fprintf(FIDcr,'%6d'  ,amp(ii,i)); ,amp(ii,i+number_of_source)) ,amp(ii,  , amp(ii,2*number_of_source))  end end fprintf(FIDb  ,'\n')  fprintf(FIDc  ,'\n')  fprintf(FIDbr,'\n') fprintf(FIDcr,'\n') end fclose('all'); i f need__plot range = 2 048 figure(1) subplot(111); plot(amp(:,1)) a x i s ( [ 0 100 -range range]) hold  number_of_source))  plot(amp(:,6),'r') hold figure(2) s u b p l o t (111) ,plot(amp(:,2)) axis([0  100 -range  range])  hold plot(amp(:,7) , 'r ' ) hold figure(3) subplot(111); plot(amp(:,3)) a x i s ( [ 0 100 -range  range])  hold plot(amp(:,8),'r') hold figure(4) subplot(111); plot(amp(:,4)) axis([0  100 -range  range])  hold plot(amp(:,9) , 'r ' ) hold f i g u r e (5) subplot(111); plot(amp(:,5)) a x i s ( [ 0 100 -range hold plot(amp(:,10),'r') hold end  cmpda.m clear INPUT_CH  = 7;  NUM_PER_CH  = 600;  NUM_PER_ROW = 10;  range])  162 OUTPUT_CH  = 4;  TIME_STEP  = 50e-6;  load  pmb45r.fil  load  pmc45r.fil  load  pmbr45s.fil  load  pmcr45s.fil  load  ..\yesr.fil  load  ..\deltas.fil  l o a d ..\ . . \ o f f s e t d e l t a r = yesr; pmbs  = pmbr45s;  pmcs  = pmcr45s;  pmcr  = pmc45r;  pmbr  = pmb45r;  c l e a r y e s r pmbr45r pmbr45s pmc45r pmc45s  IN_FILE_ROW  = NUM_PER_CH* INPUT_CH/NUM_PER_ROW;  OUT_FILE_ROW  = NUM_PER_CH*OUTPUT_CH/NUM_PER_ROW;  for  i=l:OUT_FILE_ROW  f o r j =1:NUM_PER_ROW impout(floor(  ( i - 1) *NUM__PER_ _ROW+j-1) /NUM..PER..CH) + 1 , ( ( ( i - 1) *NUM_.PER._ROW+j-1) /NUM..PER..CH) f l o o r ( ( i - 1) *NUM_.PER..ROW+j-1) /NUM..PER..CH) )*NUM_.PER..CH  +  1) = d e l t a s ( i , j  ( i - 1) *NUM_.PER..ROW+j-1) /NUM..PER..CH) + 1 , ( ( ( i - 1) *NUM_.PER..ROW+j-1) /NUM..PER..CH) - . . . f l o o r ( ( i - 1) *NUM_.PER..ROW+j-1) /NUM..PER..CH) )*NUM_.PER._CH  +  1) = p m b s ( i , j ) ;  ( i - 1) *NUM_.PER._ROW+j-1)/NUM._PER_ .CH) + 1 , ( ( ( i - 1) *NUM_.PER..ROW+j-1)/NUM..PER..CH) - . . . f l o o r ( ( i - 1) *NUM__PER_ _ROW+j-1)/NUM..PER..CH) )*NUM_.PER..CH  +  1) = p m c s ( i , j ) ;  pmbout(floor(  pmcout(floor(  end end f o r i=l:IN_FILE_ROW f o r j=l:NUM_PER_ROW impin(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH) + 1 ((((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH)-  ...  floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH))*NUM_PER_CH pmbin(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH) ((((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH)-  + 1 ...  + 1)=deltar(i,j);  163 floor(((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH))*NUM_PER_CH  + l)=pmbr(i,j);  pmcin(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH) + 1 ((((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH)-  ...  floor(((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH))*NUM_PER_CH end end offsetmat = offset.'*ones(1,length(impin)); impin  = impin-offsetmat;  pmbin  = pmbin-offsetmat;  pmcin  = pmcin-offsetmat;  c l e a r IN_FILE_ROW OUT_FILE_ROW NUM_PER_ROW i j . . . d e l t a s d e l t a r o f f s e t m a t o f f s e t pmbs pmcs pmbr pmcr impout = impout * 2.5 / 2 048; impin  = impin  * 2.5 / 2048 * (1+3300/560) / (1+82000/560);  pmbout = pmbout * 2.5 / 2048; pmcout = pmcout * 2.5 / 2048; pmbin  = pmbin  * 2.5 / 2048;  pmcin  = pmcin  * 2.5 / 2048;  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % f i l t e r i n g done here %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  fltb  = c o n j ( f f t ( pmbout(1,:).'*ones(1,INPUT_CH)  ));  fltc  = c o n j ( f f t ( pmcout(1,:).'*ones(1,INPUT_CH)  ));  f l t _ r s t _ f f t = fft(pmbin.').*fltb+fft(pmcin.').*fltc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %deconv done h e r e %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % u s i n g t h e same impulse response f o r a l l channels % w i t h t h e magnitude a d j u s t e d impinold = impin; s c a l e = max(impin.')/max(max(impin)); impin = s c a l e . ' * impin(4,:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCESS_LEN = 600  + 1)=pmcr(i,j);  164 time_axis  = (1:PROCESS_LEN)*TIME_STEP;  discard_sam =  floor(42*2.54/100/330/0.00005);  impulse_b4_ref = floor(4.3e-3/0.00005); espilon  = 0;  impintruc = [impin(:,discard_sam:discard_sam-l+impulse_b4_ref) zeros(7,PROCESS_LEN-impulse_b4_ref)] impintruco=  .' ;  [ i m p i n o l d ( : , d i s c a r d _ s a m : d i s c a r d _ s a m - l + i m p u l s e _ b 4 _ r e f ) ... zeros(7,PROCESS_LEN-impulse_b4_ref)].';  impinfft-  = fft(impintruc);  i m p o u t f f t = fft(impout(3,1:PROCESS_LEN)  Txfcnfft  );  = impinfft./(impoutfft.'*ones(1,7));  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % a l t approaches %Txfcnfft  t o c a l c u l a t e t x f e n i n one shot  = ( a b s ( i m p i n f f t ) . ^ 2 + e s p i l o n ) ./...  %  ((impoutfft.'*ones(1,7)).*conj(impinfft)) ;  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  pmfft  = flt_rst_fft./Txfcnfft;  result  = ifft(pmfft);  result  = r e a l ( r e s u l t ) .';  xrange = 0.007 8; range  = max(max(result))*1.1;  rangel = max(max(result))*1.1; full_fig  = 0;  figure(2) if full_fig  f i g u r e ( 4 ) ; e l s e s u b p l o t ( 4 2 1 ) ; end;  plot(time_axis,result(1,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' P M response f o r channel  7(30deg)')  grid if full_fig  f i g u r e ( 5 ) ; e l s e s u b p l o t ( 4 2 3); end;  plot(time_axis,result(2,:)) a x i s ( [ 0 xrange  -range r a n g e l ] )  t i t l e ( ' P M response f o r channel  6(45deg)')  grid if full_fig  ...  f i g u r e ( 6 ) ; e l s e s u b p l o t ( 4 2 5 ) ; end;  plot(time_axis,result(3,:)) a x i s ( [ 0 xrange -range r a n g e l ] )  165 t i t l e ( ' P M r e s p o n s e f o r c h a n n e l 5(60deg)') grid if full_fig  f i g u r e ( 7 ) ; e l s e s u b p l o t ( 4 2 7 ) ; end;  plot(time_axis,result(4,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' P M r e s p o n s e f o r c h a n n e l 4(90deg)') grid if full_fig  f i g u r e ( 8 ) ; e l s e s u b p l o t ( 4 2 2 ) ; end;  plot(time_axis,result(5,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' P M r e s p o n s e f o r c h a n n e l 3(120deg)') grid if full_fig  f i g u r e ( 9 ) ; e l s e s u b p l o t ( 4 2 4 ) ; end;  plot(time_axis,result(6,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' P M r e s p o n s e f o r c h a n n e l 2(135deg)') grid if full_fig  f i g u r e ( l O ) ; e l s e s u b p l o t ( 4 2 6 ) ; end;  plot(time_axis,result(7,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' P M response f o r channel l(150deg)') grid orient  tall  p r i n t -deps \ n e l \ t h e s i s \ p c x \ p m l 3 5.eps  cpmanal.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % F I L E : cpmanal.m %  To p u l s e compress t h e i n t e r f e r e n c e  pattern  %  f o r phase m o d u l a t i o n ( w i t h complementary code)  %  and 360 degree d i s p l a y  (8x oversample)  % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  clg ; clear; colormap(gray); %  _  PARAMETERS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FreqO  = 3 000 ; %(Hz)  i n i t i a l frequency of c h i r p  Freqf  = 3000 ; %(Hz)  f i n a l frequency of c h i r p  pulse_code = [ 1  -1 ]; % each d i g i t  of the element  r e p r e s e n t a l e n g t h of lambda  pulse_code2=  [1  1-1  the  phase i s r e v e r s e d f o r - l ' s  and  i s normal f o r 1's  1 ]; % complementary o f the above s i n g a l  1-1  time_step  = 50e-6; % ( s )  to match the e x p e r i m e n t a l  rate  velocity  = 330  ; %(m/s)  v e l o c i t y of the wave  source_d  = 0.06  ; % (m)  d i s t a n c e between a r r a y element  x_separ  = [-1.5  % i n the x d i r e c t i o n -0.5 0.5  = [-0.5  %x_separ x offset  0.5  1.5  ]; %(number of source_d)  ]; %(number of source_d)  0; %the  a r r a y must be l i n e a r and must be i n i n c r e a s i n g  order  Orig  = [0 0 ] ; %(m)  Origin  thetha  =13 5  A n g l e a t which Max beam o c c u r s  radius  = 1.06680  ; %degree ; %(m)  [X Y] c o - o r d i n a t e  the s i g n a l i s r e c o r d e d i n  %  " r a d i u s " meter away  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %  END  %  PARAMETERS  PARAMETERS CALCULATION  x_source  = x_separ * s o u r c e _ d + x _ o f f s e t ;  [ i number_of_source] = s i z e ( x _ s o u r c e ) ; y_source  = zeros(1,number_of_source);  lambda_duration  = 1/FreqO; % ( s )  [ i num_of_lambda]  = size(pulse_code);  duration  = num_of_lambda  num_of_step=  %(m) % i i s temperary v a r i a b l e %(m)  * lambda_duration;  (duration/time_step); %number of step of the c h i r p 1ambda_durat i on/1 ime_s t ep;  sam__per_lambda  :  time_at_change  •  time_at_change2  pulse_code  - 1)  1)*lambda_duration;  (find(-l*(  pulse_code2 - 1)  l)*lambda d u r a t i o n ;  ]=  s i z e ( t i m e _ a t _ c h a n g e );  num_of_change2]:  size(time_at_change2);  [ i num_of_change [i  (find(-l*(  num_of_change  = [num_of_change;  num_of_ch_max = max(num_of_change) ;  num_of_change2];  sam_at_change  = [time_at_change time_at_change2  zeros(1,num_of_ch_max-num_of_change(1)); zeros(1,num_of_ch_max-num_of_change(2))  ]/ t i m e _ s t e p ; % i n case t h e change p o i n t a t lambda end %sam_at_change r e q u i r e adding one wf  = Freqf * 2 * p i ;  % i n i t i a l angular freq  wO  = FreqO * 2 * p i ;  %final  w_rate  = (wf - wO) / d u r a t i o n ;  %chirp-rate  %  END PARAMETERS CALCULATION  %  MAKE UP ARC  angle  = 30:15:150; %range o f a n g l e t o be d i s p l a y e d  angler  = angle  angular freq  / 180 * p i ; %convert the angle t o r a d i a n  arc_X  = Orig(l) + cos(angler) * radius;  arc_Y  = Orig(2) + sin(angler) * radius;  %  END MAKE UP ARC  %  DISTANCE CALCULATION  o n e _ v e c t o r _ 3 60  = ones(size(angle));  one_vector_NoS  =  ones(number_of_source,1);  dx  = (one_vector_NoS  * arc_X - x _ s o u r c e . ' * o n e _ v e c t o r _ 3 6 0 ) . ^ 2 ;  dy  = (one_vector_NoS  * arc_Y - y_source.' * o n e _ v e c t o r _ 3 6 0 ) . ^ 2 ;  d  = sqrt(dx+dy); % c a l c u l a t e t h e d i s t a n c e between each source and %each p o i n t i n t h e a r c .  %  END DISTANCE CALCULATION  %  FIRING TIME FOR ANGLE STEERING  thethar  = t h e t h a / 180 * p i ;  travel_time  = d/velocity;  ^convert to r a d i a n  % c o n v e r t t h e d i s t a n c e d i f f e r e n c e t o time d i f f e r e n c e  %angle compensation  here  168 % n o t i c e the +dvcos.... here END  %  x_separ i s -ve a l r e a d y  FIRING TIME FOR ANGLE STEERING  matime = m a x ( m a x ( t r a v e l _ t i m e ) ) ; mitime = m i n ( m i n ( t r a v e l _ t i m e ) ) ; %plot(angle,travel_time) %grid; % t i t l e ( ' A r r i v i a l Time w i t h  Compensation');  % x l a b e l ( ' A n g l e from Center of A r r a y ( d e g r e e ) ' ) ; % y l a b e l ( ' A r r i v i a l Time ( s e c o n d ) ' ) ; %s  = sprintf('Angle =  %d degree,  %dm',thetha,radius);  %text(225,(matime-mitime)/5+mitime,s); %pause; % o r i g i n c o m p r e s a t i o n t o be i n s e r t here  %  INTEFERENCE MART IX PARAMETER  ph_m_x_axis = a n g l e ; ph_m_x_size = l e n g t h ( a n g l e ) ; %360  degrees  ph_m_y_size = f i x ( ( m a t i m e + l * d u r a t i o n  - ( m i t i m e - d u r a t i o n ) ) / t i m e _ s t e p + 60);  % c a l c u l a t e the p r o p e r s i z e of the phase m a t r i x ; %the s i z e i n c l u d e s zero padding t o a v o i d wrap around % e r r o r when d o i n g match f i l t e r i n g . ph_m_start  = mitime-duration-20*time_step; % c o r r e s p o n d i n g t o the s t a r t i n g time o f the f i r s t %element (each column) of the phase m a t r i x . .  ph_m_y_axis =  ph_m_start:time_step:ph_m_start+(ph_m_y_size-l)*time_step; % d e f i n i n g the a x i s : time (y) a g a i n s t a n g l e  (x)  t r a v e l _ t i m e _ n o _ o f f s e t = t r a v e l _ t i m e - ph_m_start; ph_m_pos  = t r a v e l _ t i m e _ n o _ o f f s e t ./ t i m e _ s t e p ; % f i n d i n g where the s i n g a l b e g i n t o appear i n the %phase m a t r i x  %plot(angle,ph_m_pos(1,:)); zero_ph_m  =  zeros(ph_m_y_size,ph_m_x_size); %for  initialization •  169 %set  t h e t o t a l response t o be zero  %  END INTEFERENCE MARTIX PARAMETER  %  MAKING THE MATCH FILTERING  filter  = [];  f o r c c c = 1:2 time_span  = [(0:floor(num_of_step)).';... zeros(ph_m_y_size-floor(num_of_step)-1,1)];  for(k =  1:num_of_change(ccc))  flip_start_pos = flip_end_pos  c e i l ( sam_at_change(ccc,k)  ) + 1;  = f l o o r ( sam_at_change(ccc,k) + sam_per_lambda) + 1; %add 1 t o compensate  the f a c t that a r r a y s t a r t a t 0  % f l o o r ( ) + 1 != c e i l ! ! ! ! ! ! ! ! t i m e _ s p a n ( f l i p _ s t a r t _ p o s : f l i p _ e n d _ p o s ) = ... sam_at_change(ccc,k) - f l i p _ s t a r t _ p o s + 1 + ... ( 0 : ( f l i p _ e n d _ p o s - f l i p _ s t a r t _ p o s ) ) . ' * (-1) ; end time_span  = time_span * t i m e _ s t e p ;  arg  = 1/2 * w_rate * time_span."2 + wO * time_span;  tmp_filter = sin(arg); %make up a matched filter  = [filter  f i l t e r i n time domain,  tmp_filter];  end %plot(filter); %grid; %pause; %  END MAKING THE MATCH FILTERING  %  COMPLEMENTARY  %  RESPONSE GENERATION  MAKE UP THE INTEFERENCE MARTIX  t o t a l _ f l t _ r e s u l t = zero_ph_m; f o r c c c = 1:2 amp for  = zero_ph_m; i =  1:number_of_source  ph_m_temp = zero_ph_m; %set for  t h e phase m a t r i x f o r a source t o be z e r o  ( i i = 1:length(angle))  ph_start_pos = ph_end_pos  ceil(ph_m_pos(i,ii)  )+l;  = floor(ph_m_pos(i,ii)+num__of_step)+1 ; % f i n d where t h e s i g n a l appears i n t h e m a t r i x i n  %a p a r t i c u l a r a n g l e ph_ra_temp(ph_start_pos:ph_end_pos,ii)=... (0:(ph_end_pos-ph_start_pos)).' + ph_start_pos - ph_m_pos(i,ii) %the num_of_step cannot d e c i d e t h e number o f p o i n t s % i n t h e m a t r i s as t h e s t a r t i n g p o i n t i s n o t c e r t a i n % t h e r e f o r e we have t o use p h _ e n d . . . - p h _ s t a r t %tpl=ph_m_temp(:,ii); f o r ( k = 1:num_of_change(ccc)) flip_start_pos = flip_end_pos  c e i l ( p h _ m _ p o s ( i , i i ) + s a m _ a t _ c h a n g e ( c c c , k ) ) + 1;  = floor(ph_m_pos(i,ii)+sam_at_change(ccc,k)  + 1+  sam_per_lambda); ph_m_temp(flip_start_pos:flip_end_pos,ii)=... p h _ m _ p o s ( i , i i ) + sam_at_change(ccc,k) - f l i p _ s t a r t _ p o s + 1 + (0:(flip_end_pos-flip_start_pos)).'  * (-1)  ;  end % p l o t ( [ s i n ( t p l * t i m e _ s t e p * w O ) sin(wO * t i m e _ s t e p * p h _ m _ t e m p ( : , i i ) ) ] ) %grid %pause end ph_m_temp = ph_m_temp*time_step; %puting the s i n g a l ph_m  ( i n time form) i n t o t h e m a t r i x  = 1/2 * w_rate * ph_m_temp.^2 + wO * ph_m_temp; % c o n v e r t t h e s i g n a l i n t o phase a n g l e  amplitude  = sin(ph_m);  amp  = a m p l i t u d e + amp; %adding t h e t o t a l respond from each source  end %surf(ph_m_x_axis,ph_m_y_axis,amp); %view(0,90) %shading  flat  %pause % %  _  END MAKE UP THE INTEFERENCE MARTIX MATCH FILTERING  % f f t _ f i l t e r = kaiser(ph_m_y_size,2.5)  .* c o n j ( f f t ( f i l t e r ( : , c c c ) ) ) * .  fft_filter  = conj(fft(filter(:,ccc)))  * one_vector_360;  %make up a matched f i l t e r fft_amp  = fft(amp);  flt_result  = ifft(fft_filter  total_flt_result  i n f r e q domain.  .* fft_amp);  = total_flt_result  + flt_result;  end %  END MATCH FILTERING  %  END COMPLEMENTARY RESPONSE GENERATION  % p l o t ( p h _ m _ y _ a x i s , r e a l ( t o t a l _ f l t _ r e s u l t ( : ,270) ) ) ; %pause; %mesh(ph_m_x_axis,ph_m_y_axis,real(total_flt_result)); %total_flt_result(1:8,187:360)  = zeros(8,174);  %surf(ph_m_x_axis,ph_m_y_axis,real(total_flt_result)) ; %view(0,90) %shading  flat  %s  = sprintf('CPM,  %d degree, %dm, % 5 . 2 f ' , t h e t h a , r a d i u s ,  %max(max(real(total_flt_result) )) ) ; % t e x t ( 1 8 7 . 5 , (mitime-duration+O.00005) , s) ; time_range_plot=0.0078; %time_range_plot=87*49.8e-6; range = m a x ( m a x ( r e a l ( t o t a l _ f l t _ r e s u l t ) ) ) * 1 . 1 ; rangel  = max(max(real(total_flt_result)))*1.1;  figure(1) subplot(421) plot(ph_m_y_axis,real(total_flt_result(:,1))) a x i s ( [ 0 time_range_plot  -range  rangel])  grid t i t l e ( ' S i m u l a t i o n a t 30 deg') subplot(423) plot(ph_m_y_axis,real(total_flt_result(:,2))) a x i s ( [ 0 time_range_plot  -range  rangel])  grid t i t l e ( ' S i m u l a t i o n a t 45 deg') subplot(425) p l o t ( p h _ m _ y _ a x i s , r e a l ( t o t a l _ f l t _ r e s u l t ( : , 3) ) ) a x i s ( [ 0 time_range_plot  -range  grid t i t l e ( ' S i m u l a t i o n a t 60 deg')  rangel])  subplot(427) plot(ph_m_y_axis,real(total_flt_result(:,5))) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 90 d e g ) 1  subplot(422) plot(ph_m_y_axis,real(total_flt_result(:,7))) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 120 deg') subplot(424) p l o t ( p h _ m _ y _ a x i s , r e a l ( t o t a l _ f l t _ r e s u l t ( : , 8))) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 135 deg') subplot(426) plot(ph_m_y_axis, r e a l ( t o t a l _ f l t _ r e s u l t ( : , 9 ) ) ) axis([0  t i m e _ r a n g e _ p l o t -range r a n g e l ] )  grid t i t l e ( ' S i m u l a t i o n a t 150 deg') orient  tall  p r i n t -deps  \nel\thesis\pcx\pmsl35.eps  pnsnd.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % F I L E : pnsnd.m %  t o c r e a t e pn d a t a t o be used i n t h e experiment  % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear;  %  PARAMETERS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% need_plot  = 1;  s a m p l e _ l e n g t h = 29.88e-3;  % t o t a l _ l e n g t h of s i g n a l %not 30ms as each sample i s s h o r t e n  pre_dead_air  = -0.5e-3;  % a l l o w f o r s i g n a l t o go i n t o -ve time  OFFSET_SCALAR = [ ( s q r t ( 1 3 - 1 ) - 1 ) / 1 3  (sqrt(13-1)+1)/13];  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %  important note:  %  s i n c e c i r c u l a r c o n v u l a t i o n i s r e q u i r e d i n t h e PN  %  s i g n a l t h e sample r a t e must be s e t i n a way such  %  t h a t t h e r e i s an i n t e g r a l number o f sample f o r t h e  %  signal duration.  %  t h e r e i s 87 samples  i n this  case  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  time_step  = 49.8e-6; % ( s )  to match t h e e x p e r i m e n t a l r a t e  velocity  330  % (m/s)  v e l o c i t y o f t h e wave  FreqO  3000  % (Hz)  i n i t i a l frequency of c h i r p  Freqf  3000  % (Hz)  pulse_code  [ 1 1 -1  f i n a l frequency of c h i r p -1 - 1 - 1 - 1 1  1 - 1 1 ] ;  each d i g i t o f t h e element r e p r e s e n t a l e n g t h o f lambda the phase i s r e v e r s e d f o r -1's and i s normal pulse_code2=  [-1  1 - 1 1 1  -1 - 1 - 1 - 1 1  for l's  1 - 1 1 ] ;  complementary o f t h e above s i n g a l source_d  = 0.06 ; %(m)  d i s t a n c e between a r r a y element % i n the x d i r e c t i o n  x_separ  = [-1.5 -0.5 0.5 1.5 0 ] ; %(number o f source_d) % l a s t one i s r e f e r e n c e  x_offset  = 0; %the a r r a y must be l i n e a r and must be i n i n c r e a s i n g o r d e r  thetha  = 90  ; %degree  Orig  = [0 0 ] ; %(m)  Angle a t which Max beam o c c u r s  %  " r a d i u s " meter away O r i g i n [X Y] c o - o r d i n a t e  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %  END PARAMETERS  %  PARAMETERS CALCULATION  x_source  = x_separ * source_d + x _ o f f s e t ; %(m)  [ i number_of_source] y_source  = size(x_source);  = zeros(1,number_of_source);  lambda_duration  % i i s temperary %(m)  = 1/Freq0; % ( s )  [ i num_of_lambda] = s i z e ( p u l s e _ c o d e ) ; duration  = num_of_lambda * lambda_duration;  num_of_step= ( d u r a t i o n / t i m e _ s t e p ) ; %number o f s t e p o f t h e c h i r p sam__per_lambda  = lambda_duration/time_step;  variable  time_at_change  = (find(-l*(  pulse_code  1)) - 1 ) * l a m b d a _ d u r a t i o n ;  time_at_change2  = (find(-l*(  pulse_code2  1)) - 1 ) * l a m b d a _ d u r a t i o n ;  [ i num_of_change ]= s i z e ( t i m e _ a t _ c h a n g e ); [ i num_of_change2]= s i z e ( t i m e _ a t _ c h a n g e 2 ) ; num_of_change  = [num_of_change; num_of_change2];  num_of_ch_max = max(num_of_change); [time_at_change  s am_a t _ c hange  time_at_change2  zeros(1,num_of_ch_max-num_of_change(1)); zeros(1,num_of_ch_max-num_of_change(2))  ]/ t i m e _ s t e p ; % i n case t h e change p o i n t a t lambda end %sam_at_change r e q u i r e adding one wf  Freqf * 2 * p i ;  ^ i n i t i a l angular f r e q  wO  FreqO * 2 * p i ;  fefinal  w rate  (wf  wO) / d u r a t i o n ;  angular f r e q  %chirp-rate  -END PARAMETERS CALCULATION-  %  FIRING TIME FOR ANGLE STEERING  thethar  = t h e t h a / 180 * p i ;  %convert to r a d i a n  travel_time  = 0; % c o n v e r t the d i s t a n c e d i f f e r e n c e t o time d i f f e r e n c e  dvcosthetha  = source_d / v e l o c i t y * c o s ( t h e t h a r ) ;  travel_time  = t r a v e l _ t i m e + d v c o s t h e t h a * x_separ; % a n g l e compensation  here  % n o t i c e t h e +dvcos.... here : x_separ i s -ve a l r e a d y %  END FIRING TIME FOR ANGLE STEERING  % o r i g i n c o m p r e s a t i o n t o be i n s e r t here  % ph_m_start  SIGNAL CALCULATION = pre_dead_air;  ph_m_x_axis = x_separ; ph_m_x_size = number_of_source;  %360 degrees  ph_m_y_size = s a m p l e _ l e n g t h / t i m e _ s t e p ; ph_m_y_axis = p h _ m _ s t a r t : t i m e _ s t e p : p h _ m _ s t a r t + ( p h _ m _ y _ s i z e - l ) * t i m e _ s t e p ; % d e f i n i n g t h e a x i s : time (y) a g a i n s t a n g l e (x)  175 t r a v e l _ t i m e _ n o _ o f f s e t = t r a v e l _ t i m e - ph_m_start; ph_m__pos  = t r a v e l _ t i m e _ n o _ o f f s e t ./ t i m e _ s t e p ; % f i n d i n g where the s i n g a l b e g i n t o appear i n the %phase m a t r i x  zero_ph_m  = zeros(ph_m_y_size,ph_m_x_size); %for  initialization  % s e t the t o t a l response t o be z e r o  amp  = [ zero_ph_m, zero_ph_m] ;  ph_start_pos = ph_end_pos  ceil(ph_m_pos)  +1;  = floor(ph_m_pos +num_of_step)+1; % f i n d where the s i g n a l appears i n the m a t r i x i n %a p a r t i c u l a r a n g l e  f o r ccc =  1:2  ph_m_temp  = zero_ph_m;  ph_m_mag  =  ones(size(zero_ph_m))+OFFSET_SCALAR(ccc);  f o r i = 1:ph_m_x_size p h _ m _ t e m p ( p h _ s t a r t _ p o s ( i ) :ph_end_pos(i) , i ) = . . . ( 0 : ( p h _ e n d _ p o s ( i ) - p h _ s t a r t _ p o s ( i ) ) ) . ' + p h _ s t a r t _ p o s ( i ) - ph_m_pos(i)  - 1;  %the above l i n e i s double checked on Jan 24 96 t o %ensure the s t a r t i n g p o s i t i o n i s c o r r e c t and t h a t %the time s h i f t i s c o r r e c t %the num_of_step  cannot d e c i d e the number of p o i n t s  % i n the m a t r i s as the s t a r t i n g p o i n t i s not c e r t a i n % t h e r e f o r e we have t o use p h _ e n d . . . - p h _ s t a r t for(k =  1:num_of_change(ccc))  flip_start_pos = flip_end_pos  c e i l ( p h _ m _ p o s ( i ) + s a m _ a t _ c h a n g e ( c c c , k) ) + 1;  = floor(ph_m_pos(i)+sam_at_change(ccc,k)  + 1  +...  sam_per_lambda); ph_m_temp(flip_start_pos:flip_end_pos,i)=... ph_m_pos(i)  + sam_at_change(ccc,k)  - flip_start_pos + 1 +  ( 0 : ( f l i p _ e n d _ p o s - f l i p _ s t a r t _ p o s ) ) . ' * (-1) ph_m_mag(flip_start_pos:flip_end_pos , i)  ...  ;  =...  ones(flip_end_pos-flip_start_pos+l,1) *  (l-OFFSET_SCALAR(ccc));  end end ph_m_mag  = (ph_m_mag * 2047 /  (l+OFFSET_SCALAR(ccc)));  ph_m_temp = ph_m_temp*time_step; %puting the s i n g a l  ( i n time form) i n t o t h e m a t r i x  ph_m  = 1/2 * w_rate * ph_m_temp."2 + wO * ph_m_temp;  amplitude  = round(ph_m_mag.*sin(ph_m));  % c o n v e r t the s i g n a l i n t o phase a n g l e  amp(:,((ccc-1)*number_of_source+l):(ccc*number_of_source)) %adding t h e t o t a l respond from each source end %  END SIGNAL CALCULATION  sb  = sprintf('pn%ds.fil'  sbr  = sprintf('pnr%ds.fil',thetha);  ,thetha);  FIDb = f o p e n ( s b ,'w'); FIDbr= f o p e n ( s b r , ' w ' ) ; for  ( i =1:(number_of_source-l))  for (ii=l:ph_m_y_size) i f (round(ii/10)-ii/10)==0 fprintf(FIDb,  '%6d\n',amp(ii,i));  f p r i n t f ( F I D b r , '%6d\n',amp(ii,2 *number_of_source)); else fprintf(FIDb,  '%6d'  fprintf(FIDbr,'%6d'  ,amp(ii,i)); ,amp(ii,2*number_of_source));  end end. fprintf(FIDb  ,'\n');  f p r i n t f ( F I D b r , '\n') ; end  '  fclose('all ); 1  i f need_plot range = 2 048 figure(1) subplot(111); plot(amp(:,1)) a x i s ( [ 0 100 -range  range])  = amplitude  177 figure(2) subplot(111); plot(amp(:,2)) a x i s ( [ 0 100 -range range]) figure(3) subplot(111) ; plot(amp(:,3)) a x i s ( [ 0 100 -range range]) figure(4) subplot(111); plot(amp(:,4)) a x i s ( [ 0 100 -range range]) figure(5) subplot(111); plot(amp(:,10),'r') a x i s ( [ 0 100 -range range]) one_graph  = [amp(:,1:4) amp( :,10)] ;  figure(6) subplot(111) plot(one_graph) a x i s ( [ 0 100 -range range]) end  pnda.m clear INPUT_CH  = 7;  NUM_PER_CH  = 600;  SAM_PER_DUR = 87; NUM_PER_ROW = 10; 0UTPUT_CH  = 4;  TIME_STEP  = 49.8e-6;%chosen such t h a t t h e s i g n a l has i n t e r g e r # o f sam 87  NUM_OF_REPEAT =2; load p n 9 0 r . f i l load p n r 9 0 s . f i l load  ..\yesr.fil  %load  pndlr.fil  178 load  ..\deltas.fil  load  ..\..\offset  deltar = yesr; pns  = pnr90s;  pnr  = pn90r;  c l e a r p n d l r pn90r pnr90s  IN_FILE_ROW  = NUM_PER_CH* INPUT_CH/NUM_PER_ROW;  OUT_FILE_ROW  = NUM_PER_CH*OUTPUT_CH/NUM_PER_ROW;  f o r i=l:OUT_FILE_ROW f o r j = 1:NUM_PER_ROW impout(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH)  + 1  ((((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH)- ... floor(((i-1)*NUM_PER_ROW+j-l)/NUM_PER__CH))*NUM_PER_CH + 1 ) = d e l t a s ( i , j ) ; pnout(floor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH)  + 1  ((((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH)- ... f1oor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH))*NUM_PER_CH + 1 ) = p n s ( i , j ) ; end end for  i=l:IN_FILE_ROW  f o r j =1:NUM_PER_ROW impinffloor(((i-1)*NUM_PER_ROW+j-1)/NUM_PER_CH) + 1 ((((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH)- ... floor(((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH))*NUM_PER_CH + 1 ) = d e l t a r ( i , j ) ; pninffloor(((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH) + 1 ((((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH)- ... floor(((i-1)*NUM_PER_ROW+j-l)/NUM_PER_CH))*NUM_PER_CH + 1 ) = p n r ( i , j ) ; end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % i n p u t c h a n n e l o f f s e t c o r r e c t i o n here %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% offsetmat = offset. *ones(1,length(impin)); 1  impin  = impin-offsetmat;  pnin  = pnin  -offsetmat;  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% c l e a r IN_FILE_ROW OUT_FILE_ROW NUM_PER_ROW i j . . .  179 d e l t a s d e l t a r o f f s e t m a t o f f s e t pns p n r impout = impout * 2.5 / 2048; impin  = impin  * 2.5 / 2048 * (1+3300/560) / (1+82000/560);  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %deconv done here %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % u s i n g t h e same i m p u l s e response f o r a l l channels % w i t h t h e magnitude a d j u s t e d impinold = impin; scale =  max(impin.')/max(max(impin));  impin = s c a l e . ' * impin(4,:); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PROCESS_LEN = 60 0 time_axis  = (1:PROCESS_LEN)*TIME_STEP;  d i s c a r d _ s a m = floor(42*2.54/100/330/0.00005); impulse_b4_ref = floor(4.3e-3/0.00005); espilon  = 0;  i m p i n t r u c = [ i m p i n ( : , d i s c a r d _ s a m : d i s c a r d _ s a m - l + i m p u l s e _ b 4 _ r e f ) ... zeros(7,PROCESS_LEN-impulse_b4_ref)].'; %impintruco= [impinold(:,discard_sam:discard_sam-l+impulse_b4_ref) %zeros(7,PROCESS_LEN-impulse_b4_ref)].'; impinfft  = fft(impintruc);  i m p o u t f f t = fft(impout(3,1:PROCESS_LEN)  Txfcnfft  );  = impinfft./(impoutfft.'*ones(1,7));  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % a l t approaches %Txfcnfft %  t o c a l c u l a t e t x f e n i n one shot  = ( a b s ( i m p i n f f t ) . " 2 + e s p i l o n ) ./... ((impoutfft.'*ones(1,7)).*conj(impinfft))  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  pnin_decov = i f f t ( f f t ( p n i n . ) 1  ./ T x f c n f f t ) ;  pnin_decov = r e a l ( p n i n _ d e c o v ) . ' ; else pnin_decov = pnin;  180 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % c i r c u l a r i z e here and t u r n t o v o l t a g e  level  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% pnin_cir  =  zeros(INPUT_CH,SAM_PER_DUR);  p n o u t _ c i r = zeros(1,SAM_PER_DUR); f o r i=l:NUM_OF_REPEAT pnin_cir  = pnin_cir  + pnin_decov(:,1+(i-1)*SAM_PER_DUR:i*SAM_PER_DUR);  pnout_cir = pnout_cir +  pnout(1,1+(i-1)*SAM_PER_DUR:i*SAM_PER_DUR);  end c i r _ t i m e _ a x i s = (0:(SAM_PER_DUR-1))  * TIME_STEP;  pnout_cir  = pnout_cir  * 2.5 / 2048;  pnin_cir  = pnin_cir  * 2.5 / 2048;  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  % f i l t e r i n g done here %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  fit  = c o n j ( f f t ( pnout_cir.'*ones(l,INPUT_CH)  ));  flt_rst_fft = fft(pnin_cir.').*fIt; result  =  real(ifft(flt_rst_fft)).';  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  xrange = TIME_STEP range  * SAM_PER_DUR;  = max(max(result))*1.1;  rangel = max(max(result))*1.1 ; full_fig  = 0;  figure(1) if full_fig  f i g u r e ( 1 ) ; s u b p l o t ( 1 1 1 ) ; e l s e s u b p l o t ( 4 2 6 ) ; end;  plot(cir_time_axis,result(1,:)) a x i s ( [ 0 xrange -range  rangel])  t i t l e ( ' p n response f o r channel l ( 1 5 0 d e g ) ' ) grid if full_fig  f i g u r e ( 2 ) ; s u b p l o t ( 1 1 1 ) ; e l s e s u b p l o t ( 4 2 4 ) ; end;  plot(cir_time_axis,result(2,:)) a x i s ( [ 0 xrange -range  rangel])  t i t l e ( ' p n response f o r channel  2(135deg)')  grid if full_fig  f i g u r e ( 3 ) ; s u b p l o t ( 1 1 1 ) ; e l s e s u b p l o t ( 4 2 2 ) ; end;  plot(cir_time_axis,result(3,:)) a x i s ( [ 0 xrange -range  rangel])  t i t l e ( ' p n response f o r c h a n n e l 3(120deg)')  181 grid if  full_fig  f i g u r e ( 4 ) ; s u b p l o t ( 1 1 1 ) ; e l s e s u b p l o t ( 4 2 7 ) ; end;  plot(cir_time_axis,result(4,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' p n r e s p o n s e f o r channel 4(90deg)') grid if  full_fig  f i g u r e ( 5 ) ; s u b p l o t ( 1 1 1 ) ; e l s e s u b p l o t ( 4 2 5 ) ; end;  plot(cir_time_axis,result(5,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' p n r e s p o n s e f o r channel 5(60deg)') grid if  full_fig  f i g u r e ( 6 ) ; s u b p l o t ( 1 1 1 ) ; e l s e s u b p l o t ( 4 2 3 ) ; end;  plot(cir_time_axis,result(6,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' p n r e s p o n s e f o r c h a n n e l 6(45deg)') grid if  full_fig  f i g u r e ( 7 ) ; s u b p l o t ( 1 1 1 ) ; e l s e s u b p l o t ( 4 2 1 ) ; end;  plot(cir_time_axis,result(7,:)) a x i s ( [ 0 xrange -range r a n g e l ] ) t i t l e ( ' p n response f o r channel 7(30deg)') grid orient print  tall -deps  \nel\thesis\pcx\pn90.eps  pnanal.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % F I L E : pnanal.m %  To p u l s e compress the i n t e r f e r e n c e p a t t e r n  %  f o r phase m o d u l a t i o n (with complementary code)  %  and 3 60 degree d i s p l a y  (8x oversample)  % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clg; clear; colormap(gray); %  PARAMETERS  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% OFFSET_SCALAR = [ ( s q r t ( 1 3 - 1 ) - 1 ) / 1 3  (sqrt(13-1)+1)/13];  FreqO  = 3000 ; %(Hz)  initial  Freqf  = 3000 ; %(Hz)  final  frequency o f c h i r p  frequency of c h i r p  pulse_code = [ 1  1-1  %pulse_code = [ 1  1  1-1  1-1-1-1-1 1  1  1  1  1-1  %  pulse_code2  r e p r e s e n t a l e n g t h of lambda  %  the phase i s r e v e r s e d f o r - l ' s  %  and i s normal  = [-1  1-1  1  [1  1-1  1-1-1-1  %pulse_code2=  1]  1 -1 ]; % each d i g i t o f the element  1 -1 -1 - 1 - 1  1  1 -1  f o r 1's  1]  1 ]; % complementary of the above s i n g a l  time_step  = 49.8e-6; % ( s )  t o match the e x p e r i m e n t a l r a t e  velocity  = 330  ; %(m/s)  v e l o c i t y o f the wave  source_d  = 0.06  ; %(m)  d i s t a n c e between a r r a y element % i n the x d i r e c t i o n  x_separ %x_separ x_offset  = [-1.5  -0.5  = [-0.5  0.5  0.5  1.5  ]; %(number of  ]; %(number o f  source_d)  source_d)  = 0; %the a r r a y must be l i n e a r and must be i n i n c r e a s i n g o r d e r  Orig  = [0 0 ] ; %(m)  thetha  = 90  radius  = 1.06680  O r i g i n [X Y] c o - o r d i n a t e  ; %degree  Angle a t which Max beam o c c u r s  ; %(m)  the s i g n a l i s r e c o r d e d i n  %  " r a d i u s " meter away  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %  END  % x_source  PARAMETERS CALCULATION '= x_separ * s o u r c e _ d + x _ o f f s e t ;  [ i number_of_source] y_source  PARAMETERS  = size(x_source);  = zeros(1,number_of_source);  lambda_duration  %(m) % i i s temperary  variable  % (m)  = 1/FreqO; % ( s )  [ i num_of_lambda] = s i z e ( p u l s e _ c o d e ) ; duration  = num_of_lambda * lambda_duration;  num_of_step= ( d u r a t i o n / t i m e _ s t e p ) ; %number of s t e p of the c h i r p sam_per_lambda  =  time_at_change  :  1ambda_dura t i on/1 ime_s t e p ; ( f i n d ( - l * ( pulse_code  - 1))  1)*lambda_duration;  time_at_change2  :  ( f i n d ( - l * ( pulse_code2  - 1))  1)*lambda_duration;  [ i num_of_change ]=  s i z e ( t i m e _ a t _ c h a n g e );  [ i num_of_change2]=  size(time_at_change2);  num_o f_change  [num_of_change; num_of_change2];  num_of_ch_max = max(num_of_change); sam_at_change  = [time_at_change time_at_change2  zeros(1,num_of_ch_max-num_of_change(1)); zeros(1,num_of_ch_max-num_of_change(2))  ]/ t i m e _ s t e p ; • % i n case t h e change p o i n t a t lambda end %sam_at_change r e q u i r e adding one wf  = Freqf * 2 * p i ;  % i n i t i a l angular freq  wO  = FreqO * 2 * p i ;  %final  w_rate  = (wf - wO) / d u r a t i o n ;  %chirp-rate  %  END PARAMETERS CALCULATION  %  MAKE UP ARC  angle  = 30:15:150; %range o f a n g l e t o be d i s p l a y e d  angler  = angle  angular freq  / 180 * p i ; %convert the angle to r a d i a n  arc_X  = Orig(l) + cos(angler) * radius;  arc_Y  = Orig(2) + sin(angler) * radius;  %  END MAKE UP ARC  %  DISTANCE CALCULATION  o n e _ v e c t o r _ 3 60  = ones(size(angle));  one_vector_NoS  =  ones(number_of_source,1); one_vector_360)."2;  dx  = (one_vector_NoS  * arc_X - x_source.' *  dy  = (one_vector_NoS  * arc_Y - y _ s o u r c e . ' * o n e _ v e c t o r _ 3 6 0 ) . 2 ;  d  A  = sqrt(dx+dy); % c a l c u l a t e t h e d i s t a n c e between each s o u r c e and %each p o i n t i n t h e a r c .  %  END DISTANCE CALCULATION  %  FIRING TIME FOR ANGLE STEERING  thethar  = t h e t h a / 180 * p i ;  travel_time  = d/velocity;  %convert to r a d i a n  % c o n v e r t t h e d i s t a n c e d i f f e r e n c e t o time d i f f e r e n c e dvcosthetha  = source_d / v e l o c i t y * c o s ( t h e t h a r ) ;  travel_time  = t r a v e l _ t i m e + d v c o s t h e t h a * x_separ.' * one_vector_3 60; % a n g l e compensation  here  % n o t i c e the +dvcos.... here %  END  : x_separ i s -ve a l r e a d y  FIRING TIME FOR ANGLE STEERING  matime = m a x ( m a x ( t r a v e l _ t i m e ) ) ; mitime = m i n ( m i n ( t r a v e l _ t i m e ) ) ; %plot(angle,travel_time) %grid; % t i t l e ( ' A r r i v i a l Time w i t h  Compensation');  % x l a b e l ( ' A n g l e from C e n t e r o f A r r a y ( d e g r e e ) ' ) ; % y l a b e l ( ' A r r i v i a l Time ( s e c o n d ) ' ) ; %s %text(22  = sprintf('Angle =  %d degree, %dm',thetha,radius) ;  5,(matime-mitime)/5+mitime,s);  %pause; % o r i g i n c o m p r e s a t i o n t o be i n s e r t here  %  INTEFERENCE MARTIX PARAMETER  ph_m_x_axis = a n g l e ; ph_m_x_size = l e n g t h ( a n g l e ) ; %360  degrees  %ph_m_y_size = f i x ( ( m a t i m e + l * d u r a t i o n ph_m_y_size  - (mitime-duration) )/time_step + 4);  = 3 * num_of_step; % c a l c u l a t e the p r o p e r s i z e of the phase m a t r i x ; %the s i z e i n c l u d e s zero padding t o a v o i d wrap around % e r r o r when d o i n g match f i l t e r i n g . = mitime-duration-2 *time_step; -1 * num_of_step * t i m e _ s t e p ;  %ph_m_start ph_m_start  % c o r r e s p o n d i n g t o the s t a r t i n g time o f the  first  %element (each column) of the phase m a t r i x . ph_m_y_axis =  ph_m_start:time_step:ph_m_start+(ph_m_y_size-l)*time_step; % d e f i n i n g the a x i s : time (y) a g a i n s t a n g l e  (x)  t r a v e l _ t i m e _ n o _ o f f s e t = t r a v e l _ t i m e - ph_m_start; ph_m_pos  = t r a v e l _ t i m e _ n o _ o f f s e t ./ t i m e _ s t e p ; % f i n d i n g where the s i n g a l b e g i n t o appear i n the %phase m a t r i x  %plot(angle,ph_m_pos(1,:));  zero_ph_m  = zeros(ph_m_y_size,ph_m_x_size); %for  initialization  % s e t t h e t o t a l response t o be zero %  END INTEFERENCE MARTIX PARAMETER  %  MAKING THE MATCH FILTERING  filter  = [];  filter_mag %time_span  = ones(floor(num_of_step),1)+OFFSET_SCALAR(2); =  [(0:floor(num_of_step)).';...  %  zeros(ph_m_y_size-floor(num_of_step)-1,1)];  time_span for(k =  = [(0:floor(num_of_step-l)).'];  1:num_of_change(2))  flip_start_pos = flip_end_pos  c e i l ( sam_at_change(2,k)  ) + 1;  = f l o o r ( sam_at_change(2,k) + sam_per_lambda)  + 1;  %add 1 t o compensate t h e f a c t t h a t a r r a y s t a r t a t 0 % f l o o r ( ) + 1 != c e i l ! !!!!!!! time_span(flip_start_pos:flip_end_pos)=  ...  sam_at_change(2,k) - f l i p _ s t a r t _ p o s + 1 + ... ( 0 : ( f l i p _ e n d _ p o s - f l i p _ s t a r t _ p o s ) ) . * (-1) ; 1  filter_mag(flip_start_pos:flip_end_pos)  =...  ones(flip_end_pos-flip_start_pos+l,1)  * (l-OFFSET_SCALAR(2))  end time_span  = time_span * t i m e _ s t e p ;  arg  = 1/2 * w_rate * time_span."2  + wO * time_span;  tmp_filter = sin(arg).*filter_mag; %make up a matched f i l t e r i n time domain, filter %filter  = tmp_filter; = [ f i l t e r tmp_filter];  %plot(filter); %grid; %pause; %  %  END MAKING THE MATCH FILTERING  COMPLEMENTARY  RESPONSE GENERATION  %  MAKE UP THE INTEFERENCE MARTIX  total_flt_result  = zero_ph_m;  ph_m_mag  = ones(size(zero_ph_m))+OFFSET_SCALAR(1);-  % f o r c c c = 1:2 amp  = zero_ph_m;  f o r i = 1:number_of_source ph_m_temp = zero_ph_m; % s e t t h e phase m a t r i x f o r a source t o be zero for  ( i i = 1:length(angle))  ph_start_pos = ph end pos  ceil(ph_m_pos(i,ii)  )+l;  = f l o o r ( p h m pos(i,ii)+num of step)+l; % f i n d where t h e s i g n a l appears i n t h e m a t r i x i n %a p a r t i c u l a r  angle  ph_m_temp(ph_start_pos:ph_end_pos,ii)=... (0:(ph_end_pos-ph_start_pos)).'  + ph_start_pos - ph_m_pos(i,ii) - 1  %the num_of_step cannot d e c i d e t h e number o f p o i n t s % i n t h e m a t r i s as t h e s t a r t i n g p o i n t i s n o t c e r t a i n % t h e r e f o r e we have t o use  ph_end...-ph_start  f o r ( k = 1:num_of_change(1)) flip_start_pos = flip_end_pos  ceil(ph_m_pos(i,ii)+sam_at_change(1,k)  ) + 1;  = floor(ph_m_pos(i,ii)+sam_at_change(1,k)  + 1 +...  sam_per_lambda); ph_m_temp(flip_start_pos:flip_end_pos , i i ) = . . . p h _ m _ p o s ( i , i i ) + sam_at_change(1,k) - f l i p _ s t a r t _ p o s + 1 + ... (0:(flip_end_pos-flip_start_pos)).' ph_m_mag(flip_start_pos:flip_end_pos,ii)  * (-1) ; =...  o n e s ( f l i p _ e n d _ p o s - f l i p _ s t a r t _ p o s + l , 1 ) * (1-OFFSET_SCALAR(1)) end end ph_m_temp = ph_m_temp*time_step; %puting the s i n g a l  ( i n time form) i n t o t h e m a t r i x  ph_m  =1/2 * w_rate * ph_m_temp.^2 + wO * ph_m_temp;  amplitude  = sin(ph_m).*ph_m_mag;  amp  = amplitude  % c o n v e r t t h e s i g n a l i n t o phase a n g l e  %adding  + amp; t h e t o t a l respond from each  end %surf(ph_m_x_axis,ph_m__y_axis,amp); %view(0,90)  source  %shading  flat  %pause %  END MAKE UP THE INTEFERENCE MART IX  %  MATCH FILTERING  %wrap t h i n g s around wrap_amp for  i =  if  =  zeros(num_of_step,ph_m_x_size);  1:floor(num_of_step):ph_m_y_size  ( ( i + f l o o r ( n u m _ o f _ s t e p ) ) < ph_m_y_size) j=i+floor(num_of_step-l)  else j = floor(ph_m_y_size) end wrap_amp  = wrap_amp + amp(i : j , : ) ;  end %fft_filter fft_filter  = kaiser(ph_m_y_size,2.5) = conj(fft(filter))  .* c o n j ( f f t ( f i l t e r ( : , c c c ) ) )  * one_vector_360;  %make up a matched f i l t e r fft_amp  i n f r e q domain.  = fft(wrap_amp);  flt_result = ifft(fft_filter  .* f f t _ a m p ) ;  total_flt_result = flt_result; %total_flt_result = total_flt_result + flt_result; %end %  END MATCH FILTERING  %  END COMPLEMENTARY RESPONSE GENERATION  %plot(ph_m_y_axis,real(total_flt_result(:,270))); %pause; %mesh(ph_m_x_axis,ph_m_y_axis,real(total_flt_result)); %total_flt_result(1:8,187:360)  = zeros(8,174);  %surf(ph_m_x_axis,ph_m_y_axis,real(total_flt_result)); %view(0,90) %shading %s  flat = s p r i n t f ( ' C P M , %d degree, %dm, % 5 . 2 f ' , t h e t h a , r a d i u s , % m a x ( m a x ( r e a l ( t o t a l _ f l t _ r e s u l t ) ) ) );  %text(187.5,(mitime-duration+O.00005),s); %time_range_plot=0.0078; time_range_plot=87*49.8e-6;  188 range = m a x ( m a x ( r e a l ( t o t a l _ f l t _ r e s u l t ) ) ) * 1 . 1 ; rangel =  max(max(real(total_flt_result)))*1.1;  plot_time_span  = time_step*(0:floor(num_of_step-l));  figure(1) subplot(421) p l o t ( p l o t _ t i m e _ s p a n , r e a l ( t o t a l _ f l t _ r e s u l t ( : , 1))) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 30  deg')  subplot(423) p l o t ( p l o t _ t i m e _ s p a n , r e a l ( t o t a l _ f l t _ r e s u l t ( : , 2))) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 45  deg')  subplot(425) plot(plot_time_span,real(total_flt_result(:,3))) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 60  deg')  subplot(427) plot(plot_time_span,real(total_flt_result(:,5))) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 90 deg') subplot(422) plot(plot_time_span,real(total_flt_result(:,7))) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 120  deg')  subplot(424) plot(plot_time_span,real(total_flt_result(:,8))) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 135  deg')  subplot(426) plot(plot_time_span, r e a l ( t o t a l _ f l t _ r e s u l t ( : , 9 ) ) ) a x i s ( [ 0 t i m e _ r a n g e _ p l o t -range r a n g e l ] ) grid t i t l e ( ' S i m u l a t i o n a t 150 orient t a l l p r i n t -deps  deg')  \nel\thesis\pcx\pns90.eps  

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0064848/manifest

Comment

Related Items