Here's an example of broadcast FM. It's from the first couple of tutorials at
https://greatscottgadgets.com/sdr All you need to do is to change the samp rate and the center_freq, and swap out the osmocom Source for the RTL-SDR Source. Since each channel is roughly 200 kHz wide, you probably won't get more then 2 stations at a sampling rate of 2 MHz. I have HackRF One and it runs fine on my i7 at sampling rate of 20 MHz. However, this was the first time I tried on the i7 - and when I drop the sampling rate to 2 MHz, I got the 'Ua's - audio underflows, But it sounded fine. Not sure what is causing the audio underflow. I would guess you should be able to replace the "Signal Source/Multiply/Low Pass Filter" with the "Frequency Xlating FIR Filter" or the "Low Pass Filter/Rational Resampler" with the polyphase filter bank. -- Cinaed On 12/07/2018 11:33 AM, Luis Roca wrote: > Thanks! > > On Fri, Dec 7, 2018 at 1:12 PM <discuss-gnuradio-requ...@gnu.org > <mailto:discuss-gnuradio-requ...@gnu.org>> wrote: > > Send Discuss-gnuradio mailing list submissions to > discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org> > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > or, via email, send a message with subject or body 'help' to > discuss-gnuradio-requ...@gnu.org > <mailto:discuss-gnuradio-requ...@gnu.org> > > You can reach the person managing the list at > discuss-gnuradio-ow...@gnu.org > <mailto:discuss-gnuradio-ow...@gnu.org> > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Discuss-gnuradio digest..." > > > Today's Topics: > > 1. Re: help: optimizing a fm broadcast flowchart. Getting > multiple stations in a rtlsdr (Derek Kozel) (Luis Roca) > 2. Re: help: optimizing a fm broadcast flowchart. Getting > multiple stations in a rtlsdr (Derek Kozel) (Michael Dickens) > 3. Re: [USRP-users] Segmentation fault commands to USRP with > gnuradio (M?ller) > 4. Re: [USRP-users] Segmentation fault commands to USRP with > gnuradio (M?ller) > 5. Re: [USRP-users] Segmentation fault commands to USRP with > gnuradio (Christoph Mayer) > 6. Re: [USRP-users] Segmentation fault commands to USRP with > gnuradio (M?ller) > 7. Receiving NOAA signals and passing to BB (Guilherme Theis) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 6 Dec 2018 13:17:01 -0400 > From: Luis Roca <lrocaigu...@gmail.com <mailto:lrocaigu...@gmail.com>> > To: discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org> > Subject: Re: [Discuss-gnuradio] help: optimizing a fm broadcast > flowchart. Getting multiple stations in a rtlsdr (Derek Kozel) > Message-ID: > > <CALNke=J=5-v5e6fspr+-ghrtzdbk3qrvb_hobehguf_gi9t...@mail.gmail.com > <mailto:5-v5e6fspr%2b-ghrtzdbk3qrvb_hobehguf_gi9t...@mail.gmail.com>> > Content-Type: text/plain; charset="utf-8" > > Thanks for your response Derek, we are using a FIR filter. I am > including > the flowchart > > On Thu, Dec 6, 2018 at 1:01 PM <discuss-gnuradio-requ...@gnu.org > <mailto:discuss-gnuradio-requ...@gnu.org>> wrote: > > > Send Discuss-gnuradio mailing list submissions to > > discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org> > > > > To subscribe or unsubscribe via the World Wide Web, visit > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > or, via email, send a message with subject or body 'help' to > > discuss-gnuradio-requ...@gnu.org > <mailto:discuss-gnuradio-requ...@gnu.org> > > > > You can reach the person managing the list at > > discuss-gnuradio-ow...@gnu.org > <mailto:discuss-gnuradio-ow...@gnu.org> > > > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of Discuss-gnuradio digest..." > > > > > > Today's Topics: > > > > 1. help: optimizing a fm broadcast flowchart. Getting multiple > > stations in a rtlsdr (Luis Roca) > > 2. Re: help: optimizing a fm broadcast flowchart. Getting > > multiple stations in a rtlsdr (Derek Kozel) > > 3. Re: [USRP-users] Segmentation fault commands to USRP with > > gnuradio (samuel verdon) > > 4. Lock/unlock? (Albin Stig?) > > > > > > ---------------------------------------------------------------------- > > > > Message: 1 > > Date: Wed, 5 Dec 2018 20:54:52 -0400 > > From: Luis Roca <lrocaigu...@gmail.com <mailto:lrocaigu...@gmail.com>> > > To: discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org> > > Subject: [Discuss-gnuradio] help: optimizing a fm broadcast flowchart. > > Getting multiple stations in a rtlsdr > > Message-ID: > > <CALNke= > > kkgriikg8stg-d_srpv31oe7nk3biysg8ihojsfmg...@mail.gmail.com > <mailto:kkgriikg8stg-d_srpv31oe7nk3biysg8ihojsfmg...@mail.gmail.com>> > > Content-Type: text/plain; charset="utf-8" > > > > Thanks for this great software. We are tinkering with a setup for > listening > > to radio and storing the streams as wavs. We have two challenges > that we > > haven't been able to tackle satisfactorily. Any help would be > appreciated. > > > > 1. What do we need in order to tune into as many stations as an > rtlsdr can > > fit in its bandwidth and create wav files for each one. In our > setup we use > > each sdr for a single station but scaling is a challenge. > > > > 2. How can we optimize our existing flowchart ( included > screenshot) for > > broadcasting wavs from the computer thru a hackRF. We use this > for testing > > the sdr setup. > > > > Thanks all, > > Luis > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > > > > http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181205/f813c036/attachment.html > > > > > > > ------------------------------ > > > > Message: 2 > > Date: Thu, 6 Dec 2018 13:50:09 +0000 > > From: Derek Kozel <derek.ko...@gmail.com > <mailto:derek.ko...@gmail.com>> > > To: discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org> > > Subject: Re: [Discuss-gnuradio] help: optimizing a fm broadcast > > flowchart. Getting multiple stations in a rtlsdr > > Message-ID: <3da22a95-25bb-d46f-4780-ace2b1541...@gmail.com > <mailto:3da22a95-25bb-d46f-4780-ace2b1541...@gmail.com>> > > Content-Type: text/plain; charset="utf-8"; Format="flowed" > > > > Hi Luis, > > > > At least on my end I can't see an attachment. Since FM broadcast > > stations are regularly spaced the polyphase filterbank is a good > choice > > for separating out each of the individual channels. You can then > use the > > same demodulation set of blocks and file sink that you're (presumably) > > using now to handle each channel. > > > > Regards, > > Derek > > > > On 06/12/2018 00:54, Luis Roca wrote: > > > Thanks for this great software. We are tinkering with a setup for > > > listening to radio and storing the streams as wavs.? We have two > > > challenges that we haven't been able to tackle satisfactorily.? Any > > > help would be appreciated. > > > > > > 1. What do we need in order to tune into as many stations as an > rtlsdr > > > can fit in its bandwidth and create wav files for each one. In our > > > setup we use each sdr for a single station but scaling is a > challenge. > > > > > > 2. How can we optimize our existing flowchart ( included screenshot) > > > for broadcasting wavs from the computer thru a hackRF.? We use this > > > for testing the sdr setup. > > > > > > Thanks all, > > > Luis > > > > > > _______________________________________________ > > > Discuss-gnuradio mailing list > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > > > > http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181206/4b58fd34/attachment.html > > > > > > > ------------------------------ > > > > Message: 3 > > Date: Thu, 6 Dec 2018 16:48:52 +0100 > > From: samuel verdon <sam.ver...@gmail.com > <mailto:sam.ver...@gmail.com>> > > To: Marcus M?ller <marcus.muel...@ettus.com > <mailto:marcus.muel...@ettus.com>>, > > "discuss-gnuradio@gnu.org > <mailto:discuss-gnuradio@gnu.org>" <discuss-gnuradio@gnu.org > <mailto:discuss-gnuradio@gnu.org>> > > Subject: Re: [Discuss-gnuradio] [USRP-users] Segmentation fault > > commands to USRP with gnuradio > > Message-ID: <5c0944e5.1c69fb81.4463e.0...@mx.google.com > <mailto:5c0944e5.1c69fb81.4463e.0...@mx.google.com>> > > Content-Type: text/plain; charset="utf-8" > > > > Hi Marcus and Martin, > > Thank you for your help! > > Do you now how I can follow the problem? > > Or if is it already solved, how can I fix it? > > > > Thanks a lot! > > > > Samuel > > > > > > De?: Marcus M?ller > > Envoy? le?:Wednesday, December 5, 2018 13:50 > > ??: discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>; > samuel verdon > > Cc?: Martin Braun > > Objet?:Re: [USRP-users] Segmentation fault commands to USRP with > gnuradio > > > > <ugly expletive> > > this looks like my fault. Not feeling well enough to fix now, but wait > > a day and I'll have something to test. > > On Wed, 2018-12-05 at 12:56 +0100, Marcus M?ller wrote: > > > Hi Samuel, > > > > > > cool! That's really helpful :) > > > > > > I'm now cross-posting this to discuss-gr, because it's a GNU Radio- > > > land > > > issue. The maintainers of gr-uhd are active over there, too, so this > > > seems the smarter place to continue discussion. > > > > > > > > > so, in medias res: > > > > > > On Wed, 2018-12-05 at 12:43 +0100, samuel verdon wrote: > > > > #3 0x00007f7f15906700 in pmt::dict_has_key (dict=..., key=...) at > > > > /usr/local/src/gnuradio/gnuradio-runtime/lib/pmt/pmt.cc:937 > > > > > > m?p m???p. Our favorite (only) variadic type library leads to > > > segfaults. > > > > > > I'll look into that and be back in a while. > > > > > > Best regards, > > > Marcus > > > > > > > > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > > > > http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181206/0116089a/attachment.html > > > > > > > ------------------------------ > > > > Message: 4 > > Date: Thu, 6 Dec 2018 17:51:39 +0100 > > From: Albin Stig? <albin.st...@gmail.com > <mailto:albin.st...@gmail.com>> > > To: GNURadio Discussion List <discuss-gnuradio@gnu.org > <mailto:discuss-gnuradio@gnu.org>> > > Subject: [Discuss-gnuradio] Lock/unlock? > > Message-ID: > > < > > camc++1wbw0bum8wo446sl4hscqrag9k9jj75hw7pmc04-zp...@mail.gmail.com > > <mailto:camc%2b%2b1wbw0bum8wo446sl4hscqrag9k9jj75hw7pmc04-zp...@mail.gmail.com>> > > Content-Type: text/plain; charset="utf-8" > > > > Does calling lock/unlock on a top block call the stop method on > connected > > blocks? And does it flush/empty buffers? > > > > > > --Albin > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: < > > > > http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181206/4fd8d57e/attachment.html > > > > > > > ------------------------------ > > > > Subject: Digest Footer > > > > _______________________________________________ > > Discuss-gnuradio mailing list > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > > ------------------------------ > > > > End of Discuss-gnuradio Digest, Vol 194, Issue 5 > > ************************************************ > > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > <http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181206/ab22faea/attachment.html> > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: Screen Shot 2018-12-06 at 12.10.23 PM.jpeg > Type: image/jpeg > Size: 241723 bytes > Desc: not available > URL: > > <http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181206/ab22faea/attachment.jpeg> > > ------------------------------ > > Message: 2 > Date: Thu, 06 Dec 2018 12:33:56 -0500 > From: Michael Dickens <michael.dick...@ettus.com > <mailto:michael.dick...@ettus.com>> > To: Luis Roca <lrocaigu...@gmail.com > <mailto:lrocaigu...@gmail.com>>, discuss-gnuradio@gnu.org > <mailto:discuss-gnuradio@gnu.org> > Subject: Re: [Discuss-gnuradio] help: optimizing a fm broadcast > flowchart. Getting multiple stations in a rtlsdr (Derek Kozel) > Message-ID: > > <1544117636.734517.1601150376.31a23...@webmail.messagingengine.com > > <mailto:1544117636.734517.1601150376.31a23...@webmail.messagingengine.com>> > Content-Type: text/plain; charset="utf-8" > > Unless your host computer's CPU is way underpowered, I'm with Derek > here: use polyphase filterbanks to channelize into 200 kHz bandwidth per > channel, then have a bank of FM demodulators, one per channel. Output to > files, or display, or whatever you need. - MLD > On Thu, Dec 6, 2018, at 12:17 PM, Luis Roca wrote: > > Thanks for your response Derek, we are using a FIR filter. I am > > including the flowchart> Email had 1 attachment: > > * Screen Shot 2018-12-06 at 12.10.23 PM.jpeg 331k (image/jpeg) > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > <http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181206/46a4e5f9/attachment.html> > > ------------------------------ > > Message: 3 > Date: Fri, 7 Dec 2018 10:21:24 +0000 > From: M?ller, Marcus (CEL) <muel...@kit.edu <mailto:muel...@kit.edu>> > To: "discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>" > <discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>>, > "sam.ver...@gmail.com <mailto:sam.ver...@gmail.com>" > <sam.ver...@gmail.com <mailto:sam.ver...@gmail.com>>, > "marcus.muel...@ettus.com > <mailto:marcus.muel...@ettus.com>" <marcus.muel...@ettus.com > <mailto:marcus.muel...@ettus.com>> > Subject: Re: [Discuss-gnuradio] [USRP-users] Segmentation fault > commands to USRP with gnuradio > Message-ID: <71e7afacdda941e9edceeb417814b3497eef867d.ca...@kit.edu > <mailto:71e7afacdda941e9edceeb417814b3497eef867d.ca...@kit.edu>> > Content-Type: text/plain; charset="utf-8" > > Hi Samuel, > > so, my guess is that once again, we're running into the C++-specific > static initialization order fiasco (SIOF, yes, it's a term) for the PMT > keys used in the dicts. > > Solution: I've extracted functions to return these keys and statically > initialize them but once, because PMT's pmt_symbol creation is > relatively CPU-intense, and shouldn't be done at run time. > > Somehow, it seems, that can sometimes lead to different notions of the > same symbol. > > Solution: I was going to go in there, and instead of having these > functions that all look like > > const pmt::pmt_t gr::uhd::cmd_time_key() > { > static const pmt::pmt_t val > = pmt::mp("time"); > return val; > } > > just go in there, and give each instance of a usrp_block its own const > fields of the same name, and initialize them in block constructor > initialization list; that's what I did for the rest of GR, and I hope > it works there. > > Best regards, > Marcus > > On Thu, 2018-12-06 at 16:48 +0100, samuel verdon wrote: > > Hi Marcus and Martin, > > Thank you for your help! > > Do you now how I can follow the problem? > > Or if is it already solved, how can I fix it? > > > > Thanks a lot! > > > > Samuel > > > > > > De : Marcus M?ller > > Envoy? le :Wednesday, December 5, 2018 13:50 > > ? : discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>; > samuel verdon > > Cc : Martin Braun > > Objet :Re: [USRP-users] Segmentation fault commands to USRP with > gnuradio > > > > <ugly expletive> > > this looks like my fault. Not feeling well enough to fix now, but wait > > a day and I'll have something to test. > > On Wed, 2018-12-05 at 12:56 +0100, Marcus M?ller wrote: > > > Hi Samuel, > > > > > > cool! That's really helpful :) > > > > > > I'm now cross-posting this to discuss-gr, because it's a GNU Radio- > > > land > > > issue. The maintainers of gr-uhd are active over there, too, so this > > > seems the smarter place to continue discussion. > > > > > > > > > so, in medias res: > > > > > > On Wed, 2018-12-05 at 12:43 +0100, samuel verdon wrote: > > > > #3 0x00007f7f15906700 in pmt::dict_has_key (dict=..., key=...) at > > > > /usr/local/src/gnuradio/gnuradio-runtime/lib/pmt/pmt.cc:937 > > > > > > m?p m???p. Our favorite (only) variadic type library leads to > > > segfaults. > > > > > > I'll look into that and be back in a while. > > > > > > Best regards, > > > Marcus > > > > > > > > > _______________________________________________ > > Discuss-gnuradio mailing list > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > ------------------------------ > > Message: 4 > Date: Fri, 7 Dec 2018 10:30:34 +0000 > From: M?ller, Marcus (CEL) <muel...@kit.edu <mailto:muel...@kit.edu>> > To: "discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>" > <discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>> > Subject: Re: [Discuss-gnuradio] [USRP-users] Segmentation fault > commands to USRP with gnuradio > Message-ID: <10f739cc901fb14337ee55b76639cb0808a12cdb.ca...@kit.edu > <mailto:10f739cc901fb14337ee55b76639cb0808a12cdb.ca...@kit.edu>> > Content-Type: text/plain; charset="utf-8" > > By the way, I think the reason this goes wrong is that a) I've managed > to run into the Static Initialization Order Fiasco, destructor edition, > and b) that can't be solved with pmt_t, as pmt_t is actually a typedef > for smart_pointer<actual_type>, and the moment the statically generated > object (the smart pointer) leaves scope of the consuming function the > first time, its destructor is being called. > > So, yay, if that assessment is correct, by putting PMT keys into the > members of class instances, I've only postponed the problem you're > seeing now to the destruction of blocks, and since that typically > doesn't happen until the end of programs, it doesn't "hurt" anyone. > > It's still wrong, and would lead to unpredictable behaviour in case > someone cleans up blocks at runtime. Which they should be able to do. > > Soooo argh. No simple solution here. Anyone a great idea? > > Best regards, > Marcus > On Fri, 2018-12-07 at 10:21 +0000, M?ller, Marcus (CEL) wrote: > > Hi Samuel, > > > > so, my guess is that once again, we're running into the C++-specific > > static initialization order fiasco (SIOF, yes, it's a term) for > the PMT > > keys used in the dicts. > > > > Solution: I've extracted functions to return these keys and statically > > initialize them but once, because PMT's pmt_symbol creation is > > relatively CPU-intense, and shouldn't be done at run time. > > > > Somehow, it seems, that can sometimes lead to different notions of the > > same symbol. > > > > Solution: I was going to go in there, and instead of having these > > functions that all look like > > > > const pmt::pmt_t gr::uhd::cmd_time_key() > > { > > static const pmt::pmt_t val > > = pmt::mp("time"); > > return val; > > } > > > > just go in there, and give each instance of a usrp_block its own const > > fields of the same name, and initialize them in block constructor > > initialization list; that's what I did for the rest of GR, and I hope > > it works there. > > > > Best regards, > > Marcus > > > > On Thu, 2018-12-06 at 16:48 +0100, samuel verdon wrote: > > > Hi Marcus and Martin, > > > Thank you for your help! > > > Do you now how I can follow the problem? > > > Or if is it already solved, how can I fix it? > > > > > > Thanks a lot! > > > > > > Samuel > > > > > > > > > De : Marcus M?ller > > > Envoy? le :Wednesday, December 5, 2018 13:50 > > > ? : discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>; > samuel verdon > > > Cc : Martin Braun > > > Objet :Re: [USRP-users] Segmentation fault commands to USRP with > gnuradio > > > > > > <ugly expletive> > > > this looks like my fault. Not feeling well enough to fix now, > but wait > > > a day and I'll have something to test. > > > On Wed, 2018-12-05 at 12:56 +0100, Marcus M?ller wrote: > > > > Hi Samuel, > > > > > > > > cool! That's really helpful :) > > > > > > > > I'm now cross-posting this to discuss-gr, because it's a GNU > Radio- > > > > land > > > > issue. The maintainers of gr-uhd are active over there, too, > so this > > > > seems the smarter place to continue discussion. > > > > > > > > > > > > so, in medias res: > > > > > > > > On Wed, 2018-12-05 at 12:43 +0100, samuel verdon wrote: > > > > > #3 0x00007f7f15906700 in pmt::dict_has_key (dict=..., > key=...) at > > > > > /usr/local/src/gnuradio/gnuradio-runtime/lib/pmt/pmt.cc:937 > > > > > > > > m?p m???p. Our favorite (only) variadic type library leads to > > > > segfaults. > > > > > > > > I'll look into that and be back in a while. > > > > > > > > Best regards, > > > > Marcus > > > > > > > > > > > > > > > > _______________________________________________ > > > Discuss-gnuradio mailing list > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > _______________________________________________ > > Discuss-gnuradio mailing list > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > ------------------------------ > > Message: 5 > Date: Fri, 7 Dec 2018 13:00:53 +0100 > From: Christoph Mayer <hca...@gmail.com <mailto:hca...@gmail.com>> > To: muel...@kit.edu <mailto:muel...@kit.edu> > Cc: discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org> > Subject: Re: [Discuss-gnuradio] [USRP-users] Segmentation fault > commands to USRP with gnuradio > Message-ID: > > <CAJahsjWMGnZJShTFH8-n+hdz_0fqa5Zk4=tbahxsma4ssuc...@mail.gmail.com > <mailto:tbahxsma4ssuc...@mail.gmail.com>> > Content-Type: text/plain; charset="UTF-8" > > Hi Marcus, > > what is the reason for having > typedef boost::intrusive_ptr<pmt_base> pmt_t; > and not using a shared_ptr? > > As far as I understand, if a shared_ptr instead of > boost::intrusive_ptr were used, one could use either the method > described here: > > https://www.boost.org/doc/libs/1_68_0/libs/smart_ptr/doc/html/smart_ptr.html#techniques_static > or use the aliasing constructor of a shared_ptr (probably better). > > Best regards > Christoph > > On Fri, Dec 7, 2018 at 11:32 AM M?ller, Marcus (CEL) > <muel...@kit.edu <mailto:muel...@kit.edu>> wrote: > > > > By the way, I think the reason this goes wrong is that a) I've managed > > to run into the Static Initialization Order Fiasco, destructor > edition, > > and b) that can't be solved with pmt_t, as pmt_t is actually a typedef > > for smart_pointer<actual_type>, and the moment the statically > generated > > object (the smart pointer) leaves scope of the consuming function the > > first time, its destructor is being called. > > > > So, yay, if that assessment is correct, by putting PMT keys into the > > members of class instances, I've only postponed the problem you're > > seeing now to the destruction of blocks, and since that typically > > doesn't happen until the end of programs, it doesn't "hurt" anyone. > > > > It's still wrong, and would lead to unpredictable behaviour in case > > someone cleans up blocks at runtime. Which they should be able to do. > > > > Soooo argh. No simple solution here. Anyone a great idea? > > > > Best regards, > > Marcus > > On Fri, 2018-12-07 at 10:21 +0000, M?ller, Marcus (CEL) wrote: > > > Hi Samuel, > > > > > > so, my guess is that once again, we're running into the C++-specific > > > static initialization order fiasco (SIOF, yes, it's a term) for > the PMT > > > keys used in the dicts. > > > > > > Solution: I've extracted functions to return these keys and > statically > > > initialize them but once, because PMT's pmt_symbol creation is > > > relatively CPU-intense, and shouldn't be done at run time. > > > > > > Somehow, it seems, that can sometimes lead to different notions > of the > > > same symbol. > > > > > > Solution: I was going to go in there, and instead of having these > > > functions that all look like > > > > > > const pmt::pmt_t gr::uhd::cmd_time_key() > > > { > > > static const pmt::pmt_t val > > > = pmt::mp("time"); > > > return val; > > > } > > > > > > just go in there, and give each instance of a usrp_block its own > const > > > fields of the same name, and initialize them in block constructor > > > initialization list; that's what I did for the rest of GR, and I > hope > > > it works there. > > > > > > Best regards, > > > Marcus > > > > > > On Thu, 2018-12-06 at 16:48 +0100, samuel verdon wrote: > > > > Hi Marcus and Martin, > > > > Thank you for your help! > > > > Do you now how I can follow the problem? > > > > Or if is it already solved, how can I fix it? > > > > > > > > Thanks a lot! > > > > > > > > Samuel > > > > > > > > > > > > De : Marcus M?ller > > > > Envoy? le :Wednesday, December 5, 2018 13:50 > > > > ? : discuss-gnuradio@gnu.org > <mailto:discuss-gnuradio@gnu.org>; samuel verdon > > > > Cc : Martin Braun > > > > Objet :Re: [USRP-users] Segmentation fault commands to USRP > with gnuradio > > > > > > > > <ugly expletive> > > > > this looks like my fault. Not feeling well enough to fix now, > but wait > > > > a day and I'll have something to test. > > > > On Wed, 2018-12-05 at 12:56 +0100, Marcus M?ller wrote: > > > > > Hi Samuel, > > > > > > > > > > cool! That's really helpful :) > > > > > > > > > > I'm now cross-posting this to discuss-gr, because it's a GNU > Radio- > > > > > land > > > > > issue. The maintainers of gr-uhd are active over there, too, > so this > > > > > seems the smarter place to continue discussion. > > > > > > > > > > > > > > > so, in medias res: > > > > > > > > > > On Wed, 2018-12-05 at 12:43 +0100, samuel verdon wrote: > > > > > > #3 0x00007f7f15906700 in pmt::dict_has_key (dict=..., > key=...) at > > > > > > /usr/local/src/gnuradio/gnuradio-runtime/lib/pmt/pmt.cc:937 > > > > > > > > > > m?p m???p. Our favorite (only) variadic type library leads to > > > > > segfaults. > > > > > > > > > > I'll look into that and be back in a while. > > > > > > > > > > Best regards, > > > > > Marcus > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > Discuss-gnuradio mailing list > > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > > _______________________________________________ > > > Discuss-gnuradio mailing list > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > _______________________________________________ > > Discuss-gnuradio mailing list > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > ------------------------------ > > Message: 6 > Date: Fri, 7 Dec 2018 12:13:24 +0000 > From: M?ller, Marcus (CEL) <muel...@kit.edu <mailto:muel...@kit.edu>> > To: "hca...@gmail.com <mailto:hca...@gmail.com>" <hca...@gmail.com > <mailto:hca...@gmail.com>> > Cc: "discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>" > <discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>> > Subject: Re: [Discuss-gnuradio] [USRP-users] Segmentation fault > commands to USRP with gnuradio > Message-ID: <6daa68fea75bc3595d663f304bf51502ef79e99a.ca...@kit.edu > <mailto:6daa68fea75bc3595d663f304bf51502ef79e99a.ca...@kit.edu>> > Content-Type: text/plain; charset="utf-8" > > Hi Christoph, > > The ancient lore goes that this was a evaluation-based decision on > account of performance. Technically, intrusive_ptr is nice because the > object lies right next to the refcounter, so your memory controller can > do the linear fetching thing and things should be nice without jumping > through wildly different RAM areas. > > I haven't been able so far to produce a useful performance metric for > PMT operations that reflects this, because real-world PMT usage is > dominated by the efficiency of the involved operations, not by the > smart pointer derefencing. I do, however, really believe this was done > with serious evaluation of performance. > > Anyway, I'd love to change that, but it would be ? pun intended ? an > intrusive API change, and tbh, I'm not sure I want to get all the tests > for that change sorted out before 3.8's release. After 3.8, I'd like to > get rid of PMT altogether. > However, this situation here changes things. Maybe I'll whip up a test > branch this weekend where I just go and make the exact change you > recommend and test whether it works without further ado. > > Thanks! Haven't thought about that, and maybe things are really much > easier than I was afraid they were. > > Best regards, > Marcus > > > On Fri, 2018-12-07 at 13:00 +0100, Christoph Mayer wrote: > > Hi Marcus, > > > > what is the reason for having > > typedef boost::intrusive_ptr<pmt_base> pmt_t; > > and not using a shared_ptr? > > > > As far as I understand, if a shared_ptr instead of > > boost::intrusive_ptr were used, one could use either the method > > described here: > > > > https://www.boost.org/doc/libs/1_68_0/libs/smart_ptr/doc/html/smart_ptr.html#techniques_static > > or use the aliasing constructor of a shared_ptr (probably better). > > > > Best regards > > Christoph > > > > On Fri, Dec 7, 2018 at 11:32 AM M?ller, Marcus (CEL) > <muel...@kit.edu <mailto:muel...@kit.edu>> wrote: > > > > > > By the way, I think the reason this goes wrong is that a) I've > managed > > > to run into the Static Initialization Order Fiasco, destructor > edition, > > > and b) that can't be solved with pmt_t, as pmt_t is actually a > typedef > > > for smart_pointer<actual_type>, and the moment the statically > generated > > > object (the smart pointer) leaves scope of the consuming > function the > > > first time, its destructor is being called. > > > > > > So, yay, if that assessment is correct, by putting PMT keys into the > > > members of class instances, I've only postponed the problem you're > > > seeing now to the destruction of blocks, and since that typically > > > doesn't happen until the end of programs, it doesn't "hurt" anyone. > > > > > > It's still wrong, and would lead to unpredictable behaviour in case > > > someone cleans up blocks at runtime. Which they should be able > to do. > > > > > > Soooo argh. No simple solution here. Anyone a great idea? > > > > > > Best regards, > > > Marcus > > > On Fri, 2018-12-07 at 10:21 +0000, M?ller, Marcus (CEL) wrote: > > > > Hi Samuel, > > > > > > > > so, my guess is that once again, we're running into the > C++-specific > > > > static initialization order fiasco (SIOF, yes, it's a term) > for the PMT > > > > keys used in the dicts. > > > > > > > > Solution: I've extracted functions to return these keys and > statically > > > > initialize them but once, because PMT's pmt_symbol creation is > > > > relatively CPU-intense, and shouldn't be done at run time. > > > > > > > > Somehow, it seems, that can sometimes lead to different > notions of the > > > > same symbol. > > > > > > > > Solution: I was going to go in there, and instead of having these > > > > functions that all look like > > > > > > > > const pmt::pmt_t gr::uhd::cmd_time_key() > > > > { > > > > static const pmt::pmt_t val > > > > = pmt::mp("time"); > > > > return val; > > > > } > > > > > > > > just go in there, and give each instance of a usrp_block its > own const > > > > fields of the same name, and initialize them in block constructor > > > > initialization list; that's what I did for the rest of GR, and > I hope > > > > it works there. > > > > > > > > Best regards, > > > > Marcus > > > > > > > > On Thu, 2018-12-06 at 16:48 +0100, samuel verdon wrote: > > > > > Hi Marcus and Martin, > > > > > Thank you for your help! > > > > > Do you now how I can follow the problem? > > > > > Or if is it already solved, how can I fix it? > > > > > > > > > > Thanks a lot! > > > > > > > > > > Samuel > > > > > > > > > > > > > > > De : Marcus M?ller > > > > > Envoy? le :Wednesday, December 5, 2018 13:50 > > > > > ? : discuss-gnuradio@gnu.org > <mailto:discuss-gnuradio@gnu.org>; samuel verdon > > > > > Cc : Martin Braun > > > > > Objet :Re: [USRP-users] Segmentation fault commands to USRP > with gnuradio > > > > > > > > > > <ugly expletive> > > > > > this looks like my fault. Not feeling well enough to fix > now, but wait > > > > > a day and I'll have something to test. > > > > > On Wed, 2018-12-05 at 12:56 +0100, Marcus M?ller wrote: > > > > > > Hi Samuel, > > > > > > > > > > > > cool! That's really helpful :) > > > > > > > > > > > > I'm now cross-posting this to discuss-gr, because it's a > GNU Radio- > > > > > > land > > > > > > issue. The maintainers of gr-uhd are active over there, > too, so this > > > > > > seems the smarter place to continue discussion. > > > > > > > > > > > > > > > > > > so, in medias res: > > > > > > > > > > > > On Wed, 2018-12-05 at 12:43 +0100, samuel verdon wrote: > > > > > > > #3 0x00007f7f15906700 in pmt::dict_has_key (dict=..., > key=...) at > > > > > > > /usr/local/src/gnuradio/gnuradio-runtime/lib/pmt/pmt.cc:937 > > > > > > > > > > > > m?p m???p. Our favorite (only) variadic type library leads to > > > > > > segfaults. > > > > > > > > > > > > I'll look into that and be back in a while. > > > > > > > > > > > > Best regards, > > > > > > Marcus > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > > > > Discuss-gnuradio mailing list > > > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > > > > _______________________________________________ > > > > Discuss-gnuradio mailing list > > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > > > _______________________________________________ > > > Discuss-gnuradio mailing list > > > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > ------------------------------ > > Message: 7 > Date: Fri, 7 Dec 2018 16:21:53 +0000 > From: Guilherme Theis <guilhermethei...@outlook.com > <mailto:guilhermethei...@outlook.com>> > To: "discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>" > <discuss-gnuradio@gnu.org <mailto:discuss-gnuradio@gnu.org>> > Subject: [Discuss-gnuradio] Receiving NOAA signals and passing to BB > Message-ID: > > > <mwhpr0501mb38181db13d809a1b034a3772db...@mwhpr0501mb3818.namprd05.prod.outlook.com > > <mailto:mwhpr0501mb38181db13d809a1b034a3772db...@mwhpr0501mb3818.namprd05.prod.outlook.com>> > > Content-Type: text/plain; charset="iso-8859-1" > > Hello, > > I've been looking up for a way to use an USRP+Gnuradio to simply > receive the HRPT signals and generate an .wav output to be processed > afterwards But all I can find is this processing using a .wav input > in the flow. There is any way to demodulate this split-phase > modulation from NOAA using GRC? > > Best regards, > > Guilherme > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > <http://lists.gnu.org/archive/html/discuss-gnuradio/attachments/20181207/3ab07632/attachment.html> > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > ------------------------------ > > End of Discuss-gnuradio Digest, Vol 194, Issue 6 > ************************************************ > > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >
<?xml version='1.0' encoding='utf-8'?> <?grc format='1' created='3.7.13'?> <flow_graph> <timestamp>Thu Dec 15 09:03:41 2016</timestamp> <block> <key>options</key> <param> <key>author</key> <value></value> </param> <param> <key>window_size</key> <value></value> </param> <param> <key>category</key> <value>[GRC Hier Blocks]</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>description</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(0, 4)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>generate_options</key> <value>qt_gui</value> </param> <param> <key>hier_block_src_path</key> <value>.:</value> </param> <param> <key>id</key> <value>broadcast_fm</value> </param> <param> <key>max_nouts</key> <value>0</value> </param> <param> <key>qt_qss_theme</key> <value></value> </param> <param> <key>realtime_scheduling</key> <value></value> </param> <param> <key>run_command</key> <value>{python} -u {filename}</value> </param> <param> <key>run_options</key> <value>run</value> </param> <param> <key>run</key> <value>True</value> </param> <param> <key>sizing_mode</key> <value>fixed</value> </param> <param> <key>thread_safe_setters</key> <value></value> </param> <param> <key>title</key> <value></value> </param> <param> <key>placement</key> <value>(0,0)</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(8, 460)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>audio_rate</value> </param> <param> <key>value</key> <value>48000</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(176, 4)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>center_freq</value> </param> <param> <key>value</key> <value>97300000</value> </param> </block> <block> <key>variable_qtgui_range</key> <param> <key>comment</key> <value></value> </param> <param> <key>value</key> <value>97.3e6</value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(360, 456)</value> </param> <param> <key>gui_hint</key> <value></value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>channel_freq</value> </param> <param> <key>label</key> <value></value> </param> <param> <key>min_len</key> <value>200</value> </param> <param> <key>orient</key> <value>Qt.Horizontal</value> </param> <param> <key>start</key> <value>88e6</value> </param> <param> <key>step</key> <value>1</value> </param> <param> <key>stop</key> <value>108e6</value> </param> <param> <key>rangeType</key> <value>float</value> </param> <param> <key>widget</key> <value>counter_slider</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(8, 100)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>channel_width</value> </param> <param> <key>value</key> <value>200000</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(8, 316)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>cutoff_freq</value> </param> <param> <key>value</key> <value>75e3</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(8, 172)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>decimate</value> </param> <param> <key>value</key> <value>samp_rate/channel_width</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(8, 244)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>quad_rate</value> </param> <param> <key>value</key> <value>channel_width*decimate*12/5</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(280, 4)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>samp_rate</value> </param> <param> <key>value</key> <value>20000000</value> </param> </block> <block> <key>variable</key> <param> <key>comment</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(8, 388)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>transition_width</value> </param> <param> <key>value</key> <value>25e3</value> </param> </block> <block> <key>variable_qtgui_range</key> <param> <key>comment</key> <value></value> </param> <param> <key>value</key> <value>.001</value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(216, 456)</value> </param> <param> <key>gui_hint</key> <value></value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>volume</value> </param> <param> <key>label</key> <value></value> </param> <param> <key>min_len</key> <value>200</value> </param> <param> <key>orient</key> <value>Qt.Horizontal</value> </param> <param> <key>start</key> <value>.001</value> </param> <param> <key>step</key> <value>.001</value> </param> <param> <key>stop</key> <value>.01</value> </param> <param> <key>rangeType</key> <value>float</value> </param> <param> <key>widget</key> <value>slider</value> </param> </block> <block> <key>analog_sig_source_x</key> <param> <key>amp</key> <value>1</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>freq</key> <value>center_freq-channel_freq</value> </param> <param> <key>_coordinate</key> <value>(280, 320)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>analog_sig_source_x_0_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>offset</key> <value>0</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>samp_rate</key> <value>samp_rate</value> </param> <param> <key>waveform</key> <value>analog.GR_COS_WAVE</value> </param> </block> <block> <key>analog_wfm_rcv</key> <param> <key>audio_decimation</key> <value>10</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(600, 380)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>analog_wfm_rcv_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>quad_rate</key> <value>quad_rate</value> </param> </block> <block> <key>audio_sink</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>device_name</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(968, 388)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>audio_sink_0</value> </param> <param> <key>num_inputs</key> <value>1</value> </param> <param> <key>ok_to_block</key> <value>True</value> </param> <param> <key>samp_rate</key> <value>audio_rate</value> </param> </block> <block> <key>blocks_multiply_xx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(496, 216)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>blocks_multiply_xx_0</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>num_inputs</key> <value>2</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <block> <key>low_pass_filter</key> <param> <key>beta</key> <value>6.76</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>cutoff_freq</key> <value>cutoff_freq</value> </param> <param> <key>decim</key> <value>decimate</value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>type</key> <value>fir_filter_ccf</value> </param> <param> <key>_coordinate</key> <value>(624, 184)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>gain</key> <value>1</value> </param> <param> <key>id</key> <value>low_pass_filter_0</value> </param> <param> <key>interp</key> <value>1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>samp_rate</key> <value>samp_rate</value> </param> <param> <key>width</key> <value>transition_width</value> </param> <param> <key>win</key> <value>firdes.WIN_HAMMING</value> </param> </block> <block> <key>osmosdr_source</key> <param> <key>alias</key> <value></value> </param> <param> <key>ant0</key> <value></value> </param> <param> <key>bb_gain0</key> <value>32</value> </param> <param> <key>bw0</key> <value>0</value> </param> <param> <key>dc_offset_mode0</key> <value>0</value> </param> <param> <key>corr0</key> <value>0</value> </param> <param> <key>freq0</key> <value>center_freq</value> </param> <param> <key>gain_mode0</key> <value>False</value> </param> <param> <key>if_gain0</key> <value>32</value> </param> <param> <key>iq_balance_mode0</key> <value>0</value> </param> <param> <key>gain0</key> <value>0</value> </param> <param> <key>ant10</key> <value></value> </param> <param> <key>bb_gain10</key> <value>20</value> </param> <param> <key>bw10</key> <value>0</value> </param> <param> <key>dc_offset_mode10</key> <value>0</value> </param> <param> <key>corr10</key> <value>0</value> </param> <param> <key>freq10</key> <value>100e6</value> </param> <param> <key>gain_mode10</key> <value>False</value> </param> <param> <key>if_gain10</key> <value>20</value> </param> <param> <key>iq_balance_mode10</key> <value>0</value> </param> <param> <key>gain10</key> <value>10</value> </param> <param> <key>ant11</key> <value></value> </param> <param> <key>bb_gain11</key> <value>20</value> </param> <param> <key>bw11</key> <value>0</value> </param> <param> <key>dc_offset_mode11</key> <value>0</value> </param> <param> <key>corr11</key> <value>0</value> </param> <param> <key>freq11</key> <value>100e6</value> </param> <param> <key>gain_mode11</key> <value>False</value> </param> <param> <key>if_gain11</key> <value>20</value> </param> <param> <key>iq_balance_mode11</key> <value>0</value> </param> <param> <key>gain11</key> <value>10</value> </param> <param> <key>ant12</key> <value></value> </param> <param> <key>bb_gain12</key> <value>20</value> </param> <param> <key>bw12</key> <value>0</value> </param> <param> <key>dc_offset_mode12</key> <value>0</value> </param> <param> <key>corr12</key> <value>0</value> </param> <param> <key>freq12</key> <value>100e6</value> </param> <param> <key>gain_mode12</key> <value>False</value> </param> <param> <key>if_gain12</key> <value>20</value> </param> <param> <key>iq_balance_mode12</key> <value>0</value> </param> <param> <key>gain12</key> <value>10</value> </param> <param> <key>ant13</key> <value></value> </param> <param> <key>bb_gain13</key> <value>20</value> </param> <param> <key>bw13</key> <value>0</value> </param> <param> <key>dc_offset_mode13</key> <value>0</value> </param> <param> <key>corr13</key> <value>0</value> </param> <param> <key>freq13</key> <value>100e6</value> </param> <param> <key>gain_mode13</key> <value>False</value> </param> <param> <key>if_gain13</key> <value>20</value> </param> <param> <key>iq_balance_mode13</key> <value>0</value> </param> <param> <key>gain13</key> <value>10</value> </param> <param> <key>ant14</key> <value></value> </param> <param> <key>bb_gain14</key> <value>20</value> </param> <param> <key>bw14</key> <value>0</value> </param> <param> <key>dc_offset_mode14</key> <value>0</value> </param> <param> <key>corr14</key> <value>0</value> </param> <param> <key>freq14</key> <value>100e6</value> </param> <param> <key>gain_mode14</key> <value>False</value> </param> <param> <key>if_gain14</key> <value>20</value> </param> <param> <key>iq_balance_mode14</key> <value>0</value> </param> <param> <key>gain14</key> <value>10</value> </param> <param> <key>ant15</key> <value></value> </param> <param> <key>bb_gain15</key> <value>20</value> </param> <param> <key>bw15</key> <value>0</value> </param> <param> <key>dc_offset_mode15</key> <value>0</value> </param> <param> <key>corr15</key> <value>0</value> </param> <param> <key>freq15</key> <value>100e6</value> </param> <param> <key>gain_mode15</key> <value>False</value> </param> <param> <key>if_gain15</key> <value>20</value> </param> <param> <key>iq_balance_mode15</key> <value>0</value> </param> <param> <key>gain15</key> <value>10</value> </param> <param> <key>ant16</key> <value></value> </param> <param> <key>bb_gain16</key> <value>20</value> </param> <param> <key>bw16</key> <value>0</value> </param> <param> <key>dc_offset_mode16</key> <value>0</value> </param> <param> <key>corr16</key> <value>0</value> </param> <param> <key>freq16</key> <value>100e6</value> </param> <param> <key>gain_mode16</key> <value>False</value> </param> <param> <key>if_gain16</key> <value>20</value> </param> <param> <key>iq_balance_mode16</key> <value>0</value> </param> <param> <key>gain16</key> <value>10</value> </param> <param> <key>ant17</key> <value></value> </param> <param> <key>bb_gain17</key> <value>20</value> </param> <param> <key>bw17</key> <value>0</value> </param> <param> <key>dc_offset_mode17</key> <value>0</value> </param> <param> <key>corr17</key> <value>0</value> </param> <param> <key>freq17</key> <value>100e6</value> </param> <param> <key>gain_mode17</key> <value>False</value> </param> <param> <key>if_gain17</key> <value>20</value> </param> <param> <key>iq_balance_mode17</key> <value>0</value> </param> <param> <key>gain17</key> <value>10</value> </param> <param> <key>ant18</key> <value></value> </param> <param> <key>bb_gain18</key> <value>20</value> </param> <param> <key>bw18</key> <value>0</value> </param> <param> <key>dc_offset_mode18</key> <value>0</value> </param> <param> <key>corr18</key> <value>0</value> </param> <param> <key>freq18</key> <value>100e6</value> </param> <param> <key>gain_mode18</key> <value>False</value> </param> <param> <key>if_gain18</key> <value>20</value> </param> <param> <key>iq_balance_mode18</key> <value>0</value> </param> <param> <key>gain18</key> <value>10</value> </param> <param> <key>ant19</key> <value></value> </param> <param> <key>bb_gain19</key> <value>20</value> </param> <param> <key>bw19</key> <value>0</value> </param> <param> <key>dc_offset_mode19</key> <value>0</value> </param> <param> <key>corr19</key> <value>0</value> </param> <param> <key>freq19</key> <value>100e6</value> </param> <param> <key>gain_mode19</key> <value>False</value> </param> <param> <key>if_gain19</key> <value>20</value> </param> <param> <key>iq_balance_mode19</key> <value>0</value> </param> <param> <key>gain19</key> <value>10</value> </param> <param> <key>ant1</key> <value></value> </param> <param> <key>bb_gain1</key> <value>20</value> </param> <param> <key>bw1</key> <value>0</value> </param> <param> <key>dc_offset_mode1</key> <value>0</value> </param> <param> <key>corr1</key> <value>0</value> </param> <param> <key>freq1</key> <value>100e6</value> </param> <param> <key>gain_mode1</key> <value>False</value> </param> <param> <key>if_gain1</key> <value>20</value> </param> <param> <key>iq_balance_mode1</key> <value>0</value> </param> <param> <key>gain1</key> <value>10</value> </param> <param> <key>ant20</key> <value></value> </param> <param> <key>bb_gain20</key> <value>20</value> </param> <param> <key>bw20</key> <value>0</value> </param> <param> <key>dc_offset_mode20</key> <value>0</value> </param> <param> <key>corr20</key> <value>0</value> </param> <param> <key>freq20</key> <value>100e6</value> </param> <param> <key>gain_mode20</key> <value>False</value> </param> <param> <key>if_gain20</key> <value>20</value> </param> <param> <key>iq_balance_mode20</key> <value>0</value> </param> <param> <key>gain20</key> <value>10</value> </param> <param> <key>ant21</key> <value></value> </param> <param> <key>bb_gain21</key> <value>20</value> </param> <param> <key>bw21</key> <value>0</value> </param> <param> <key>dc_offset_mode21</key> <value>0</value> </param> <param> <key>corr21</key> <value>0</value> </param> <param> <key>freq21</key> <value>100e6</value> </param> <param> <key>gain_mode21</key> <value>False</value> </param> <param> <key>if_gain21</key> <value>20</value> </param> <param> <key>iq_balance_mode21</key> <value>0</value> </param> <param> <key>gain21</key> <value>10</value> </param> <param> <key>ant22</key> <value></value> </param> <param> <key>bb_gain22</key> <value>20</value> </param> <param> <key>bw22</key> <value>0</value> </param> <param> <key>dc_offset_mode22</key> <value>0</value> </param> <param> <key>corr22</key> <value>0</value> </param> <param> <key>freq22</key> <value>100e6</value> </param> <param> <key>gain_mode22</key> <value>False</value> </param> <param> <key>if_gain22</key> <value>20</value> </param> <param> <key>iq_balance_mode22</key> <value>0</value> </param> <param> <key>gain22</key> <value>10</value> </param> <param> <key>ant23</key> <value></value> </param> <param> <key>bb_gain23</key> <value>20</value> </param> <param> <key>bw23</key> <value>0</value> </param> <param> <key>dc_offset_mode23</key> <value>0</value> </param> <param> <key>corr23</key> <value>0</value> </param> <param> <key>freq23</key> <value>100e6</value> </param> <param> <key>gain_mode23</key> <value>False</value> </param> <param> <key>if_gain23</key> <value>20</value> </param> <param> <key>iq_balance_mode23</key> <value>0</value> </param> <param> <key>gain23</key> <value>10</value> </param> <param> <key>ant24</key> <value></value> </param> <param> <key>bb_gain24</key> <value>20</value> </param> <param> <key>bw24</key> <value>0</value> </param> <param> <key>dc_offset_mode24</key> <value>0</value> </param> <param> <key>corr24</key> <value>0</value> </param> <param> <key>freq24</key> <value>100e6</value> </param> <param> <key>gain_mode24</key> <value>False</value> </param> <param> <key>if_gain24</key> <value>20</value> </param> <param> <key>iq_balance_mode24</key> <value>0</value> </param> <param> <key>gain24</key> <value>10</value> </param> <param> <key>ant25</key> <value></value> </param> <param> <key>bb_gain25</key> <value>20</value> </param> <param> <key>bw25</key> <value>0</value> </param> <param> <key>dc_offset_mode25</key> <value>0</value> </param> <param> <key>corr25</key> <value>0</value> </param> <param> <key>freq25</key> <value>100e6</value> </param> <param> <key>gain_mode25</key> <value>False</value> </param> <param> <key>if_gain25</key> <value>20</value> </param> <param> <key>iq_balance_mode25</key> <value>0</value> </param> <param> <key>gain25</key> <value>10</value> </param> <param> <key>ant26</key> <value></value> </param> <param> <key>bb_gain26</key> <value>20</value> </param> <param> <key>bw26</key> <value>0</value> </param> <param> <key>dc_offset_mode26</key> <value>0</value> </param> <param> <key>corr26</key> <value>0</value> </param> <param> <key>freq26</key> <value>100e6</value> </param> <param> <key>gain_mode26</key> <value>False</value> </param> <param> <key>if_gain26</key> <value>20</value> </param> <param> <key>iq_balance_mode26</key> <value>0</value> </param> <param> <key>gain26</key> <value>10</value> </param> <param> <key>ant27</key> <value></value> </param> <param> <key>bb_gain27</key> <value>20</value> </param> <param> <key>bw27</key> <value>0</value> </param> <param> <key>dc_offset_mode27</key> <value>0</value> </param> <param> <key>corr27</key> <value>0</value> </param> <param> <key>freq27</key> <value>100e6</value> </param> <param> <key>gain_mode27</key> <value>False</value> </param> <param> <key>if_gain27</key> <value>20</value> </param> <param> <key>iq_balance_mode27</key> <value>0</value> </param> <param> <key>gain27</key> <value>10</value> </param> <param> <key>ant28</key> <value></value> </param> <param> <key>bb_gain28</key> <value>20</value> </param> <param> <key>bw28</key> <value>0</value> </param> <param> <key>dc_offset_mode28</key> <value>0</value> </param> <param> <key>corr28</key> <value>0</value> </param> <param> <key>freq28</key> <value>100e6</value> </param> <param> <key>gain_mode28</key> <value>False</value> </param> <param> <key>if_gain28</key> <value>20</value> </param> <param> <key>iq_balance_mode28</key> <value>0</value> </param> <param> <key>gain28</key> <value>10</value> </param> <param> <key>ant29</key> <value></value> </param> <param> <key>bb_gain29</key> <value>20</value> </param> <param> <key>bw29</key> <value>0</value> </param> <param> <key>dc_offset_mode29</key> <value>0</value> </param> <param> <key>corr29</key> <value>0</value> </param> <param> <key>freq29</key> <value>100e6</value> </param> <param> <key>gain_mode29</key> <value>False</value> </param> <param> <key>if_gain29</key> <value>20</value> </param> <param> <key>iq_balance_mode29</key> <value>0</value> </param> <param> <key>gain29</key> <value>10</value> </param> <param> <key>ant2</key> <value></value> </param> <param> <key>bb_gain2</key> <value>20</value> </param> <param> <key>bw2</key> <value>0</value> </param> <param> <key>dc_offset_mode2</key> <value>0</value> </param> <param> <key>corr2</key> <value>0</value> </param> <param> <key>freq2</key> <value>100e6</value> </param> <param> <key>gain_mode2</key> <value>False</value> </param> <param> <key>if_gain2</key> <value>20</value> </param> <param> <key>iq_balance_mode2</key> <value>0</value> </param> <param> <key>gain2</key> <value>10</value> </param> <param> <key>ant30</key> <value></value> </param> <param> <key>bb_gain30</key> <value>20</value> </param> <param> <key>bw30</key> <value>0</value> </param> <param> <key>dc_offset_mode30</key> <value>0</value> </param> <param> <key>corr30</key> <value>0</value> </param> <param> <key>freq30</key> <value>100e6</value> </param> <param> <key>gain_mode30</key> <value>False</value> </param> <param> <key>if_gain30</key> <value>20</value> </param> <param> <key>iq_balance_mode30</key> <value>0</value> </param> <param> <key>gain30</key> <value>10</value> </param> <param> <key>ant31</key> <value></value> </param> <param> <key>bb_gain31</key> <value>20</value> </param> <param> <key>bw31</key> <value>0</value> </param> <param> <key>dc_offset_mode31</key> <value>0</value> </param> <param> <key>corr31</key> <value>0</value> </param> <param> <key>freq31</key> <value>100e6</value> </param> <param> <key>gain_mode31</key> <value>False</value> </param> <param> <key>if_gain31</key> <value>20</value> </param> <param> <key>iq_balance_mode31</key> <value>0</value> </param> <param> <key>gain31</key> <value>10</value> </param> <param> <key>ant3</key> <value></value> </param> <param> <key>bb_gain3</key> <value>20</value> </param> <param> <key>bw3</key> <value>0</value> </param> <param> <key>dc_offset_mode3</key> <value>0</value> </param> <param> <key>corr3</key> <value>0</value> </param> <param> <key>freq3</key> <value>100e6</value> </param> <param> <key>gain_mode3</key> <value>False</value> </param> <param> <key>if_gain3</key> <value>20</value> </param> <param> <key>iq_balance_mode3</key> <value>0</value> </param> <param> <key>gain3</key> <value>10</value> </param> <param> <key>ant4</key> <value></value> </param> <param> <key>bb_gain4</key> <value>20</value> </param> <param> <key>bw4</key> <value>0</value> </param> <param> <key>dc_offset_mode4</key> <value>0</value> </param> <param> <key>corr4</key> <value>0</value> </param> <param> <key>freq4</key> <value>100e6</value> </param> <param> <key>gain_mode4</key> <value>False</value> </param> <param> <key>if_gain4</key> <value>20</value> </param> <param> <key>iq_balance_mode4</key> <value>0</value> </param> <param> <key>gain4</key> <value>10</value> </param> <param> <key>ant5</key> <value></value> </param> <param> <key>bb_gain5</key> <value>20</value> </param> <param> <key>bw5</key> <value>0</value> </param> <param> <key>dc_offset_mode5</key> <value>0</value> </param> <param> <key>corr5</key> <value>0</value> </param> <param> <key>freq5</key> <value>100e6</value> </param> <param> <key>gain_mode5</key> <value>False</value> </param> <param> <key>if_gain5</key> <value>20</value> </param> <param> <key>iq_balance_mode5</key> <value>0</value> </param> <param> <key>gain5</key> <value>10</value> </param> <param> <key>ant6</key> <value></value> </param> <param> <key>bb_gain6</key> <value>20</value> </param> <param> <key>bw6</key> <value>0</value> </param> <param> <key>dc_offset_mode6</key> <value>0</value> </param> <param> <key>corr6</key> <value>0</value> </param> <param> <key>freq6</key> <value>100e6</value> </param> <param> <key>gain_mode6</key> <value>False</value> </param> <param> <key>if_gain6</key> <value>20</value> </param> <param> <key>iq_balance_mode6</key> <value>0</value> </param> <param> <key>gain6</key> <value>10</value> </param> <param> <key>ant7</key> <value></value> </param> <param> <key>bb_gain7</key> <value>20</value> </param> <param> <key>bw7</key> <value>0</value> </param> <param> <key>dc_offset_mode7</key> <value>0</value> </param> <param> <key>corr7</key> <value>0</value> </param> <param> <key>freq7</key> <value>100e6</value> </param> <param> <key>gain_mode7</key> <value>False</value> </param> <param> <key>if_gain7</key> <value>20</value> </param> <param> <key>iq_balance_mode7</key> <value>0</value> </param> <param> <key>gain7</key> <value>10</value> </param> <param> <key>ant8</key> <value></value> </param> <param> <key>bb_gain8</key> <value>20</value> </param> <param> <key>bw8</key> <value>0</value> </param> <param> <key>dc_offset_mode8</key> <value>0</value> </param> <param> <key>corr8</key> <value>0</value> </param> <param> <key>freq8</key> <value>100e6</value> </param> <param> <key>gain_mode8</key> <value>False</value> </param> <param> <key>if_gain8</key> <value>20</value> </param> <param> <key>iq_balance_mode8</key> <value>0</value> </param> <param> <key>gain8</key> <value>10</value> </param> <param> <key>ant9</key> <value></value> </param> <param> <key>bb_gain9</key> <value>20</value> </param> <param> <key>bw9</key> <value>0</value> </param> <param> <key>dc_offset_mode9</key> <value>0</value> </param> <param> <key>corr9</key> <value>0</value> </param> <param> <key>freq9</key> <value>100e6</value> </param> <param> <key>gain_mode9</key> <value>False</value> </param> <param> <key>if_gain9</key> <value>20</value> </param> <param> <key>iq_balance_mode9</key> <value>0</value> </param> <param> <key>gain9</key> <value>10</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>args</key> <value></value> </param> <param> <key>_enabled</key> <value>True</value> </param> <param> <key>_coordinate</key> <value>(216, 124)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>osmosdr_source_0</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>clock_source0</key> <value></value> </param> <param> <key>time_source0</key> <value></value> </param> <param> <key>clock_source1</key> <value></value> </param> <param> <key>time_source1</key> <value></value> </param> <param> <key>clock_source2</key> <value></value> </param> <param> <key>time_source2</key> <value></value> </param> <param> <key>clock_source3</key> <value></value> </param> <param> <key>time_source3</key> <value></value> </param> <param> <key>clock_source4</key> <value></value> </param> <param> <key>time_source4</key> <value></value> </param> <param> <key>clock_source5</key> <value></value> </param> <param> <key>time_source5</key> <value></value> </param> <param> <key>clock_source6</key> <value></value> </param> <param> <key>time_source6</key> <value></value> </param> <param> <key>clock_source7</key> <value></value> </param> <param> <key>time_source7</key> <value></value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>nchan</key> <value>1</value> </param> <param> <key>num_mboards</key> <value>1</value> </param> <param> <key>type</key> <value>fc32</value> </param> <param> <key>sample_rate</key> <value>samp_rate</value> </param> <param> <key>sync</key> <value></value> </param> </block> <block> <key>qtgui_freq_sink_x</key> <param> <key>autoscale</key> <value>False</value> </param> <param> <key>average</key> <value>1.0</value> </param> <param> <key>axislabels</key> <value>True</value> </param> <param> <key>bw</key> <value>samp_rate</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>fc</key> <value>channel_freq</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>ctrlpanel</key> <value>False</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>fftsize</key> <value>1024</value> </param> <param> <key>_coordinate</key> <value>(520, 88)</value> </param> <param> <key>gui_hint</key> <value></value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid</key> <value>True</value> </param> <param> <key>id</key> <value>qtgui_freq_sink_x_0_0_0</value> </param> <param> <key>legend</key> <value>True</value> </param> <param> <key>alpha1</key> <value>1.0</value> </param> <param> <key>color1</key> <value>"red"</value> </param> <param> <key>label1</key> <value></value> </param> <param> <key>width1</key> <value>1</value> </param> <param> <key>alpha10</key> <value>1.0</value> </param> <param> <key>color10</key> <value>"dark blue"</value> </param> <param> <key>label10</key> <value></value> </param> <param> <key>width10</key> <value>1</value> </param> <param> <key>alpha2</key> <value>1.0</value> </param> <param> <key>color2</key> <value>"blue"</value> </param> <param> <key>label2</key> <value></value> </param> <param> <key>width2</key> <value>1</value> </param> <param> <key>alpha3</key> <value>1.0</value> </param> <param> <key>color3</key> <value>"green"</value> </param> <param> <key>label3</key> <value></value> </param> <param> <key>width3</key> <value>1</value> </param> <param> <key>alpha4</key> <value>1.0</value> </param> <param> <key>color4</key> <value>"black"</value> </param> <param> <key>label4</key> <value></value> </param> <param> <key>width4</key> <value>1</value> </param> <param> <key>alpha5</key> <value>1.0</value> </param> <param> <key>color5</key> <value>"cyan"</value> </param> <param> <key>label5</key> <value></value> </param> <param> <key>width5</key> <value>1</value> </param> <param> <key>alpha6</key> <value>1.0</value> </param> <param> <key>color6</key> <value>"magenta"</value> </param> <param> <key>label6</key> <value></value> </param> <param> <key>width6</key> <value>1</value> </param> <param> <key>alpha7</key> <value>1.0</value> </param> <param> <key>color7</key> <value>"yellow"</value> </param> <param> <key>label7</key> <value></value> </param> <param> <key>width7</key> <value>1</value> </param> <param> <key>alpha8</key> <value>1.0</value> </param> <param> <key>color8</key> <value>"dark red"</value> </param> <param> <key>label8</key> <value></value> </param> <param> <key>width8</key> <value>1</value> </param> <param> <key>alpha9</key> <value>1.0</value> </param> <param> <key>color9</key> <value>"dark green"</value> </param> <param> <key>label9</key> <value></value> </param> <param> <key>width9</key> <value>1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>name</key> <value>Signal Sources</value> </param> <param> <key>nconnections</key> <value>2</value> </param> <param> <key>showports</key> <value>True</value> </param> <param> <key>freqhalf</key> <value>True</value> </param> <param> <key>tr_chan</key> <value>0</value> </param> <param> <key>tr_level</key> <value>0.0</value> </param> <param> <key>tr_mode</key> <value>qtgui.TRIG_MODE_FREE</value> </param> <param> <key>tr_tag</key> <value>""</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>update_time</key> <value>0.10</value> </param> <param> <key>wintype</key> <value>firdes.WIN_BLACKMAN_hARRIS</value> </param> <param> <key>label</key> <value>Relative Gain</value> </param> <param> <key>ymax</key> <value>10</value> </param> <param> <key>ymin</key> <value>-140</value> </param> <param> <key>units</key> <value>dB</value> </param> </block> <block> <key>qtgui_freq_sink_x</key> <param> <key>autoscale</key> <value>False</value> </param> <param> <key>average</key> <value>1.0</value> </param> <param> <key>axislabels</key> <value>True</value> </param> <param> <key>bw</key> <value>quad_rate</value> </param> <param> <key>alias</key> <value></value> </param> <param> <key>fc</key> <value>channel_freq</value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>ctrlpanel</key> <value>False</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>fftsize</key> <value>1024</value> </param> <param> <key>_coordinate</key> <value>(824, 104)</value> </param> <param> <key>gui_hint</key> <value></value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>grid</key> <value>True</value> </param> <param> <key>id</key> <value>qtgui_freq_sink_x_0_0_0_0</value> </param> <param> <key>legend</key> <value>True</value> </param> <param> <key>alpha1</key> <value>1.0</value> </param> <param> <key>color1</key> <value>"blue"</value> </param> <param> <key>label1</key> <value></value> </param> <param> <key>width1</key> <value>1</value> </param> <param> <key>alpha10</key> <value>1.0</value> </param> <param> <key>color10</key> <value>"dark blue"</value> </param> <param> <key>label10</key> <value></value> </param> <param> <key>width10</key> <value>1</value> </param> <param> <key>alpha2</key> <value>1.0</value> </param> <param> <key>color2</key> <value>"red"</value> </param> <param> <key>label2</key> <value></value> </param> <param> <key>width2</key> <value>1</value> </param> <param> <key>alpha3</key> <value>1.0</value> </param> <param> <key>color3</key> <value>"green"</value> </param> <param> <key>label3</key> <value></value> </param> <param> <key>width3</key> <value>1</value> </param> <param> <key>alpha4</key> <value>1.0</value> </param> <param> <key>color4</key> <value>"black"</value> </param> <param> <key>label4</key> <value></value> </param> <param> <key>width4</key> <value>1</value> </param> <param> <key>alpha5</key> <value>1.0</value> </param> <param> <key>color5</key> <value>"cyan"</value> </param> <param> <key>label5</key> <value></value> </param> <param> <key>width5</key> <value>1</value> </param> <param> <key>alpha6</key> <value>1.0</value> </param> <param> <key>color6</key> <value>"magenta"</value> </param> <param> <key>label6</key> <value></value> </param> <param> <key>width6</key> <value>1</value> </param> <param> <key>alpha7</key> <value>1.0</value> </param> <param> <key>color7</key> <value>"yellow"</value> </param> <param> <key>label7</key> <value></value> </param> <param> <key>width7</key> <value>1</value> </param> <param> <key>alpha8</key> <value>1.0</value> </param> <param> <key>color8</key> <value>"dark red"</value> </param> <param> <key>label8</key> <value></value> </param> <param> <key>width8</key> <value>1</value> </param> <param> <key>alpha9</key> <value>1.0</value> </param> <param> <key>color9</key> <value>"dark green"</value> </param> <param> <key>label9</key> <value></value> </param> <param> <key>width9</key> <value>1</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>name</key> <value>Low Pass Signal</value> </param> <param> <key>nconnections</key> <value>1</value> </param> <param> <key>showports</key> <value>True</value> </param> <param> <key>freqhalf</key> <value>True</value> </param> <param> <key>tr_chan</key> <value>0</value> </param> <param> <key>tr_level</key> <value>0.0</value> </param> <param> <key>tr_mode</key> <value>qtgui.TRIG_MODE_FREE</value> </param> <param> <key>tr_tag</key> <value>""</value> </param> <param> <key>type</key> <value>complex</value> </param> <param> <key>update_time</key> <value>0.10</value> </param> <param> <key>wintype</key> <value>firdes.WIN_BLACKMAN_hARRIS</value> </param> <param> <key>label</key> <value>Relative Gain</value> </param> <param> <key>ymax</key> <value>10</value> </param> <param> <key>ymin</key> <value>-140</value> </param> <param> <key>units</key> <value>dB</value> </param> </block> <block> <key>rational_resampler_xxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>decim</key> <value>5</value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>fbw</key> <value>0</value> </param> <param> <key>_coordinate</key> <value>(816, 208)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>rational_resampler_xxx_0</value> </param> <param> <key>interp</key> <value>12</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>taps</key> <value></value> </param> <param> <key>type</key> <value>ccc</value> </param> </block> <block> <key>blocks_multiply_const_vxx</key> <param> <key>alias</key> <value></value> </param> <param> <key>comment</key> <value></value> </param> <param> <key>const</key> <value>volume</value> </param> <param> <key>affinity</key> <value></value> </param> <param> <key>_enabled</key> <value>1</value> </param> <param> <key>_coordinate</key> <value>(800, 388)</value> </param> <param> <key>_rotation</key> <value>0</value> </param> <param> <key>id</key> <value>sound</value> </param> <param> <key>type</key> <value>float</value> </param> <param> <key>maxoutbuf</key> <value>0</value> </param> <param> <key>minoutbuf</key> <value>0</value> </param> <param> <key>vlen</key> <value>1</value> </param> </block> <connection> <source_block_id>analog_sig_source_x_0_0</source_block_id> <sink_block_id>blocks_multiply_xx_0</sink_block_id> <source_key>0</source_key> <sink_key>1</sink_key> </connection> <connection> <source_block_id>analog_wfm_rcv_0</source_block_id> <sink_block_id>sound</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_xx_0</source_block_id> <sink_block_id>low_pass_filter_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>blocks_multiply_xx_0</source_block_id> <sink_block_id>qtgui_freq_sink_x_0_0_0</sink_block_id> <source_key>0</source_key> <sink_key>1</sink_key> </connection> <connection> <source_block_id>low_pass_filter_0</source_block_id> <sink_block_id>qtgui_freq_sink_x_0_0_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>low_pass_filter_0</source_block_id> <sink_block_id>rational_resampler_xxx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>osmosdr_source_0</source_block_id> <sink_block_id>blocks_multiply_xx_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>osmosdr_source_0</source_block_id> <sink_block_id>qtgui_freq_sink_x_0_0_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>rational_resampler_xxx_0</source_block_id> <sink_block_id>analog_wfm_rcv_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> <connection> <source_block_id>sound</source_block_id> <sink_block_id>audio_sink_0</sink_block_id> <source_key>0</source_key> <sink_key>0</sink_key> </connection> </flow_graph>
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio