您的位置:首页 > 科技 > IT业 > 软件技术专升本可以报什么专业_睡不着偷偷看b站_百度搜索最多的关键词_深圳推广优化公司

软件技术专升本可以报什么专业_睡不着偷偷看b站_百度搜索最多的关键词_深圳推广优化公司

2024/11/17 15:32:23 来源:https://blog.csdn.net/2401_82505179/article/details/143189619  浏览:    关键词:软件技术专升本可以报什么专业_睡不着偷偷看b站_百度搜索最多的关键词_深圳推广优化公司
软件技术专升本可以报什么专业_睡不着偷偷看b站_百度搜索最多的关键词_深圳推广优化公司

随着芯片的发展,DFT计算的硬件复杂度与其算法复杂度和数据元素取值范围相关,如何降低硬件复杂度至关重要。本文针对 DFT 矩阵分解中的问题,基于稀疏矩阵连乘拟合的思想,以最小化误差和硬件复杂度为目标,建立了 DFT 类矩阵的整数分解逼近模型,并使用蝶形分解算法、遗传算法、Feig-Winograd法和优化搜索算法对模型进行求解,同时我们提出了两种新的“混合积分解—降维寻优”算法来拟合Kronecker积矩阵。    

题一的目标是限制乘法器的个数从而降低硬件复杂度。对此,本文采用 Cooley-

二的目标是解矩中的元素值,此采了基 Feig-Winograd 阵映射的算法、遗传算法、序列二次规划算法,评估了三种不同算法的误差和复杂度,三种算法的复杂度都为 0遗传算法的精度最高,RMSE 小可达 0.15

题三的目标是保证矩阵稀疏性的同时限制元素范围,除了采用遗传算法,还提出了一种新的优化搜索算法保证分解结果的精度和复杂度。两种算法的硬件复杂度都为0遗传算法分解的矩阵RMSE0.08,优化搜索算法RMSE小可达0.03因为优化搜索算法优秀的性能和较短的训练时间,问题五选择采用此方法进行求解。

题四的目标是分解DFT矩阵的Kronecker并且要同时限制分解矩阵的稀疏性和元素范围。对此,结合 Cooley-Tukey算法、Kronecker 积的运算性质、矩阵初等行变换、遗传算法这四种基本原理,本文提出两种新的“混合积分解—降维寻优法”。这两种方法都能达到RMSE小可达0.05其中,方法II的复杂度为0, 方法I的复杂度如6.4 6 所示。

DFT矩阵分解精度RMSE可达0.095

最后,我们通过衡量最小误差和硬件复杂度,对提出的模型进行全面的评价:本文

的模型贴合实际,能合理解决提出的问题,计算得出的RMSE较小,能很好地拟合DFT

矩阵,部分模型复杂度较低,该模型在大规模DFT类矩阵的整数分解方面也能使用。

关键词:疏矩阵,蝶形算法,遗传算法,优化搜索,混合积分解—降维寻优

1  问题重述

1.1  题背景

离散傅里叶变换(Discrete Fourier TransformDFT)作为一种基本工具广泛应用于工程、科学以及数学领域。例如,通信信号处理中,常用DFT实现信号的正交频分复用(Orthogonal Frequency Division MultiplexingOFDM系统的时频域变换。另外,在信道估计中,也需要用到逆DFTIDFT)和DFT以便对信道估计结果进行时域降噪。

在芯片设计中,DFT 计算的硬件复杂度与其算法复杂度和数据元素取值范围相关。算法复杂度越高、数据取值范围越大,则硬件复杂度就越大。目前在实际产品中,一般采用快速傅里叶变换(Fast Fourier TransformFFT算法来快速实现DFT其利用DFT变换的各种性质,可以大幅降低DFT的计算复杂度。然而,随着无线通信技术的演进,天线阵面越来越大,通道数越来越多,通信带宽越来越大,对 FFT 的需求也越来越大,从而导致专用芯片上实现FFT的硬件开销也越大。为进一步降低芯片资源开销,一种可行的思路是将DFT阵分解成整数矩阵连乘的形式。

          𝑁时域一信号𝑤0, 𝑤1, , 𝑤𝑁−1DFT 后得X𝑗𝑗 = 0,1, , 𝑁 1)由下式给出(其中j为虚数单位,下同):

