同址计算详细资料大全

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

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

同址计算(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://www.haokongqi.org.cn/cshi/202505-13649.html

(17)

文章推荐

  • 实测教程“微乐湖北麻将想买个挂(苹果越狱助手)

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

    2025年03月05日
    16
  • 分享干货”新九游怎么开挂”(其实是有挂)

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

    2025年03月08日
    13
  • 新冠疫情是从几月开始的(新冠疫情从什么时候开始的?)

    今天给各位分享新冠疫情是从几月开始的的知识,其中也会对新冠疫情从什么时候开始的?进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!中国新冠疫情开始和结束时间1、年12月31日,新型冠状病毒肺炎(COVID-19)疫情开始在中国武汉市爆发。2020年1月20日,中国国家卫生健康委

    2025年03月10日
    36
  • 天天刷手机会让你不愿意交谈了吗?

    网上科普有关“天天刷手机会让你不愿意交谈了吗?”话题很是火热,小编也是针对天天刷手机会让你不愿意交谈了吗?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。我们正处于既难以独处,也难以同他人相处的危机。我们已经忘记了如何独处,如何专注,如何面对面的无法预料

    2025年03月13日
    200
  • 武汉纺织大学外经贸学院是几本院校?

    网上科普有关“武汉纺织大学外经贸学院是几本院校?”话题很是火热,小编也是针对武汉纺织大学外经贸学院是几本院校?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。武汉纺织大学外经贸学院是二本。武汉纺织大学外经贸学院是2002年经国家教育部批准、由武汉纺织大学和美联

    2025年03月17日
    167
  • 玩了筷仙和笔仙。没请走,去拜菩萨可以吗-

    网上科普有关“玩了筷仙和笔仙。没请走,去拜菩萨可以吗?”话题很是火热,小编也是针对玩了筷仙和笔仙。没请走,去拜菩萨可以吗?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。在佛教的施食法布施鬼道饮食的仪轨中最后有一个发遣咒请鬼神来饮食最后结束的时候要

    2025年03月24日
    30
  • 成都疫情结束预计时间表格(成都疫情大概什么时候解除)

    本篇文章给大家谈谈成都疫情结束预计时间表格,以及成都疫情大概什么时候解除对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。成都什么时候完全解封?成都市新型冠状病毒肺炎疫情防控指挥部发布最新通告,明确自2022年9月5日0时起,成都市范围内将继续开展全员核酸检测。在此期间,全体居民原则居家,以

    2025年03月11日
    35
  • 疫情三次爆发是哪一年(疫情爆发是第几年)

    今天给各位分享疫情三次爆发是哪一年的知识,其中也会对疫情爆发是第几年进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!新疆疫情哪一年开始的1、新疆的疫情是从2020年开始的,断断续续的零星出现。其中乌鲁木齐市经历了三次封城,第一次,2020年1月27日,解封,3月4日。第二次,

    2025年03月12日
    31
  • 李兰娟在新冠疫情中的贡献(李兰娟在这次疫情中的主要事迹)

    本篇文章给大家谈谈李兰娟在新冠疫情中的贡献,以及李兰娟在这次疫情中的主要事迹对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。作为传染病学专家,李兰娟为这次我国抗击疫情做出了什么贡献?1、李文娟抗击疫情做出的贡献有:在这次疫情中,已经74岁的李兰娟院士,带领自己团队,赶赴武汉,与新型冠状病毒

    2025年03月20日
    23
  • 钟南山在抗击疫情中表现如何?(钟南山在抗疫过程中说了什么)

    今天给各位分享钟南山在抗击疫情中表现如何?的知识,其中也会对钟南山在抗疫过程中说了什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!关于疫情的精彩的文段1、钟南山院士,一位在医学领域具有极高威望的智者,在抗击新冠疫情的战斗中,他再次站在了最前线。作为专家组组长,他不仅指导医

    2025年03月23日
    20

发表回复

本站作者后才能评论

评论列表(4条)

  • 狼家二萌神
    狼家二萌神 2025年05月03日

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

  • 狼家二萌神
    狼家二萌神 2025年05月03日

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

  • 狼家二萌神
    狼家二萌神 2025年05月03日

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

  • 狼家二萌神
    狼家二萌神 2025年05月03日

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