[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod
From: |
Matteo Campanella |
Subject: |
[Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod |
Date: |
Sat, 04 Mar 2006 18:49:25 +0100 |
Hello, I have made my first attempt at gnuradio and usrp today, trying
to get a phasing ssb demod - what follows is what I got, any suggestion
would be more than welcome. The demod is designed as a class to be
istantiated by a gui (i am using a modified version of usrp_wfm_rcv
gui). Right now the only sideband supported is LSB. Tested with the
basic rx and my 40m vertical attached, it behaves nicely.
ciao
Matteo
#!/usr/bin/env python
from gnuradio import gr, gru
from gnuradio import audio
from gnuradio import usrp
class ssb_phasing_demod:
def __init__(self,gui):
self.freq=gui.freq
self.usrp_decim=gui.decim
self.usrp_center=gui.center
self.rf_sample_rate = 64000000 / self.usrp_decim
self.af_sample_rate = 32000
self.fir_decimation = self.rf_sample_rate / self.af_sample_rate
self.fg=gui
def set_freq(self,freq):
self.freq=freq
self.xlate_filt.set_center_freq(self.usrp_center - ( self.freq -
self.tune_offset ))
return True
def set_center(self,center):
self.src.set_rx_freq(0,-self.usrp_center)
self.tune_offset = -self.usrp_center - self.src.rx_freq(0)
self.xlate_filt.set_center_freq(self.usrp_center - ( self.freq -
self.tune_offset ))
return True
def set_gain(self,gain):
self.src.set_pga(0,gain)
def build_graph (self):
self.src = usrp.source_c(0,self.usrp_decim)
mux = gru.hexint(0xf0f0f0f0)
self.src.set_nchannels(1)
self.src.set_pga(0,0)
self.src.set_mux(mux)
self.src.set_rx_freq(0,-self.usrp_center)
self.tune_offset = -self.usrp_center - self.src.rx_freq(0)
self.rf_LO = self.usrp_center - ( self.freq - self.tune_offset )
xlate_taps = gr.firdes.low_pass ( \
1.0, self.rf_sample_rate, 20e3, 10e3,
gr.firdes.WIN_HAMMING )
self.xlate_filt = gr.freq_xlating_fir_filter_ccf ( \
self.fir_decimation, xlate_taps, self.rf_LO,
self.rf_sample_rate )
hilb_taps = gr.firdes.hilbert(199)
self.hilb_filt = gr.filter_delay_fc(hilb_taps)
self.split = gr.complex_to_float()
bandpass_taps = gr.firdes.band_pass( \
1.0, self.af_sample_rate, 300, 3300, 200,
gr.firdes.WIN_HAMMING)
self.bandpass_filt = gr.fir_filter_ccf (1,bandpass_taps)
self.split1 = gr.complex_to_float()
self.sum = gr.add_ff()
self.volume_control = gr.multiply_const_ff(0)
self.out = audio.sink(self.af_sample_rate)
self.fg.connect(self.src,self.xlate_filt)
self.fg.connect(self.xlate_filt,self.split)
self.fg.connect((self.split,0),(self.hilb_filt,0))
self.fg.connect((self.split,1),(self.hilb_filt,1))
self.fg.connect(self.hilb_filt,self.bandpass_filt)
self.fg.connect(self.bandpass_filt,self.split1)
self.fg.connect((self.split1,0),(self.sum,0))
self.fg.connect((self.split1,1),(self.sum,1))
self.fg.connect(self.sum,self.volume_control)
self.fg.connect(self.volume_control,self.out)
- [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod,
Matteo Campanella <=
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Eric Blossom, 2006/03/04
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Robert McGwier, 2006/03/05
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Charles Swiger, 2006/03/07
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Bob McGwier N4HY, 2006/03/10
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Charles Swiger, 2006/03/10
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Robert W McGwier, 2006/03/10
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Marcus Leech, 2006/03/10
- Re: [Discuss-gnuradio] first attempt at gnuradio - ssb phasing demod, Charles Swiger, 2006/03/10