资源简介
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实现卷积码编码和解码
-
MATLAB PID simuli
nk - 通过达曼光栅生成点阵的matlab程序
- LLL算法的MATLAB程序
- matlab高斯-塞德尔迭代法
- lws压缩感知matlab 代码
- 无网格法matlab程序
- 基于几何最短距离的椭圆拟合
- 基于MATLAB的阵列信号处理仿真
- 遗传优化的BP网络代码MATLAB
- Dubins path生成matlab程序
- 非负矩阵分解 matlab
- 换挡点程序
-
Buck变换器在Matlab_Simuli
nk下的仿真研 - matlab切比雪夫拟合多项式
- prony 工具箱in matlab
- PID算法Matlab仿真程序和C程序[doc.xueh
- 利用遗传算法计算一元函数的极值的
- 邻域嵌入的超分辨率matlab代码
- fast ICA的Matlab代码
- 基于LEACH算法的改进算法GAF算法
- matlab图像分块代码
- 相位一致性检验.rar
- Vibe matlab
- Leach协议在MATLAB下面仿真的源代码
-
异步电动机变压变频调速的simuli
n - 他励直流电动机启动的MATLAB仿真
-
三相桥式整流电路的simuli
nk仿真 - 对整个DS-CDMA系统进行仿真MATLAB
- ekf matlab仿真
评论
共有 条评论