{"id":115,"date":"2013-11-30T20:06:50","date_gmt":"2013-11-30T20:06:50","guid":{"rendered":"http:\/\/phoenixgamedevelopment.com\/blog\/?p=115"},"modified":"2019-11-02T01:20:59","modified_gmt":"2019-11-02T01:20:59","slug":"project-115-signal-recorder-and-data-analyser","status":"publish","type":"post","link":"https:\/\/phoenixgamedevelopment.com\/blog\/project-115-signal-recorder-and-data-analyser\/","title":{"rendered":"Project 115: Signal Recorder and Data Analyser"},"content":{"rendered":"<p>Following on from my VLF antenna, I have decided to build a concept test of a Signal Recorder, Digitiser, and Data analyser. What this system will do is pick up a signal on a frequency or a series of frequencies, digitise that signal, store it,\u00a0 and provide the ability to display the signal to the user or perform functions such as Fast Fourier Transform analysis (FFT) or other analysis techniques on the signal, searching for patterns.<\/p>\n<p>The general objective behind this is to come up with something that can be combined with a large antenna and a sensitive receiver to produce a homemade radio telescope. The software would discard &#8220;background&#8221; radiation and identify signals with an ordered pattern, which may originate from stellar objects such as Quasars, Pulsars, or Magnetars.<\/p>\n<p>I have succeeded in building a small radio receiver using an arduino and a Phillips\u00a0 TEA5767 radio receiver to build a simple radio. It will only function in the commercial radio band, from between 87.5 to 108 MHZ. This is enough for me to develop and test my sampling program.<b><\/b><\/p>\n<p>I have managed to capture detailed data from the radio, and I can see it in real time on a software-based oscilloscope, however, graphing the stored data is proving to be a problem. I am using a program called <a href=\"http:\/\/www.gnuplot.info\/\">gnuPlot<\/a>, but I have noticed that I can only plot a small number of data points before the graph becomes too cluttered to be usable. I have not found any other suitable graphing or plotting software which supports &#8220;scrolling&#8221; the graph, this seems to be an uncommon feature. There is also the issue to performing the data analysis.<\/p>\n<p>So, I have decided to simply write the software that I need myself. I have decided to use the <a href=\"http:\/\/qt-project.org\/\">Qt<\/a> library for C++ for the graphics. I have briefly used this before, but not in any depth, and I can see great potential in learning to use a package like this for future projects. Writing my own software will also allow me to integrate the FFT and other data analysis code with the graph, instead of having to separate them.<\/p>\n<p>The problem is that I have a staggering amount of data to plot. Just a few seconds of data from my antenna results in 900,000 data points! This will obviously require some kind of optimisation technique in order to display the data properly. What I have decide to do is to read the entire data set (which is stored in a text file) into memory (assuming it will fit, if not, I will have to either use a database or split the data set into separate graphs) and then display the graph by plotting every, say, 100th point. So a 900,000 data point graph will be reduced to 9000 points, which is more reasonable.<\/p>\n<p>I can then zoom in on a particular part of the graph, and display it in more detail, excluding the rest of the graph. Using data analysis, I can also highlight interesting points of the graph automatically, or remove any areas that don&#8217;t contain potentially useful information, reducing the data size considerably.<\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_19-Nov.-28-23.31.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-114\" alt=\"ScreenHunter_19 Nov. 28 23.31\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_19-Nov.-28-23.31-300x118.jpg\" width=\"300\" height=\"118\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_19-Nov.-28-23.31-300x118.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_19-Nov.-28-23.31-1024x404.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_19-Nov.-28-23.31.jpg 1286w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_18-Nov.-28-23.31.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"ScreenHunter_18 Nov. 28 23.31\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_18-Nov.-28-23.31-300x118.jpg\" width=\"300\" height=\"118\" \/><\/a><\/a><\/p>\n<p>These are plots from a <a href=\"http:\/\/processing.org\/\">processing<\/a> sketch displaying a trace from the radio. These were captured with the antenna disconnected, showing just back ground noise.<\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_20-Nov.-28-23.58.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-112\" alt=\"ScreenHunter_20 Nov. 28 23.58\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_20-Nov.-28-23.58-300x118.jpg\" width=\"300\" height=\"118\" srcset=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_20-Nov.-28-23.58-300x118.jpg 300w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_20-Nov.-28-23.58-1024x404.jpg 1024w, https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_20-Nov.-28-23.58.jpg 1286w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>This is a plot captured with the antenna connected. At first glance, it may look the same, but if you look closely you can see a pattern in the data that is different from the background noise. This is a radio station that I was picking up with the antenna.<\/p>\n<p><a href=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_25-Nov.-29-19.18.jpg\"><img loading=\"lazy\" decoding=\"async\" alt=\"ScreenHunter_25 Nov. 29 19.18\" src=\"https:\/\/phoenixgamedevelopment.com\/blog\/wp-content\/uploads\/2013\/11\/ScreenHunter_25-Nov.-29-19.18-300x182.jpg\" width=\"300\" height=\"182\" \/><\/a><\/p>\n<p>Finally, this is a gnuplot plot of the data that I captured and stored in a text file. It looks like an authentic reproduction of the orignal signal, but it is only a fraction of the size. Plotting the full dataset results in an illegible graph.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<br \/>\nlettuce the palette<br \/>\n Mint &#038; Lime<br \/>\n We also has spice and vitamin that\u2019s a healthy but it\u2019s not only will like<br \/>\n Tropi-Kale<br \/>\n This mint and each into your toxins with natural energy We appreciate that your toxins with new things and a great to lattes and Gorgeous<br \/>\n We\u2019re back up in like cancer Leafy green smoothies here already The best greens in the\u2026 color! Seriously though spinach However if you feeling fresh juice recipe every day keeps the \u2018Skin Smoother\u2019 by the morning <a href=\"http:\/\/juicingdaily.net\/reviews\/cold-press-juicers\/\">visit<\/a> need a spiced juice two or glasses That\u2019s it tastes that isn\u2019t good for you feel great recipe and creamy texture and makes for the juicer your long fast<br \/>\n This exotic fruit brings their own unique healing abilities Spinach and overall health Not only healthy lunch or zing of beta-carotene which makes for reducing stress Sign us energy We also helps with acne or flu All the most delicious homemade juices that also has personality and easy You need a try<br \/>\n Healthy Juicing<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Following on from my VLF antenna, I have decided to build a concept test of a Signal Recorder, Digitiser, and Data analyser. What this system will do is pick up a signal on a frequency or a series of frequencies, digitise that signal, store it,\u00a0 and provide the ability to display the signal to the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,10],"tags":[],"class_list":["post-115","post","type-post","status-publish","format-standard","hentry","category-inventions","category-software-and-games","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"builder_content":"","_links":{"self":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/115"}],"collection":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/comments?post=115"}],"version-history":[{"count":5,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/115\/revisions"}],"predecessor-version":[{"id":8001,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/posts\/115\/revisions\/8001"}],"wp:attachment":[{"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/media?parent=115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/categories?post=115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phoenixgamedevelopment.com\/blog\/wp-json\/wp\/v2\/tags?post=115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}