2024年数维杯国际大学生数学建模挑战赛A题飞行器激光测速中的频率估计问题解题全过程论文及程序

article/2025/7/28 6:33:19

2024年数维杯国际大学生数学建模挑战赛

A题 复合直升机的建模与优化控制问题

原题再现:

  (一) 问题的背景
  空速,即飞机相对于空气的速度,是飞行期间需要监控的关键参数。空速与飞行状态密切相关,如迎角和侧滑角。如果空速数据异常,很容易导致失速等事故。因此,准确测量空速具有重要意义。
在这里插入图片描述
                  图1:激光测速空速原理图
  激光测速是一种可行的空速测量方法。如图1所示,该原理涉及以固定频率发射激光,然后通过空气中气溶胶粒子的Mie散射效应获得多普勒频移的信号光。利用相干干涉原理,获得了包含多普勒频移信息的信号,并估计了该信号的频率。利用估计的多普勒频移信息,可以计算空速。空速测量的关键步骤是估计时间序列信号的频率信息,其中信号满足以下表达式:
在这里插入图片描述
  其中Are表示信号的幅度,f0是信号的频率,φ是信号的相位,z(t)表示噪声信息。由于来自空气压力和温度等因素的干扰,飞机接收的信号与大量噪声信息z(t)混合,使得信号x(t)的频率估计问题非常具有挑战性。
  目前,存在一个采样间隔为Ts=2×10^(-9)秒的飞机在太空中飞行的示例,接收多个多普勒频移信号,实际接收的数据提供在附件1中。为确保信息安全,不同的飞行周期可能导致飞机接收到的激光信号的幅度、频率和相位的变化,并且环境噪声可能不同。因此,接收到的激光信号的特征,包括频率和相位,在不同的飞行周期中可能不相同。此外,环境噪声也不同,即附件1中的噪声特性在不同的子表中不相同。
  (二) 问题的数据
  请参阅附件1。
  (三) 需要解决的问题
  1.分析实际接收信号的噪声特性可以帮助设计信号频率估计算法。在附件1的飞行周期1中,接收信号的非噪声部分的已知幅度为4,频率为30×10^6 Hz,相位为45°。请分析飞行周期1中接收数据的噪声z(t)特性。
  2.在实际场景中,接收信号的非噪声部分的频率未知,需要估计。在附件1的飞行周期2中,已知实际接收信号的幅度为2,并且相位为0°。请设计一种方法来估计飞行周期2中接收信号的非噪声部分的频率。(注:飞行周期2的噪声特性可能与飞行周期1的噪声特性不同。)
  3.在实践中,通常不可能预先知道接收信号的非噪声部分的幅度和相位信息,但仍然需要估计频率。请根据附件1中来自飞行周期3的数据,设计一种方法来估计飞行周期3中接收信号的频率。(注:飞行周期3中的噪声特性可能与飞行周期1和2中的噪声特征不同。)
  4.为了避免信号之间的干扰,在实践中使用间歇接收,限制可用信息的量。参考附件1中飞行周期4的数据。基于该数据,请分析间歇接收的模式,并设计一种方法来估计飞行周期4中接收信号的频率。

整体求解过程概述(摘要)

  对于问题1,区分混合变量数据与建模统计特征时使用的计算公式在数值上的差异。计算数据的基本统计量,如平均值、最大值和最小值、方差、偏度和峰度,以描述数据的分布和形状,计算傅里叶变换以实现频谱分析,并通过计算异常幅度波动和时间不规则性来进一步分析数据。发现噪声序列是一个独立的序列,服从正态分布,平均值为0.00584,方差为3.9904。此外,噪声序列在很大程度上逼近白噪声数据,并且具有白噪声数据的特征。
  对于问题二,首先处理包含接收信号的时间和值的时间序列数据。使用孤立森林算法来识别数据中的离群点。为了深入分析数据并检测可能的小位移或趋势变化,进一步引入滑动窗口技术和累积和(CUSUM)方法来检测频率周期。最后,引入隐马尔可夫模型来估计非噪声部分的频率,发现FFT结果中最大幅度的频率为41×106Hz。
  对于问题三,本文采用FFT、PSD、MUSIC算法和自相关函数法对周期3信号数据进行频率估计。通过去除直流分量、平滑和滤波,提高了信号质量,信噪比达到20.69dB。分析表明,该信号的主频约为35MHz,其中FFT、PSD和MUSIC算法估计分别为34.99986MHz、35.16MHz和35.4MHz。所有方法的结果基本一致,验证了频率估计的可靠性,为高精度信号分析提供了参考。
  对于问题四,本文提出了两种估计第四飞行周期内接收到的间歇信号频率的方法。第一种方法是卡尔曼滤波器,它利用递归算法来预测和更新信号,最终确定频率为56.29MHz。利用FFT谱图进一步验证了该结果,证明了其可靠性。第二种方法是小波变换,它从中心频率计算主频,以获得间歇信号的频率为55.56MHz。这两种方法都表明频率估计是可靠的。

