2023年全国研究生数学建模竞赛华为杯B题DFT类矩阵的整数分解逼近求解全过程文档及程序

news2024/9/20 6:00:49

2023年全国研究生数学建模竞赛华为杯

B题 DFT类矩阵的整数分解逼近

原题再现:

  一、问题背景
  离散傅里叶变换(Discrete Fourier Transform,DFT)作为一种基本工具广泛应用于工程、科学以及数学领域。例如,通信信号处理中,常用DFT实现信号的正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)系统的时频域变换(见图1)。另外在信道估计中,也需要用到逆DFT(IDFT)和DFT以便对信道估计结果进行时域降噪(见图2)。
在这里插入图片描述
  在芯片设计中,DFT计算的硬件复杂度与其算法复杂度和数据元素取值范围相关。算法复杂度越高、数据取值范围越大,其硬件复杂度就越大。目前在实际产品中,一般采用快速傅里叶变换(Fast Fourier Transform,FFT)算法来快速实现DFT,其利用DFT变换的各种性质,可以大幅降低DFT的计算复杂度(参见[1][2])。然而,随着无线通信技术的演进,天线阵面越来越大,通道数越来越多,通信带宽越来越大,对FFT的需求也越来越大,从而导致专用芯片上实现FFT的硬件开销也越大。为进一步降低芯片资源开销,一种可行的思路是将DFT矩阵分解成整数矩阵连乘的形式。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  可以看到在该方案中,分解后的矩阵元素均为整数,从而降低了每个乘法器的复杂度;另外A_1~A_4的稀疏特性可以减少乘法运算数量。可以看出,这其实是一种精度与硬件复杂度的折中方案,即损失了一定的计算精度,但是大幅降低了硬件复杂度。在对输出信噪比要求不高的情况下可以优先考虑此类方案。
