FILTERS
Instructor:
Dr.Collins
CENG 5931 GNU Radio
CONTENTS
Introduction
List of GNU Radio C++ Blocks
GNU Radio C++ Signal Processing Blocks
Filters
Classification of Filters
Classes
Functions
Examples
Conclusion
References
INTRODUCTION
GNU
Radio
is
a
free
software
development
toolkit
that
provides
the
signal
processing
runtime
and
processing
blocks
to
implement
software
radios
using
readily

available,
low

cost
external
RF
hardware
and
commodity
processors
.
It
is
widely
used
in
hobbyist,
academic
and
commercial
environments
to
support
wireless
communications
research
as
well
as
to
implement
real

world
radio
systems
.
GNU
Radio
applications
are
primarily
written
using
the
Python
programming
language
.
INTRODUCTION Cont..
Python
is
a
multi

paradigm
programming
language
.
Rather
than
forcing
programmers
to
adopt
a
particular
style
of
programming,
it
permits
several
styles
.
They
are
1
.
Object

Oriented
Programming
2
.
Structured
Programming
.
Python
is
often
used
as
a
scripting
language,
but
is
also
used
in
a
wide
range
of
non

scripting
contexts
.
Python
interpreters
are
available
for
many
operating
systems,
and
Python
programs
can
be
packaged
into
stand

alone
executable
code
for
many
systems
using
various
tools
.
Features of GNU Radio
Application
:
Software
Radio
Operating
System
:
Linux
Real
time
sampling
frequency
:
64
MS/s,
12

bit
AD
on
USRP
DSP
language
:
C++
GUI
host
:
Linux
GUI
language
:
Python
Scripting
language
:
Python
List of GNU Radio C++ Blocks
GNU Radio C++ signal Processing Blocks
Digital Filter Design
Miscellaneous
Implementation Details
Applications
ATSC
Radar
Pager
USRP (Universal Software Radio Peripheral)
USRP 2
Gcell
: Cell Broadband Engine SPE Scheduler & RPC Mechanism
Misc
Hardware Control
GNU Radio C++ Signal Processing Blocks
Top Block and Hierarchical Block Base Classes
Signal Sources
Signal Sinks
Filters
Mathematics
Signal Modulation
Signal Demodulation
Information Coding and Decoding
Synchronization
Equalization
Type Conversions
Signal Level Control(AGC)
Fourier Transform
Wavelet Transform
OFDM
Pager Blocks
Miscellaneous Blocks
Slicing and Dicing Streams
Voice Encoders and Decoders
Base Classes for GR Blocks
Collaboration diagram for GNU Radio C++ Signal
Processing Blocks
Filters
In
signal
processing,
a
filter
is
a
device
or
process
that
removes
unwanted
component
or
feature
from
a
signal
.
Filtering
is
a
class
of
signal
processing,
the
defining
feature
of
filters
being
the
complete
or
partial
suppression
of
some
aspect
of
the
signal
.
In
general,
it
removes
some
frequencies
in
order
to
suppress
interfering
signals
and
reduce
background
noise
.
Classification of filters
Filters are Classified into six categories
1.
Analog or Digital Filter
2.
Continuous or Discrete time sampled Filter
3.
Linear or Non

Linear Filter
4.
Time

Variant or Time

Invariant Filter
5.
Active or Passive Filters
6.
Finite impulse response(FIR) or Infinite impulse response(IIR)
Filter
Classes
gr_adaptive_fir_ccf
:
An
adaptive
filter
is
a
filter
that
self

adjusts
its
transfer
function
according
to
an
optimization
algorithm
driven
by
an
error
signal
.
Because
of
the
complexity
of
the
optimization
algorithms,
most
adaptive
filters
are
digital
filters
.
Inheritance diagram for
gr_adaptive_fir_ccf
gr_fft_filter_ccc
:
Fast
FFT
filter
with
gr_complex
input,
gr_complex
output
and
gr_complex
taps
.
Inheritance diagram for
gr_fft_filter_ccc
gr_filter_delay_fc
:
These
block
takes
one
or
two
float
stream
and
outputs
is
a
complex
stream
.
If
only
one
float
stream
is
input,
the
real
output
is
a
delayed
version
of
this
input
and
the
imaginary
output
is
the
filtered
output
.
If
two
floats
are
connected
to
the
input,
then
the
real
output
is
the
delayed
version
of
the
first
input,
and
the
imaginary
output
is
the
filtered
output
.
Inheritance diagram for
gr_filter_delay_fc
gr_fir_filter_ccc
:
A
finite
impulse
response
(FIR)
filter
is
a
type
of
a
signal
processing
filter
whose
impulse
response
is
of
finite
duration,
because
it
settles
to
zero
in
finite
time
.
This
is
in
contrast
to
infinite
impulse
response(IIR)
filters,
which
have
internal
feedback
and
may
continue
to
respond
indefinitely
.
The
impulse
response
of
an
Nth