𝑁−1

 X𝑗 = 𝑤𝑛 𝑒𝑗2𝜋𝑛𝑗

𝑛=0

写成矩阵形式为:

 

 , 𝑗 = 0,1,2, , 𝑁 1

 𝐗 = 𝐅𝑁𝐱

其中x= [𝑤0  𝑤1 ⋯  𝑤𝑁−1]T为时域信号向量,𝐗 = [X0  X1 ⋯  X𝑁−1]T为变换后的频域

信号向量,𝐅𝑁DFT阵,形式如下:

 𝐅𝑁 = 1

√𝑁

 1

1

1

1

1

, 𝑤 = e𝑗2𝜋

𝑤

𝑤2

𝑤𝑁−1

1

𝑤2

𝑤4

𝑤2(𝑁−1)

[ 1 𝑤𝑁−1     𝑤2(𝑁−1)            𝑤(𝑁−1)(𝑁−1)]

由于DFT矩阵的特殊结构,存在很多方法加速傅里叶变换的计算,其中,分治的策

略以及蝶形计算单元的优化是 DFT 性能的关键。下面分别给出用 FFT 和矩阵连乘拟合近似计算DFT的具体思路。

          FFT 思路FFT 采用蝶形运算的思想,以 radix-3 蝶形计算为例,其计算过程可以表示为:

X0

1

0

1

0

      0−1 ] [

1

0

1

0

0

𝑤0

]

1 2