在这里插入图片描述
  目前使用FFT进行DFT计算的方案硬件复杂度较高,因为我们希望研究一种替代方案来降低DFT计算的硬件复杂度,但同时我们对精度也有一定要求。请针对以下问题分别设计分解方法,既能最小化RMSE,同时又使得乘法器的数量尽量少。
  A中矩阵的个数K的取值并没有限制,也是优化的变量之一。但需要注意,一般情况下,K越小,硬件复杂度越低,但是如果增加矩阵的个数可以使得矩阵中包含更多的简单元素(0、±1、±j或(±1±j)),硬件复杂度也可能会降低,因此,需要根据硬件复杂度C的定义合理的设计K。

  问题1:首先通过减少乘法器个数来降低硬件复杂度。由于仅在非零元素相乘时需要使用乘法器,若A_k矩阵中大部分元素均为0,则可减少乘法器的个数,因此希望A_k为稀疏矩阵。对于N=2^t,t=1,2,3,…的DFT矩阵F_N,请在满足约束1的条件下,对最优化问题(6)中的变量A和β进行优化,并计算最小误差( 即(6)的目标函数,下同)和方案的硬件复杂度C(由于本题中没有限定A_k元素的取值范围,因此在计算硬件复杂度时可默认q=16)。

  问题2:讨论通过限制A_k中元素实部和虚部取值范围的方式来减少硬件复杂度的方案。对于N=2^t,t=1,2,3,4,5的DFT矩阵F_N,请在满足约束2的条件下,对A和β进行优化,并计算最小误差和方案的硬件复杂度C。

  问题3:同时限制A_k的稀疏性和取值范围。对于N=2^t,t=1,2,3,4,5的DFT矩阵F_N,请在同时满足约束1和2的条件下,对A和β进行优化,并计算最小误差和方案的硬件复杂度C。

  问题4:进一步研究对其它矩阵的分解方案。考虑矩阵F_N=F_N1⊗F_N2,其中F_N1 和F_N2分别是N_1和N_2维的DFT矩阵,⊗表示Kronecker积(注意F_N非DFT矩阵)。当N_1=4, N_2=8时,请在同时满足约束1和2的条件下,对A和β进行优化,并计算最小误差和方案的硬件复杂度C。

  问题5:在问题3的基础上加上精度的限制来研究矩阵分解方案。要求将精度限制在0.1以内,即RMSE≤0.1。对于N=2^t,t=1,2,3…的DFT矩阵F_N,请在同时满足约束1和2的条件下,对A和β,P进行优化,并计算方案的硬件复杂度C。

  附录一:名词解释
  复数乘法次数/复乘次数:进行复数乘法的次数,例如(1+2j)×(2+2j)为一次复乘。
  硬件复杂度:本题中,仅考虑乘法器带来的硬件复杂度,硬件复杂度仅与乘法器个数和每个乘法器的复杂度相关
  乘法器个数:本题中,乘法器个数即为复乘次数
  单个乘法器的复杂度:单个乘法器的复杂度与乘法器的设计方法和输入数据的位宽等因素相关。在本题中,将乘法器的复杂度简化为仅与输入数据的取值范围相关。对于复数g∈{x+jy│x,y∈P},P={0,±1,±2,…,±2^(q-1) },其与任意复数z相乘的复杂度为q。

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

  离散傅里叶变换(Discrete Fourier Transform,DFT)傅里叶分析方法是信号分析的最基本方法,傅里叶变换是傅里叶分析的核心,通过它把信号从时间域变换到频率域,进而研究信号的频谱结构和变化规律。在芯片设计中,DFT计算的硬件复杂度与其算法复杂度和数据元素取值范围相关。算法复杂度越高、数据取值范围越大,其硬件复杂度就越大。常规的降低硬件复杂度的方法如快速傅里叶变换已经渐渐无法满足芯片日益增长的需求。因此,急需设计新的算法,此算法不仅能是误差控制在一定范围内,又能有效降低 DFT 过程带来的硬件复杂度过大的问题。
  针对第一问,本问不用考虑分解后矩阵A的取值范围的问题,只需要满足分解后的矩阵每行至多只有2个非零元素,以及最小误差尽可能低的约束条件下,计算出近似矩阵的硬件复杂度。本问选择了三种模型来计算 DFT 矩阵的最小误差和硬件复杂度。奇异值分解法通过特征向量将DFT矩阵进行分解,同时还达到了降维的目的,通过将DFT矩阵分解成三个矩阵来使误差达到最小;分块矩阵分解法通过将 DFT 矩阵分解成一个个小的分块矩阵,因为维数越小分块子矩阵形式越简单,误差显著降低;矩阵乘法拟合则利用 DFT 矩阵的对称性和穷举法将矩阵分解成多个矩阵连乘的形式。
  针对第二问,本问不用考虑每行非零元素个数的问题,只需要满足分解后的矩阵每个元素的取值范围,以及在N=2,4,8,16,32的情况以及最小误差尽可能低的约束条件下,计算出近似矩阵的硬件复杂度。本问选择了三种模型来计算 DFT 矩阵的最小误差和硬件复杂度。蝶形运算分解法运用了快速傅里叶变换的思想,在此基础上利用蝶形变换将DFT矩阵进行分解;分块矩阵分解法和矩阵乘法拟合在解决问题二是仍然适用。
  针对第三问,本问需要同时考虑每行非零元素个数的以及分解后的矩阵每个元素的取值范围的约束条件,在此基础上,在最小误差尽可能低的约束条件下,计算出近似矩阵的硬件复杂度。本问选择了两种模型来计算 DFT 矩阵的最小误差和硬件复杂度,即分块矩阵分解法和矩阵乘法拟合。这两种方法在多种约束条件下仍能够很好的解决问题。
  针对第四问,本问需要考虑如何对4点DFT矩阵与8点DFT矩阵的Kronecker积的矩阵FN进行矩阵分解,在最小误差尽可能低的约束条件下,计算出近似矩阵的硬件复杂度。本问选择通过SVD+穷举法的模型来计算DFT矩阵的最小误差和硬件复杂度。首先对4点DFT矩阵与8点DFT矩阵进行SVD分解,之后利用Kronecker积的性质将FN矩阵转化为多个矩阵相乘的形式。
  针对第五问,本问需要同时考虑每行非零元素个数的以及分解后的矩阵每个元素的取值范围的约束条件,在此基础上增加将精度限制在0.1以内,即RMSE≤0.1的要求,计算出近似矩阵的硬件复杂度。本问选择分块矩阵分解模型对第三问结果矩阵进行进一步优化,在满足题目要求下,计算出分解后矩阵的最小误差和硬件复杂度。

