dichasus-dxxx-complete Dataset: Outdoor - Three arrays distributed along the facade

Three 2 x 8 antenna arrays are distributed along the facade of a building, separated by up to 35m.

Three separate antenna arrays are attached to the facade of the Institute of Telecommunications building on the University of Stuttgart campus in Stuttgart-Vaihingen. The transmitter is mounted on a handcart and pulled around on the street in front of that building. The position of the tip of the transmit antenna is accurately tracked by a Tachymeter. This dataset only contains datapoints for which all 48 antennas have successfully acquired channel state information. Since one antenna in array B was not perfectly reliable due to synchronization issues, some datapoints might be missing (but all the contained datapoints should be accurate).

50.000 MHz

Signal Bandwidth

1024

OFDM Subcarriers

72709

Data Points

5972.0 s

Total Duration

28.6 GB

Total Download Size

48

Number of Antennas

Outdoor

Type of Environment

1.272000 GHz

Carrier Frequency

Distributed

Antenna Setup

3D Tachymeter

Position-Tagged

Experiment Setup

Data Analysis

Antenna Configuration

Antenna 1: Antenna Array A

This array has a vertical spacing of 0.118m and a horizontal spacing of 0.118m. In the dataset's cartesian coordinate system, its center is located at [14.104 4.37595 10.090525] and the antenna points in direction [-0.9369289 -0.01300416 -0.349278].
Antenna Channel Assignments
4 13 39 14 2 35 10 11
42 33 30 18 7 20 3 21

Antenna 2: Antenna Array B

This array has a vertical spacing of 0.118m and a horizontal spacing of 0.118m. In the dataset's cartesian coordinate system, its center is located at [14.031675 22.342375 10.09225] and the antenna points in direction [-0.93379024 -0.00749353 -0.3577424].
Antenna Channel Assignments
32 40 45 44 36 25 0 17
43 8 16 19 12 1 23 28

Antenna 3: Antenna Array C

This array has a vertical spacing of 0.118m and a horizontal spacing of 0.118m. In the dataset's cartesian coordinate system, its center is located at [14.163125 -13.618325 10.08755] and the antenna points in direction [-0.91256453 -0.00540906 -0.40889695].
Antenna Channel Assignments
24 5 26 22 15 46 29 6
47 9 41 27 34 37 31 38

Python: Import with TensorFlow

#!/usr/bin/env python3
import tensorflow as tf

raw_dataset = tf.data.TFRecordDataset(["tfrecords/dichasus-d002-complete.tfrecords", "tfrecords/dichasus-d004-complete.tfrecords", "tfrecords/dichasus-d005-complete.tfrecords", "tfrecords/dichasus-d006-complete.tfrecords", "tfrecords/dichasus-d007-complete.tfrecords", "tfrecords/dichasus-d008-complete.tfrecords", "tfrecords/dichasus-d009-complete.tfrecords", "tfrecords/dichasus-d00a-complete.tfrecords", "tfrecords/dichasus-d00b-complete.tfrecords", "tfrecords/dichasus-d010-complete.tfrecords", "tfrecords/dichasus-d011-complete.tfrecords", "tfrecords/dichasus-d012-complete.tfrecords", "tfrecords/dichasus-d013-complete.tfrecords", "tfrecords/dichasus-d014-complete.tfrecords"])

feature_description = {
	"cfo": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"csi": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"gt-interp-age-tachy": tf.io.FixedLenFeature([], tf.float32, default_value = 0),
	"pos-tachy": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"snr": tf.io.FixedLenFeature([], tf.string, default_value = ''),
	"time": tf.io.FixedLenFeature([], tf.float32, default_value = 0),
}
			
def record_parse_function(proto):
	record = tf.io.parse_single_example(proto, feature_description)

	# Measured carrier frequency offset between MOBTX and each receive antenna.
	cfo = tf.ensure_shape(tf.io.parse_tensor(record["cfo"], out_type = tf.float32), (48))

	# Channel coefficients for all antennas, over all subcarriers, real and imaginary parts
	csi = tf.ensure_shape(tf.io.parse_tensor(record["csi"], out_type = tf.float32), (48, 1024, 2))

	# Time in seconds to closest known tachymeter position. Indicates quality of linear interpolation.
	gt_interp_age_tachy = tf.ensure_shape(record["gt-interp-age-tachy"], ())

	# Position of transmitter determined by a tachymeter pointed at a prism mounted on top of the antenna, in meters (X / Y / Z coordinates)
	pos_tachy = tf.ensure_shape(tf.io.parse_tensor(record["pos-tachy"], out_type = tf.float64), (3))

	# Signal-to-Noise ratio estimates for all antennas
	snr = tf.ensure_shape(tf.io.parse_tensor(record["snr"], out_type = tf.float32), (48))

	# Timestamp since start of measurement campaign, in seconds
	time = tf.ensure_shape(record["time"], ())

	return cfo, csi, gt_interp_age_tachy, pos_tachy, snr, time
			
