Filtered Noise



This is a noise source, connected to a bandpass filter with transition band centers at 1200 and 4200hz, with transition band width of 200hz, connected to a fft display:



The code:

#!/usr/bin/env python
#
# Copyright 2004 Free Software Foundation, Inc.
# 
# This file is part of GNU Radio
# 
# GNU Radio is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# 
# GNU Radio is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with GNU Radio; see the file COPYING.  If not, write to
# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# 

from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.wxgui import stdgui, fftsink
from optparse import OptionParser
import wx

class app_flow_graph (stdgui.gui_flow_graph):
    def __init__(self, frame, panel, vbox, argv):
        stdgui.gui_flow_graph.__init__ (self, frame, panel, vbox, argv)

        
        parser = OptionParser (option_class=eng_option)
        (options, args) = parser.parse_args ()

        input_rate = 48e3

	src = gr.noise_source_f (gr.GR_GAUSSIAN,1)
        block, fft_win = fftsink.make_fft_sink_f (self, panel, "Rx Data", 2048, input_rate)

	audio_coeffs = gr.firdes.band_pass (
		1.0,	# gain
		input_rate,
		1200,	# center of low transition band
		4200,	# center of hi transition band
		200,	# width of transition band
		gr.firdes.WIN_HAMMING)

	audio_filter = gr.fir_filter_fff ( 1, audio_coeffs)

        self.connect (src, audio_filter)
	self.connect (audio_filter, block)
	vbox.Add (fft_win, 1, wx.EXPAND)


def main ():
    app = stdgui.stdapp (app_flow_graph, "File FFT")
    app.MainLoop ()

if __name__ == '__main__':
    main ()