模型假设:

  1. 硬件复杂度仅考虑乘法器的复杂度,硬件复杂度与乘法器个数和每个乘法器的复杂度成正比。
  2. 单个乘法器的复杂度简化为仅与复数中实部和虚部的取值范围相关。
  3. 乘法器个数定义为复数乘法的次数,且与0,±1,±j±1±j相乘时不计入乘法次数。

问题分析:

  DFT 是对信号向量进行线性正交变换的一个过程,对一个 N 维的信号直接进行 N 点 DFT 需要进行N2次复数乘法和 N(N − 1)次加法,对于硬件复杂度和算力要求较高。所以需 要设计快速算法将 DFT 计算成本降低,通常使用的方式为使用快速傅里叶变换算法(FFT) 来实现 DFT 过程但 FFT 的硬件开销不满足现有需求需要设计方案降低 FFT 的硬件开销。 一种合理的方式为使用矩阵连乘来拟合 DFT 矩阵,通过设计合理的矩阵可以降低 FFT 中 的硬件开销并满足精度要求。 FFT 中的硬件复杂度主要由矩阵连乘中复数乘法的次数和乘法器的复杂度决定,减少 复数乘法的次数并降低每个乘法器的复杂度可以有效的使得 FFT 中的硬件开销变小。连乘 中矩阵尽可能稀疏会使得乘法的次数有效减少,而乘法器的复杂度可以通过减少乘法元素 的有效位数有效的降低乘法器的复杂度。因此为降低 FFT 中的硬件开销,需要对连乘中矩 阵的稀疏性和元素有效位数进行合理设计,在精度尽可能大的条件下硬件复杂度降低。
  在设计好的矩阵稀疏性和元素有效位数约束下,根据不同维度的 DFT 矩阵来优化需要 连乘的矩阵个数、每个矩阵元素的值和矩阵缩放因子来得到最优的矩阵连乘形式。但在规定矩阵元素虚部和实部均为整数的条件下,直接对每个矩阵元素中的值进行优化为一个庞 大的多元整数优化问题,不是一个明智的思路。因此需要分析 DFT 矩阵的性质和旋转因子Wn的性质并利用这些性质设计合理的优化方案,从而在可能的范围内求解出最合适的矩阵连乘形式。

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

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

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

程序代码:

部分程序代码如下:
NNN=8;
 O_FN=zeros(1,NNN);
 O_FN_decom= zeros(1,NNN);
 for i=3:NNN+2
 N=2^i;
 FN=produce_DFT(N);
 [FN_decom,N_length]=my_CT(N);
 O_FN(i−2)= calculate_On(FN,N);
 for j=1:N_length
 O_FN_decom(i−2)=O_FN_decom(i−2)+calculate_On(FN_decom{j},
 N);
 end
 end
 semilogy(2.^(3:NNN+2),O_FN,'−*')
 gridon
 holdon
 semilogy(2.^(3:NNN+2),O_FN_decom,'−*')
 for i=1:NNN
 line([2^(i+2),2^(i+2)],[O_FN(i),O_FN_decom(i)],'LineStyle','−−'
 ,'Color','g');
 end
 xlabel('N:矩阵维数')
 ylabel('C:硬件复杂度')
 legend('C(F_N)','C(F_N的精确分解)')
