diff --git a/src/osmo_gsm_tester/amarisoft_ue.py b/src/osmo_gsm_tester/amarisoft_ue.py
index 31e814e..9bfc182 100644
--- a/src/osmo_gsm_tester/amarisoft_ue.py
+++ b/src/osmo_gsm_tester/amarisoft_ue.py
@@ -47,6 +47,21 @@
 def num_prb2base_srate(num_prb):
     return num_prb2symbol_sz(num_prb) * 15 * 1000
 
+def num_prb2bandwidth(num_prb):
+    if num_prb <= 6:
+        return 1.4
+    if num_prb <= 15:
+        return 3
+    if num_prb <= 25:
+        return 5
+    if num_prb <= 50:
+        return 10
+    if num_prb <= 75:
+        return 15
+    if num_prb <= 110:
+        return 20
+    raise log.Error('invalid num_prb %r', num_prb)
+
 class AmarisoftUE(MS):
 
     REMOTE_DIR = '/osmo-gsm-tester-amarisoftue'
@@ -210,8 +225,13 @@
             config.overlay(values, dict(ue=dict(sample_rate = base_srate / (1000*1000),
                                                 rf_dev_args = rf_dev_args)))
 
+        # The UHD rf driver seems to require the bandwidth configuration
+        if self._conf.get('rf_dev_type') == 'uhd':
+            bandwidth = num_prb2bandwidth(self.enb.num_prb())
+            config.overlay(values, dict(ue=dict(bandwidth = bandwidth)))
+
         # Set UHD frame size as a function of the cell bandwidth on B2XX
-        if self._conf.get('rf_dev_type') == 'UHD' and values['ue'].get('rf_dev_args', None) is not None:
+        if self._conf.get('rf_dev_type') == 'uhd' and values['ue'].get('rf_dev_args', None) is not None:
             if 'b200' in values['ue'].get('rf_dev_args'):
                 rf_dev_args = values['ue'].get('rf_dev_args', '')
                 rf_dev_args += ',' if rf_dev_args != '' and not rf_dev_args.endswith(',') else ''
diff --git a/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl b/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl
index 4831278..59ab8b2 100644
--- a/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl
+++ b/src/osmo_gsm_tester/templates/amarisoft_lteue.cfg.tmpl
@@ -13,6 +13,8 @@
 % if ue.rf_dev_type == 'zmq':
   /* Force sampling rate (if uncommented) */
   sample_rate: ${ue.sample_rate},
+% else:
+  bandwidth: ${ue.bandwidth},
 %endif
 
 //  log_options: "all.level=debug,all.max_size=32",
