Truncating bits


I have a question in bit truncation.

Say I have a 14-bit FM waveform, digitized. Underneath that signal
assuming they are both in the same frequency, there is another signal
an AM signal. The difference between the two is about 40 dB. Is there
such that I can remove the AM signal that is below the FM signal by bit

I am curious as how the operation of truncating bits work. If I do
since the FM signal is still about 56 dB higher than the AM signal, if I
were to take the MSBs and and truncate the LSBs that contain AM signal,
will I still be able to demodulate the FM signal?

I am having a hard demonstrating this in matlab to myself since I do
how to use fixed-point toolbox (yet) so if somebody could please explain
would be very greatful.

How can I do truncate bits in gnuradio?

View this message in context:
Sent from the GnuRadio mailing list archive at

I doubt bit truncation will work too well as a method of filtering… if
anything, it will probably end up introducing other artifacts into the

But to truncate bits in GNU Radio, you could try converting your signal
shorts and using an and-by-constant block (gr.and_const_ss) where the
of the constant is, say, 0xFFF0 (or whatever mask you wish to apply to
out LSBs). There is no GR block to right-shift bits in a sample, but
you can do without it. This will effectively add a DC component to your
signal proportional to the number of bits you’re zeroing out, but I
that will be the least problematic side-effect.