Role of Filters In GNU RADIO

advertisement
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 discretetime 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
gr_vector_const_void_star&
gr_vector_void_star&
noutput_items,
input_items,
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
gr_vector_const_void_star&
gr_vector_void_star&
)
noutput_items,
input_items,
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 > &
double
double
taps,
center_freq,
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 .
References



http://gnuradio.org/redmine/wiki/gnuradio
http://en.wikipedia.org/wiki/Filter_(signal_processing)
http://staff.washington.edu/jon/frameworks.html
Download