0

 [

X1

] = [ 1

−3

] [ 0

1

1

] [

𝑤1

X2         1     −3      1     0     0       √3𝑗⁄       0   1               −1             𝑤2

2

可以看到蝶形的设计相对于直接 DFT 矩阵乘积的形式大幅降低了复数乘法运算的

次数。

阵连乘拟合思路:DFT可以用传统的蝶形计算方法精确实现,也可以用一种矩阵乘法拟合近似获得,其核心思想是将DFT矩阵近似表达为一连串稀疏的、元素取值有限的矩阵连乘形式。

可以看到在该方案中,分解后的矩阵元素均为整数,从而降低了每个乘法器的复

杂度;另外𝐀1~𝐀4的稀疏特性可以减少乘法运算数量。可以看出,这其实是一种精度与硬件复杂度的折中方案,即损失了一定的计算精度,但是大幅降低了硬件复杂度。

在对输出信噪比要求不高的情况下可以优先考虑此类方案。

 

 

1.2  题提出

题一:首先通过减少乘法器个数来降低硬件复杂度。由于仅在非零元素相乘时需

要使用乘法器,若𝐀𝑗矩阵中大部分元素均为0则可减少乘法器的个数,因此希望𝐀𝑗为稀疏矩阵。对于𝑁 = 2𝑡, 𝑡 = 1,2,3, DFT矩阵𝐅𝑁,请在满足约束1的条件下,对最优化问题(6)中的变量𝓐𝛽进行优化,并计算最小误差( (6)的目标函数,下同)和方案

的硬件复杂度𝐶(由于本题中没有限定𝐀𝑗元素的取值范围,因此在计算硬件复杂度时可默认𝑞 = 16

题二:讨论通过限制𝐀𝑗中元素实部和虚部取值范围的方式来减少硬件复杂度的方案。对于𝑁 = 2𝑡, 𝑡 = 1,2,3,4,5DFT矩阵𝐅𝑁,请在满足约束2的条件下,对𝓐𝛽进行优化,并计算最小误差和方案的硬件复杂度𝐶

题三:同时限制𝐀𝑗的稀疏性和取值范围。对于𝑁 = 2𝑡, 𝑡 = 1,2,3,4,5 DFT 矩阵𝐅𝑁,请在同时满足约束 1 2的条件下,对𝓐𝛽进行优化,并计算最小误差和方案的硬件复杂度𝐶

题四:进一步研究对其它矩阵的分解方案。考虑矩阵𝐅𝑁 = 𝐅𝑁1 𝐅𝑁2其中𝐅𝑁1𝐅𝑁2分别是𝑁1𝑁2维的DFT阵,表示Kronecker(注意𝐅𝑁DFT矩阵)。当𝑁1 = 4, 𝑁2 = 8时,请在同时满足约束 1 2 的条件下,对𝓐𝛽进行优化,并计算最小误差和方案的硬件复杂

题五:在问题3的基础上加上精度的限制来研究矩阵分解方案。要求将精度限

制在0.1以内,即RMSE0.1。对于𝑁 = 2𝑡, 𝑡 = 1,2,3,4,5DFT矩阵𝐅𝑁,请在同时满足约束12的条件下,对𝓐𝛽                                                                           进行优化,并计算方案的硬件复杂度𝐶

6.4  果与分析

得到两种方法的性能对比如6.4 6 所示:

6 混合积分解—降维寻优法性能对比

1

2

RMSE

0.0323

0.0589

件复杂度C

  640

0

如上表所示,两种方法都可以得到低于0.1RMSE值。相对而言,方法1具有更高的拟合精度,但复杂度也随之增大。方法2牺牲了一定的拟合精度,但大大降低了复杂度。两种方法应根据实际工程的指标要求进行选择。

6.5  结与评价

6.5.1 模型优点

1)矩阵降维处理。利用 Kronecker 积的性质,把高维矩阵分解转化为低维矩阵分解,同时在寻优的时候不必对 32 阶矩阵寻优,只需对 8 阶矩阵寻优,和问题三相比,问题四只是目标函数有所变化,寻优空间并未增大;
2稀疏度高。由于初等变换矩阵和对角矩阵一定是稀疏矩阵,所以从初等变换的角度出发,把矩阵逐一分解,在满足约束1的条件下适当地把一些初等矩阵合并相乘从而减少子矩阵的个数;
3)较理想的寻优起点。先采用精确分解法得到满足约束 1 的子矩阵,再使用寻优算法求出同时满足约束1和约束2的最优解,这样会容易得到更理想的最优解;
4较完整的数学理论支撑。本文提出的“混积分解法”是根据DFT矩阵的特征和混积的性质进行有限步骤的矩阵分解。该分解过程有很强的规律性,论文简要总结了这些规律,并给出较详细的公式推导。该理论依据对于更高阶的 DFT 积矩阵分解有重要的参考价值。

6.5.2 模型缺点

随着矩阵阶数的增大,DFT 矩阵经过 Cooley-Tukey 算法分解后的稀疏子矩阵的规律性可能会越复杂,DFT混积矩阵分解后的数学表达式可能也会越复杂。因此,DFT混积矩阵分解的数学表达式还有优化的空间。

 

7  问题五的模型建立与求解

7.1  题分析

问题五在问题三的基础上增加了RMSE限制,主要实现难点是如何调整稀疏矩阵元

素的取值范围来满足

RMSE0.1

,并权衡硬件复杂度C。该问题的解决思路基于问题三

的实现算法,对取值范围P进行递增搜索,使RMSE最小。 

7.5  结与评价

测试性能表来看优化搜索算法在保证RMSE 的同时也使硬件复杂度降到最低,

并且优化了稀疏矩阵元素的取值范围P优化搜索代码的缺点是需要遍历可能的复数取值,取值范围P越大需要迭代的次数就越多,训练时间相应增加很多。不过综合来看优化搜索方法是一个不错的选择。

8  总结与展望

经过建模与分析,本文较好地解决了 DFT 阵分解的问题,有效降低了硬件计算复杂度,对信号的波束成形具有重大意义。针对各种约束提出了不同的算法,不过拟合

