资源简介
matlab 基四的FFT算法仿真 14位输入16位输出 SNR>75dB 模拟VHDL硬件实现

代码片段和文件信息
function snr=MY_FFT(w)
%PART_1
%-------------测试函数激励-------------------------
%用正弦函数作为信噪比的测试函数,频率为120HZ,采到整-
%频点数,然后计数FFT结果中峰值与噪声最大值的比值-----
%--------------------------------------------------
x=Sin_Gen(w);
%PART_2
%-------------------------------------------------
%-------------蝶形运算模块-------------------------
%-------------------------------------------------
%-------------------------------------------------
%第一级运算,没有乘法器----------------------------
%[ABCD]=Step_One(abcd)----------------------
%输入:第一级蝶形运算的数据,数据位宽为14-----------
%输出:经过第一级蝶形运算产生的数据,数据位宽为16---
%-------------------------------------------------
for m=1:256
[ABCD]=Step_One(x(m)x(m+256)x(m+512)x(m+768));
X_1(m)=A;
X_1(m+256)=B;
X_1(m+512)=C;
X_1(m+768)=D;
end
%-------------------------------------------------
%第二级运算
%[ABCD]=Step_Two(abcdm)--------------------
%输入:第二级蝶形运算的数据,数据位宽为16-----------
% m为在本级中的循环级数-----------------------
%输出:经过第二级蝶形运算产生的数据,数据位宽为18---
%注:1 该级为防溢出结果缩减为原来的1/2--------------
% 2 存储蝶形因子采用了17位,实际扩大2^15---------
%-------------------------------------------------
for m=1:4
for n=1:64
[ABCD]=Step_Two(X_1(256*(m-1)+n)X_1(256*(m-1)+n+64)X_1(256*(m-1)+n+128)X_1(256*(m-1)+n+192)m);
X_2(256*(m-1)+n)=A;
X_2(256*(m-1)+n+64)=B;
X_2(256*(m-1)+n+128)=C;
X_2(256*(m-1)+n+192)=D;
end
end
%-------------------------------------------------
%第三级运算
%[ABCD]=Step_Three(abcdm)------------------
%输入:第三级蝶形运算的数据,数据位宽为18-----------
% m为在本级中的循环级数-----------------------
%输出:经过第三级蝶形运算产生的数据,数据位宽为18---
%注:1 该级为防溢出结果缩减为原来的1/4--------------
% 2 存储蝶形因子采用了18位,实际扩大2^16---------
%-------------------------------------------------
for m=1:16
for n=1:16
[ABCD]=Step_Three(X_2(64*(m-1)+n)X_2(64*(m-1)+n+16)X_2(64*(m-1)+n+32)X_2(64*(m-1)+n+48)m-1);
X_3(64*(m-1)+n)=A;
X_3(64*(m-1)+n+16)=B;
X_3(64*(m-1)+n+32)=C;
X_3(64*(m-1)+n+48)=D;
end
end
%--------------------------------------------------
%第四级运算
%[ABCD]=Step_Four(abcdm)--------------------
%输入:第四级蝶形运算的数据,数据位宽为18-----------
% m为在本级中的循环级数-----------------------
%输出:经过第四级蝶形运算产生的数据,数据位宽为18---
%注:1 该级为防溢出结果缩减为原来的1/8--------------
% 2 存储蝶形因子采用了18位,实际扩大2^16---------
%-------------------------------------------------
for m=1:64
for n=1:4
[ABCD]=Step_Four(X_3(16*(m-1)+n)X_3(16*(m-1)+n+4)X_3(16*(m-1)+n+8)X_3(16*(m-1)+n+12)m-1);
X_4(16*(m-1)+n)=A;
X_4(16*(m-1)+n+4)=B;
X_4(16*(m-1)+n+8)=C;
X_4(16*(m-1)+n+12)=D;
end
end
%---------------------------------------------------------------
%第五级运算
%[ABCD]=Step_Five(abcdm)--------------------
%输入:第五级蝶形运算的数据,数据位宽为18-----------
% m为在本级中的循环级数-----------------------
%输出:经过第五级蝶形运算产生的数据,数据位宽为16---
%注:1 本级不需要防溢出--------------
% 2 存储蝶形因子采用了18位,实际扩大2^16---------
% 3 数据输出除以四是为了截断到输出需要的16位
%---------
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4182 2010-08-20 13:36 FFT14_16\MY_FFT.m
文件 0 2010-08-30 17:01 FFT14_16\MY_FFT输入的数据是频率,自动生成该频率的正弦函数.txt
文件 161 2010-08-20 13:33 FFT14_16\Sin_Gen.m
文件 29091 2010-08-30 17:06 FFT14_16\snr.jpg
文件 22528 2010-08-30 19:28 FFT14_16\snr.xls
文件 130 2010-08-20 13:47 FFT14_16\snr_cal.m
文件 4395 2010-08-15 15:14 FFT14_16\Step_Five.m
文件 5604 2010-08-20 13:05 FFT14_16\Step_Four.m
文件 483 2010-08-15 10:23 FFT14_16\Step_One.m
文件 5292 2010-08-15 15:12 FFT14_16\Step_Three.m
文件 4085 2010-08-15 15:11 FFT14_16\Step_Two.m
目录 0 2010-08-30 19:28 FFT14_16
----------- --------- ---------- ----- ----
75951 12
- 上一篇:MATLAB PID simuli
nk - 下一篇:matlab实现卷积码编码和解码
相关资源
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
评论
共有 条评论