function result= produce_DFT(N)
 result=zeros(N,N);
 w=exp(((−2*pi)/N)*1i);
 result(:,1)=ones(N,1);
 temp=ones(N,1);
 for i=2:N
 temp(i)=w*temp(i−1);
 end
 result(:,2)=temp;
 for i=3:N
 result(:,i)=result(:,i−1).*temp;
 end
function [result,t]=my_CT(N)
 w=exp(((2*pi)/N)*1i);
 t=log2(N);
 result=cell(1,t+1);
 P_eye= eye(N);
 for i=1:t
 temp= zeros(N,N);
 P_temp= zeros(N,N);
 Ni=N/(2^(i−1));
 Ni_2= Ni/2;
 re_temp=zeros(Ni,Ni);
 P=zeros(Ni,Ni);
 for j=1:Ni/2
 re_temp(j,j)=1;
 re_temp(j,j+Ni_2)= w^(2^(i−1)*(j−1));
 P(j,2*j−1)=1;
 end
 for j=Ni_2+1:Ni
 re_temp(j,j−Ni_2)= 1;
 re_temp(j,j)=−w^(2^(i−1)*(j−1−Ni_2));
 P(j,2*(j−Ni_2))=1;
 end
 for j=1:2^(i−1)
 temp(1+Ni*(j−1):Ni*j,1+Ni*(j−1):Ni*j)=re_temp;
 P_temp(1+Ni*(j−1):Ni*j,1+Ni*(j−1):Ni*j)=P;
 end
 result{i}= temp;
 P_eye= P_temp*P_eye;
 end
 result{t+1}=P_eye;
 t=t+1;
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148158.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLO交通目标识别数据集(红绿灯-汽车-自行车-卡车等)

YOLO交通目标识别 数据集 模型 ui界面 ✓图片数量15000,xml和txt标签都有; ✓class:biker,car,pedestrian,trafficLight,trafficLight-Green,trafficLight-GreenLeft, t…

java se 快速入门

文章目录 java se 快速入门Java 简介Java的优点jdk 和 jre安装jdk配置环境变量Java 语法快速入门程序入口文件名类规范 基本语法注释变量和常量输入输出条件语句循环语句 基本数据类型Java字符串常用方法字符串拼接java字节数组和字符串相互转化java字符数组和字符串相互转换ja…

美畅物联丨技术前沿探索:H.265编码与畅联云平台JS播放器的融合应用

一、H.265 编码:视频压缩技术的重大变革 H.265,即被熟知为高效视频编码(HEVC,High Efficiency Video Coding),由国际电信联盟电信标准化部门视频编码专家组(ITU-T VCEG)与国际标准化…

去噪扩散隐式模型

dataset_name "datasets/oxford-102-flowers/" dataset_repetitions 2 # 数据集重复 num_epochs 25 image_size 64 # 模型训练和生成图像的大小 # KID 内核初始距离 kid_image_size 75 # 从噪声中逐步“去噪”或“扩散”到最终图像所需的步骤数。 kid_diffusi…

计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI

首先安装需要的python库, 安装完之后利用navicat导入数据库文件bili100.sql到mysql中, 再在pycharm编译器中连接mysql数据库,并在设置文件中将密码修改成你的数据库密码。最后运行app.py,打开链接,即可运行。 B站爬虫数…

VS code 创建与运行 task.json 文件

VS code 创建与运行 task.json 文件 引言正文创建 .json 文件第一步第二步第三步 运行 .json 文件 引言 之前在 VS code EXPLORER 中不显示指定文件及文件夹设置(如.pyc, pycache, .vscode 文件) 一文中我们介绍了 settings.json 文件,这里我…

商业终端架构技术-未来之窗行业应用跨平台架构

未来之窗行业应用跨平台架构 以下是对未来之窗行业应用跨平台架构中客户端的稳定优势和网页跨平台性质的扩展列举: 一、客户端的稳定优势: 1. 离线可用性 - 即使在没有网络连接的…

Redis的Key的过期策略是怎样实现的?

在学习Redis时,我们知道可以设置Key的过期时间,我们还知道,Redis一大特点–速度快。 那么当Redis中的数据量起来时,如果直接遍历所有的Key,那么对于Key过期时间的校验应该很费时间,那么Redis究竟是怎样做的…

