Satellite positioning system based on dama signals
Patent Information
- Application Number
- CN202611249310.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-08-18
- Publication Date
- 2026-10-30
AI Technical Summary
[0003]1)原始数据磁盘 IO 成为核心性能瓶颈:全流程原始数据的读写均依赖磁盘,单路采集写入与多路处理读取会造成磁盘 IO 冲突,高并发场景下磁盘带宽迅速饱和,数据排队等待严重;同时磁盘随机读写性能低,无法支撑多模块并行读取不同信道的原始数据,处理时延居高不下
[0030]1) 构建了仅以 Redis 承载原始数据的单源共享存储架构,用内存级读写替代传统磁盘IO完成原始数据的写入与读取,从根源上消除原始数据磁盘读写瓶颈,单帧数据读写时延降低两个数量级。
Smart Images

Figure SMS_1
Abstract
Description
Technical Field
[0001] This invention belongs to the field of satellite positioning technology, and specifically relates to a satellite positioning system based on DAMA signals. Background Technology
[0002] Traditional DAMA-based satellite positioning systems employ a batch processing architecture of "acquisition to disk, sequential disk reading and processing": the signal acquisition equipment receives satellite DAMA radio frequency signals, performs digitized sampling, and writes the raw sampled data completely to a local disk or storage array; subsequent signal detection, time-frequency difference extraction, and positioning calculation all require reading the raw data file from the disk, processing it sequentially, and outputting the results. The problems include:
[0003] 1) Raw data disk I / O becomes the core performance bottleneck: The reading and writing of raw data throughout the entire process depends on the disk. Single-channel acquisition and writing and multi-channel processing and reading will cause disk I / O conflicts. In high-concurrency scenarios, disk bandwidth will be saturated quickly and data queuing will be serious. At the same time, the disk random read and write performance is low and cannot support multiple modules to read raw data from different channels in parallel, resulting in high processing latency.
[0004] 2) High processing startup latency, unable to achieve streaming processing: The processing module can only start reading and calculating after a single segment of raw data has been completely written to disk, which cannot achieve "collecting and processing at the same time" streaming operation and is difficult to adapt to real-time positioning requirements.
[0005] 3) Limited scalability: Adding new processing nodes requires simultaneous expansion of storage arrays and disk bandwidth, which is costly and has a long deployment cycle; in the face of sudden concurrent business fluctuations caused by DAMA signals, it is impossible to quickly and elastically expand processing capacity. Summary of the Invention
[0006] To address the shortcomings of existing technologies, the present invention aims to provide a high-speed satellite positioning system for DAMA signals based on Redis ordered set time-series storage. It employs Redis ordered sets to carry the raw, frequently collected data, retaining only the most recently stored data in memory to control memory usage. A unified time-series data adaptation and reading module is designed to automatically adapt to both Redis memory-based hot data and disk-based cold data, remaining completely transparent to upper-layer business processes. Combined with an asynchronous disk backup mechanism, it balances low latency for real-time processing, low cost of memory resources, and traceability of all data.
[0007] The technical solution adopted in this invention is as follows:
[0008] A satellite positioning system based on DAMA signals includes: a DAMA signal acquisition module, a Redis raw data shared storage layer, a time-series data adaptation and reading module, a signal detection module, a time-frequency difference extraction module, and a positioning calculation and output module;
[0009] The Redis raw data shared storage layer is a distributed Redis cluster, which serves as the sole raw data shared storage layer, replacing the raw data interaction function of traditional disks;
[0010] The DAMA signal acquisition module interfaces with the satellite DAMA channel to complete radio frequency signal reception, down-conversion and AD sampling digitization, and generate raw sampling data carrying satellite number, high-precision timestamp, frequency point and sampling rate identifier. The data is written to the Redis cluster in real time, and an independent asynchronous thread is started to write the raw data to the disk in batches for backup. The disk write operation does not block the real-time processing link.
[0011] The signal detection module, time-frequency difference extraction module, and positioning calculation and output module process data sequentially. Each module retrieves the original sampling data of the corresponding channel from the Redis cluster through the time-series data adaptation and reading module, and outputs the positioning result after processing.
[0012] Specifically, the Redis raw data shared storage layer uses an ordered set structure to store data: with "satellite number-frequency point-sampling rate" as the key, the score of each element in the set is the high-precision timestamp of the sampled data, and the value is the raw sampled data of the corresponding time segment; an automatic data expiration policy is configured, and raw data that exceeds the preset retention period is automatically cleaned up; it supports millisecond-level time range queries through the ZRANGEBYSCORE command to ensure that data is returned in time order.
[0013] Specifically, the time-series data adaptation and reading module is an independent service unit that provides a unified data reading interface to all upper-layer processing modules, shields the storage differences between hot data in Redis memory and cold data on disk, and is completely transparent to upper-layer business, enabling seamless reading of hot and cold data.
[0014] Specifically, the signal detection module is deployed in a multi-node parallel computing cluster, with processing nodes allocated according to frequency points. Each node processes data at only the same frequency point, and supports independent elastic scaling up and down.
[0015] The signal detection module has a built-in overlapping buffer mechanism: when a new frame of data is input, the new data is appended to the end of the overlapping buffer in chronological order to form a continuous detection data segment containing "the overlapping segment at the end of the previous frame + the full data of the current frame"; the signal detection logic is executed on the spliced continuous data segment to identify the DAMA signal frame header and detect the signal length, and complete the effective signal identification and parameter extraction; after the current data segment is detected, the old data at the beginning of the buffer is discarded, and only the sampled data at the end of the current continuous data segment with a length equal to the maximum signal duration is extracted and updated to a new overlapping buffer, waiting for the next frame of data to arrive before repeating the splicing and detection.
[0016] Specifically, the time-frequency difference extraction module adopts a multi-node parallel computing unit, receives the valid signal detection results output by the signal detection module, pulls the corresponding original signal data from the Redis cluster through the time-series data adaptation layer, calculates the arrival time difference using a cross-correlation algorithm for multi-satellite signal data of the same target, calculates the arrival frequency difference based on Doppler frequency shift, and outputs the time-frequency difference result parameters.
[0017] Specifically, the positioning calculation and output module adopts a distributed calculation node pool, receives the time-frequency difference parameter, combines it with real-time satellite ephemeris and station coordinate data, and uses the least squares or Kalman filter algorithm to complete the target position calculation, and outputs the positioning coordinates, accuracy factor and calculation timestamp to the business terminal and visualization platform.
[0018] A satellite positioning method based on DAMA signals, used in the system of this invention, includes the following steps:
[0019] S1, DAMA signal acquisition and Redis writing: The acquisition module connects to the corresponding channel to receive radio frequency signals. After completing AD sampling, it marks each frame of data with satellite number, time, frequency point, and sampling rate identifiers, and writes it to the corresponding data fragment in the Redis cluster in real time. At the same time, an independent asynchronous thread is started to write the raw data to the disk in batches according to the time window. Failure to write to the disk does not affect the real-time processing link.
[0020] S2, Signal Detection: The signal detection node monitors the data write status of each channel in Redis, pulls the raw sampled data to be processed according to the time window, executes the signal detection algorithm frame by frame, identifies valid DAMA signal frames, and outputs the start position and length of the signal.
[0021] S3. Time-frequency difference parameter extraction: The time-frequency difference extraction module receives valid signal data and calculates the time difference and frequency difference parameters between each pair of satellites by cross-correlation operation and frequency estimation for the same target multi-satellite synchronization signals at the same frequency point. The time-frequency difference results are then transmitted to the positioning solution module.
[0022] S4. Positioning Calculation and Result Output: The positioning calculation module receives the time-frequency difference parameter, reads the satellite ephemeris data at the corresponding time, performs positioning calculation to obtain the target's latitude, longitude, elevation, and speed information, and pushes the calculation results to the downstream business system in real time.
[0023] Specifically, the signal detection in step S2 includes the following implementation:
[0024] An overlapping buffer is set up, and new data is appended to the end of the overlapping buffer in chronological order to form a continuous detection data segment;
[0025] The frame header features and detection signal length of the continuous detection data segment are scanned sequentially in time order to complete the effective signal identification and parameter extraction.
[0026] After the detection is completed, discard the old data at the beginning of the buffer and retain only the tail data with a length equal to the maximum signal duration as a new overlapping buffer, and wait for the next frame of data to arrive before repeating the splicing and detection.
[0027] Specifically, in step S1, the Redis cluster shards data according to "satellite number-frequency point-sampling rate", configures an automatic data expiration policy, and presets the retention period according to business needs. Expired data is automatically cleaned up to release memory space.
[0028] Specifically, the method also includes a hot and cold data collaborative reading step: when the upper-layer processing module requests data through the time-series data adaptation reading module, it prioritizes reading hot data from the Redis cluster; when the requested data exceeds the Redis retention time, the time-series data adaptation reading module automatically reads cold data from the disk and returns it, which is completely transparent to the upper-layer processing module.
[0029] The beneficial effects of this invention are:
[0030] 1) A single-source shared storage architecture was constructed that uses Redis to carry the raw data. Memory-level read and write operations replace traditional disk I / O to complete the writing and reading of raw data, eliminating the disk read and write bottleneck of raw data from the root and reducing the latency of single-frame data read and write by two orders of magnitude.
[0031] 2) A dual-path data splitting mechanism of "real-time Redis writing and asynchronous disk writing" was designed. The main processing link runs entirely in memory, and the disk is only used as an offline archiving bypass, which does not occupy real-time processing resources, thus balancing real-time processing and data traceability.
[0032] 3) It implements a parallel processing mode for multiple processing modules based on the same Redis raw data, avoiding multiple copies of the raw data and redundant IO; it supports multiple nodes to read data at different frequencies at the same time, and the system's concurrent processing capability increases approximately linearly with the number of computing nodes, adapting to the high concurrency access characteristics of DAMA signal bursts.
[0033] 4) It is equipped with a Redis data management strategy of sharding by channel and automatic expiration, which ensures the locality and continuity of data reading and writing in a single channel, while automatically cleaning up expired data to release memory, controlling memory resource consumption while ensuring processing performance. Detailed Implementation
[0034] The technical solution of the present invention will be described in detail below with reference to the embodiments.
[0035] The system of this invention adopts an architecture of "one-layer shared storage, four-level serial processing, and asynchronous backup": a Redis in-memory database cluster is used as the sole shared storage layer for raw data acquisition, replacing the raw data interaction function of traditional disks; after the DAMA signal is digitized by the acquisition module, it is written to the Redis cluster in real time, and simultaneously pushed asynchronously to the storage array for disk backup, and the disk backup operation does not block the real-time processing link; each processing module, including signal detection, time-frequency difference extraction, and location calculation, directly pulls the raw data of the corresponding channel from Redis, completes the processing in sequence according to the business logic, and finally outputs the location result.
[0036] The system is divided into 6 core modules based on function. Only the raw data storage relies on Redis, while the remaining modules revolve around Redis for data reading, writing, and processing.
[0037] 1. DAMA signal acquisition module:
[0038] It connects to the satellite DAMA channel to complete the reception of radio frequency signals, down-conversion, AD sampling and digitization, and data delivery according to frequency points.
[0039] The acquisition module outputs raw sampled signal data with satellite number, high-precision timestamp, frequency point, and sampling rate.
[0040] Data is collected and written to the Redis cluster in real time, and the write latency is included in the main link latency statistics; at the same time, an independent asynchronous thread is started to write the same original data to the disk in batches for record keeping, and the entire disk writing process does not block the real-time write and processing link.
[0041] 2. Redis raw data shared storage layer:
[0042] Deployment type: Distributed Redis cluster, supporting master-slave replication, data sharding, and persistent backup to ensure high availability.
[0043] Data structure: The Redis cluster serves as the hot storage layer for raw data. It adopts an ordered set structure, with "satellite number-frequency point-sampling rate" as the key. The score of each element in the set is the high-precision timestamp of the sampled data, and the value is the raw sampled data of the corresponding time segment.
[0044] Core capabilities: Supports high-concurrency writes and multi-node parallel reads, providing millisecond-level data read / write latency; configures automatic data expiration policies to automatically clean up raw data that exceeds the retention period, freeing up memory space.
[0045] Timing characteristics: Utilizing the natural sorting capabilities of ordered sets, it supports millisecond-level time range queries via the ZRANGEBYSCORE instruction, strictly ensuring that data is returned in time order, thus meeting the timing consistency requirements of signal processing.
[0046] Time-series data adaptation and reading module:
[0047] Deployment configuration: Independent service unit, providing a unified data reading interface to all upper-layer processing modules.
[0048] Core positioning: To shield the storage differences between the underlying Redis and disk, making it completely transparent to upper-layer business and enabling seamless reading of hot and cold data.
[0049] Signal detection module:
[0050] Deployment configuration: a multi-node parallel computing cluster, where each detection program processes one frequency point and can be independently and elastically scaled up or down.
[0051] Data source: Raw sampled data for the corresponding channel is pulled from the Redis cluster through the time series data adaptation layer, without the need to read the disk.
[0052] Processing Logic: The system performs DAMA signal frame header identification and signal length detection frame by frame from the raw sampled data. Traditional detection is based on complete, continuous data segments, sequentially searching for frame headers in chronological order. All complete waveforms are contained within the same continuous data segment, eliminating the problem of signal truncation at data boundaries. In the new system's streaming architecture, the signal detection module obtains frame-by-frame streaming raw data from the timing data adaptation and reading module, with data transmitted to the detection module frame by frame in fixed time slices. This mode inherently suffers from cross-frame signal truncation: a complete DAMA signal frame may span the boundary of two adjacent data frames, with the first half at the end of the previous data frame and the second half at the beginning of the next data frame. If detected independently frame by frame, incomplete signals can lead to detection failures, missed detections, or parameter calculation errors. In the streaming architecture, when a new frame of data is input from the adaptation layer, the new data is appended to the end of the overlapping buffer in chronological order, forming a continuous detection data segment containing "the overlapping segment at the end of the previous frame plus the full data of the current frame." For a complete, contiguous data segment after splicing, execute the complete signal detection logic, sequentially scanning the frame header features and data length in chronological order to identify and extract parameters of all valid signals. After the current data segment is detected, discard the old data at the beginning of the buffer, and only extract the sampled data at the very end of the current contiguous data segment with a length equal to the duration of the maximum signal. Update this data into a new overlapping buffer, and wait for the next frame of data to arrive before repeating the splicing and detection.
[0053] Scheduling mechanism: Processing nodes are allocated according to frequency points. A single node can only process data of the same frequency point, while multiple frequency points can be processed in parallel.
[0054] 5. Time-Frequency Difference Extraction Module:
[0055] Deployment configuration: Multi-node parallel computing unit, a single node can process data from all channels.
[0056] Data source: Valid signal detection results output by the received signal detection module, and element signal data is pulled from the Redis cluster through the time series data adaptation layer.
[0057] Processing logic: For multi-satellite signal data of the same target, the cross-correlation algorithm is used to calculate the time difference of arrival (TDOA), and the frequency difference of arrival (FDOA) is calculated based on the Doppler frequency shift; the time-frequency difference result parameters are output.
[0058] 6. Location calculation and output module:
[0059] Deployment type: Distributed solution node pool.
[0060] Processing logic: Receive the time-frequency difference parameter, combine it with real-time satellite ephemeris and station coordinate data, and use the least squares / Kalman filter algorithm to complete the target position calculation; output the positioning coordinates, accuracy factor, and calculation timestamp to the business terminal and visualization platform.
[0061] The core workflow is as follows:
[0062] Step 1: DAMA signal acquisition and Redis writing:
[0063] The acquisition module receives radio frequency signals through its corresponding channel. After completing AD sampling, it marks each frame of data with satellite number, time, frequency, and sampling rate identifiers, and writes it to the corresponding data shard in the Redis cluster in real time. At the same time, the asynchronous thread writes the raw data to the acquisition device in batches according to the time window. Failure to write to the disk does not affect the real-time processing link.
[0064] Step 2: The signal detection module pulls data from Redis for processing.
[0065] The signal detection node monitors the data write status of each channel in Redis, pulls the raw sampled data to be processed according to the time window, executes the signal detection algorithm frame by frame, identifies valid DAMA signal frames, and outputs the start position and length of the signal.
[0066] Step 3, Extraction of time-frequency difference parameters:
[0067] The time-frequency difference extraction module receives valid signal data and calculates the time difference and frequency difference parameters between each pair of satellites based on the synchronization signals of multiple satellites at the same frequency point through cross-correlation and frequency estimation. The time-frequency difference parameter results are then transmitted to the positioning solution module.
[0068] Step 4: Locating the solution and outputting the results:
[0069] The positioning and calculation module receives the time-frequency difference parameter, reads the satellite ephemeris data at the corresponding time, and performs positioning and calculation to obtain the target's latitude, longitude, elevation, and speed information. The calculation results are pushed to the downstream business system in real time to complete the full-link processing of a single frame signal.
[0070] Example:
[0071] The system hardware configuration in this example includes: data acquisition devices (3 units), signal detection devices (2 units), time-frequency difference extraction devices (4 units), and positioning calculation devices (2 units). The hardware configuration is shown in Table 1 below:
[0072] Table 1 Hardware Configuration
[0073]
[0074] The software deployment environment is as follows:
[0075] Data acquisition software: One set of data acquisition software is deployed for each data acquisition device.
[0076] Signal detection program: One program is deployed for each frequency point, for a total of 30 signal detection programs.
[0077] Time-frequency difference extraction program: One program is deployed for each GPU card, for a total of 12 programs.
[0078] Positioning calculation: 10 of each of the two positioning calculation devices are deployed, for a total of 20.
[0079] Time-series data adaptation and reading program: 2 programs are deployed on each device, for a total of 22 programs.
[0080] Redis: Deploy a 5-node system, with each node processing 6 frequency points of data.
[0081] The configuration parameters are as follows:
[0082] DAMA signal: 30 frequency points in total, single signal frame length is 1 second, sampling rate is 384;
[0083] Redis configuration: Data is sharded into 120 pieces, with 30 (frequency points) x 4 (number of satellites), and the data is retained for 10 minutes with automatic expiration and cleanup.
[0084] The simulation test results achieved with the system of this invention are as follows:
[0085] The average positioning latency is less than 3 seconds, a 95% reduction compared to the traditional disk-based processing latency of 60 seconds.
[0086] It also supports 30 channels of data, which is no less than the traditional disk-based processing method;
[0087] Compared to traditional disk-based processing, the system no longer requires dedicated storage devices or disk arrays, reducing hardware cost investment.
[0088] It achieves the same accuracy as the traditional batch processing mode, with no loss of planar positioning accuracy.
Claims
1. A satellite positioning system based on DAMA signals, characterized in that, include: DAMA signal acquisition module, Redis raw data shared storage layer, time series data adaptation and reading module, signal detection module, time-frequency difference extraction module, and positioning calculation and output module; The Redis raw data shared storage layer is a distributed Redis cluster, which serves as the sole raw data shared storage layer, replacing the raw data interaction function of traditional disks; The DAMA signal acquisition module interfaces with the satellite DAMA channel to complete radio frequency signal reception, down-conversion and AD sampling digitization, and generate raw sampling data carrying satellite number, high-precision timestamp, frequency point and sampling rate identifier. The data is written to the Redis cluster in real time, and an independent asynchronous thread is started to write the raw data to the disk in batches for backup. The disk write operation does not block the real-time processing link. The signal detection module, time-frequency difference extraction module, and positioning calculation and output module process data sequentially. Each module retrieves the original sampling data of the corresponding channel from the Redis cluster through the time-series data adaptation and reading module, and outputs the positioning result after processing.
2. The satellite positioning system based on DAMA signals according to claim 1, characterized in that, The Redis raw data shared storage layer uses an ordered set structure to store data: with "satellite number-frequency point-sampling rate" as the key, the score of each element in the set is the high-precision timestamp of the sampled data, and the value is the raw sampled data of the corresponding time segment; an automatic data expiration policy is configured, and raw data that exceeds the preset retention period is automatically cleaned up; it supports millisecond-level time range queries through the ZRANGEBYSCORE command to ensure that data is returned in time order.
3. The satellite positioning system based on DAMA signals according to claim 1, characterized in that, The time-series data adaptation and reading module is an independent service unit that provides a unified data reading interface to all upper-layer processing modules, shielding the storage differences between hot data in Redis memory and cold data on disk, making it completely transparent to upper-layer businesses, and enabling seamless reading of hot and cold data.
4. The satellite positioning system based on DAMA signals according to claim 1, characterized in that, The signal detection module is deployed in a multi-node parallel computing cluster, with processing nodes allocated according to frequency points. Each node processes data at only the same frequency point and supports independent elastic scaling up and down. The signal detection module has a built-in overlapping buffer mechanism: when a new frame of data is input, the new data is appended to the end of the overlapping buffer in chronological order to form a continuous detection data segment containing "the overlapping segment at the end of the previous frame + the full data of the current frame"; the signal detection logic is executed on the spliced continuous data segment to identify the DAMA signal frame header and detect the signal length, and complete the effective signal identification and parameter extraction; after the current data segment is detected, the old data at the beginning of the buffer is discarded, and only the sampled data at the end of the current continuous data segment with a length equal to the maximum signal duration is extracted and updated to a new overlapping buffer, waiting for the next frame of data to arrive before repeating the splicing and detection.
5. The satellite positioning system based on DAMA signals according to claim 1, characterized in that, The time-frequency difference extraction module adopts a multi-node parallel computing unit, receives the valid signal detection results output by the signal detection module, pulls the corresponding original signal data from the Redis cluster through the time-series data adaptation layer, calculates the arrival time difference for multi-satellite signal data of the same target using a cross-correlation algorithm, calculates the arrival frequency difference based on Doppler frequency shift, and outputs the time-frequency difference result parameters.
6. The satellite positioning system based on DAMA signals according to claim 1, characterized in that, The positioning calculation and output module adopts a distributed calculation node pool, receives time-frequency difference parameters, combines real-time satellite ephemeris and station coordinate data, and uses least squares or Kalman filtering algorithms to complete the target position calculation, and outputs positioning coordinates, accuracy factor and calculation timestamp to the business terminal and visualization platform.
7. A satellite positioning method based on DAMA signals, applied to the system described in any one of claims 1-6, characterized in that, Includes the following steps: S1, DAMA signal acquisition and Redis writing: The acquisition module connects to the corresponding channel to receive radio frequency signals. After completing AD sampling, it marks each frame of data with satellite number, time, frequency point, and sampling rate identifiers, and writes it to the corresponding data fragment in the Redis cluster in real time. At the same time, an independent asynchronous thread is started to write the raw data to the disk in batches according to the time window. Failure to write to the disk does not affect the real-time processing link. S2, Signal Detection: The signal detection node monitors the data write status of each channel in Redis, pulls the raw sampled data to be processed according to the time window, executes the signal detection algorithm frame by frame, identifies valid DAMA signal frames, and outputs the start position and length of the signal. S3. Time-frequency difference parameter extraction: The time-frequency difference extraction module receives valid signal data and calculates the time difference and frequency difference parameters between each pair of satellites by cross-correlation operation and frequency estimation for the same target multi-satellite synchronization signals at the same frequency point. The time-frequency difference results are then transmitted to the positioning solution module. S4. Positioning Calculation and Result Output: The positioning calculation module receives the time-frequency difference parameter, reads the satellite ephemeris data at the corresponding time, performs positioning calculation to obtain the target's latitude, longitude, elevation, and speed information, and pushes the calculation results to the downstream business system in real time.
8. The satellite positioning method based on DAMA signals according to claim 7, characterized in that, The specific implementation of signal detection in step S2 includes: An overlapping buffer is set up, and new data is appended to the end of the overlapping buffer in chronological order to form a continuous detection data segment; The frame header features and detection signal length of the continuous detection data segment are scanned sequentially in time order to complete the effective signal identification and parameter extraction. After the detection is completed, discard the old data at the beginning of the buffer and retain only the tail data with a length equal to the maximum signal duration as a new overlapping buffer, and wait for the next frame of data to arrive before repeating the splicing and detection.
9. The satellite positioning method based on DAMA signals according to claim 7, characterized in that, In step S1, the Redis cluster shards data according to "satellite number-frequency point-sampling rate", configures an automatic data expiration policy, and presets the retention period according to business needs. Expired data is automatically cleaned up to release memory space.
10. The satellite positioning method based on DAMA signals according to claim 7, characterized in that, The method also includes a hot and cold data collaborative reading step: when the upper-layer processing module requests data through the time-series data adaptation reading module, it prioritizes reading hot data from the Redis cluster; when the requested data exceeds the Redis retention time, the time-series data adaptation reading module automatically reads cold data from the disk and returns it, which is completely transparent to the upper-layer processing module.