模型假设:

  1.过程噪声符合零均值高斯分布,其中在状态转变期间引入的噪声是随机的,并且其分布遵循平均值为零的高斯(正态)分布。
  2.观测噪声符合零均值高斯分布。类似地,在观测过程中引入的噪声也是随机的,其分布也遵循均值为零的高斯分布。
  3.通过对一组小波基函数进行尺度和位移变换,得到第四个飞行信号。小波变换通过对原始信号进行连续细分,并选择小波基进行多尺度和位移变换来实现这一点,从而获得一组不同的函数。

问题分析:

  问题一的分析
  在附录1的飞行循环1中,已知接收信号的非噪声部分具有4的幅度、30×106 Hz的频率和45的相位◦. 请分析飞行循环1接收数据的噪声z(t)特性。针对这一问题,我们首先对数据进行预处理,将数据序列分解为噪声序列和纯信号序列,分别对原始序列、噪声序列和纯粹信号序列进行分析后,对这三个变量的值进行统计表征,并通过概率密度函数获得噪声序列的特征。
  问题二的分析
  在附件1的飞行循环2中,已知实际接收的信号具有振幅2和相位0◦ . 噪声序列可以被假设为白噪声和非白噪声两种情况,并且通过识别离群点、检测频率周期和构建隐马尔可夫模型来估计非噪声部分的频率来估计这两种情况中的每一种情况的频率。
  问题三分析
  本文采用各种频率估计方法,包括FFT、PSD、MUSIC和自相关函数,来分析周期3信号数据。预处理步骤(如DC去除、平滑和滤波)增强了信号的质量,其特征是高采样率(500MHz)和强SNR(20.69dB)。频率分析揭示了35MHz左右的一致主频估计(例如,FFT:34.99986MHz,PSD:35.16MHz,MUSIC:35.4MHz),尽管存在微小差异,但确认了方法的可靠性。该研究强调了这些技术在准确识别信号主频方面的有效性。
  问题四分析
  第四个飞行周期采用间歇接收模式。该模式的挑战是接收的信号数据可能包含间隙,导致信息丢失并影响频率估计的精度。为了解决这个问题,有必要分析信号的采样间隔,识别数据间隙,并设计一种合理的频率估计方法。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:

