{"id":33,"date":"2014-03-31T22:39:42","date_gmt":"2014-04-01T07:09:42","guid":{"rendered":"http:\/\/www.asrivas.me\/blog\/?p=33"},"modified":"2014-03-31T22:39:42","modified_gmt":"2014-04-01T07:09:42","slug":"starting-out-with-gnu-radio","status":"publish","type":"post","link":"https:\/\/www.asrivas.me\/blog\/starting-out-with-gnu-radio\/","title":{"rendered":"Starting out with GNU Radio"},"content":{"rendered":"<p>I have always been interested in amateur radio; back in India, we never had much exposure since my city did not have a ham radio club. I remember setting up a random wire antenna and connecting it up at the roof on the sixth floor of the apartment we lived in. I could receive Germany, BBC (from London), Russian (a bit fuzzy on that, could be any one of the eastern european nations) and a lot of Chinese stations on short-wave. I got my Tech and General licenses in late 2012, which is when I started getting serious about rigs and such. With all the buzz around RTL-SDR (the cheap, DVB tuner dongles that could be hacked to obtain raw IQ samples), this is definitely a great time to be involved with software defined radio. I set up my raspberry pi out in the patio with the dongle so it would be away from the RF interference inside the house. I could pick up ADSB strobes transmitted by flights taking off and landing at SJC \/ SFO but not much else. There are a ton of open source programs to do all of this neat tracking like dump1040 and ADSB#.<\/p>\n<p>GNU Radio is an amazingly rich and flexible platform for building out the components of a software defined radio. It provides most of the necessary signal processing blocks and filters that one would need in realizing a working transceiver. I decided to start off by implementing a simple FIR low pass filter in GNU Radio Companion, which is a graphical tool for creating the signal flow graph for a system.<\/p>\n<p>Here, we just have a Gaussian noise source (amp:1) which is being given as an input to an FIR low pass filter with a Blackman-Harris windowing function. I have declared a &#8220;variable&#8221; taps that computes the taps for the FIR filter using the filter.firdes.low_pass_2() function included with GNU Radio.<\/p>\n<p><a href=\"http:\/\/www.asrivas.me\/blog\/wp-content\/uploads\/2014\/03\/fft.grc_.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-38\" alt=\"fft.grc\" src=\"http:\/\/www.asrivas.me\/blog\/wp-content\/uploads\/2014\/03\/fft.grc_.png\" width=\"700\" height=\"300\" \/><\/a><\/p>\n<p>The QT GUI Sink allows one to visualize the signal in the time and frequency domains.<\/p>\n<p><a href=\"http:\/\/www.asrivas.me\/blog\/wp-content\/uploads\/2014\/03\/fft11.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.asrivas.me\/blog\/wp-content\/uploads\/2014\/03\/fft11.png\" alt=\"fft1\" width=\"700\" height=\"300\" class=\"alignnone size-full wp-image-40\" \/><\/a><\/p>\n<p>Lots to learn, but I&#8217;ll try updating the blog more often as I go along \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have always been interested in amateur radio; back in India, we never had much exposure since my city did not have a ham radio club. I remember setting up a random wire antenna and connecting it up at the roof on the sixth floor of the apartment we lived in. I could receive Germany, &#8230; <span class=\"more\"><a class=\"more-link\" href=\"https:\/\/www.asrivas.me\/blog\/starting-out-with-gnu-radio\/\">[Read more&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,4],"tags":[],"_links":{"self":[{"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/posts\/33"}],"collection":[{"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/comments?post=33"}],"version-history":[{"count":5,"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/posts\/33\/revisions"}],"predecessor-version":[{"id":44,"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/posts\/33\/revisions\/44"}],"wp:attachment":[{"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/media?parent=33"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/categories?post=33"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.asrivas.me\/blog\/wp-json\/wp\/v2\/tags?post=33"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}