Revision 3bac2fa5 gnuradio-core/src/python/gnuradio/blks2impl/dqpsk2.py
| b/gnuradio-core/src/python/gnuradio/blks2impl/dqpsk2.py | ||
|---|---|---|
| 106 | 106 |
self.chunks2symbols = gr.chunks_to_symbols_bc(rotated_const) |
| 107 | 107 |
|
| 108 | 108 |
# pulse shaping filter |
| 109 |
self.rrc_taps = gr.firdes.root_raised_cosine( |
|
| 110 |
self._samples_per_symbol, # gain (sps since we're interpolating by sps) |
|
| 111 |
self._samples_per_symbol, # sampling rate |
|
| 112 |
1.0, # symbol rate |
|
| 113 |
self._excess_bw, # excess bandwidth (roll-off factor) |
|
| 109 |
nfilts = 32 |
|
| 110 |
ntaps = nfilts * 11 * self._samples_per_symbol # make nfilts filters of ntaps each |
|
| 111 |
self.rrc_taps = gr.firdes.root_raised_cosine( |
|
| 112 |
nfilts, # gain |
|
| 113 |
nfilts, # sampling rate based on 32 filters in resampler |
|
| 114 |
1.0, # symbol rate |
|
| 115 |
self._excess_bw, # excess bandwidth (roll-off factor) |
|
| 114 | 116 |
ntaps) |
| 115 |
|
|
| 116 |
self.rrc_filter = gr.interp_fir_filter_ccf(self._samples_per_symbol, self.rrc_taps) |
|
| 117 |
self.rrc_filter = gr.pfb_arb_resampler_ccf(self._samples_per_symbol, self.rrc_taps) |
|
| 117 | 118 |
|
| 118 | 119 |
if verbose: |
| 119 | 120 |
self._print_verbage() |
| ... | ... | |
| 246 | 247 |
|
| 247 | 248 |
# Frequency correction |
| 248 | 249 |
self.freq_recov = gr.fll_band_edge_cc(self._samples_per_symbol, self._excess_bw, |
| 249 |
11*self._samples_per_symbol,
|
|
| 250 |
11*int(self._samples_per_symbol),
|
|
| 250 | 251 |
self._freq_alpha, self._freq_beta) |
| 251 | 252 |
|
| 252 | 253 |
|
| 253 | 254 |
# symbol timing recovery with RRC data filter |
| 254 | 255 |
nfilts = 32 |
| 255 |
ntaps = 11 * samples_per_symbol*nfilts
|
|
| 256 |
ntaps = 11 * int(samples_per_symbol*nfilts)
|
|
| 256 | 257 |
taps = gr.firdes.root_raised_cosine(nfilts, nfilts, |
| 257 | 258 |
1.0/float(self._samples_per_symbol), |
| 258 | 259 |
self._excess_bw, ntaps) |
| ... | ... | |
| 268 | 269 |
fmin = -0.5 |
| 269 | 270 |
fmax = 0.5 |
| 270 | 271 |
|
| 271 |
self.clock_recov = gr.costas_loop_cc(self._costas_alpha,
|
|
| 272 |
self.phase_recov = gr.costas_loop_cc(self._costas_alpha,
|
|
| 272 | 273 |
self._costas_beta, |
| 273 | 274 |
fmax, fmin, arity) |
| 274 | 275 |
|
| ... | ... | |
| 297 | 298 |
|
| 298 | 299 |
# Connect |
| 299 | 300 |
self.connect(self, self.agc, |
| 300 |
self.freq_recov, self.time_recov, self.clock_recov,
|
|
| 301 |
self.freq_recov, self.time_recov, self.phase_recov,
|
|
| 301 | 302 |
self.diffdec, self.slicer, self.symbol_mapper, self.unpack, self) |
| 302 | 303 |
if sync_out: self.connect(self.time_recov, (self, 1)) |
| 303 | 304 |
|
Also available in: Unified diff