RFNoC DUC: Difference between revisions
Jump to navigation
Jump to search
(Updated/Completed description for the ddc block) |
|||
Line 1: | Line 1: | ||
<!-- | <!-- RFNoC_Digital_Downconverter_Block.mediawiki --> | ||
<!-- /dcs/local/share/gnuradio/grc/blocks/ | <!-- /dcs/local/share/gnuradio/grc/blocks/uhd_rfnoc_ddc.block.yml --> | ||
The RFNoC Digital Downconverter (DDC) block is designed to efficiently transform a signal from a higher sample rate to a lower one, and it also offers the capability to shift the signal's frequency. | |||
The DDC block supports integer sample rate conversion factors, allowing for flexibility in signal processing. For optimal performance, especially in terms of minimal filter roll-off and maximum aliasing suppression, it is recommended to use conversion factors of {2, 4, 8}. | |||
== Parameters == | == Parameters == | ||
<b>(R):</b> <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls <b>Run-time adjustable</b>]</span><br> | <b>(R):</b> <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls <b>Run-time adjustable</b>]</span><br> | ||
;Channel count | |||
:default: 1 | |||
:This specifies the number of channels / streams to be used with the block. | |||
; | ;Block Args | ||
:default: | :default: "" | ||
: | :Viable properties can be found at [https://files.ettus.com/manual/classuhd_1_1rfnoc_1_1ddc__block__control.html RFNoC ddc control]. | ||
; | ;Device Select / Instance Select | ||
: | :Default: -1 / Default: -1 | ||
:These properties specify the device and instance to be used. It is best practice to always explicitly specify both. This is crucial because many USRP setups involve multiple instances of different blocks, and GNU Radio tends to select the first device or instance it finds, which may not be the most suitable choice. Explicit specification helps to prevent errors and ensures the correct setup is used. | |||
:- Use ''uhd_usrp_probe'' to determine the correct device and instance numbers. | |||
:- Always specify the device and instance explicitly to avoid automatic mismatches by GNU Radio. | |||
:Even with a single device with multiple instances: | |||
:- 0/Radio#0 → Device 0, Instance 0 | |||
:- 0/Radio#1 → Device 0, Instance 1 | |||
:Specification with multiple devices: | |||
:- 0/Radio#1 → Device 0, Instance 1 | |||
:- 1/Radio#1 → Device 1, Instance 1 | |||
:By consistently specifying the device and instance, you ensure that the most appropriate settings are applied and avoid potential issues caused by automatic selection. | |||
; | ;Ch0: Frequency Shift (Hz) | ||
:default: | :default: 0 | ||
:Positive or negative Frequency offset relative to the original frequency | |||
;Ch0: Output Rate (Hz) | |||
:default: 0 | |||
:Output sample rate in Hz | |||
<!-- EOh: "Output sample rate in Hz", same below --> <!-- corrected --> | |||
;Ch1: Frequency Shift (Hz) | |||
:default: 0 | |||
:Positive or negative Frequency offset relative to the original frequency | |||
;Ch1: Output Rate (Hz) | |||
:default: 0 | |||
:Output sample rate in Hz | |||
;Ch2: Frequency Shift (Hz) | |||
:default: 0 | |||
:Positive or negative Frequency offset relative to the original frequency | |||
;Ch2: Output Rate (Hz) | |||
:default: 0 | |||
:Output sample rate in Hz | |||
;Ch3: Frequency Shift (Hz) | |||
:default: 0 | |||
:Positive or negative Frequency offset relative to the original frequency | |||
;Ch3: Output Rate (Hz) | |||
:default: 0 | |||
:Output sample rate in Hz | |||
== Example Flowgraph == | == Example Flowgraph == | ||
You can find this example at [https://github.com/gnuradio/gnuradio/blob/main/gr-uhd/examples/grc/rfnoc_radio_ddc.grc rfnoc_radio_ddc.grc] <br> | |||
[[File:Rfnoc duc radio.png]] | |||
== Example Output == | == Example Output == | ||
Line 22: | Line 68: | ||
; C++ files | ; C++ files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/main/gr-uhd/lib/rfnoc_ddc_impl.cc rfnoc_ddc_impl.cc] | ||
; Header files | ; Header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/main/gr-uhd/lib/rfnoc_ddc_impl.h rfnoc_ddc_impl.h] | ||
; Public header files | ; Public header files | ||
: [https://github.com/gnuradio/gnuradio | : [https://github.com/gnuradio/gnuradio/blob/main/gr-uhd/include/gnuradio/uhd/rfnoc_ddc.h rfnoc_ddc.h] | ||
; Block definition | ; Block definition | ||
: [https://github.com/gnuradio/gnuradio/blob/main/gr-uhd/grc/ | : [https://github.com/gnuradio/gnuradio/blob/main/gr-uhd/grc/gen_rfnoc_ddc_block_yml.py uhd_rfnoc_ddc.block.yml] | ||
[[Category:Stub Docs]] | [[Category:Stub Docs]] | ||
[[Category:Block Docs]] | [[Category:Block Docs]] |
Revision as of 15:03, 12 May 2025
The RFNoC Digital Downconverter (DDC) block is designed to efficiently transform a signal from a higher sample rate to a lower one, and it also offers the capability to shift the signal's frequency. The DDC block supports integer sample rate conversion factors, allowing for flexibility in signal processing. For optimal performance, especially in terms of minimal filter roll-off and maximum aliasing suppression, it is recommended to use conversion factors of {2, 4, 8}.
Parameters
(R): Run-time adjustable
- Channel count
- default: 1
- This specifies the number of channels / streams to be used with the block.
- Block Args
- default: ""
- Viable properties can be found at RFNoC ddc control.
- Device Select / Instance Select
- Default: -1 / Default: -1
- These properties specify the device and instance to be used. It is best practice to always explicitly specify both. This is crucial because many USRP setups involve multiple instances of different blocks, and GNU Radio tends to select the first device or instance it finds, which may not be the most suitable choice. Explicit specification helps to prevent errors and ensures the correct setup is used.
- - Use uhd_usrp_probe to determine the correct device and instance numbers.
- - Always specify the device and instance explicitly to avoid automatic mismatches by GNU Radio.
- Even with a single device with multiple instances:
- - 0/Radio#0 → Device 0, Instance 0
- - 0/Radio#1 → Device 0, Instance 1
- Specification with multiple devices:
- - 0/Radio#1 → Device 0, Instance 1
- - 1/Radio#1 → Device 1, Instance 1
- By consistently specifying the device and instance, you ensure that the most appropriate settings are applied and avoid potential issues caused by automatic selection.
- Ch0
- Frequency Shift (Hz)
- default: 0
- Positive or negative Frequency offset relative to the original frequency
- Ch0
- Output Rate (Hz)
- default: 0
- Output sample rate in Hz
- Ch1
- Frequency Shift (Hz)
- default: 0
- Positive or negative Frequency offset relative to the original frequency
- Ch1
- Output Rate (Hz)
- default: 0
- Output sample rate in Hz
- Ch2
- Frequency Shift (Hz)
- default: 0
- Positive or negative Frequency offset relative to the original frequency
- Ch2
- Output Rate (Hz)
- default: 0
- Output sample rate in Hz
- Ch3
- Frequency Shift (Hz)
- default: 0
- Positive or negative Frequency offset relative to the original frequency
- Ch3
- Output Rate (Hz)
- default: 0
- Output sample rate in Hz
Example Flowgraph
You can find this example at rfnoc_radio_ddc.grc
Example Output
Source Files
- C++ files
- rfnoc_ddc_impl.cc
- Header files
- rfnoc_ddc_impl.h
- Public header files
- rfnoc_ddc.h
- Block definition
- uhd_rfnoc_ddc.block.yml