同址计算详细资料大全

网上科普有关“同址计算详细资料大全”话题很是火热,小编也是针对同址计算详细资料大全寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。 同址...

网上科普有关“同址计算详细资料大全”话题很是火热,小编也是针对同址计算详细资料大全寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

同址计算(Identical Address Operation)是FFT中的主要算法,因其在计算时总是用当前层替代前一层,具有地址不变的关系而得名。也就是输出数据使用原输入数据结点所占用的记忆体,输出、输入数据利用同一记忆体单元的这种蝶形计算称为同址计算,该算法在计算全部分析点数据时具有很高的效率。

基本介绍 中文名 :同址计算 外文名 :Identical?Address?Operation 一级学科 :信息与通信工程 二级学科 :信号与信息处理 优点 :节省存储单元 缺点 :计算局部谱线时存在冗余 算法描述,算法优点,算法缺点, 算法描述 为描述清楚起见,对右图作一些约定:规定从左到右每一列为一层,用 m(m =1 , ? , L) 表示。节点所在行从上到下每一行为一个自然序号用 k(k =0 , ? , N -1 ) 表示 , 这样节点就表示第 m 层的第 k 个节点 , 习惯上将第一列和最后一列的层下标省去 , 分别表示为和。 “同址运算”叠代算法是从第一层开始,以 m 层的各个节点 Xm , k 作为已知点 , 将 (m +1 ) 层的各个节点 Xm +1 , k 叠代出来,直到算出最后一层为止,为了节省存储空间,将已算得的对应节点数据替换前一节点,对应数据作为下一轮叠代的已知数据,“同址运算”由此得名。 算法优点 首先,该算法容易实现,利用旋转因子中出现1处进行基分解(split-radix)省去复数乘积而使DFT速度进一步提高,该算法在计算全部谱线时效率很高。 其次,每一级的蝶形的输入与输出在运算前后可以存储在同一地址的存储单元中,这种同址运算的优点是可以节省存储单元,从而降低对计算机存储量的要求或降低硬体实现的成本。 算法缺点 虽然该算法在计算全部谱线时效率很高,但是在计算局部谱线时存在冗余。 分析FFT结果的特点可知 X(k) 与 X(N - k) 有如下关系: 上式表明对 N 点的FFT只要求出 ( 0- N/ 2 ) 点 , 利用对偶规则可以得到另外一半 , 而不必算出全部点,因此存在冗余。

如何实现128点的基2-FFT算法,并与MATLAB的fft算法作对比分析.

FFT(快速傅里叶变换)是DFT的一种特殊情况,就是当运算点的个数是2的整数次幂的时候进行的运算(不够用0补齐)。

FFT计算原理及流程图:

原理:FFT的计算要求点数必须为2的整数次幂,如果点数不够用0补齐。例如计算{2,3,5,8,4}的16点FFT,需要补11个0后进行计算。FFT计算运用蝶形运算,在蝶形运算中变化规律由W(N, p)推导,其中N为FFT计算点数,J为下角标的值。

L = 1时,W(N, p) = W(N, J) = W(2^L, J),其中J = 0;

L = 2时,W(N, p) = W(N, J) = W(2^L, J),其中J = 0, 1;

L = 3时,W(N, p) = W(N, J) = W(2^L, J),其中J = 0, 1, 2, 3;

所以,W(N, p) = W(2^L, J),其中J = 0, 1, ..., 2^(L-1)-1

又因为2^L = 2^M*2^(L-M) = N*2^(L-M),这里N为2的整数次幂,即N=2^M,

W(N, p) = W(2^L, J) = W(N*2^(L-M), J) = W(N, J*2^(M-L))

所以,p = J*2^(M-L),此处J = 0, 1, ..., 2^(L-1)-1,当J遍历结束但计算点数不够N时,J=J+2^L,后继续遍历,直到计算点数为N时不再循环。

流程图:

实现代码:

/*======================================================================?

*?方法名:?fft?

*?方法功能:计算数组的FFT,运用蝶形运算?

*?

*?变量名称:?

*?yVector-?原始数据?

*?length-?原始数据长度?

*?N?-?FFT计算点数?

*?fftYreal?-?FFT后的实部?

*?fftYImg-?FFT后的虚部?

*?

*?返回值:?是否成功的标志,若成功返回true,否则返回false?

*=====================================================================*/?

+?(BOOL)fft:(floatfloat?*)yVector?andOriginalLength:(NSInteger)length?andFFTCount:(NSInteger)N?andFFTReal:(floatfloat?*)fftYReal?andFFTYImg:(floatfloat?*)fftYImg?

{?

//?确保计算时时2的整数幂点数计算?

NSInteger?N1?=?[self?nextNumOfPow2:N];?

//?定义FFT运算是否成功的标志?

BOOL?isFFTOK?=?false;?

//?判断计算点数是否为2的整数次幂?

if?(N?!=?N1)?

{?

//?不是2的整数次幂,直接计算DFT?

isFFTOK?=?[self?dft:yVector?andOriginalLength:length?andFFTCount:N?andFFTReal:fftYReal?andFFTYImg:fftYImg];?

//?返回成功标志?

return?isFFTOK;?

}?

//?如果计算点数位2的整数次幂,用FFT计算,如下?

//?定义变量?

float?yVectorN[N1];?//?N点运算的原始数据?

NSInteger?powOfN?=?log2(N1);//?N?=?2^powOfN,用于标记最大运算级数(公式中表示为:M)?

NSInteger?level?=?1;//?运算级数(第几次运算),最大为powOfN,初值为第一级运算(公式中表示为:L)?

NSInteger?lineNum;?//?行号,倒序排列后的蝶形运算行号(公式中表示为:k)?

float?inverseOrderY[N1];//?yVector倒序x?

NSInteger?distanceLine?=?1;?//?行间距,第level级运算每个蝶形的两个节点距离为distanceLine?=?2^(L-1)(公式中表示为:B)?

NSInteger?p;//?旋转因子的阶数,旋转因子表示为?W(N,?p),p?=?J*2^(M-L)?

NSInteger?J;//?旋转因子的阶数,旋转因子表示为?W(2^L,?J),J?=?0,?1,?2,...,?2^(L-1)?-?1?=?distanceLine?-?1?

float?realTemp,?imgTemp,?twiddleReal,?twiddleImg,?twiddleTheta,?twiddleTemp?=?PI_x_2/N1;?

NSInteger?N_4?=?N1/4;?

//?判断点数是否够FFT运算点数?

if?(length?<=?N1)?

{?

//?如果N至少为length,先把yVector全部赋值?

for?(NSInteger?i?=?0;?i?<?length;?i++)?

{?

yVectorN[i]?=?yVector[i];?

}?

if?(length?<?N1)?

{?

//?如果?N?>?length?后面补零?

for?(NSInteger?i?=?length;?i?<?N1;?i++)?

{?

yVectorN[i]?=?0.0;?

}?

}?

}?

else?

{?

//?如果?N?<?length?截取相应长度的数据进行运算?

for?(NSInteger?i?=?0;?i?<?N1;?i++)?

{?

yVectorN[i]?=?yVector[i];?

}?

}?

//?调用倒序方法?

[self?inverseOrder:yVectorN?andN:N1?andInverseOrderVector:inverseOrderY];?

//?初始值?

for?(NSInteger?i?=?0;?i?<?N1;?i++)?

{?

fftYReal[i]?=?inverseOrderY[i];?

fftYImg[i]?=?0.0;?

}?

//?三层循环?

//?第三层(最里):完成相同旋转因子的蝶形运算?

//?第二层(中间):完成旋转因子的变化,步进为2^level?

//?第一层(最外):完成M次迭代过程,即计算出x(k)?=?A0(k),?A1(k),...,Am(k)?=?X(k)?

//?第一层循环?

while?(level?<=?powOfN)?

{?

distanceLine?=?powf(2,?level?-?1);?//?初始条件?distanceLine?=?2^(level-1)?

J?=?0;?

NSInteger?pow2_Level?=?distanceLine?*?2;//?2^level?

NSInteger?pow2_NSubL?=?N1/pow2_Level;?//?2^(M-L)?

//?第二层循环?

while?(J?<?distanceLine)?

{?

p?=?J?*?pow2_NSubL;?

lineNum?=?J;?

NSInteger?stepCount?=?0;?//?J运算的步进计数?

//?求旋转因子?

if?(p==0)?

{?

twiddleReal?=?1.0;?

twiddleImg?=?0.0;?

}?

else?if?(p?==?N_4)?

{?

twiddleReal?=?0.0;?

twiddleImg?=?-1.0;?

}?

else?

{?

//?计算尤拉公式中的θ?

twiddleTheta?=?twiddleTemp?*?p;?

//?计算复数的实部与虚部?

twiddleReal?=?cos(twiddleTheta);?

twiddleImg?=?-11?*?sin(twiddleTheta);?

}?

//?第三层循环?

while?(lineNum?<?N1)?

{?

//?计算下角标?

NSInteger?footNum?=?lineNum?+?distanceLine;?

/*---------------------------------------?

*?用复数运算计算每级中各行的蝶形运算结果?

*?X(k)?=?X(k)?+?X(k+B)*W(N,p)?

*?X(k+B)?=?X(k)?-?X(k+B)*W(N,p)?

*---------------------------------------*/?

realTemp?=?fftYReal[footNum]?*?twiddleReal?-?fftYImg[footNum]?*?twiddleImg;?

imgTemp?=?fftYReal[footNum]?*?twiddleImg?+?fftYImg[footNum]?*?twiddleReal;?

//?将计算后的实部和虚部分别存放在返回数组中?

fftYReal[footNum]?=?fftYReal[lineNum]?-?realTemp;?

fftYImg[footNum]?=?fftYImg[lineNum]?-?imgTemp;?

fftYReal[lineNum]?=?fftYReal[lineNum]?+?realTemp;?

fftYImg[lineNum]?=?fftYImg[lineNum]?+?imgTemp;?

stepCount?+=?pow2_Level;?

//?行号改变?

lineNum?=?J?+?stepCount;?

}?

//?旋转因子的阶数变换,达到旋转因子改变的效果?

J++;?

}?

//?运算级数加一?

level++;?

}?

isFFTOK?=?true;?

return?isFFTOK;?

}

