System and method for estimating signal-to-noise ratio (SNR) and noise variance from error vector measures (EVM)
By establishing a nonlinear relationship between EVM and SNR in a wireless communication system, and using a fixed lookup table to achieve efficient signal quality estimation, the problem of insufficient SNR estimation accuracy is solved, and system performance and data transmission efficiency are optimized.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
- Filing Date
- 2025-11-03
- Publication Date
- 2026-05-08
AI Technical Summary
In existing technologies, signal-to-noise ratio (SNR) estimation is not accurate enough in wireless communication systems, especially when signal quality changes dynamically, leading to inefficiencies in system optimization and feedback mechanisms.
By establishing a fixed lookup table (LUT) with nonlinear relationships, and based on the accurate mapping between error vector magnitude (EVM) and signal-to-noise ratio (SNR), efficient signal quality estimation is achieved. The SNR value is determined using EVM-NDA units and function mapping units, and it is applicable to wireless communication systems with different QAM sizes.
It improves the accuracy and reliability of signal quality estimation, optimizes the performance of wireless communication systems, dynamically adjusts the transmission rate to adapt to channel conditions, and improves data throughput and reliability.
Smart Images

Figure CN122001501A_ABST
Abstract
Description
[0001] Cross-reference of related applications
[0002] This application claims the rights and priority of U.S. Provisional Patent Application No. 63 / 716,454, filed November 5, 2024, the entire contents of which are incorporated herein by reference for all purposes. Technical Field
[0003] This disclosure generally relates to systems and methods for estimating signal-to-noise ratio (SNR) and noise variance from error vector magnitude (EVM) using a fixed lookup table mapping of a quadrature amplitude modulation (QAM) system. Background Technology
[0004] The market for wireless communication devices has been growing due to the increasing use of portable devices, the increased connectivity between various devices, and the increased data transmission. Digital switching technology has facilitated the large-scale deployment of affordable and easy-to-use wireless communication networks. Wireless communication can operate according to various standards, such as IEEE 802.11x (e.g., Wi-Fi technology), Bluetooth, Global System for Mobile Communications (GSM), and Code Division Multiple Access (CDMA). Using such technologies, wireless communication devices can connect to local area networks and the Internet without physical cables, enabling communication via radio frequency across various spaces and ranges. Summary of the Invention
[0005] In one aspect, this disclosure relates to an apparatus comprising: a receiver configured to receive data; and a circuitry configured to: receive one or more symbols at least based on the data; determine an error vector magnitude (EVM) value using the one or more symbols; identify a quadrature amplitude modulation (QAM) magnitude; determine a signal-to-noise ratio (SNR) value using the EVM value and the QAM magnitude; and adjust the transmission rate of a transmitter at least based on the SNR value.
[0006] In another aspect, this disclosure relates to a method comprising: receiving data via a receiver; receiving one or more symbols via a circuit system at least based on the data; determining an error vector magnitude (EVM) value via the circuit system using the one or more symbols; identifying a quadrature amplitude modulation (QAM) magnitude via the circuit system; determining a signal-to-noise ratio (SNR) value via the circuit system using the EVM value and the QAM magnitude; and adjusting the transmission rate of a transmitter via the circuit system at least based on the SNR value.
[0007] In another aspect, this disclosure relates to an apparatus comprising: a transmitter; and a circuit system configured to: receive one or more symbols based at least on data received by a receiver; determine an error vector magnitude (EVM) value using the one or more symbols; identify a quadrature amplitude modulation (QAM) magnitude; determine a signal-to-noise ratio (SNR) value using the EVM value and the QAM magnitude; adjust a transmission rate based at least on the SNR value; and transmit data using the transmission rate via the transmitter. Attached Figure Description
[0008] The various objects, aspects, features, and advantages of this disclosure will become more apparent and better understood through a detailed description taken in conjunction with the accompanying drawings, wherein the same reference numerals are used throughout to identify corresponding elements. In the drawings, the same reference numerals generally indicate the same, functionally similar, and / or structurally similar elements.
[0009] Figure 1A It is a block diagram depicting a network environment according to some embodiments;
[0010] Figure 1B and 1C This is a block diagram of a computing device that can be used in conjunction with the methods and systems described herein, according to some embodiments.
[0011] Figure 2 A block diagram illustrating an example system according to one or more embodiments;
[0012] Figure 3A Example diagrams illustrating the nonlinear relationship between SNR and EVM according to one or more embodiments;
[0013] Figure 3B Describe an instance LUT based on one or more embodiments;
[0014] Figure 4A Example diagrams illustrating the nonlinear relationship between SNR and EVM according to one or more embodiments;
[0015] Figure 4B Describe an instance LUT based on one or more embodiments;
[0016] Figure 5 An example diagram illustrating the relationship between SNR and EVM according to one or more embodiments;
[0017] Figure 6A This describes an example of a launch constellation according to one or more embodiments;
[0018] Figure 6B Description of the corresponding embodiment according to one or more embodiments Figure 6A An example of a transmitting constellation and a receiving constellation;
[0019] Figure 7A This describes an example of a launch constellation according to one or more embodiments;
[0020] Figure 7B Description of the corresponding embodiment according to one or more embodiments Figure 7A An example of a transmitting constellation and a receiving constellation;
[0021] Figure 8 This is a flowchart illustrating the process for estimating SNR and noise variance from EVM according to an embodiment. Detailed Implementation
[0022] The following disclosure provides numerous different embodiments or instances for implementing various features of the provided subject matter. Specific examples of components and arrangements are described below to simplify this disclosure. These are, of course, merely examples and are not intended to be limiting. For example, in the following description, a first feature communicating with or communicatively coupled to a second feature may include embodiments in which the first feature directly communicates with or is directly coupled to the second feature, and may also include embodiments in which an additional feature may intervene between the first and second features such that the first feature indirectly communicates with or is indirectly coupled to the second feature. Additionally, in various instances, element symbols and / or letters may be repeated in this disclosure. This repetition is for simplicity and clarity and does not in itself indicate a relationship between the various embodiments and / or configurations discussed.
[0023] The following IEEE standards, including any draft versions of such standards, are hereby incorporated herein by reference in their entirety and become part of this disclosure for all purposes: the WiFi Alliance standards and the IEEE 802.11 standards, including but not limited to IEEE 802.11a. TM IEEE 802.11b TM IEEE 802.11g TM IEEE P802.11n TM IEEE P802.11ac TM ; and IEEE P802.11be TM To IEEE P802.11bn TM Standards. Although this disclosure may refer to aspects of these standards, it is in no way limited by them.
[0024] For the purpose of reading the description of the various embodiments below, the following description of the sections of the specification and their corresponding contents may be helpful:
[0025] Section A describes the network and computing environments that can be used to practice the embodiments described herein; and
[0026] Section B describes an embodiment system and method for estimating the signal-to-noise ratio (SNR) and noise variance from the error vector magnitude (EVM).
[0027] A. Computing and Network Environment
[0028] Before discussing specific embodiments of this solution, it may be helpful to describe aspects of the operating environment and associated system components (e.g., hardware elements) in conjunction with the methods and systems described herein. References Figure 1A This describes an embodiment of a network environment. In a brief overview, the network environment includes a wireless communication system comprising one or more access points (APs) or network devices 106, one or more stations or wireless communication devices 102, and network hardware components or network hardware 192. Wireless communication device 102 may, for example, include a laptop computer, tablet computer, personal computer, and / or cellular phone device. Reference Figure 1B and 1C More detailed descriptions are provided for embodiments of each station or wireless communication device 102 and AP or network device 106. In one embodiment, the network environment may be an ad hoc network environment, an infrastructure wireless network environment, a subnet environment, etc. Network device 106 or AP may be operatively coupled to network hardware 192 via a local area network connection. In some embodiments, network device 106 is a 5G base station. Network hardware 192, which may include routers, gateways, switches, bridges, modems, system controllers, appliances, etc., may provide local area network connectivity for the communication system. Each of network device 106 or AP may have an associated antenna or antenna array to communicate with wireless communication devices in its area. Wireless communication device 102 may register with a specific network device 106 or AP to receive services from the communication system (e.g., via SU-MIMO or MU-MIMO configuration). For direct connections (e.g., point-to-point communication), some wireless communication devices may communicate directly via an assigned channel and communication protocol. Some wireless communication devices 102 may be mobile or relatively stationary relative to network device 106 or AP.
[0029] In some embodiments, network device 106 or AP includes means or modules (comprising a combination of hardware and software) that allow wireless communication device 102 to connect to a wired network using wireless fidelity (WiFi) or other standards. Network device 106 or AP may sometimes be referred to as a wireless access point (WAP). Network device 106 or AP may be implemented (e.g., configured, designed, and / or built) for operation in a wireless local area network (WLAN). In some embodiments, network device 106 or AP may be connected as a standalone device to a router (e.g., via a wired network). In other embodiments, network device 106 or AP may be a component of a router. Network device 106 or AP may provide network access to multiple devices. Network device 106 or AP may, for example, connect to a wired Ethernet connection and use a radio frequency link to provide wireless connectivity for other devices 102 to utilize the wired connection. Network device 106 or AP may be implemented to support standards that use one or more radio frequencies to transmit and receive data. Those standards and the frequencies they use may be defined by IEEE (e.g., the IEEE 802.11 standard). Network device 106 or AP can be configured and / or used to support public Internet hotspots and / or extend the Wi-Fi signal range of a network over a network.
[0030] In some embodiments, access point or network device 106 may be used for (e.g., in a home, vehicle, or building) wireless networks (e.g., IEEE 802.11, Bluetooth, ZigBee, any other type of radio frequency-based network protocol, and / or variations thereof). Each of the wireless communication devices 102 may include a built-in radio and / or be coupled to a radio. Such wireless communication devices 102 and / or access point or network device 106 may operate in accordance with various aspects of the disclosure presented herein to improve performance, reduce cost and / or size, and / or enhance broadband applications. Each wireless communication device 102 may have the capability to act as a client node seeking access to resources (e.g., data, and connections to networked nodes such as servers) via one or more access point or network devices 106.
[0031] The network connection may include any type and / or form of network and may include any of the following: point-to-point network, broadcast network, telecommunications network, data communication network, computer network. The network topology may be a bus, star, or ring network topology. The network may have any such network topology known to those skilled in the art as capable of supporting the operations described herein. In some embodiments, different types of data may be transmitted via different protocols. In other embodiments, the same type of data may be transmitted via different protocols.
[0032] The communication device 102 and the access point or network device 106 may be deployed as any type and form of computing device and / or performed thereon, such as a computer, network device or appliance capable of communicating and performing the operations described herein on any type and form of network. Figure 1B and 1C A block diagram depicting a computing device 100 for implementing embodiments of wireless communication device 102 or network device 106. (See diagram for reference.) Figure 1B and 1C As shown, each computing device 100 includes a processor 121 (e.g., a central processing unit) and a main memory unit 122. Figure 1B As shown, the computing device 100 may include a storage device 128, a mounting device 116, a network interface 118, an I / O controller 123, display devices 124a to 124n, a keyboard 126, and a pointing device 127, such as a mouse. The storage device 128 may include an operating system and / or software. Figure 1C As shown, each computing device 100 may also include additional optional components such as memory port 103, bridge 170, one or more input / output devices 130a to 130n, and cache memory 140 that communicates with the central processing unit or processor 121.
[0033] The central processing unit or processor 121 is any logic circuit system that responds to and processes instructions fetched from main memory unit 122. In many embodiments, the central processing unit or processor 121 is provided by a microprocessor unit, such as those manufactured by Intel Corporation of Santa Clara, California; those manufactured by International Business Machines of White Plains, New York; or those manufactured by Advanced Micro Devices of Sunnyvale, California. The computing device 100 may be based on any of these processors, or any other processor capable of operating as described herein.
[0034] Main memory unit 122 may be one or more memory chips capable of storing data and allowing direct access from any storage location by a microprocessor or processor 121, such as any type or variant of static random access memory (SRAM), dynamic random access memory (DRAM), ferroelectric RAM (FRAM), NAND flash memory, NOR flash memory, and solid-state drive (SSD). Main memory unit 122 may be based on any of the aforementioned memory chips, or any other available memory chip capable of operating as described herein. Figure 1B In the embodiment shown, processor 121 communicates with main memory unit 122 via system bus 150 (described in more detail below). Figure 1C An embodiment of a computing device 100 is depicted, wherein the processor communicates directly with the main memory unit 122 via a memory port 103. For example, in Figure 1C In this context, the main memory unit 122 can be DRDRAM.
[0035] Figure 1C An embodiment is depicted in which the main processor 121 communicates directly with the cache memory 140 via an auxiliary bus (sometimes referred to as a back-side bus). In other embodiments, the main processor 121 communicates with the cache memory 140 using a system bus 150. The cache memory 140 typically has a faster response time than the main memory cell 122 and is provided by, for example, SRAM, BSRAM, or EDRAM. Figure 1C In the embodiments shown, processor 121 communicates with various I / O devices 130 via local system bus 150. Various buses can be used to connect the central processing unit or processor 121 to any of the I / O devices 130, for example, VESA VL bus, ISA bus, EISA bus, Micro Channel Architecture (MCA) bus, PCI bus, PCI-X bus, PCI-Fast bus, or NuBus. In embodiments where the I / O device is a video display 124, processor 121 may use an Advanced Graphics Port (AGP) to communicate with the display 124. Figure 1C An embodiment of a computer or computer system 100 is depicted, wherein the main processor 121 may communicate directly with the I / O device 130b, for example, via HYPERTRANSPORT, RAPIDIO, or INFINIBAND communication technologies. Figure 1C An embodiment in which local bus and direct communication are mixed is also depicted; the processor 121 communicates with I / O device 130a using the local interconnect bus, while simultaneously communicating directly with I / O device 130b.
[0036] The computing device 100 may contain a wide variety of I / O devices 130a to 130n. Input devices include keyboards, mice, trackpads, trackballs, microphones, dials, touchpads, touchscreens, and drawing tablets. Output devices include video displays, speakers, inkjet printers, laser printers, projectors, and dye-to-sublimation printers. I / O devices can be, for example... Figure 1B The I / O controller 123 shown controls the device. The I / O controller can control one or more I / O devices, such as a keyboard 126 and pointing devices 127, such as a mouse or light pen. Additionally, the I / O devices can provide storage and / or mounting media for the computing device 100. In yet another embodiment, the computing device 100 may provide a USB connection (not shown) to receive a handheld USB storage device, such as a USB flash drive series manufactured by Twintech Industry, Inc. of Los Alamitos, California.
[0037] Refer again Figure 1B The computing device 100 may support any suitable installation device 116, such as a disk drive, CD-ROM drive, CD-R / RW drive, DVD-ROM drive, flash memory device, tape drive of various formats, USB device, hard disk drive, network interface, or any other device suitable for installing software and programs. The computing device 100 may further include a storage device, such as one or more hard disk drives or a redundant array of independent disks, for storing the operating system and other related software, and for storing application software programs (e.g., any program or software 120 used to implement (e.g., configured and / or designed for) the systems and methods described herein). Optionally, any of the installation devices 116 may also be used as a storage device. Additionally, the operating system and software may be run from a bootable media.
[0038] Additionally, the computing device 100 may include a network interface 118 for connecting to a network via various connections, including but not limited to standard telephone lines, LAN or WAN links (e.g., 802.11, T1, T3, 56kb, X.25, SNA, DECNET), broadband connections (e.g., ISDN, Frame Relay, ATM, Gigabit Ethernet, SONET-based Ethernet), wireless connections, or any or a combination of the foregoing. Connections can be established using various communication protocols (e.g., TCP / IP, IPX, SPX, NetBIOS, Ethernet, ARCNET, SONET, SDH, Fiber Distributed Data Interface (FDDI), RS232, IEEE 802.11, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, IEEE 802.11ac, IEEE 802.11ad, CDMA, GSM, WiMax, and direct asynchronous connections). In one embodiment, computing device 100 communicates with other computing devices 100 via any type and / or form of gateway or tunneling protocol (e.g., Secure Sockets Layer (SSL) or Transport Layer Security (TLS)). Network interface 118 may include a built-in network adapter, network interface card, PCMCIA network card, card bus network adapter, wireless network adapter, USB network adapter, modem, or any other means suitable for connecting computing device 100 to any type of network capable of communicating and performing the operations described herein.
[0039] In some embodiments, computing device 100 may include or be connected to one or more display devices 124a to 124n. Therefore, any of the I / O devices 130a to 130n and / or I / O controller 123 may include any type and / or form of suitable hardware, software, or a combination of hardware and software to support, enable, or provide computing device 100 with connectivity to and use of display devices 124a to 124n. For example, computing device 100 may include any type and / or form of video adapter, video card, driver, and / or library to dock, communicate, connect, or otherwise use display devices 124a to 124n. In one embodiment, a video adapter may include multiple connectors to dock with display devices 124a to 124n. In other embodiments, computing device 100 may include multiple video adapters, each connected to display devices 124a to 124n. In some embodiments, any portion of the operating system of computing device 100 may be configured to use multiple display devices 124a to 124n. In a further embodiment, the I / O device 130 may be a bridge between the system bus 150 and an external communication bus (e.g., USB bus, Apple desktop bus, RS-232 serial connection, SCSI bus, FireWire bus, FireWire 800 bus, Ethernet bus, Apple AC bus, Gigabit Ethernet bus, Asynchronous Transfer Mode bus, Fibre Channel bus, Fibre Bus, Serial Attached Small Computer System Interface bus, USB connection, or HDMI bus).
[0040] Figure 1B and 1CThe computing device 100 of the type described herein can operate under the control of an operating system that controls task scheduling and access to system resources. The computing device 100 can run any operating system, such as any version of Microsoft Windows, different versions of Unix and Linux operating systems, any version of MAC OS for Macintosh computers, any embedded operating system, any real-time operating system, any open-source operating system, any proprietary operating system, any operating system for mobile computing devices, or any other operating system capable of running on a computing device and performing the operations described herein. Typical operating systems include, but are not limited to: Android, produced by Google Inc.; Windows 7, 8, and 10, produced by Microsoft Corporation of Redmond, Washington; macOS, produced by Apple Computer of Cupertino, California; WebOS, produced by Research In Motion (RIM); OS / 2, produced by International Business Machines of Armonk, New York; and Linux, a free and available operating system distributed by Caldera Corp. of Salt Lake City, Utah, or any type and / or form of Unix operating system.
[0041] The computer system or computing device 100 may be any workstation, telephone, desktop computer, laptop or notebook computer, server, handheld computer, mobile phone or other portable telecommunications device, media playback device, gaming system, mobile computing device, or any other type and / or form of computing, telecommunications or media device capable of communication. In some embodiments, the computing device 100 may have a different processor, operating system and input device consistent with the device. For example, in one embodiment, the computing device 100 is a smartphone, mobile device, tablet computer or personal digital assistant. Furthermore, the computing device 100 may be any workstation, desktop computer, laptop or notebook computer, server, handheld computer, mobile phone, any other computer, or other form of computing or telecommunications device capable of communication and having sufficient processor power and memory capacity to perform the operations described herein.
[0042] The aspects of the operating environment and components described above will be understood in the context of the systems and methods disclosed herein.
[0043] B. Estimating the signal-to-noise ratio and noise variance from the error vector magnitude.
[0044] In communication systems, accurate signal quality estimation (e.g., SNR, noise variance) can be used to optimize performance in a variety of applications, such as maximum a posteriori (MAP)-based detection, iterative demapping of single-input single-output (SISO) and multiple-input multiple-output (MIMO) systems, minimum mean square error (MMSE) receivers, noise whitening circuits, rate adaptation based on signal-to-interference ratio (SINR) and / or SNR feedback, feedback systems, and low-density parity-check (LDPC) decoders where the input log-likelihood ratio (LLR) is scaled by the noise variance. Specifically, SNR estimation plays a crucial role in rate adaptation in wireless communication systems such as WiFi (e.g., 802.11ax / be / bn) and LTE. Rate adaptation allows the system to dynamically adjust transmission parameters (e.g., modulation and coding schemes) to match current channel conditions, thereby improving data throughput while maintaining reliable connectivity. For example, a higher SNR indicates a clearer signal with less noise interference, allowing for faster and more efficient data transmission. The transmitter can use more complex and higher data rate modulation schemes (e.g., 64-QAM, 256-QAM, or even 1024-QAM), which carry more bits per symbol. Conversely, a lower SNR indicates poorer channel conditions, where using complex modulation will lead to errors. In such cases, the system can adapt by using a more robust but lower data rate modulation scheme (e.g., QPSK or BPSK), which has fewer bits per symbol but is less prone to errors.
[0045] Generally, the receiver may estimate the SNR or a related metric of the SNR (e.g., EVM) of the received signal for the entire link or for each subcarrier (e.g., in OFDM-based systems such as WiFi and LTE) and send this information back to the transmitter. Based on this feedback, the transmitter can dynamically adjust its transmission rate. In some implementations, EVM may be used instead, and the transmitter decrypts the SNR based on the available information received. Typically, different modulation and coding schemes (MCSs) are suitable for different SNR ranges. Each MCS defines a modulation scheme (e.g., BPSK, QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM), and its coding rate specifies how much error correction is applied to the transmitted data. There may be a predefined mapping between the SNR and MCS in the system, such that when the transmitter receives SNR feedback, it selects the most appropriate MCS corresponding to the reported SNR, thereby selecting the highest MCS that can be supported with the current SNR while reducing errors. For example, at low SNR (e.g., < 10 dB), the transmitter can use BPSK or QPSK with a low write code rate (more redundancy) to ensure reliable communication. At medium SNR (e.g., 15 to 20 dB), the transmitter can switch to 16-QAM or 64-QAM with a medium write code rate to increase throughput. At high SNR (e.g., > 30 dB), the transmitter can use 256-QAM or 1024-QAM with a high write code rate (less redundancy) to maximize data throughput. Wireless channels are dynamic and adapt to changing channel conditions (e.g., due to mobility, interference, or environmental factors). For example, in response to an increase in SNR, feedback to the reflector allows it to switch to a higher data rate by using a higher-order modulation and a higher write code rate. In response to a decrease in SNR, feedback ensures that the transmitter reduces the data rate by switching to a more robust MCS to maintain reliability and minimize errors. This adjustment optimizes performance, striking a balance between maximizing throughput and ensuring reliability.
[0046] However, accurate SNR estimation is challenging and typically relies on approximation, heuristic methods, or prior signals and measurements during idle states—methods that are resource-intensive and time-sensitive, especially when signal quality may vary from packet to packet. While EVM is easier to compute than SNR in digitally modulated communication systems, its relationship to SNR is not direct (e.g., not a one-to-one mapping) and varies with QAM size. This limitation leads to inefficiencies in system optimization and feedback mechanisms. Furthermore, data-aided EVM computation is impractical because the exact transmitted symbols are unknown at the receiver, whereas non-data-aided (NDA) EVM can be used to measure EVM. NDA-EVM is easier to compute and does not require knowledge of the QAM size, making it a more practical alternative.
[0047] This disclosure addresses the challenges mentioned above by providing techniques for signal quality estimation that improve accuracy and reliability, thereby optimizing communication system performance across a variety of applications. This disclosure provides techniques for estimating SNR and noise variance from the EVM. Unlike previous methods that rely on approximation or heuristic mappings, the techniques disclosed herein establish a precise one-to-one relationship between EVM and SNR for any QAM size by establishing a nonlinear relationship between NDA-EVM and SNR for a given QAM size. In some embodiments, the techniques include a pre-computed and stored fixed lookup table (LUT) or dictionary for efficient retrieval to map the relationship between EVM and SNR, thereby achieving accurate and computationally efficient SNR estimation. This enhances signal quality assessment in a variety of applications, including but not limited to receivers, transmitters, and any systems that use precise signal characterization. As used herein, a “lookup table (LUT)” can refer to an array computed at runtime instead of a simpler array indexing operation, a physical representation of attributes storing information about attributes in identifier and / or description columns, a data structure for storing information about one or more related attributes, or any data structure that maps input values to output values.
[0048] In light of the foregoing, the following figures and descriptions illustrate various examples of techniques for estimating SNR and noise variance from EVM. The figures and descriptions below are non-limiting examples and can be implemented in any of a variety of other configurations while remaining within the scope of this disclosure. Other embodiments may be used alternatively or in lieu of them. Details that would be apparent to those skilled in the art may be omitted. Some embodiments may be practiced with additional components or steps and / or without using all the components or steps described.
[0049] Figure 2A block diagram of an example system 200 according to one or more embodiments is shown. System 200 may be part of a “device” (e.g., a circuit system). As used herein, “device” may refer to an apparatus (e.g., apparatus 102), a network apparatus (e.g., network apparatus 106), or any apparatus for facilitating wireless communication and / or forming a wireless communication network. In some embodiments, an apparatus may include a “transmitter,” a “receiver,” and / or various circuit components. As used herein, a “transmitter” may refer to a radio frequency (RF) transmitter, an optical transmitter, a millimeter-wave transmitter, a baseband signal generator, or any apparatus, circuit system, or system capable of generating, encoding, and transmitting wireless signals via a communication medium. As used herein, a “receiver” may refer to an RF receiver, an optical receiver, a millimeter-wave receiver, or any apparatus, circuit system, or system capable of receiving, decoding, and processing wireless signals from a communication medium.
[0050] In some embodiments, system 200 may be or include a “circuit system”. As used herein, “circuit system” may mean analog or digital circuitry, integrated circuits (ICs), system-on-chip (SoC) components, field-programmable gate arrays (FPGAs), microcontrollers, processors, or any combination of software, firmware, and / or hardware configured to perform signal transmission, reception, processing, or control functions in a wireless communication system. In some embodiments, system 200 may be the circuit system of a receiver.
[0051] System 200 is shown to include demodulator 210, decoder 220, EVM-NDA unit 230, and function mapping unit 240. Each of demodulator 210, decoder 220, EVM-NDA unit 230, and function mapping unit 240 may be or include circuitry, firmware, or software configurable to process given data.
[0052] In a brief overview, the device includes a receiver configured to receive data. System 200 may be configured to receive one or more symbols (e.g., rx symbol 21) based at least on data. Demodulator 210 may be configured to receive one or more symbols (e.g., rx symbol 21). Demodulator 210 may be configured to send a log-likelihood ratio (LLR) 22 to decoder 220 for further rx processing 29. Demodulator 210 may be configured to send an estimated symbol vector 24 to EVM-NDA unit 230. EVM-NDA unit 230 may be configured to receive a transmitted symbol vector 23 based on one or more symbols (e.g., rx symbol 21). EVM-NDA unit 230 may be configured to determine an EVM value 25 using one or more symbols (e.g., rx symbol 21). EVM-NDA unit 230 may be configured to send the EVM value 25 to function mapping unit 240. Function mapping unit 240 can be configured to receive and / or identify QAM size 26. Function mapping unit 240 can be configured to determine SNR value 28 using EVM value 25 and QAM size 26. System 200 and / or its devices can be configured to adjust the transmitter's transmit rate based at least on SNR value 28.
[0053] Although described and shown with respect to a receiver circuitry system, system 200 may be implemented for any other device component without departing from its spirit and scope. In some embodiments, the device may include a transmitter configured to transmit data. The device may include a transmitter circuitry configured to receive one or more symbols based at least on data received by the receiver. The transmitter circuitry may be configured to determine an EVM value using one or more symbols. The transmitter circuitry may include a function mapping unit 240 configured to receive and / or identify a QAM size (e.g., similar to QAM size 26). The function mapping unit 240 of the transmitter circuitry may be configured to determine an SNR value (e.g., similar to SNR value 28) using the EVM value and the QAM size. The transmitter circuitry and / or its device may be configured to adjust the transmission rate at least based on the SNR value. The transmitter of the device may be configured to transmit data using (e.g., at least based on the SNR value adjusted) the transmission rate.
[0054] The device can be configured to receive and / or various types of data. As used herein, “data” can refer to digital or analog information, including but not limited to bit streams, coded symbols, packets, frames, control signals, content, sensor readings, or any information that can be received, transmitted, modulated, processed, or stored in a wireless communication system.
[0055] The device's receiver can be configured to receive data. The device's system 200 (e.g., receiver circuitry) can be configured to receive rx symbols 21 at least based on the data. The demodulator 210 can be configured to process rx symbols 21 by mapping them to LLRs 22, where LLRs 22 indicate the probability that each bit is "0" or "1". As used herein, "symbol" can refer to a coded data unit representing one or more bits, modulated onto a carrier signal for transmission in a wireless communication system, including but not limited to QAM symbols, phase shift keying (PSK) symbols, or any modulation representation of data that can be transmitted, received, and processed in a communication network. The demodulator 210 can be configured to send the LLRs 22 to the decoder 220. The decoder 220 can be configured to apply various algorithms (e.g., error correction algorithms, decoding algorithms, etc.) to reconstruct the original transmitted data. The decoder 220 can be configured to output the reconstructed data for further rx processing 29.
[0056] Demodulator 210 can be configured to process rx symbols 21 to generate an estimated symbol vector 24. In some embodiments, the estimated symbol vector 24 can be determined based on a decision-guided method, wherein the received signal is demodulated to generate an estimate of the transmitted symbol. In some embodiments, the estimated symbol vector 24 can be determined based on a predefined metric (e.g., a metric defined in the IEEE 8802.1 standard). In some embodiments, maximum likelihood (or a similar decision criterion) can be used to demodulate rx symbols 21 to generate the estimated symbol vector 24. Meanwhile, the transmitted symbol vector 23 (e.g., which may represent an expected or known transmitted symbol vector) can be determined based on rx symbols 21.
[0057] EVM-NDA unit 230 may be configured to determine EVM value 25 using rx symbol 21. In some embodiments, EVM-NDA unit 230 may be configured to generate EVM value 25 by processing transmitted symbol vector 23 and estimated symbol vector 24. In some embodiments, EVM-NDA unit 230 may be configured to calculate EVM value 25 by averaging the Euclidean distance between transmitted symbol vector 23 and estimated symbol vector 24. More specifically, EVM can be a measure of the deviation of a received signal from an ideal transmitted signal, quantifying the amount of distortion (e.g., including noise, channel effects, etc.) in the received signal. For example, NDA EVM may be defined as: EVM NDA ,in It is the received signal vector, and It is the estimated emission symbol vector (e.g., decision guidance, estimated symbol vector 24, etc.).
[0058] Function mapping unit 240 may be configured to receive and / or identify QAM size 26. As used herein, the term "QAM size" (sometimes denoted by "M") may refer to the number of dissimilar symbols used in QAM, which determines the number of bits represented by each symbol, such as 16-QAM (4 bits per symbol), 64-QAM (6 bits per symbol), or any other size representing the modulation order to define the data rate and spectral efficiency of the communication system. In some embodiments, function mapping unit 240 may be configured to identify QAM size 26 by analyzing characteristics of the received signal (e.g., the spacing between symbols in the modulation constellation). In some embodiments, function mapping unit 240 may be configured to receive QAM size 26 from predefined system parameters or reference signals transmitted with data. In some embodiments, function mapping unit 240 may be configured to identify QAM size 26 from a modulation and coding scheme (MCS) table. As used herein, “MCS table” may refer to a lookup table (e.g., an MCS lookup table), a matrix, or any data structure that stores QAM size 26, such as containing different modulation schemes for a particular transmit rate, write code rates, etc.
[0059] The function mapping unit 240 can be configured to determine the estimated SNR value 28 using the EVM value 25 and the QAM size 26. In some embodiments, the function mapping unit 240 can be configured to determine the estimated SNR value 28 based on the M-dependency between the EVM value 25 and the SNR value 28. That is, the function mapping unit 240 can be configured to determine the estimated SNR value 28 based on the function M-dependency between the SNR and the QAM size. To generate and / or identify the estimated SNR value 28. The function mapping unit 240 may be configured to use a non-linear relationship between the SNR value 28 and the QAM size 26 to generate and / or identify the estimated SNR value 28. In some embodiments, the function mapping unit 240 may be configured to generate and / or identify the estimated SNR value 28 based on the following equation:
[0060] .
[0061] In some embodiments, the function mapping unit 240 may be configured to generate the estimated SNR 28 by mapping the EVM value 25 to the SNR based on the relationship between the EVM value 25 and the SNR value 28 (e.g., Equation (1)). In some embodiments, the function mapping unit 240 may be configured to generate the estimated SNR 28 by inversely mapping the SNR to the EVM value 25 based on the relationship between the EVM value 25 and the SNR value 28 (e.g., Equation (1)). As shown above, in some embodiments, the function mapping unit 240 may be configured to compute the estimated SNR value 28 corresponding to the EVM value 25 based at least on the QAM size 26.
[0062] As discussed in more detail below, the function mapping unit 240 may be configured to use lookup tables (LUTs; e.g., EVM-SNR LUTs), interpolation (e.g., linear interpolation, etc.) to identify the estimated SNR value 28. The function mapping unit 240 may be configured to generate the estimated SNR 28 in various ways. In some embodiments, the function mapping unit 240 may be configured to generate the estimated SNR 28 on a linear scale, a logarithmic scale, etc.
[0063] Receiver circuitry, transmitter circuitry, and other equipment thereof may be configured to adjust the transmit rate based on the estimated SNR value 28. As used herein, "transmit rate" may refer to the amount of data transmitted per unit time in a communication system, which may be affected by factors such as modulation scheme, write code rate, signal quality, channel conditions, etc. The transmitter of the equipment may be configured to transmit data using a transmit rate (e.g., adjusted at least based on the SNR value 28).
[0064] refer to Figure 3A Figure 300A illustrates an example of a nonlinear relationship between SNR and EVM according to one or more embodiments. In some embodiments, the function mapping unit 240 may be configured to identify the estimated SNR value 28 based on the nonlinear relationship between SNR and EVM shown in Figure 300A. In some embodiments, the nonlinear relationship between SNR and EVM shown in Figure 300A may have a relationship represented by Equation (1). Figure 300A shows different EVM-SNR relationships depending on the QAM size M (e.g., 16, 64, 256, 1024, 4096). Therefore, the function mapping unit 240 may be configured to accurately estimate SNR based on Equation (1) and / or the relationship shown in Figure 300A.
[0065] Figure 3BThis describes an example LUT 300B according to one or more embodiments. As used herein, the term "LUT" (for EVM-SNR relationship) may refer to a lookup table (e.g., an EVM-SNR lookup table), a matrix, or any data structure that stores an EVM-SNR relationship (e.g., equation (1), SNR values as a function of EVM and M, etc.). In some embodiments, LUT 300B may store values plotted in Figure 300A. As shown, LUT 300B stores quantized SNR values (in dB) for a given EVM range (e.g., BPSK in the first column, QPSK in the second column, 16-QAM in the third column, 64-QAM in the fourth column, 256-QAM in the fifth column, 1K-QAM in the sixth column, 4K-QAM in the seventh column, etc.). For example, in response to receiving data in 16-QAM, function mapping unit 240 may be configured to identify the SNR value by looking up LUT 300B (e.g., the third column).
[0066] refer to Figure 4A Figure 400A illustrates an example of a nonlinear relationship between SNR and EVM according to one or more embodiments. Unlike Figure 300A, in Figure 400A, the x-axis represents EVM and the y-axis represents SNR. In some embodiments, the function mapping unit 240 may be configured to identify the estimated SNR value 28 based on the nonlinear relationship between SNR and EVM shown in Figure 400A. In some embodiments, the nonlinear relationship between SNR and EVM shown in Figure 400A may have a relationship represented by Equation (1). Figure 400A shows different EVM-SNR relationships depending on the QAM size M (e.g., 16, 64, 256, 1024, 4096). Therefore, the function mapping unit 240 may be configured to accurately estimate SNR based on Equation (1) and / or the relationship shown in Figure 400A.
[0067] Figure 4BThis describes an example LUT 400B according to one or more embodiments. LUT 400B may be an EVM-SNR LUT that stores EVM-SNR relationships (e.g., equation (1), EVM values as functions of SNR and M, etc.). In some embodiments, LUT 400B may store values plotted in FIG400A. As shown, LUT 400B stores quantized EVM values (in dB) for a given SNR range (e.g., BPSK in the first column, QPSK in the second column, 16-QAM in the third column, 64-QAM in the fourth column, 256-QAM in the fifth column, 1K-QAM in the sixth column, 4K-QAM in the seventh column, etc.). For example, in response to receiving data in 16-QAM, function mapping unit 240 may be configured to identify EVM values by looking up LUT 400B (e.g., the third column).
[0068] Such as about Figure 3B and Figure 4B As discussed herein, the techniques disclosed (e.g., System 200) provide an efficient and reliable solution for extracting the accurate relationship between EVM and SNR as a function of QAM size. Furthermore, the techniques disclosed herein can find EVM values for unknown SNRs based on interpolation (e.g., Equation (1), LUT 300B, LUT 400B, etc.), or vice versa, as further discussed below.
[0069] Figure 5 An example figure 500 illustrates the relationship between SNR and EVM according to one or more embodiments. As an example, Figure 500 with M = 4096 is shown. In Figure 500, nonlinear line 51 (“NDA-EVM (theoretical)”) represents an example EVM-SNR relationship based on equation (1), and point 52 (“NDA-EVM (simulation)”) represents a value obtained from simulation. In some embodiments, function mapping unit 240 may be configured to identify SNR values based on interpolation of nonlinear line 51 (e.g., EVM-SNR relationship based on equation (1)). In some embodiments, function mapping unit 240 may be configured to use LUTs (e.g., LUT300B, LUT400B, etc.) to identify a first EVM value (e.g., approximately 0 dB for point 55A) and a second EVM value (e.g., approximately -8 dB for point 55B). Function mapping unit 240 can be configured to use interpolation to calculate the SNR value within the range between a first EVM value (e.g., point 55A) and a second EVM value (e.g., point 55B). For example, for an unknown point 55C, function mapping unit 240 can be configured to calculate the SNR value based on interpolation. Figure 5As shown, the nonlinear line 51 is aligned with point 52. This allows for precise determination of the EVM value between points 52.
[0070] As a non-restrictive example, Figure 6A Examples of a transmission constellation 600A according to one or more embodiments are described. As an example, a transmission constellation 600A with M = 4096 is shown. Figure 6B Description of the corresponding embodiment according to one or more embodiments Figure 6A An example of a receiving constellation 600B of a transmitting constellation 600A is shown. The receiving constellation 600B is shown to have an SNR of 20 dB. The SNR of constellation 600B can be determined based on Figure 500 (e.g., directly from Figure 500, from a LUT associated with Figure 500, interpolation from Figure 500, etc.). As another non-limiting example, Figure 7A Examples of a launch constellation 700A according to one or more embodiments are described. As an example, a launch constellation 700A with M = 4096 is shown. Figure 7B Description of the corresponding embodiment according to one or more embodiments Figure 7A An example of a receiving constellation 700B of a transmitting constellation 700A is shown. The receiving constellation 700B is shown to have an SNR of 35 dB. The SNR of constellation 700B can be determined based on Figure 500 (e.g., directly from Figure 500, from a LUT associated with Figure 500, from interpolation of Figure 500, etc.).
[0071] Figure 8 This is a flowchart illustrating a process 800 for estimating SNR and noise variance from an EVM according to an embodiment. In some embodiments, process 800 is performed by one or more processors of a device (e.g., device 102, network device 106, etc.), a device of system 200, etc. In other embodiments, process 800 is performed by other entities. In some embodiments, process 800 includes a ratio... Figure 8 The document shows more, fewer, or different steps.
[0072] In step 810, one or more processors may receive data via a receiver. In step 820, one or more processors may receive one or more symbols via a circuit system, at least based on the data. In some embodiments, in step 820, the circuit system (e.g., system 200) receives one or more symbols (e.g., rx symbol 21). In some embodiments, in step 820, the demodulator of the circuit system (e.g., demodulator 210) receives one or more symbols, while the EVM-NDA unit (e.g., EVM-NDA unit 230) receives the transmitted symbol vector (e.g., transmitted symbol vector 23) corresponding to one or more symbols.
[0073] In step 830, one or more processors may use one or more symbols through the circuitry to determine an error vector magnitude (EVM) value. In some embodiments, the circuitry determines an EVM value (e.g., EVM value 25). In some embodiments, the circuitry determines the EVM value based on an estimated symbol vector (e.g., estimated symbol vector 24) and an emitted symbol vector.
[0074] In step 840, one or more processors may identify the quadrature amplitude modulation (QAM) size via a circuit system. In some embodiments, the circuit system receives the QAM size (e.g., QAM size 26). In some embodiments, the circuit system identifies the QAM size from a modulation and coding scheme (MCS) table.
[0075] In step 850, one or more processors can determine a signal-to-noise ratio (SNR) value using the EVM value and QAM size via a circuit system. In some embodiments, the circuit system determines the SNR value (e.g., the estimated SNR28) based on the EVM value and QAM size. In some embodiments, the circuit system calculates the SNR value corresponding to the EVM value based at least on the QAM size. In some embodiments, the circuit system uses a lookup table (LUT) (e.g., LUT 300B, LUT 400B, etc.) to identify the SNR value. In some embodiments, the circuit system uses a table, list, dictionary, or any such predefined mapping, either stored in memory or generated in real time, to identify the SNR value.
[0076] In some embodiments, the circuit system determines the SNR value by using a LUT to identify a first EVM value (e.g., point 55A) and a second EVM value (e.g., point 55B), and uses interpolation to calculate the SNR value within the range between the first and second EVM values. In some embodiments, the circuit system determines the SNR value by using a function of the SNR value and the QAM size (e.g., equation (1)). In some embodiments, the circuit system determines the SNR value by using a non-linear relationship between the SNR value and the QAM size.
[0077] In step 860, one or more processors may adjust the transmitter's transmission rate via a circuit system, at least based on the SNR value. In some embodiments, one or more processors may use the transmitter's transmission rate to transmit data.
[0078] As discussed above, this disclosure provides techniques for accurately mapping NDA EVM to SNR for a given QAM constellation size. In some embodiments, the techniques utilize lookup tables (LUTs) to map EVM to SNR and / or SNR to EVM for a given QAM size (e.g., the QAM size used in WiFi communication based on the 802.11 standard). In some embodiments, the techniques include determining / utilizing a LUT based on a non-linear relationship between SNR, EVM, and QAM constellation size. The techniques can be used in link adaptation. For example, in WiFi communication, EVM can be used as a feedback metric indicating channel quality, and the transmitter can then use the SNR-EVM relationship to infer SNR based on the QAM size. In some embodiments, the techniques include using a mapping from the calculated EVM to estimate SNR and then using SNR as a feedback metric for link adaptation. This provides faster and more accurate SNR estimation, especially in blind processing scenarios (e.g., without the need for pilot or other noise estimation procedures).
[0079] Furthermore, the techniques disclosed herein can be directly applied to packet-based SNR measurements (e.g., standard-based packet communications as followed in 802.11 WLAN, 3GPP, or non-standard communications using modulations such as BPSK, QPSK, and QAM) without the need for explicit pilots or preambles. For example, in OFDM systems, the techniques disclosed herein can be used based on the average EVM over subcarriers, a set of subcarriers, or all subcarriers or subsets of subcarriers. The techniques can be seamlessly applied to single-antenna communications or MIMO. For example, the techniques can be applied on a per-stream basis. In MIMO, the combined EVM can first be calculated across all streams, and then this combined value can be converted to per-stream SNR. The techniques can be used for physical layer abstraction mappings, such as Received Bit Information Rate (RBIR) and Effective Exponential Signal-to-Interference-plus-Noise Ratio (SINR) metrics. The techniques disclosed herein can be applied to unequal QAM communications across MIMO streams, beamforming communications, etc., as proposed in 802.11bn.
[0080] A reference to "or" can be interpreted as inclusive, such that any term described using "or" can refer to a single, more than one, or any of all descriptive terms. A reference to at least one of a list of combined terms can be interpreted as inclusive or to refer to a single, more than one, or any of all descriptive terms. For example, a reference to "at least one of 'A' and 'B'" can include only 'A', only 'B', or both 'A' and 'B'. Such references used in conjunction with "include" or other open terms can include additional items.
[0081] It should be noted that certain paragraphs of this disclosure may use terms such as “first” and “second” in conjunction with subsets of transmit space streams, probe frames, responses, and devices for identification or differentiation of each other or for other purposes. These terms are not intended to relate entities (e.g., first device and second device) merely temporally or sequentially, but in some cases, these entities may include this relationship. These terms also do not limit the number of possible entities (e.g., STA, AP, beamformer, and / or beamformer) that can operate within the system or environment. It should be understood that the system described above may provide multiples of any or each of those components, and these components may be located on standalone machines or, in some embodiments, on multiple machines in a distributed system. Additionally, bit field positions may be changed and multiple bit words may be used. Furthermore, the systems and methods described above may be provided as one or more computer-readable programs or executable instructions embodied in or on one or more articles of art, such as floppy disks, hard disks, CD-ROMs, flash memory cards, PROMs, RAMs, ROMs, or magnetic tapes. The program can be implemented in any programming language (e.g., LISP, PERL, C, C++, C#) or in any bytecode language (e.g., JAVA). The software program or executable instructions can be stored as object code on or in one or more artifacts.
[0082] While the foregoing written description of the methods and systems enables those skilled in the art to make and use embodiments thereof, those skilled in the art will understand and appreciate the existence of variations, combinations, and equivalents of the particular embodiments, methods, and examples described herein. Therefore, the methods and systems should not be limited to the foregoing embodiments, methods, and examples, but rather to all embodiments and methods within the scope and spirit of this disclosure.
Claims
1. An apparatus comprising: A receiver configured to receive data; and The circuit system is configured as follows: At least based on the data, one or more symbols are received; The error vector magnitude EVM value is determined using one or more of the symbols; Identify the magnitude of Quadrature Amplitude Modulation (QAM); The signal-to-noise ratio (SNR) is determined using the EVM value and the QAM value; and The transmitter's transmission rate is adjusted based at least on the SNR value.
2. The device of claim 1, wherein, in determining the SNR value, the circuitry is configured to calculate the SNR value corresponding to the EVM value based at least on the QAM size.
3. The device of claim 1, wherein when determining the SNR value, the circuit system is configured to use a lookup table (LUT) to identify the SNR value.
4. The device of claim 1, wherein when determining the SNR value, the circuit system is configured to: Use a LUT to identify the first EVM value and the second EVM value; and Interpolation is used to calculate the SNR value within the range between the first EVM value and the second EVM value.
5. The device of claim 1, wherein when determining the SNR value, the circuitry is configured to identify the SNR value using a function of the SNR value and the QAM magnitude.
6. The device of claim 1, wherein, in determining the SNR value, the circuitry is configured to identify the SNR value using a non-linear relationship between the SNR value and the QAM magnitude.
7. The device of claim 1, wherein when identifying the QAM size, the circuitry is configured to identify the QAM size from a modulation and coding scheme (MCS) table.
8. A method comprising: Receive data via receiver; and The circuit system receives one or more symbols based at least on the data; The error vector magnitude EVM value is determined by the circuit system using one or more symbols. The circuit system is used to identify the magnitude of quadrature amplitude modulation (QAM). The signal-to-noise ratio (SNR) is determined by the circuit system using the EVM value and the QAM value; and The transmitter's transmission rate is adjusted by the circuit system based at least on the SNR value.
9. The method according to claim 8, wherein determining the SNR value comprises: The SNR value corresponding to the EVM value is calculated based at least on the QAM size.
10. The method of claim 8, wherein determining the SNR value comprises: The SNR value is identified using a lookup table (LUT).
11. The method of claim 8, wherein determining the SNR value comprises: Use LUTs to identify the first EVM value and the second EVM value; and Interpolation is used to calculate the SNR value within the range between the first EVM value and the second EVM value.
12. The method of claim 8, wherein determining the SNR value comprises: The SNR value is identified using a function of the SNR value and the QAM size.
13. The method of claim 8, wherein determining the SNR value comprises: The SNR value is identified using the non-linear relationship between the SNR value and the QAM size.
14. The method of claim 8, wherein identifying the QAM size comprises: The QAM size is identified from the modulation and coding scheme (MCS) table.
15. An apparatus comprising: Transmitter; and The circuit system is configured as follows: One or more symbols are received based on at least the data received by the receiver; The error vector magnitude EVM value is determined using one or more of the symbols; Identify the magnitude of Quadrature Amplitude Modulation (QAM); The signal-to-noise ratio (SNR) is determined using the EVM value and the QAM value; and The transmission rate should be adjusted based at least on the SNR value; and Data is transmitted using the transmission rate via the transmitter.
16. The device of claim 15, wherein, in determining the SNR value, the circuitry is configured to calculate the SNR value corresponding to the EVM value based at least on the QAM size.
17. The device of claim 15, wherein when determining the SNR value, the circuit system is configured to use a lookup table (LUT) to identify the SNR value.
18. The device of claim 15, wherein, in determining the SNR value, the circuitry is configured to: Use a LUT to identify the first EVM value and the second EVM value; and Interpolation is used to calculate the SNR value within the range between the first EVM value and the second EVM value.
19. The device of claim 15, wherein, in determining the SNR value, the circuitry is configured to identify the SNR value using a function of the SNR value and the QAM magnitude.
20. The device of claim 15, wherein, in determining the SNR value, the circuitry is configured to identify the SNR value using a non-linear relationship between the SNR value and the QAM magnitude.