精度还有提高的空间,可以优化代码继续改进。本文针对 DFT 矩阵分解作出的贡献主要包括以下几方面:
          1.针对问题一给出了基于Cooley-Tukey算法的分解方法,具有极高的准确性。      2.针对问题二采用了基于Feig-Winograd矩阵映射的算法、遗传算法、序列二次规划算法进行分解,分析了各自的优劣势。

          3.针对问题三采用了遗传算法,并提出了一种新的优化搜索法,在极低的复杂度下也能分解出满足题目约束的稀疏矩阵。

          4.针对问题四提出了两种新的基于混合积分解-降维寻优的算法,分解出的矩阵完全符合题目条件,RMSE都达到了0.05

5.针对问题五继续改进了优化搜索算法,在N=2481632的情况下全部满足

RMSE0.1

的要求,求出的稀疏矩阵复杂度都为0,极大地降低了硬件计算难度。

         DFT矩阵分解应用广泛,难点在于保证低复杂度的情况下还要求较高的拟合精度,目前的分解方法仍比较有限,需要进一步对分解方法进行研究,改进搜索算法。 

 

clc;clear;

%参数设置

N=32;%NDFT矩阵

M=log2(N);%的数量

FN = dftmtx(N)/sqrt(N);

E = cell(1,N);

A = cell(1,M);

%%%%%步骤一:求变换矩阵P

for i=1:N

 e=zeros(N,1);

 e(i)=1;

 E{i}=e;

end

%蝶形倒序

sel_0=[1:N];

sel=permute(reshape(sel_0,2*ones(1,M)),M:-1:1);

sel=sel(:);

%产生蝶形变换矩阵P

P=[];

for i =1:N

 P=[P,E{sel(i)}];

end

%%test

% a=[1,2,3,4,5,6,7,8].';

% c=P*a;

%%%%步骤二:求FFT蝶形因子,即待分解的矩阵A1~Ak

for i=1:M%NDFT矩阵需要分解成M个矩

 n=2^i;%i个矩阵是基n-fft运算

 d1=eye(n/2);

 d2=[];

 for j=1:n/2

 d2=blkdiag(d2,exp(-1j*2*pi*(j-1)/n));

 end

 I=[d1,d2;

 d1,-d2];

 Atemp=[];

 for k=1:N/n

 Atemp=blkdiag(Atemp,I);

 end

 A{i}=Atemp;

end

 

%Initial

N = 8;

q = 3;

W = DFT_matrix(N);

P = [-4,-2,-1,0,1,2,4];

iter = 1000;

disp(['    N=' num2str(N) '  ']);

[esti_W,min_err] = mtx_FWdecom1(W,P,iter);

%calculate complexity

simple_num=[0,1,-1,1j,-1j];

A1=ones(N,N);

A_round=roundn(esti_W,-6);

A_pos_dir=A1-ismember(A_round,simple_num);

C = q * sum(sum(A_pos_dir));

function [esti_W,min_err] = mtx_FWdecom1(W,P,iter) N = size(W,1);

min_err = inf;

alpha = zeros(1,N/4);

alpha(1) = 1;

A00 = zeros(N/2,N/2);

for i = 1:iter

 for q = 2:(length(alpha)-1)    

 numSelect = 2;

 randomIndex = randperm(length(P),numSelect);

 randomElements = P(randomIndex);

 a = randomElements(1) + 1j*randomElements(2);

 alpha(q) = a;

 end

 A00(1,:) = 1;

 A00(:,1) = 1;

 for m = 2:N/4

 for n = m:N/4

 p = mod(m,N/2) + mod(n,N/2);

 t = mod(m,N/4) + mod(n,N/4);

 a = (-1)^t;

 b = (-1j)^p;

 c = alpha(mod(n*m,N/4)+1);

 A00(m,n) = a*b*c;

 A00(n,m) = A00(m,n);

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com