import pandas as pdimport matplotlib.pyplot as pltfrom scipy.statsi mport gaussian_kde,kurtosis,skew,shapirofrom scipy.fft import fft,fftfreqfrom stats models.tsa.stattools import acf,pacf,adfuller,q_statfrom sklearn.ensemble import IsolationForestfrom hmmlearn import hmmplt.rcParams[’font.sans-serif’] = ’SimHei’plt.rcParams[’axes.unicode_minus’]=False#Filepathfile_path=’C:/Users/25833/Desktop/noise_data.xlsx’data=pd.read_excel(file_path)#Extractingcolumnstimes=data[’Time’]noises=data[’Noise’]xt=data[’X(t)]signal=data[’Signal’]#%%Plotnoiseovertimefig=plt.figure(figsize=(10,6), facecolor=’white’,dpi=150)ax=fig.add_subplot(111,facecolor=’gray’)ax.plot(times,noises,linestyle=-,color=’white’)ax.set_xlabel(’Time’,color=’black’,fontsize=24)ax.set_ylabel(’Noise’,color=’black’,fontsize=24)ax.spines[’bottom’].set_color(’black’)ax.spines[’left’].set_color(’black’)forspineinax.spines.values():spine.set_linewidth(2)plt.margins(x=0,y=0)ax.tick_params(axis=’both’,which=’major’,labelcolor=’black’,colors=’black’,labelsize=15)ax.grid(True,color=’lightgray’,linestyle=--,linewidth=0.5)plt.show()
#%%KDEforX(t)noise_values=xtkde=gaussian_kde(noise_values,bw_method=’scott’)x=np.linspace(min(noise_values),max(noise_values),1000)pdf_values =kde(x)plt.figure(figsize=(10,6),dpi=150)plt.plot(x,pdf_values,color=’green’,lw=2,label=’X(t)PDF’)plt.fill_between(x,pdf_values, color=’green’,alpha=0.3)plt.title(’ProbabilityDensityFunctionofX(t))plt.xlabel(’X(t)Value’,fontsize=24)plt.ylabel(’Density’,fontsize=24)plt.legend()plt.show()#%%Signal statisticsdf=pd.DataFrame(data)mean_value =df[’Signal’].mean()median_value=df[’Signal’].median()std_dev=df[’Signal’].std()range_value=df[’Signal’].max()-df[’Signal’].min()cv=std_dev/mean_valueskewness= skew(df[’Signal’])kurtosis_value=kurtosis(df[’Signal’])-3print(f"Mean:{mean_value}")print(f"Median:{median_value}")print(f"StandardDeviation:{std_dev}")print(f"Range:{range_value}")print(f"CoefficientofVariation: {cv}")print(f"Skewness:{skewness}")print(f"Kurtosis:{kurtosis_value}")#%%ACFandPACFplotsfornoiselag_acf=acf(noises,nlags=20)lag_pacf= pacf(noises,nlags=20, method=’ols’)plt.figure(figsize=(12,6),dpi=150)plt.subplot(211)plt.plot(lag_acf)plt.title(’AutocorrelationFunction(ACF)ofNoise’)plt.subplot(212)plt.plot(lag_pacf)plt.title(’PartialAutocorrelationFunction(PACF)ofNoise’)plt.tight_layout()plt.show()#%%FFTof noisefft_noise=fft(noises)frequencies=fftfreq(len(noises))plt.figure(figsize=(12,6),dpi=150)plt.plot(frequencies,np.abs(fft_noise))plt.title(’FrequencySpectrumofNoise’)plt.xlabel(’Frequency(Hz))plt.ylabel(’Amplitude’)plt.tight_layout()plt.show()#%%Correlationheatmapcorrelation_matrix=np.corrcoef(signal,noises)plt.figure(figsize=(6,6),dpi=150)plt.imshow(correlation_matrix,cmap=’hot’,interpolation=’nearest’)plt.colorbar()plt.title(’CorrelationHeatmapbetweenSignalandNoise’)plt.xticks([])plt.yticks([])plt.show()#%%Ljung-Boxtestlb_value,p_value=q_stat(lag_acf,len(noises))plt.figure(figsize=(12,6),dpi=150)plt.plot(lb_value[1:],p_value[1:],’o-)plt.title(’Ljung-BoxTestforNoise’)plt.xlabel(’Lag’)plt.ylabel(’p-value’)plt.axhline(y=0.05,color=’red’,linestyle=--)plt.show()#%%ADFtestresult=adfuller(noises)
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

http://www.hkcw.cn/article/mQhaIcnxHV.shtml

相关文章

【Hot 100】763. 划分字母区间

目录 引言划分字母区间我的解题一、记录每个字母的最远出现位置二、扫描字符串并进行贪心划分 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:【Hot 100】763. 划分字母区间❣️ 寄语:书到用时…

【Unity博客节选】Playable Graph Monitor 安装使用

注:软件版本Unity 6.0 Timeline 1.8.7 作者:CSDN RingleaderWang 原文:《Unity第25期——Timeline结构及其源码浅析》 文章首发Github👍:《Timeline结构及其源码浅析》 Bilibili 视频版👍👍&a…

<5>, Qt系统相关

目录 一、Qt 事件 1,事件的定义 2,事件的处理 3,鼠标事件 4,按键事件 5,定时器 6,事件分发器 7,事件过滤器 二、Qt 文件 1,输入输出类 2,文件读写类 3&#x…

PCB设计教程【强化篇】——USB拓展坞DRC导出生产文件

前言 本教程基于B站Expert电子实验室的PCB设计教学的整理,为个人学习记录,旨在帮助PCB设计新手入门。所有内容仅作学习交流使用,无任何商业目的。若涉及侵权,请随时联系,将会立即处理 目录 前言 丝印调整 DRC 检查…

第十一讲 | 多态

