资源简介
使用xilinx hls编写的8点fft,稍加扩展就可变为任意基二点fft,代码简洁有注释

代码片段和文件信息
#include “fft.h“
/*******computing the cos twiddles*********/
float cos_lookup(int n){
float cos_table[FFT_SIZE/4+1]={
#include “cos_qtable.txt“
};
float tmp;
int idx;
int sign;
if(n<=FFT_SIZE/4){
idx=n;
sign=0;
}
else{
idx=FFT_SIZE/4-n%(FFT_SIZE/4);
sign=1;
}
return sign? (float)-cos_table[idx]:(float)cos_table[idx];
}
/*******computing the sin twiddles*********/
float sin_lookup(int n){
float sin_table[FFT_SIZE/4+1]={
#include “sin_qtable.txt“
};
float tmp;
int idx;
if(n<=FFT_SIZE/4){
idx=n;
}
else{
idx=FFT_SIZE/4-n%(FFT_SIZE/4);
}
return (float)sin_table[idx];
}
/*************computing the twiddles****************/
compx twiddle_fft(int n)
{
compx tmp;
tmp.real=cos_lookup(n);
tmp.imag=-sin_lookup(n);
return tmp;
}
/**************complex multiply********************/
compx multiply(compx twiddlecompx data)
{
compx tmp;
float abcdefg;
a=twiddle.real;
b=twiddle.imag;
c=data.real;
d=data.imag;
tmp.real=a*c-b*d;
tmp.imag=a*d+b*c;
return tmp;
}
/**************complex addition*******************/
compx plus(compx acompx b){
compx tmp;
tmp.real=a.real+b.real;
tmp.imag=a.imag+b.imag;
return tmp;
}
/**************complex subtraction****************/
compx minus(compx acompx b){
compx tmp;
tmp.real=a.real-b.real;
tmp.imag=a.imag-b.imag;
return tmp;
}
void fft(int xin[FFT_SIZE]compx xout[FFT_SIZE])
{
int kk;
int k;
compx xout1[FFT_SIZE];
compx xout2[FFT_SIZE];
compx twd;
compx tmp;
//变换地址
int m;
int tmpl;
for(kk=0k=0;k if(k tmpl=xin[kk];
xin[kk]=xin[k];
xin[k]=tmpl;
}
m = FFT_SIZE/2;
while(m<(kk+1)){
kk = kk-m;
m = m/2;
}
kk = kk+m;
}
//第一阶段
for(k=0;k xout1[k].real=xin[k]+xin[k+1];
xout1[k].imag=0.0;
xout1[k+1].real=xin[k]-xin[k+1];
xout1[k+1].imag=0.0;
}
for(k=0;k printf(“%f~~~%f\n“xout1[k].realxout1[k].imag);
}
//第二阶段
for(kk=0;kk for(k=0;k<2;k++){
twd=twiddle_fft(k*FFT_SIZE/4);
tmp=multiply(twdxout1[k+kk+2]);
xout2[k+kk]=plus(xout1[k+kk]tmp);
xout2[k+kk+2]=minus(xout1[k+kk]tmp);
}
}
//第三阶段
for(kk=0;kk for(k=0;k<4;k++){
twd=twiddle_fft(k*FFT_SIZE/8);
tmp=multiply(twdxout2[k+kk+4]);
xout[k+kk]=plus(xout2[k+kk]tmp);
xout[k+kk+4]=minus(xout2[k+kk]tmp);
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-03-08 11:15 fft\
目录 0 2014-03-08 11:15 fft\fft_prj\
目录 0 2014-03-08 11:15 fft\fft_prj\.apc\
目录 0 2014-03-08 11:15 fft\fft_prj\.apc\.src\
目录 0 2014-03-08 11:15 fft\fft_prj\.apc\.tb\
文件 667 2014-03-13 04:04 fft\fft_prj\.apc\autopilot.apfmapping
文件 17888 2014-03-13 04:35 fft\fft_prj\.cproject
文件 4251 2014-03-13 04:04 fft\fft_prj\.project
目录 0 2014-03-08 11:15 fft\fft_prj\.settings\
文件 1952 2014-03-13 02:53 fft\fft_prj\.settings\fft_prj.Debug.launch
文件 1955 2014-03-13 02:53 fft\fft_prj\.settings\fft_prj.Release.launch
文件 944 2014-03-13 04:35 fft\fft_prj\.vivado_hls_log_all.xm
文件 33 2014-03-11 16:52 fft\fft_prj\cos_qtable.txt
文件 2498 2014-03-13 04:33 fft\fft_prj\fft.c
文件 239 2014-03-13 04:34 fft\fft_prj\fft.h
文件 513 2014-03-13 04:29 fft\fft_prj\fft_test.c
文件 15 2014-03-11 17:46 fft\fft_prj\in.dat
文件 33 2014-03-11 16:53 fft\fft_prj\sin_qtable.txt
目录 0 2014-03-08 11:15 fft\fft_prj\solution1\
目录 0 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\
文件 32 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\.automg_exit
文件 22 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\.autopilot_exit
目录 0 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\db\
文件 19271 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\db\a.export.ll
文件 7680 2013-09-04 04:11 fft\fft_prj\solution1\.autopilot\db\a.g
文件 7680 2013-09-04 04:11 fft\fft_prj\solution1\.autopilot\db\a.g.0
文件 9716 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\db\a.g.0.bc
文件 9964 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\db\a.g.1.bc
文件 61700 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\db\a.g.1.ll
文件 10016 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\db\a.g.2.bc
文件 9632 2014-03-13 04:35 fft\fft_prj\solution1\.autopilot\db\a.g.2.prechk.bc
............此处省略296个文件信息
相关资源
- Xilinx-FPGA-引脚功能详细介绍.doc
- 基于xilinx FPGA的PCIe设计实战
- dsp2812上128点FFTc程序以及其CMD文件
- Xilinx FPGA底层资源架构与设计规范
- xilinx_ise_14.7_license破解
- AT426-BU-98000-r0p0-00rel0.tgz
- [b115]FPGA上运行人脸识别源代码.zip
- Xilinx FPGA 例程,NAND
- FPGA从Xilinx的7系列学起5
- Vivado时序分析高级使用技巧详解.zip
- ffmpeg转码为hls代码
- 《Xilinx ZYNQ-7000 AP SoC开发实战指南》符
- xilinx basys2 原理图
- xilinx器件 XC7K325T资料
- WindriverPCIE驱动
- vivado HLS图像处理了解
- Xilinx_ISE_13.4_安装及破解教程
- XILINX_UltraScale_Plus_GTY_GTH_2D_RX_Margin_An
- xilinx ISE 14.5 使用教程相当详细
- H5视频播放工具hls.js
- XILINX官方HLS视频课程学习总结 .pdf
- xilinx vivado srio license (各版本亲测可
- xilinx SP605 原理图lib.rar
- Xilinx Spartan6 开发板原理图加PCB.rar
- xilinx_sata工程源代码及《SATA协议分析
- Xilinx平台DDR3设计教程之应用篇中文版
- Xilinx官方FPGA嵌入式培训教程6
- Xilinx官方FPGA嵌入式培训教程5
- Xilinx官方FPGA嵌入式培训教程4
- Xilinx官方FPGA嵌入式培训教程3
评论
共有 条评论