MATLAB的一个FFT程序

本文详细介绍了如何在MATLAB中实现快速傅里叶变换(FFT)程序,包括位逆转、蝶形运算流程和FFT的循环结构。通过示例代码展示了8点DIT FFT的计算过程,并与MATLAB内置FFT函数进行了比较。此外,讨论了浮点到定点转换的关键问题,如旋转因子的处理和计算过程中的溢出问题。
摘要由CSDN通过智能技术生成

FFT信号流图:


MATLAB的一个FFT程序


 

程序实现是这样:

 

程序流程如下图:

 MATLAB的一个FFT程序

 

首先进行位逆转,其实很简单,就是把二进制的位逆转过来:

Matlab的位逆转程序:

function a=bitreverse(Nbit, num)

%Nbit = 4;

%num = 8;

a = 0;

b = bitshift(1,Nbit-1);

for i = 1:Nbit;

if((bitand(num,1)) == 1)

a = bitor(a,b);

end

num = bitshift(num,-1);

b = bitshift(b,-1);

end;

 

说明:Nbit是逆转位是几位,num是逆转的数即变量。

 

 

三个循环,第一个循环是进行N阶的FFT运算

第二个循环其实就是,每一阶FFT的时候,有多少组DFT对象,拿8点来说,第一阶的时候,有4DFT对象,到了第二阶,就有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值