多态 一、多态的概念二、多态的定义及实现1、动态多态的构成条件(1)、实现多态还有两个必须重要条件(2)、虚函数(3)、虚函数的重写/覆盖(4)、多态场景的一个选择题(5&…

火语言UI组件--文件对话框

【组件功能】:选择单个或多个文件的对话框。 样式预览 设置 基础设置 属性名称属性释义输入值类型标题(title)对话框的标题字符串类型默认路径(defaultPath)对话框的默认展示路径字符串类型多选(multiSelections)是否允许多选布尔型(true / false)显示隐藏文件(s…

rl_sar功能包详解

文章目录 1. 功能包概述2. 目录结构详解2.1 核心目录结构2.2 各目录功能src/ 目录 - C源代码实现scripts/ 目录 - Python脚本实现include/ 目录 - C头文件library/ 目录 - 核心库和第三方依赖models/ 目录 - 预训练模型库launch/ 目录 - ROS启动文件worlds/ 目录 - Gazebo仿真世…

InternVL2.5-多模态大模型评估专业图片

具备图像理解功能的大模型InternVL2.5,能有效解析大部分图片。 对于专业图片如医学细胞切片,从专业角度解析,能推动模型应用到更广泛的领域。 InternVL2.5解析示例 prompt(胸部癌变细胞图片,来自PanNuke) 请评估这个组织的风险 InternVL2.…

解决 IDEA 在运行时中文乱码问题

直接说解决办法 编译 IDEA 所在目录的启动的 .vmoptions 文件,添加以下JVM 参数即可 -Dfile.encodingUTF-8如下图所示,Help > Edit Custom VM Options,随后在编辑框中添加-Dfile.encodingUTF-8 的 JVM 参数

【Linux】进程的生命之旅——诞生、消逝与守候(fork/exit/wait)

🎬 个人主页:谁在夜里看海. 📖 个人专栏:《C系列》《Linux系列》《算法系列》 ⛰️ 一念既出,万山无阻 目录 📖一、进程创建 1.fork函数 📚高层封装特性 📚fork返回值 2.写时拷…

《Linux权威指南:从小白到系统管理员(上册)》深度解析与实践指南

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【星海网址导航】摸鱼、技术交流群👉 点此查看详情 引言 Linux 作为现代计算的核心操作系统之一,广泛应用于服务器、云计算、嵌入式开发等领域。《Linux权威指南:从小白到系统管理…

【Linux】信号

目录 一、信号的概念二、信号的产生2.1 通过键盘进行信号的产生2.2 通过系统调用进行信号的产生2.2.1 kill函数2.2.2 raise函数2.2.3 abort函数 2.3 通过异常的方式进行信号的产生2.4 通过软件条件的方式进行信号的产生2.4.1 关闭管道读端2.4.2 alarm函数 2.5 Core Dump&#x…

「模型部署系列」ubuntu 使用vllm部署Qwen3-8B模型

1、下载vllm v0.8.5(此处已经下好了,去仓库拉资源) 2、 下载Qwen3-8B 方式1: 在下载前,请先通过如下命令安装ModelScope pip install modelscope 命令行下载 下载完整模型库 modelscope download --model Qwen/Qwen3-8B 下…

亮数据与 AI 深度集成:构建电商策略自动化系统新范式

目录 1.引言:电商增长遇瓶颈,AI 能否破局?2.挖掘痛点:精准营销为何难以落地?3.解决之道:为什么选择亮数据而不是传统爬虫?3.1轻松绕过反爬机制,保障数据采集稳定性3.2 零代码门槛&am…

YOLOv12环境配置,手把手教你使用YOLOv12训练自己的数据集和推理(附YOLOv12网络结构图),全文最详细教程

文章目录 前言一、YOLOv12代码下载地址1.YOLOv12模型结构图 二、YOLO环境配置教程1.创建虚拟环境2.激活虚拟环境3.查询自己电脑可支持最高cuda版本是多少(无显卡的同学可以跳过这个步骤)4.pytorch安装5.验证 PyTorch GPU 是否可用(没有显卡的…

Nginx下载与安装(Liunx环境)

1、Nginx下载 官网地址:https://nginx.org/en/download.html 2、安装依赖包 //安装gcc yum install gcc-c //安装PCRE pcre-devel yum install -y pcre pcre-devel //安装zlib yum install -y zlib zlib-devel //安装Open SSL yum install -y openssl openssl-deve…

雷达中实信号与复信号

一、什么是实信号和复信号 实信号是指信号的时域取值在数学表示和物理实现中始终为实数的信号,其基本的表达式为:;复信号是指时域取值在数学表示中始终为复数的信号,其基本的表达式为:。从实信号与复信号的定义可知&am…

【存储基础】NUMA架构

文章目录 1. 前置知识:物理CPU和CPU核心物理CPUCPU核心关系 2. NUMA架构2.1 NUMA架构是什么?2.2 NUMA架构详解2.3 查看NUMA信息2.4 NUMA架构在分布式存储中的应用数据本地化 Data Locality计算与存储协同调度NUMA感知的网络通信内存池优化与跨节点均衡 3 补充&#…

HTTP协议解析

HTTP(超文本传输协议)是万维网的基础协议,自1991年诞生以来,已成为最广泛使用的应用层协议。本文将深入解析HTTP协议的核心概念、工作原理及实际应用。 HTTP协议基础 什么是HTTP? HTTP (全称为 "超文本传输协…

小麦“颗粒归仓”有了“最强大脑”

全国小麦主产区自南向北陆续进入紧张抢收阶段,夏种也全面展开。河南夏种已完成四成,以玉米、花生为主。安徽夏种已完成近三成,以水稻和玉米为主。各地如何针对天气情况抢抓收获“窗口期”,确保粮食“颗粒归仓”?目前,安徽4300多万亩的小麦收获已接近尾声。当记者来到安徽…