我只能给你一个fft算法,流程图说起来有点复杂,可以matlab里面的函数tic(开启时钟)t=toc(关闭时钟)t就是运算过程的时间

当然tic放程序开始,toc放结尾,来分析之即可

function d=lxfft(x)

n=length(x);

if n>2

for i=0:n/2-1

x1(i+1)=x(2*i+1);

x2(i+1)=x(2*i+2);

end

X1=lxfft(x1);

X2=lxfft(x2);

for i=0:n/2-1

X2(i+1)= X2(i+1)*exp(-j*2*pi/n*i);//旋转因子

d(i+1)=X1(i+1)+X2(i+1);

d(i+n/2+1)=X1(i+1)-X2(i+1);

end

else

d(1)=x(1)+x(2);

d(2)=x(1)-x(2);

end

end

关于“同址计算详细资料大全”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[狼家二萌神]投稿,不代表空气号立场,如若转载,请注明出处:https://haokongqi.org.cn/cshi/202504-13649.html

(13)

文章推荐

  • 实测教程“大王联盟挂哪里有(影视大全免费下载安全下载)

    网上科普有关“大王联盟挂哪里有”话题很是火热,小编也是针对大王联盟挂哪里有寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,大王联盟挂哪里有这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总

    2025年03月05日
    14
  • 实测教程“微乐跑得快透视挂收费安装(山羊模拟器)

    网上科普有关“微乐跑得快透视挂收费安装”话题很是火热,小编也是针对微乐跑得快透视挂收费安装寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,微乐跑得快透视挂收费安装这款游戏可以开挂的,确实是有挂的,通过微信【游戏】很多玩家在这款游戏中打牌都会发

    2025年03月05日
    13
  • 分享干货”圣光大厅牛牛挂(详细真的有挂)

    分享干货”圣光大厅牛牛挂网上科普有关“分享干货”圣光大厅牛牛挂”话题很是火热,小编也是针对分享干货”圣光大厅牛牛挂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,分享干货”圣光大厅牛牛挂这款游戏可以开挂的,确实是有挂的,通过微信【】很

    2025年03月07日
    16
  • 疫情中的青年英雄人物(疫情中的青年事迹)

    今天给各位分享疫情中的青年英雄人物的知识,其中也会对疫情中的青年事迹进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!新时代青年人物事迹新时代青年楷模例子有:航天科学家刘洋刘洋作为我国首位女航天员,体现了不畏困难、敢于探索的航天精神。她的成功代表着青年在科技领域的突破与担当

    2025年03月09日
    24
  • 武昌工学院算好二本吗

    网上科普有关“武昌工学院算好二本吗”话题很是火热,小编也是针对武昌工学院算好二本吗寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。算。根据高考100网得知,武昌工学院是一所通过了教育部备案的正规本科大学。从各方面来看,武昌工学院的综合实力、师资力量都不弱,所以

    2025年03月11日
    127
  • 乌克兰为什么称为欧洲的子宫?

    网上科普有关“乌克兰为什么称为欧洲的子宫?”话题很是火热,小编也是针对乌克兰为什么称为欧洲的子宫?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。乌克兰被称为欧洲的子宫是因为乌克兰是欧洲最便宜的**地点,也是全球**产业发展的新场所。简介:乌克兰共和国(Ukr

    2025年03月14日
    188
  • 学前班第一学期幼儿评语

    网上科普有关“学前班第一学期幼儿评语”话题很是火热,小编也是针对学前班第一学期幼儿评语寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。 在平平淡淡的日常中,大家都尝试过写评语吧,评语能够使被评价对象思想上产生与形成自觉地按目标的要求和步骤前进的意识。你所见过的

    2025年03月16日
    190
  • 世界上最厉害的足球员组成的一支球队有那些人

    网上科普有关“世界上最厉害的足球员组成的一支球队有那些人”话题很是火热,小编也是针对世界上最厉害的足球员组成的一支球队有那些人寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。1930年世界杯最佳阵容:(235)守门员:雅沃维奇(南斯拉夫)后卫:伊夫科维奇(南斯

    2025年03月20日
    18
  • 外国人 英语怎么说

    网上科普有关“外国人英语怎么说”话题很是火热,小编也是针对外国人英语怎么说寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。外国人的英文:foreigner、gaijin一、foreigner英[?f?r?n?(r)]?美[?f?:r?n?(r)]n.

    2025年03月24日
    16
  • 武汉疫情持续多久(武汉疫情持续多久0增长)

    本篇文章给大家谈谈武汉疫情持续多久,以及武汉疫情持续多久0增长对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。武汉封城多长时间?武汉封城一共76天。武汉封城开始于2020年1月23日10时,当时为了控制新冠疫情的扩散,武汉市关闭了机场、火车站等离汉通道。这一措施一直持续到2020年4月8日

    2025年03月25日
    19

发表回复

本站作者后才能评论

评论列表(4条)

  • 狼家二萌神
    狼家二萌神 2025年04月20日

    我是空气号的签约作者“狼家二萌神”!

  • 狼家二萌神
    狼家二萌神 2025年04月20日

    希望本篇文章《同址计算详细资料大全》能对你有所帮助!

  • 狼家二萌神
    狼家二萌神 2025年04月20日

    本站[空气号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 狼家二萌神
    狼家二萌神 2025年04月20日

    本文概览:网上科普有关“同址计算详细资料大全”话题很是火热,小编也是针对同址计算详细资料大全寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。 同址...