dataset = raw_dataset.map(record_parse_function, num_parallel_calls = tf.data.experimental.AUTOTUNE)

# Optional: Cache dataset in RAM for faster training
dataset = dataset.cache()

Reference Channel Compensation

For this dataset, we are able to provide estimated antenna-specific carrier phase and sampling time offsets. These offsets occur due to the fact that the reference transmitter channel is not perfectly frequency-flat. To learn more about why these offsets occur and about their compensation, visit our offset calibration tutorial on this topic. Note that the estimates provided here are "best-effort" calculations. The phase and time offsets between antennas in the same array are usually very accurate, but for antennas that are spaced far apart, the results may be less precise. The offset are constant over the complete dataset.

How to Cite

Please refer to the home page for information on how to cite any of our datasets in your research. For this dataset in particular, you may use the following BibTeX:

@data{dataset-dichasus-dxxx-complete,
	author    = {Euchner, Florian and Gauger, Marc},
	publisher = {DaRUS},
	title     = {{CSI Dataset dichasus-dxxx-complete: Outdoor - Three arrays distributed along the facade}},
	doi       = {doi:10.18419/darus-3153},
	url       = {https://doi.org/doi:10.18419/darus-3153},
	year      = {2022}
}

Download

This dataset consists of 14 files. Descriptions of these files as well as download links are provided below.

dichasus-d002-complete
Textual Description

The trajectory of the transmitter traces back overlapping rectangular shapes (vertical) on the so-called 'ramp' (close underneath antenna array A).

3.6 GB

File Size

9163

Points

578.3 s

Duration

dichasus-d004-complete
Textual Description

The trajectory of the transmitter traces back overlapping rectangular shapes (horizontal) on the so-called 'ramp' (close underneath antenna array A).

5.6 GB

File Size

14272

Points

897.0 s

Duration

dichasus-d005-complete
Textual Description

The transmitter moves along a zig-zag trajectory on the so-called 'ramp' (close underneath antenna array A).

3.8 GB

File Size

9537

Points

613.8 s

Duration

dichasus-d006-complete
Textual Description

The transmitter moves forth and back on the street (all the way to the left and all the way to the right).

3.5 GB

File Size

8929

Points

801.1 s

Duration

dichasus-d007-complete
Textual Description

The transmitter's trajectory is a wavy line on the street.

2.6 GB

File Size

6707

Points

644.0 s

Duration

dichasus-d008-complete
Textual Description

The transmitter moves around on the street, and sometimes swerves onto the 'ramp' area.

1.4 GB

File Size

3568

Points

342.1 s

Duration

dichasus-d009-complete
Textual Description

Again, the transmitter moves around on the street, and sometimes swerves onto the 'ramp' area.

2.8 GB

File Size

7163

Points

637.8 s

Duration

dichasus-d00a-complete
Textual Description

Transmitter follows several trajectories that connect the 'ramp' area below antenna A and the street (mostly towards antenna B).

2.5 GB

File Size

6450

Points

611.4 s

Duration

dichasus-d00b-complete
Textual Description

Transmitter follows several trajectories that connect the 'ramp' area below antenna A and the street (mostly towards antenna C). Towards the end, the transmitter moves towards the driveway of the building opposite to antenna A.

1.3 GB

File Size

3360

Points

473.6 s

Duration

dichasus-d010-complete
Textual Description

Transmitter moves from a place in front of antenna A to the street, to antenna B, and further.

0.2 GB

File Size

537

Points

49.6 s

Duration

dichasus-d011-complete
Textual Description

Transmitter moves from one end of the street to the other (forwards).

0.3 GB

File Size

683

Points

89.2 s

Duration

dichasus-d012-complete
Textual Description

Transmitter moves from one end of the street to the other (backwards).

0.3 GB

File Size

780

Points

80.1 s

Duration

dichasus-d013-complete
Textual Description

Transmitter moves from one end of the street to the other (forwards).

0.4 GB

File Size

983

Points

89.2 s

Duration

dichasus-d014-complete
Textual Description

Transmitter moves from one end of the street to a place in front of antenna A.

0.2 GB

File Size

577

Points

64.8 s

Duration

Derived Channel Statistics

Channel statistics such as delay spread, k-Factor and path loss exponent are a good way to characterize a wireless channel measurement and to parametrize a channel model. Using estimation algorithms contributed by Janina Sanzi, we automatically extract the following channel statistics from the measured datasets:

RMS Delay Spread

The delay spread of a wireless channel is inversely proportional to the channel's coherence bandwidth and indicates how "spread out" the lengths of the various multipath propagation paths are. For every datapoint, the delay spread can be characterized by its root mean square value and the resulting delay spreads can be plotted over the measurement area:

Rician K-Factor

The Rician K-factor is defined as the power ratio between dominant and diffuse component, usually expressed in decibels. We estimate the K-factor with a moment-method based on the distribution of of channel coefficient powers. The resulting K-Factors be plotted over the measurement area: