<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nanoworldorder.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Compressed_Beamforming_Matrix</id>
	<title>Compressed Beamforming Matrix - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nanoworldorder.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Compressed_Beamforming_Matrix"/>
	<link rel="alternate" type="text/html" href="https://nanoworldorder.com/wiki/index.php?title=Compressed_Beamforming_Matrix&amp;action=history"/>
	<updated>2026-11-10T22:00:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://nanoworldorder.com/wiki/index.php?title=Compressed_Beamforming_Matrix&amp;diff=2441&amp;oldid=prev</id>
		<title>Geckopico: Add 3 images: Compressed-Beamforming-Matrix-Singular-Value-Decomposition-of-the-chan-602be263.jpg, Compressed-Beamforming-Matrix-A-unitary-beamforming-matrix-decomposed-09e7e0bb.jpg, Compressed-Beamforming-Matrix-Wi-Fi-channel-sounding-signals-penetrate-0034ec78.jpg</title>
		<link rel="alternate" type="text/html" href="https://nanoworldorder.com/wiki/index.php?title=Compressed_Beamforming_Matrix&amp;diff=2441&amp;oldid=prev"/>
		<updated>2026-09-24T09:35:42Z</updated>

		<summary type="html">&lt;p&gt;Add 3 images: Compressed-Beamforming-Matrix-Singular-Value-Decomposition-of-the-chan-602be263.jpg, Compressed-Beamforming-Matrix-A-unitary-beamforming-matrix-decomposed-09e7e0bb.jpg, Compressed-Beamforming-Matrix-Wi-Fi-channel-sounding-signals-penetrate-0034ec78.jpg&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:35, 24 September 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== The Channel Matrix and SVD ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== The Channel Matrix and SVD ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Compressed-Beamforming-Matrix-Singular-Value-Decomposition-of-the-chan-602be263.jpg|thumb|right|Singular Value Decomposition of the channel matrix H, isolating the right singular vectors V used for beamforming steering.]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The wireless MIMO channel between a transmitting access point (AP) and a receiving client is described by a matrix &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039;, whose dimensions reflect the number of transmit and receive antennas. At any given [[Null Data Packet|sounding]] subcarrier, &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; is a complex-valued matrix.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The wireless MIMO channel between a transmitting access point (AP) and a receiving client is described by a matrix &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039;, whose dimensions reflect the number of transmit and receive antennas. At any given [[Null Data Packet|sounding]] subcarrier, &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; is a complex-valued matrix.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l36&quot;&gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Givens Rotations ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Givens Rotations ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Compressed-Beamforming-Matrix-A-unitary-beamforming-matrix-decomposed-09e7e0bb.jpg|thumb|right|A unitary beamforming matrix decomposed into a sequence of Givens rotation pairs, each parameterised by angles φ and ψ.]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A unitary matrix like &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; can be decomposed into a product of &amp;#039;&amp;#039;&amp;#039;Givens rotation matrices&amp;#039;&amp;#039;&amp;#039; — elementary 2×2 rotations that operate on pairs of dimensions. Each Givens rotation is parameterised by two real angles:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A unitary matrix like &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; can be decomposed into a product of &amp;#039;&amp;#039;&amp;#039;Givens rotation matrices&amp;#039;&amp;#039;&amp;#039; — elementary 2×2 rotations that operate on pairs of dimensions. Each Givens rotation is parameterised by two real angles:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l122&quot;&gt;Line 122:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 126:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Implications for [[Through-Wall Surveillance]] ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Implications for [[Through-Wall Surveillance]] ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[File:Compressed-Beamforming-Matrix-Wi-Fi-channel-sounding-signals-penetrate-0034ec78.jpg|thumb|right|Wi-Fi channel sounding signals penetrate walls, allowing passively intercepted beamforming matrices to reveal interior occupancy.]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Because Wi-Fi signals penetrate walls, [[Channel Sounding]] exchanges between an AP and a client on one side of a wall produce beamforming matrices that are influenced by humans on both sides. An interceptor positioned outside a building can collect BFI frames from interior devices and reconstruct spatial information about the interior environment — a capability relevant to [[Through-Wall Surveillance]] research.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Because Wi-Fi signals penetrate walls, [[Channel Sounding]] exchanges between an AP and a client on one side of a wall produce beamforming matrices that are influenced by humans on both sides. An interceptor positioned outside a building can collect BFI frames from interior devices and reconstruct spatial information about the interior environment — a capability relevant to [[Through-Wall Surveillance]] research.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Geckopico</name></author>
	</entry>
	<entry>
		<id>https://nanoworldorder.com/wiki/index.php?title=Compressed_Beamforming_Matrix&amp;diff=2383&amp;oldid=prev</id>
		<title>Geckopico: Create: Compressed Beamforming Matrix</title>
		<link rel="alternate" type="text/html" href="https://nanoworldorder.com/wiki/index.php?title=Compressed_Beamforming_Matrix&amp;diff=2383&amp;oldid=prev"/>
		<updated>2026-09-23T04:52:58Z</updated>

		<summary type="html">&lt;p&gt;Create: Compressed Beamforming Matrix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;Compressed Beamforming Matrix&amp;#039;&amp;#039;&amp;#039; is the mathematical structure used to encode [[Channel State Information]] (CSI) in a compact, transmittable form during the [[Wi-Fi Sensing|Wi-Fi]] beamforming feedback process. Rather than transmitting a full complex-valued matrix describing the wireless channel, a client device compresses the relevant spatial information into a small set of rotation angles and returns this as part of the [[Beamforming Feedback Information]] (BFI) frame. This compression is fundamental to the operation of [[IEEE 802.11]] ac and ax (Wi-Fi 5 and Wi-Fi 6) multi-antenna systems — and, significantly, it retains enough environmental information to enable passive sensing of human presence, movement, and activity, even when intercepted by third parties.&lt;br /&gt;