order
discrete

time
FIR
filter
lasts
for
N+
1
samples
.
Inheritance diagram for
gr_fir_filter_ccc
gr_freq_xlating_fir_filter_ccc
:
This
class
efficiently
combines
a
frequency
translation
with
a
FIR
filter
and
decimation
.
It
is
ideally
suited
for
a
"channel
selection
filter"
and
can
be
efficiently
used
to
select
and
decimate
a
narrow
band
signal
out
of
wide
bandwidth
input
.
Inheritance diagram for
gr_freq_xlating_fir_filter_ccc
gr_hilbert_fc
:
real
output
is
delayed
input
and
imaginary
output
is
hilbert
filtered
(
90
degree
phase
shift)
version
of
input
.
Inheritance diagram for
gr_hilbert_fc
gr_iir_filter_ffd
:
An
infinite
impulse
response
(IIR)
filter
is
a
type
of
a
signal
processing
filter
whose
impulse
response
is
of
infinite
duration
.
This
is
in
contrast
to
finite
impulse
response(FIR)
filters,
which
have
internal
feedback
and
may
continue
to
respond
definitely
.
The
impulse
response
of
an
Nth

order
discrete

time
IIR
filter
lasts
for
N+
1
samples
.
Inheritance diagram for
gr_iir_filter_ffd
gr_interp_fir_filter_ccc
:
An
interpolating
FIR
filter
is
an
optimized
class
of
finite
impulse
response
filter
combined
with
an
interpolator
.
Inheritance diagram for
gr_interp_fir_filter_ccc
Functions
int
gr_adaptive_fir_ccf
::work (
int
noutput_items
,
gr_vector_const_void_star
&
input_items
,
gr_vector_void_star
&
output_items
)
int
gr_fft_filter_ccc
::work (
int
noutput_items
,
gr_vector_const_void_star
&
input_items
,
gr_vector_void_star
&
output_items
)
intgr_filter_delay_fc
::work(
int
noutput_items
,
gr_vector_const_void_star
&
input_items
,
gr_vector_void_star
&
output_items
)
int
gr_fir_filter_ccc
::work (
int
noutput_items
,
gr_vector_const_void_star
&
input_items
,
gr_vector_void_star
&
output_items
)
gr_freq_xlating_fir_filter_ccc
::
gr_freq_xlating_fir_filter_ccc
(
int
decimation,
const std::vector<
gr_complex
> &
taps,
double
center_freq
,
double
sampling_freq
)
int
gr_iir_filter_ffd
::work (
int
noutput_items
,
gr_vector_const_void_star
&
input_items
,
gr_vector_void_star
&
output_items
)
Example of low pass filter:
chan_filt_coeffs
=
optfir.low_pass
(1, # gain
usrp_rate
, # sampling rate
80e3, #
passband
cutoff
115e3, #
stopband
cutoff
0.1, #
passband
ripple
60) #
stopband
attenuation
Example of frequency translation filter
#Decimating Channel filter with frequency translation
self.ddc =
gr.freq_xlating_fir_filter_ccf
(
if_decim
, # decimation rate
chan_coeffs
, # taps
0, # frequency translation amount
self.if_rate
) # input sample rate
Conclusion
In this topic
i
discussed several kinds of blocks that are used in GNU
python programming on
c++
platform and also discussed different kinds of
functions and classes that are used in GNU library to perform different
types of filter operations .
R
eferences
http://gnuradio.org/redmine/wiki/gnuradio
http://en.wikipedia.org/wiki/Filter_(signal_processing)
http://staff.washington.edu/jon/frameworks.html
Comments 0
Log in to post a comment