前端vue-插值表达式和v-html的区别

创建vue实例的时候,可以有两种形式。 1.let appnew Vue({}) 2 const appnew Vue({}) 3 el是挂载点,是上面div的id值 4 data中的值可以展示在上面div中 5 v-html标签里面如果有内容,则我们的新内容会把标签里面的内容覆盖掉

2024 vue3入门教程:02 我的第一个vue页面

1.打开src下的App.vue,删除所有的默认代码 2.更换为自己写的代码, 变量msg:可以自定义为其他(建议不要使用vue的关键字) 我的的第一个vue:可以更换为其他自定义文字 3.运行命令两步走 下载依赖 cnpm i…

Java项目实战II基于Java+Spring Boot+MySQL的酒店客房管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在旅游与酒…

AI助力智慧农田作物病虫害监测,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建花田作物种植场景下棉花作物常见病虫害检测识别系统

智慧农业是一个很大的应用市场,将当下如火如荼的AI模型技术与现实的农业生产场景相结合能够有效提升生产效率,农作物在整个种植周期中有很多工作需要进行,如:浇水、施肥、除草除虫等等,传统的农业作物种植生产管理周期…

2024java高频面试-数据库相关

前言:趁着年轻,博主准备在拼一把,看能不能挑个可以干到退休的牛马工位!!! 废话不多说,面试真题赶紧一股脑倒进我的脑袋瓜子里吧!!! 事务四大特性&#xff1f…

268页PPT大型集团智慧工厂信息化顶层架构设计(2024版)

智能制造装备是高端制造业的关键,通过整合智能传感、控制、AI等技术,具备了信息感知、分析规划等智能化功能,能显著提升加工质量、效率和降低成本。该装备是先进制造、信息、智能技术的深度融合。其原理主要包括物联网集成、大数据分析与人工…

计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习

《HadoopSpark知网文献论文推荐系统》开题报告 一、研究背景及意义 随着互联网技术的迅猛发展和大数据时代的到来,学术文献的数量呈爆炸式增长,用户面临着严重的信息过载问题。如何高效地从海量文献中筛选出用户感兴趣的论文,成为当前学术界…

黑鲨机型“工程固件” 清除nv资源预览 写入以及修复基带解析

黑鲨手机是专门为中国玩家制作是游戏科技手机。液冷散热技术被第一次运用在手机上,为手机散热领域竖立了新的标杆,同时通过“X元素”,运用跑车流线型设计,打造属于黑鲨的设计语言。超旗舰的硬件配置,辨识度极高的外观设计,让黑鲨手机成为了硬核玩家的标配。 黑鲨机型从1…

Web开发:Thymeleaf模板引擎

1. Thymeleaf 简介 Thymeleaf 是一个现代的服务器端模板引擎,用于生成 HTML、XML、JavaScript 和 CSS。它的设计理念是使模板能够自然地在 Web 浏览器中呈现,同时允许动态生成内容。 2. 最佳实践总结 2.1 项目结构和模板组织 保持清晰的目录结构&…

钢铁焦化水泥超低排的原因分析有哪些建议

实施超低排放的原因分析及其建议,朗观视觉小编建议,大家可以从以下几个方面进行阐述: 一、原因分析 环境保护需求: 随着环保意识的增强和环保法规的日益严格,减少大气污染物排放已成为行业发展的必然趋势。钢铁、焦化…

MT8370|MTK8370(Genio 510 )安卓核心板参数介绍

MTK Genio 510 (MT8370)安卓核心板是一款极为先进的高性能平台,专为满足边缘处理、先进多媒体功能及全面的连接需求而设计,适用于多种人工智能(AI)和物联网(IoT)应用场景。它具备多个高分辨率摄像头支持和可联网触摸屏显示,适用于使用多任务高…

Swagger 概念和使用以及遇到的问题

前言 接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变 成重中之重。接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新, 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不…