summaryrefslogtreecommitdiff
path: root/gr-channels/grc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-channels/grc')
-rw-r--r--gr-channels/grc/CMakeLists.txt2
-rw-r--r--gr-channels/grc/channels_block_tree.xml1
-rw-r--r--gr-channels/grc/channels_selective_fading_model2.xml128
3 files changed, 130 insertions, 1 deletions
diff --git a/gr-channels/grc/CMakeLists.txt b/gr-channels/grc/CMakeLists.txt
index 75e2bc0dd..c85170b4e 100644
--- a/gr-channels/grc/CMakeLists.txt
+++ b/gr-channels/grc/CMakeLists.txt
@@ -19,5 +19,5 @@
file(GLOB xml_files "*.xml")
install(FILES ${xml_files}
- DESTINATION ${GRC_BLOCKS_DIR} COMPONENT "channels_python"
+ DESTINATION ${GRC_BLOCKS_DIR}
)
diff --git a/gr-channels/grc/channels_block_tree.xml b/gr-channels/grc/channels_block_tree.xml
index 00886e8ee..80aabaf47 100644
--- a/gr-channels/grc/channels_block_tree.xml
+++ b/gr-channels/grc/channels_block_tree.xml
@@ -36,6 +36,7 @@
<block>channels_fading_model</block>
<block>channels_dynamic_channel_model</block>
<block>channels_selective_fading_model</block>
+ <block>channels_selective_fading_model2</block>
</cat>
<cat>
<name>Impairment Models</name>
diff --git a/gr-channels/grc/channels_selective_fading_model2.xml b/gr-channels/grc/channels_selective_fading_model2.xml
new file mode 100644
index 000000000..1e1ea3a70
--- /dev/null
+++ b/gr-channels/grc/channels_selective_fading_model2.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<!--
+###################################################
+##Frequency Selective Fading Model
+###################################################
+ -->
+<block>
+ <name>Frequency Selective Fading Model2</name>
+ <key>channels_selective_fading_model2</key>
+ <import>from gnuradio import channels</import>
+ <make>channels.selective_fading_model2( $N, $fDTs, $LOS, $K, $seed, $delays, $delay_std, $delay_maxdev, $mags, $ntaps )</make>
+ <callback>set_fDTs($fDTs)</callback>
+ <callback>set_K($K)</callback>
+ <param>
+ <name>Num Sinusoids (Stochastic SoS model + delay drift)</name>
+ <key>N</key>
+ <value>8</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>Normalized Max Doppler (fD*Ts)</name>
+ <key>fDTs</key>
+ <value>0.2/samp_rate</value>
+ <type>real</type>
+ </param>
+ <param>
+ <name>LOS Model</name>
+ <key>LOS</key>
+ <type>enum</type>
+ <option>
+ <name>Rayleigh/NLOS</name>
+ <key>False</key>
+ <opt>hide_K:all</opt>
+ </option>
+ <option>
+ <name>Rician/LOS</name>
+ <key>True</key>
+ <opt>hide_K:</opt>
+ </option>
+ </param>
+ <param>
+ <name>Rician factor (K)</name>
+ <key>K</key>
+ <value>4.0</value>
+ <type>real</type>
+ <hide>$LOS.hide_K</hide>
+ </param>
+ <param>
+ <name>Seed</name>
+ <key>seed</key>
+ <value>0</value>
+ <type>int</type>
+ </param>
+ <param>
+ <name>PDP Delays (in samps)</name>
+ <key>delays</key>
+ <value>1.0,1.9,2.7</value>
+ <type>real_vector</type>
+ </param>
+ <param>
+ <name>PDP Delay StdDev (per samp)</name>
+ <key>delay_std</key>
+ <value>1e-4,1e-4,1e-4</value>
+ <type>real_vector</type>
+ </param>
+ <param>
+ <name>PDP Delay Max-Dev (per samp)</name>
+ <key>delay_maxdev</key>
+ <value>0.5,0.7,0.9</value>
+ <type>real_vector</type>
+ </param>
+ <param>
+ <name>PDP Magnitudes</name>
+ <key>mags</key>
+ <value>1,0.95,0.8</value>
+ <type>real_vector</type>
+ </param>
+ <param>
+ <name>Num Taps</name>
+ <key>ntaps</key>
+ <value>8</value>
+ <type>int</type>
+ </param>
+ <sink>
+ <name>in</name>
+ <type>complex</type>
+ </sink>
+ <source>
+ <name>out</name>
+ <type>complex</type>
+ </source>
+ <source>
+ <name>taps</name>
+ <type>message</type>
+ <optional>1</optional>
+ </source>
+ <doc>
+ int d_N=8; // number of sinusoids used to simulate gain on each ray
+ float d_fDTs=0.01 // normalized maximum doppler frequency (f_doppler / f_samprate)
+ float d_K=4; // Rician factor (ratio of the specular power to the scattered power)
+ bool d_LOS=true; // LOS path exists? chooses Rician (LOS) vs Rayleigh (NLOS) model.
+ int seed=0; // noise seed
+ int ntaps; // Number of FIR taps to use in selective fading model
+
+ These two vectors comprise the Power Delay Profile of the signal
+ float_vector delays // Time delay in the fir filter (in samples) for each arriving WSSUS Ray
+ float_vector mags // Magnitude corresponding to each WSSUS Ray
+
+ If using a LOS model, the first delay and mag should correspond with the LOS component
+
+ References:
+
+ The flat-fading portion of the algorithm implements the following
+ Compact Rayleigh and Rician fading simulator based on random walk processes
+ A. Alimohammad S.F. Fard B.F. Cockburn C. Schlegel
+ 26th November 2008
+ (Alogrithm III)
+ ( with a novel addition of time delay tap random walk )
+
+ The frequency selective extension of the block roughly implements
+ A Low-Complexity Hardware Implementation of Discrete-Time
+ Frequency-Selective Rayleigh Fading Channels
+ F. Ren and Y. Zheng
+ 24-27 May 2009
+
+ Implementation by Tim O'Shea
+ </doc>
+</block>