FFT倒序算法—雷德Rader算法及matlab实现
2017-11-09 23:12
387 查看
在实现FFT(快速Fourier变换)计算的时候,第一步要做的就是实现码位(二进制码)倒序,这里有一种算法,叫做雷德(Rader)算法。
对照码位倒置对应表:
寻找下一个倒序数的基本思想:
实现matlab代码:
对照码位倒置对应表:
寻找下一个倒序数的基本思想:
如果k>J,则J的最高位为0,只要把该位变为1(J与k=N/2相加即可),就得到下一个倒位序数; 如果K<=J,则J的最高位为1,可将最高位变为0(J与k=N/2相减即可)。 然后(k<=J时)还需判断次高位,这可与k=N\4相比较,若次高位为0,则需将它变为1(加N\4即可)其他位不变, 既得到下一个倒位序数; 若次高位是1,则需将它也变为0。然后再判断下一位。。。。(以此循环)
实现matlab代码:
length=8; j=length/2;%数组半长 a=[0 1 2 3 4 5 6 7 ]; for i=1:length/2-1%这里实现了奇偶前后分开排序 , %比较前半部分序数【0 1 2 3 】,对每对中的后一个偶数进行交换1换4,3换6 if i<j t=a(j+1); a(j+1)=a(i+1);%交换 a(i+1)=t; end %求下一个倒序数 k=length/2;%数组半长 while(j>=k)%j为下一个倒序数,比较100的最高位1,如果为1,置0 j=j-k; k=k/2;%变为010,准备比较第二位的1,循环 end if j<k j=j+k;%找到为0 的一位,补成1,j就是下一个倒序数 end end a
相关文章推荐
- C#实现局部峰值查找,功能对应Matlab中的findpeaks.m
- MATLAB利用communication toolbox实现AGWN信道不同编码译码误码率分析
- K近邻的MATLAB实现
- matlab实现聚类分析
- Matlab中保持原来数值顺序的unique函数实现
- 多维多背包问题Matlab实现
- 图像处理中任意核卷积(matlab中conv2函数)的快速实现。
- matlab实现鼠标画图(手写体数字)
- 频率域图像增强及MATLAB实现
- 均值滤波、中值滤波的matlab实现
- 在matlab中实现线性回归和logistic回归
- BP神经网络及MATLAB实现
- 频率抽取(DIF)基2FFT算法的MATLAB实现
- 第2章 单层前向网络及LMS学习算法仿真实例 Matlab 实现
- 安装Excel link插件,实现Excel与Matlab的互联
- 用matlab实现二值化图像的一个问题
- MATLAB实现一个简单的车牌识别小程序
- 基于MATLAB图像处理的中值滤波、均值滤波以及高斯滤波的实现与对比
- matlab实现kmeans算法
- MATLAB实现最优低通滤波器的函数