{"id":1942,"date":"2020-08-29T19:51:38","date_gmt":"2020-08-29T17:51:38","guid":{"rendered":"https:\/\/aerospaceresearch.net\/?p=1942"},"modified":"2020-08-29T19:51:38","modified_gmt":"2020-08-29T17:51:38","slug":"gsoc2020orbitdeterminatornikhil-tracking-continuous-and-sporadic-signal-of-satellites-wrapping-up","status":"publish","type":"post","link":"https:\/\/aerospaceresearch.net\/?p=1942","title":{"rendered":"[GSoC2020|OrbitDeterminator|Nikhil] Tracking Continuous and Sporadic Signal of Satellites &#8211; Wrapping Up"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Introduction<\/h1>\n\n\n\n<p>With increasing popularity in CubeSat technologies, it has gotten ever so important to have low-cost systems that complement the economical and self-reliant nature of today\u2019s cubesats providers. One of the most important parts of an end to end small satellite business is ground-based tracking. Satellite tracking provides valuable information on the whereabouts. Satellite tracking industry is booming with the use of large antennas and high power transmitters at cost-prohibitive nature but at the cost of expense and lead time.&nbsp;<br><\/p>\n\n\n\n<p>It is thus important to use an alternative tracking method, for example, Doppler Tracking. Doppler based orbit determination uses a doppler frequency shift to convert to a distance problem. To do doppler tracking, one has to first track the frequency of the signal. This way the cost of the tracking system is kept low because equipment needs beyond the essential receiver are small, at a minimum consisting of an amplifier and a variable oscillator. This project aims to provide a universal tracking solution for burst and continuous type signals of satellites.<br><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Overview<\/h1>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2020\/08\/workflow.png\" alt=\"\" class=\"wp-image-1945\" width=\"581\" height=\"414\"\/><\/figure><\/div>\n\n\n\n<p>This project aims to have a universal tracker for sporadic and continuous type signals. This requires the above workflow. Overall there are three main stages of processing before we arrive at our final track. Every stage has its own function and uses a particular algorithm.\u00a0<\/p>\n\n\n\n<ul><li>Stage 1: Pre-Processing<\/li><li>Stage 2: Decision Making<\/li><li>Stage 3: Tracking <\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Waterfall<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2020\/08\/waterfall_multi_plot-2.png\" alt=\"\" class=\"wp-image-1970\" width=\"586\" height=\"313\"\/><\/figure><\/div>\n\n\n\n<p> Before the pre-processing stage, it\u2019s important that we have our signal in the frequency domain, by taking the Fourier Transform. So, the program performs the FFT in chunks to improve memory performance and runtime. It then selects the desired channels of a specific bandwidth, as per the user\u2019s requirement.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Signal Detection<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">FFT Averaging <\/h3>\n\n\n\n<p>Before we make a decision, whether a certain FFT frame has the signal or not, we need to remove some consistent artefacts present throughout the duration of the recording.\u00a0<\/p>\n\n\n\n<p>The basic idea of averaging for spectral noise reduction is the same as arithmetic averaging to find a mean value. This operation is a type of low-pass filtering that can reduce high-frequency noise.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2020\/08\/iss-aprs-9.png\" alt=\"\" class=\"wp-image-1989\" width=\"546\" height=\"201\"\/><figcaption>APRS signal example<\/figcaption><\/figure><\/div>\n\n\n\n<p>Calculating an average spectrum involves averaging across common frequencies in multiple spectra. So we subtract an average spectral frame from the sample frame in question. This improves measurement accuracy and also helps to compensate for a low signal-to-noise ratio.<br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"> Decision <\/h3>\n\n\n\n<p>The decision of whether a signal exists in a given FFT frame is done by checking the neighbouring frequency bins of a sample bin (n) that all have bin magnitudes greater than that of a dynamic threshold. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2020\/08\/decision-making.jpg\" alt=\"\" class=\"wp-image-1991\" width=\"546\" height=\"196\"\/><figcaption>an illustration of the decision making<\/figcaption><\/figure>\n\n\n\n<p>This threshold is calculated as follows:<br><em>Threshold = Mean + SD + safety gap<\/em><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2020\/08\/noaa-2019521-spectra-plt-1.jpg\" alt=\"\" class=\"wp-image-1950\" width=\"591\" height=\"198\"\/><figcaption>Black indicates selected bins  <\/figcaption><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2020\/08\/noaa-2019521-spectra-plt-3.png\" alt=\"\" class=\"wp-image-1949\" width=\"578\" height=\"196\"\/><figcaption>A NOAA signal&#8217;s full spectra; green(channel selected)<\/figcaption><\/figure><\/div>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"> Tracking <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><font style=\"vertical-align: inherit;\"><font style=\"vertical-align: inherit;\">Finding the center<\/font><\/font><\/h3>\n\n\n\n<p><font style=\"vertical-align: inherit;\"><font style=\"vertical-align: inherit;\">Once the signal is found in a particular FFT frame, it is a matter of finding the centre of the geometric signal. To cover most signal types a generic approach has to be taken. This is why a <\/font><\/font><em><font style=\"vertical-align: inherit;\"><font style=\"vertical-align: inherit;\">spectral centroid<\/font><\/font><\/em><font style=\"vertical-align: inherit;\"><font style=\"vertical-align: inherit;\"> is a good enough representation of the signal center.\u00a0<\/font><\/font> A spectral centroid analogous to geometric center and refers to the balance point of the signal. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/hLZN7jpmONIszFIKbqXUxhSjcbaVrups_tIa6FMteUI-qJxVI3Nrno8WYJh2w59ppQxmxLM7a_ZRt2KYkCVcmsCSraRzbB6x0LbschKG-lHTrrND5PJ8M0gDoXO9vaGpbEXBnmGj\" alt=\"\"\/><figcaption>x(n) represents the weighted frequency value, or magnitude, of bin number n, and f(n) represents the center frequency of that bin.<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/aerospaceresearch.net\/wp-content\/uploads\/2020\/08\/noaa-2019521-spectra-plt-2.png\" alt=\"\" class=\"wp-image-1958\" width=\"587\" height=\"191\"\/><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><font style=\"vertical-align: inherit;\"><font style=\"vertical-align: inherit;\">Track <\/font><\/font><strong>S<\/strong><strong>moothing<\/strong><\/h3>\n\n\n\n<p> The frequency track of the signal through the recording is curve fitted with a polynomial function of order 3. It is also important to remove outliers before fitting the data.  <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/i.imgur.com\/7YUSvKv.jpg\" alt=\"Waterfall (white-raw track, black-filtered track)\" width=\"577\" height=\"421\"\/><figcaption>                                             <em>NOAA Waterfall Signal Track<\/em> (white-raw track, black-filtered track)<\/figcaption><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/i.imgur.com\/EVdrp5m.png\" alt=\"\" width=\"591\" height=\"394\"\/><figcaption>APRS Waterfall Signal Track &#8211; (white- raw track, black &#8211; fitted track)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/i.imgur.com\/n1DcUQQ.png\" alt=\"\" width=\"590\" height=\"393\"\/><figcaption> <em>APRS Waterfall Signal Track (BW-10kHz) &#8211; (white- raw track, black &#8211; fitted track)<\/em> <\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Outputs<\/h1>\n\n\n\n<p> The program can output spectral frame and waterfall plots of multi-channels and bandwidths specified by the user. The frequency track of the signal from the specified channels, when found, is finally stored in a JSON file.\u00a0  <\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"\"><tbody><tr><td><strong>Signal<\/strong><\/td><td><strong>Channel Frequency<\/strong><\/td><td><strong>BW<\/strong><\/td><td><strong>Waterfall<\/strong><\/td><td><strong>Data<\/strong><\/td><\/tr><tr><td>NOAA <\/td><td>137.62 Mhz<\/td><td>32 kHz<\/td><td><a href=\"https:\/\/i.imgur.com\/7YUSvKv.jpg\">waterfall<\/a><\/td><td><a href=\"https:\/\/github.com\/hornig\/dopplershifting\/blob\/master\/results\/noaa-2019521-data.json\">json<\/a><\/td><\/tr><tr><td>APRS-1<\/td><td>145.825 Mhz<\/td><td>10 kHz<\/td><td> <a href=\"https:\/\/i.imgur.com\/CTGxOq3.png\">waterfall <\/a><\/td><td><a href=\"https:\/\/github.com\/hornig\/dopplershifting\/blob\/master\/results\/aprs-2019527-data.json\">json<\/a><\/td><\/tr><tr><td>APRS-2<\/td><td> 145.825 Mhz <\/td><td> 10 kHz <\/td><td><a href=\"https:\/\/i.imgur.com\/n1DcUQQ.png\">waterfall<\/a><\/td><td><a href=\"https:\/\/github.com\/hornig\/dopplershifting\/blob\/master\/results\/aprs-2019526-data.json\">json<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Acknowledgement\u00a0<\/h2>\n\n\n\n<p>In the end, I would like to thank AerospaceResearch for giving me the incredible opportunity to work with them in <a href=\"https:\/\/summerofcode.withgoogle.com\/organizations\/6300120661884928\/\">Google Summer of Code 2020<\/a>. I have learned a great deal and this journey has solidified my belief in open source for space. I would also like to thank <a href=\"https:\/\/github.com\/hornig\">Andreas Hornig<\/a> for being the mentor of this project and extending his guidance and support, whenever needed.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Links<\/h2>\n\n\n\n<ul><li><a href=\"https:\/\/github.com\/hornig\/dopplershifting\">Github Repo<\/a><\/li><li><a href=\"https:\/\/docs.google.com\/document\/d\/1F9XKZiT5WFehbTom8RvvZalw7KCDICRS1sFiqU8vgps\/edit?usp=sharing\">Google Docs<\/a><\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction With increasing popularity in CubeSat technologies, it has gotten ever so important to have low-cost systems that complement the economical and self-reliant nature of today\u2019s cubesats providers. One of the most important parts of an end to end small satellite business is ground-based tracking. Satellite tracking provides valuable information on the whereabouts. Satellite tracking &hellip; <a href=\"https:\/\/aerospaceresearch.net\/?p=1942\" class=\"more-link\"><span class=\"screen-reader-text\">\u201e[GSoC2020|OrbitDeterminator|Nikhil] Tracking Continuous and Sporadic Signal of Satellites &#8211; Wrapping Up\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/1942"}],"collection":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1942"}],"version-history":[{"count":31,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/1942\/revisions"}],"predecessor-version":[{"id":2003,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=\/wp\/v2\/posts\/1942\/revisions\/2003"}],"wp:attachment":[{"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aerospaceresearch.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}