Role of Filters In GNU RADIO

cornawakeΛογισμικό & κατασκευή λογ/κού

4 Νοε 2013 (πριν από 4 χρόνια και 8 μέρες)

74 εμφανίσεις


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