# Terminate called after throwing an instance of 'std::invalid\_argument'

**URL:** <https://www.ruby-forum.com/t/terminate-called-after-throwing-an-instance-of-std-invalid-argument/242292>\
**Category:** GNU Radio\
**Created:** [June 12, 2015, 7:54am UTC](https://www.ruby-forum.com/t/terminate-called-after-throwing-an-instance-of-std-invalid-argument/242292 "2015-06-12T07:54:57Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [June 12, 2015, 7:54am UTC](https://www.ruby-forum.com/t/terminate-called-after-throwing-an-instance-of-std-invalid-argument/242292/1 "2015-06-12T07:54:57Z")

</div>

Hello Everyone

When I run AM radio GRC, I got this error  
terminate called after throwing an instance of ‘std::invalid\_argument’  
what(): buffer\_add\_reader: nzero\_preload must be \>= 0

I google this error, and it says this is bug 693. but I cannot fix it.  
Thank  
you!

Shaun AM\_test.grc  
[http://gnuradio.4.n7.nabble.com/file/n54156/AM\_test.grc](http://gnuradio.4.n7.nabble.com/file/n54156/AM_test.grc)

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/terminate-called-after-throwing-an-instance-of-std-invalid-argument-tp54156.html](http://gnuradio.4.n7.nabble.com/terminate-called-after-throwing-an-instance-of-std-invalid-argument-tp54156.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![shaunwang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5e9695/32.png) [@shaunwang](https://www.ruby-forum.com/u/shaunwang)\
**Post date:** [June 12, 2015, 3:42pm UTC](https://www.ruby-forum.com/t/terminate-called-after-throwing-an-instance-of-std-invalid-argument/242292/2 "2015-06-12T15:42:56Z")

</div>

On Fri, Jun 12, 2015 at 1:32 AM, shaunwang [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Shaun AM\_test.grc \<[http://gnuradio.4.n7.nabble.com/file/n54156/AM\_test.grc](http://gnuradio.4.n7.nabble.com/file/n54156/AM_test.grc)
> 
> >

Shaun,

You need to specify taps for the filter in the Frequency Xlating FIR  
Filter  
block. It’s a flaw in the validation step of GRC that it doesn’t  
properly  
check that a vector is empty. But the filter won’t work without you  
defining it.

Tom

---

<div class="post-metadata">

**Author:** ![shaunwang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5e9695/32.png) [@shaunwang](https://www.ruby-forum.com/u/shaunwang)\
**Post date:** [June 12, 2015, 4:10pm UTC](https://www.ruby-forum.com/t/terminate-called-after-throwing-an-instance-of-std-invalid-argument/242292/3 "2015-06-12T16:10:23Z")

</div>

Thank you so much. Tom

Could you please tell me what a typical value in tabs is?

–  
View this message in context:  
[http://gnuradio.4.n7.nabble.com/terminate-called-after-throwing-an-instance-of-std-invalid-argument-tp54156p54164.html](http://gnuradio.4.n7.nabble.com/terminate-called-after-throwing-an-instance-of-std-invalid-argument-tp54156p54164.html)  
Sent from the GnuRadio mailing list archive at [Nabble.com](http://Nabble.com).

---

<div class="post-metadata">

**Author:** ![shaunwang](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5e9695/32.png) [@shaunwang](https://www.ruby-forum.com/u/shaunwang)\
**Post date:** [June 12, 2015, 4:31pm UTC](https://www.ruby-forum.com/t/terminate-called-after-throwing-an-instance-of-std-invalid-argument/242292/4 "2015-06-12T16:31:25Z")

</div>

Dear Shaunwag,

that depens on the bandwidth you want to let through your filter, but  
typically, use something like

firdes.low\_pass(1.0, samp\_rate, 25e3, 25e3)

which will build a tap vector for you; the arguments (in this order)  
are:

1. gain in passband
2. sampling rate
3. cutoff frequency of pass band in Hz
4. transition with between pass- and stop band

Generally, you should have a bit of fun with the tool that you as  
“gr\_filter\_design”; it gives you a good feeling for what kind of filters  
make sense (e.g. when you try to filter out 25kHz out of a 10MHz input  
stream with a single FIR filter using the method described above, you’d  
get a ~1000 taps filter. And no noone should expect their CPU to compute  
that in real time.), and where you can allow your filter to have a bit  
more of “slack”.

Best regards,  
Marcus

---

<div class="post-metadata">

**Author:** ![likhil](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/bcef8e/32.png) [@likhil](https://www.ruby-forum.com/u/likhil)\
**Post date:** [April 3, 2019, 12:12pm UTC](https://www.ruby-forum.com/t/terminate-called-after-throwing-an-instance-of-std-invalid-argument/242292/5 "2019-04-03T12:12:51Z")

</div>

Hi,  
how to create taps? and how to add it?
