summaryrefslogtreecommitdiff
path: root/grc/blocks
diff options
context:
space:
mode:
Diffstat (limited to 'grc/blocks')
-rw-r--r--grc/blocks/Makefile.am1
-rw-r--r--grc/blocks/block_tree.xml5
-rw-r--r--grc/blocks/gr_pfb_clock_sync.xml75
3 files changed, 79 insertions, 2 deletions
diff --git a/grc/blocks/Makefile.am b/grc/blocks/Makefile.am
index 7d0876b2f..61c003803 100644
--- a/grc/blocks/Makefile.am
+++ b/grc/blocks/Makefile.am
@@ -145,6 +145,7 @@ dist_ourdata_DATA = \
gr_packed_to_unpacked_xx.xml \
gr_peak_detector2_fb.xml \
gr_peak_detector_xb.xml \
+ gr_pfb_clock_sync.xml \
gr_phase_modulator_fc.xml \
gr_pll_carriertracking_cc.xml \
gr_pll_freqdet_cf.xml \
diff --git a/grc/blocks/block_tree.xml b/grc/blocks/block_tree.xml
index 444d922ed..187ca196a 100644
--- a/grc/blocks/block_tree.xml
+++ b/grc/blocks/block_tree.xml
@@ -126,6 +126,7 @@
<cat>
<name>Synchronizers</name>
<block>gr_clock_recovery_mm_xx</block>
+ <block>gr_pfb_clock_sync_ccf</block>
<block>gr_costas_loop_cc</block>
<block>gr_dd_mpsk_sync_cc</block>
@@ -169,7 +170,7 @@
<block>band_pass_filter</block>
<block>band_reject_filter</block>
<block>root_raised_cosine_filter</block>
- <!-- Filters that take taps as aruments -->
+ <!-- Filters that take taps as arguments -->
<block>gr_fir_filter_xxx</block>
<block>gr_interp_fir_filter_xxx</block>
<block>gr_fft_filter_xxx</block>
@@ -180,7 +181,7 @@
<!-- Filter banks -->
<block>blks2_synthesis_filterbank</block>
<block>blks2_analysis_filterbank</block>
- <!-- Polyphase filers -->
+ <!-- Polyphase filters -->
<block>blks2_pfb_arb_resampler_ccf</block>
<!-- Other filters -->
<block>gr_single_pole_iir_filter_xx</block>
diff --git a/grc/blocks/gr_pfb_clock_sync.xml b/grc/blocks/gr_pfb_clock_sync.xml
new file mode 100644
index 000000000..9cb909acd
--- /dev/null
+++ b/grc/blocks/gr_pfb_clock_sync.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+## Polyphase Filter based Clock Sync
+###################################################
+ -->
+<block>
+ <name>Polyphase Clock Sync</name>
+ <key>gr_pfb_clock_sync_ccf</key>
+ <import>from gnuradio import gr</import>
+ <make>gr.pfb_clock_sync_ccf($sps, $alpha, $taps, $filter_size, $init_phase, $max_dev)
+self.$(id).set_beta($beta)</make>
+ <callback>set_taps($taps)</callback>
+ <callback>set_alpha($alpha)</callback>
+ <callback>set_beta($beta)</callback>
+
+ <param>
+ <name>Samples/Symbol</name>
+ <key>sps</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Alpha</name>
+ <key>alpha</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Beta</name>
+ <key>beta</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Taps</name>
+ <key>taps</key>
+ <type>real_vector</type>
+ </param>
+ <param>
+ <name>Filter Size</name>
+ <key>filter_size</key>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Initial Phase</name>
+ <key>init_phase</key>
+ <type>real</type>
+ </param>
+ <param>
+ <name>Maximum Rate Deviation</name>
+ <key>max_dev</key>
+ <type>real</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+ <source>
+ <name>err</name>
+ <type>float</type>
+ <optional>1</optional>
+ </source>
+ <source>
+ <name>rate</name>
+ <type>float</type>
+ <optional>1</optional>
+ </source>
+ <source>
+ <name>phase</name>
+ <type>float</type>
+ <optional>1</optional>
+ </source>
+</block>