&lt;br /&gt;
[[File:Beamforming.jpg|thumb|right|MIMO beamforming antenna array directing signal energy]]&lt;br /&gt;
&lt;br /&gt;
== Definition ==&lt;br /&gt;
&lt;br /&gt;
The compressed beamforming matrix is a compact representation of the matrix &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; — specifically, the right singular vectors of the wireless [[Channel State Information|channel matrix]] &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039;. These singular vectors encode the preferred spatial directions along which transmitted energy will most efficiently reach the receiving client.&lt;br /&gt;
&lt;br /&gt;
Rather than sending the raw complex numbers of &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; across the air, the client device encodes &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; as a sequence of &amp;#039;&amp;#039;&amp;#039;Givens rotation angles&amp;#039;&amp;#039;&amp;#039;: two angle parameters, conventionally labelled &amp;#039;&amp;#039;&amp;#039;φ (phi)&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;ψ (psi)&amp;#039;&amp;#039;&amp;#039;, per rotation. These quantised angles are what actually appear in the [[Beamforming Feedback Information]] payload.&lt;br /&gt;
&lt;br /&gt;
The result is a drastic reduction in feedback bandwidth. A full complex matrix for a 4×4 MIMO system at 256 subcarriers would require thousands of floating-point values; the compressed form reduces this to a handful of quantised integers per subcarrier group.&lt;br /&gt;
&lt;br /&gt;
== Mathematical Background ==&lt;br /&gt;
&lt;br /&gt;
=== The Channel Matrix and SVD ===&lt;br /&gt;
&lt;br /&gt;
The wireless MIMO channel between a transmitting access point (AP) and a receiving client is described by a matrix &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039;, whose dimensions reflect the number of transmit and receive antennas. At any given [[Null Data Packet|sounding]] subcarrier, &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; is a complex-valued matrix.&lt;br /&gt;
&lt;br /&gt;
[[Channel Estimation|Channel estimation]] allows the client to measure &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; from a received [[Null Data Packet]] (NDP). The client then performs a &amp;#039;&amp;#039;&amp;#039;Singular Value Decomposition&amp;#039;&amp;#039;&amp;#039; (SVD):&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;H = U Σ V^H&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039; is a unitary matrix of left singular vectors (receive-side spatial directions)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Σ&amp;#039;&amp;#039;&amp;#039; is a diagonal matrix of singular values (signal strengths along each spatial direction)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;V^H&amp;#039;&amp;#039;&amp;#039; is the conjugate transpose of &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;, a unitary matrix of right singular vectors (transmit-side spatial directions)&lt;br /&gt;
&lt;br /&gt;
The columns of &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; represent the optimal &amp;#039;&amp;#039;&amp;#039;transmit directions&amp;#039;&amp;#039;&amp;#039; — the spatial modes along which the AP should steer energy to maximise throughput or signal quality at the client. The AP needs &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; to compute its transmit beamforming steering matrix, but it cannot measure &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; directly from its own end. The client must therefore feed this information back.&lt;br /&gt;
&lt;br /&gt;
=== Why Only V? ===&lt;br /&gt;
&lt;br /&gt;
The AP already knows its own antenna geometry. What it lacks is knowledge of the channel as seen from the client&amp;#039;s perspective. The matrix &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; encapsulates precisely the transmit-side geometry needed to steer beams correctly. Transmitting &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Σ&amp;#039;&amp;#039;&amp;#039; is unnecessary for this purpose — only &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; (or an approximation of it) is required.&lt;br /&gt;
&lt;br /&gt;
== Compression Mechanism ==&lt;br /&gt;
&lt;br /&gt;
=== Givens Rotations ===&lt;br /&gt;
&lt;br /&gt;
A unitary matrix like &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; can be decomposed into a product of &amp;#039;&amp;#039;&amp;#039;Givens rotation matrices&amp;#039;&amp;#039;&amp;#039; — elementary 2×2 rotations that operate on pairs of dimensions. Each Givens rotation is parameterised by two real angles:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;φ (phi)&amp;#039;&amp;#039;&amp;#039;: a rotation angle&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;ψ (psi)&amp;#039;&amp;#039;&amp;#039;: a phase angle&lt;br /&gt;
&lt;br /&gt;
By chaining together a specific sequence of these rotations (determined by the matrix dimensions), any unitary matrix can be reconstructed exactly. The client computes the Givens decomposition of &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; and extracts the corresponding angle pairs.&lt;br /&gt;
&lt;br /&gt;
=== Quantisation ===&lt;br /&gt;
&lt;br /&gt;
The continuous-valued angles are then &amp;#039;&amp;#039;&amp;#039;quantised&amp;#039;&amp;#039;&amp;#039; to a fixed number of bits before transmission:&lt;br /&gt;
* φ angles are typically quantised to &amp;#039;&amp;#039;&amp;#039;b_phi&amp;#039;&amp;#039;&amp;#039; bits&lt;br /&gt;
* ψ angles are quantised to &amp;#039;&amp;#039;&amp;#039;b_psi&amp;#039;&amp;#039;&amp;#039; bits&lt;br /&gt;
&lt;br /&gt;
The [[IEEE 802.11]] standards define specific quantisation precisions depending on the requested feedback quality level. Lower bit depths mean smaller feedback frames but coarser approximations of &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== Encoding ===&lt;br /&gt;
&lt;br /&gt;
The quantised angle indices are packed into the [[Beamforming Feedback Information]] frame. The AP, upon receipt, uses these integers to reconstruct an approximate &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039; by reversing the Givens rotation process.&lt;br /&gt;
&lt;br /&gt;
[[File:Linear subspaces with shading.svg|thumb|right|Givens rotation mathematical illustration]]&lt;br /&gt;
&lt;br /&gt;
== Subcarrier Grouping ==&lt;br /&gt;
&lt;br /&gt;
A full Wi-Fi channel may contain hundreds of OFDM subcarriers, each with its own channel matrix &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; and therefore its own &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;. Transmitting feedback for every subcarrier individually would be costly in airtime.&lt;br /&gt;
&lt;br /&gt;
To reduce overhead, the standard allows &amp;#039;&amp;#039;&amp;#039;subcarrier grouping&amp;#039;&amp;#039;&amp;#039; via a parameter called &amp;#039;&amp;#039;&amp;#039;N_g&amp;#039;&amp;#039;&amp;#039; (grouping factor). Angles are reported once per group of N_g subcarriers rather than per individual subcarrier:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;N_g = 1&amp;#039;&amp;#039;&amp;#039;: Full resolution — one feedback set per subcarrier (highest precision, largest frame)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;N_g = 2&amp;#039;&amp;#039;&amp;#039;: One feedback set per pair of subcarriers&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;N_g = 4&amp;#039;&amp;#039;&amp;#039;: One feedback set per four subcarriers (lowest precision, smallest frame)&lt;br /&gt;
&lt;br /&gt;
The grouping parameter represents an explicit trade-off: lower N_g values preserve fine-grained [[Channel State Information]] across the frequency band, while higher values sacrifice spatial resolution in exchange for reduced feedback overhead.&lt;br /&gt;
&lt;br /&gt;
From a [[Through-Wall Surveillance|sensing]] perspective, even high grouping factors (N_g = 4) retain sufficient inter-subcarrier variation to support coarse environmental inference, though fine-grained gesture recognition benefits from lower grouping.&lt;br /&gt;
&lt;br /&gt;
== Decompression at the Access Point ==&lt;br /&gt;
&lt;br /&gt;
When the AP receives the [[Beamforming Feedback Information]] frame, it performs the following steps:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Dequantise&amp;#039;&amp;#039;&amp;#039; the received angle indices back into floating-point angle values&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Reconstruct V̂&amp;#039;&amp;#039;&amp;#039; (an approximation of V) by multiplying the corresponding Givens rotation matrices in the specified order&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Apply V̂&amp;#039;&amp;#039;&amp;#039; as the precoding (steering) matrix for subsequent downlink transmissions to this client&lt;br /&gt;
&lt;br /&gt;
The reconstructed &amp;#039;&amp;#039;&amp;#039;V̂&amp;#039;&amp;#039;&amp;#039; is an approximation because quantisation introduces rounding error. The fidelity of this approximation depends on the bit depth of the quantisation and the grouping factor used. Higher precision feedback (more bits, lower N_g) yields a &amp;#039;&amp;#039;&amp;#039;V̂&amp;#039;&amp;#039;&amp;#039; closer to the true &amp;#039;&amp;#039;&amp;#039;V&amp;#039;&amp;#039;&amp;#039;, improving beamforming gain.&lt;br /&gt;
&lt;br /&gt;
The AP does not store raw channel matrices — it only receives and acts upon the compressed angle representation. This means the compressed beamforming matrix is the only form of [[Channel State Information]] the AP ever obtains from the client.&lt;br /&gt;
&lt;br /&gt;
== Surveillance Relevance ==&lt;br /&gt;
&lt;br /&gt;
=== Environmental Information Preserved ===&lt;br /&gt;
&lt;br /&gt;
Although the compressed beamforming matrix is a mathematical abstraction of the wireless channel rather than a raw recording of it, it preserves substantial environmental information. The singular vectors of &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039; reflect how objects in the environment — including human bodies — scatter, absorb, and reflect Wi-Fi signals.&lt;br /&gt;
&lt;br /&gt;
Researchers in [[Wi-Fi Sensing]] have demonstrated that:&lt;br /&gt;
* Human presence in a room produces characteristic changes in the dominant singular vectors of &amp;#039;&amp;#039;&amp;#039;H&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Body movement shifts the angle parameters φ and ψ in ways that can be tracked over time&lt;br /&gt;
* Even with aggressive quantisation (e.g., 5–6 bits per angle), enough variation persists to classify activities such as walking, sitting, falling, and breathing&lt;br /&gt;
&lt;br /&gt;
This means the compressed beamforming matrix — despite being designed purely for beamforming efficiency — functions as a compact but exploitable environmental fingerprint. Its smaller size compared to raw CSI actually makes it more practical to log and analyse at scale.&lt;br /&gt;
&lt;br /&gt;
=== Sensing Without Raw CSI ===&lt;br /&gt;
&lt;br /&gt;
Traditional [[Wi-Fi Sensing]] research often assumes access to raw complex [[Channel State Information]] as measured at the receiver. The compressed beamforming matrix opens a different attack surface: it is transmitted openly in the management frame exchange, requires no special hardware to receive, and can be collected passively by any device in range. This is a significant difference from active sensing approaches that require controlled transmissions or specialised receivers.&lt;br /&gt;
&lt;br /&gt;
[[File:Chain home.jpg|thumb|right|Passive wireless signal interception antenna]]&lt;br /&gt;
&lt;br /&gt;
== Interception ==&lt;br /&gt;
&lt;br /&gt;
=== Unencrypted Transmission ===&lt;br /&gt;
&lt;br /&gt;
[[Beamforming Feedback Information]] frames, which contain the compressed beamforming matrix, are &amp;#039;&amp;#039;&amp;#039;management frames&amp;#039;&amp;#039;&amp;#039; under the [[IEEE 802.11]] protocol architecture. Like most 802.11 management frames, they are transmitted &amp;#039;&amp;#039;&amp;#039;without encryption&amp;#039;&amp;#039;&amp;#039; — even when the data channel between client and AP is protected by WPA2 or WPA3.&lt;br /&gt;
&lt;br /&gt;
This means that any Wi-Fi adapter placed in &amp;#039;&amp;#039;&amp;#039;monitor mode&amp;#039;&amp;#039;&amp;#039; within radio range of the [[Channel Sounding]] exchange can capture the complete BFI frame, including the full compressed beamforming matrix.&lt;br /&gt;
&lt;br /&gt;
=== Processing Intercepted Matrices ===&lt;br /&gt;
&lt;br /&gt;
A passive interceptor receiving BFI frames can:&lt;br /&gt;
# Parse the frame to extract the quantised angle values for each subcarrier group&lt;br /&gt;
# Reconstruct an approximate &amp;#039;&amp;#039;&amp;#039;V̂&amp;#039;&amp;#039;&amp;#039; using the same Givens decompression procedure used by the AP&lt;br /&gt;
# Apply [[Wi-Fi Sensing]] algorithms to the reconstructed matrix or directly to the angle time series&lt;br /&gt;
# Infer environmental state — presence, location, or activity — without the knowledge of the communicating parties&lt;br /&gt;
&lt;br /&gt;
Because no decryption is required and no active transmission is necessary, this form of passive environmental sensing is essentially undetectable by conventional network security monitoring.&lt;br /&gt;
&lt;br /&gt;
=== Implications for [[Through-Wall Surveillance]] ===&lt;br /&gt;
&lt;br /&gt;
Because Wi-Fi signals penetrate walls, [[Channel Sounding]] exchanges between an AP and a client on one side of a wall produce beamforming matrices that are influenced by humans on both sides. An interceptor positioned outside a building can collect BFI frames from interior devices and reconstruct spatial information about the interior environment — a capability relevant to [[Through-Wall Surveillance]] research.&lt;br /&gt;
&lt;br /&gt;
== Standards ==&lt;br /&gt;
&lt;br /&gt;
The compressed beamforming matrix format is defined in:&lt;br /&gt;
&lt;br /&gt;
=== IEEE 802.11ac (VHT Beamforming) ===&lt;br /&gt;
* Supports up to 8 transmit antennas and 4 spatial streams&lt;br /&gt;
* Defines specific angle quantisation bit depths for different stream counts&lt;br /&gt;
* Maximum matrix dimensions: 8×4 (transmit × streams)&lt;br /&gt;
&lt;br /&gt;
=== IEEE 802.11ax (HE Beamforming) ===&lt;br /&gt;
* Extends VHT beamforming feedback to OFDMA contexts&lt;br /&gt;
* Supports per-RU (Resource Unit) feedback, enabling finer-grained spatial feedback for multi-user scenarios&lt;br /&gt;
* Introduces additional feedback compression options for the larger subcarrier counts of 80 MHz and 160 MHz channels&lt;br /&gt;
&lt;br /&gt;
Both standards are coordinated through the [[IEEE]] 802.11 working group. The compressed beamforming matrix format has remained structurally consistent across these generations, with incremental expansions in matrix dimensions and quantisation options.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Beamforming Feedback Information]]&lt;br /&gt;
* [[Channel State Information]]&lt;br /&gt;
* [[Channel Sounding]]&lt;br /&gt;
* [[Channel Estimation]]&lt;br /&gt;
* [[Null Data Packet]]&lt;br /&gt;
* [[Through-Wall Surveillance]]&lt;br /&gt;
* [[Wi-Fi Sensing]]&lt;br /&gt;
* [[IEEE 802.11]]&lt;br /&gt;
* [[Surveillance Technology]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* IEEE Std 802.11ac-2013 — Amendment 4: Enhancements for Very High Throughput for Operation in Bands below 6 GHz&lt;br /&gt;
* IEEE Std 802.11ax-2021 — High-Efficiency WLAN&lt;br /&gt;
* Tan, B. et al. (2021). &amp;quot;WiFi-based Passive Human Detection with Beamforming Feedback Information.&amp;quot; &amp;#039;&amp;#039;IEEE Transactions on Mobile Computing&amp;#039;&amp;#039;&lt;br /&gt;
* Kotaru, M. et al. (2015). &amp;quot;SpotFi: Decimeter Level Localization Using WiFi.&amp;quot; &amp;#039;&amp;#039;ACM SIGCOMM 2015&amp;#039;&amp;#039;&lt;br /&gt;
* Ma, Y. et al. (2019). &amp;quot;WiFi Sensing with Channel State Information: A Survey.&amp;quot; &amp;#039;&amp;#039;ACM Computing Surveys&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Surveillance Technology]]&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Geckopico</name></author>
	</entry>
</feed>