Xilinx Vivado (FFT IP核)

本文详细介绍了如何利用Xilinx Vivado 2018.3进行FFT(快速傅里叶变换)IP核的配置和使用。首先解释了傅里叶变换在信号分析中的作用以及奈奎斯特采样定理。接着,阐述了Vivado中FFT IP核的输入输出端口定义,包括S_AXIS_DATA、S_AXIS_CONFIG和M_AXIS_DATA。还展示了如何通过MATLAB对信号进行采样并转换为二进制数据,最后在硬件中进行仿真验证。
摘要由CSDN通过智能技术生成

1.傅里叶变换FFT
傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分。
通过FFT将时域信号转换到频域,从而对一些在时域上难以分析的信号在频域上进行处理。
其中,根据奈奎斯特采样定理,采样频率需大于信号频率的两倍;
1.N为FFT采样点数,代表对信号在频域的采样数;
2.采样频率Fs和采样点数N决定了信号的频域分辨力,即分辨力=Fs/N,即N越大,频域分辨力越好,反之频域分辨力越差。

2.Vivado中IP核的配置
打开Vivado2018.3:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如图所示,其中,S_AXIS_DATA为输入数据端口,FFT的数据通过S_AXIS_DATA输入给IP核;S_AXIS_CONFIG为输入配置端口,对数据进行配置,FFT还是IFFT、缩放因子、FFT变换点数等信息;FFT变换后的数据从M_AXIS_DATA端口输出。
在这里插入图片描述
其中包含了S_AXIS_DATA_TDATA、S_AXIS_CONFIG_TDATA以及M_AXIS_DATA_TDATA的数据格式:
S_AXIS_DATA_TDATA:共32位,其中低16位为输入数据的实部,高16位为输入数据的虚部。
S_AXIS_CONFIG_TDATA:最低位第0位,决定对数据进行FFT还是IFFT,置1时FFT,清零时IIFT。
M_AXIS_DATA_TDATA:48位数据输出,低24位为实部,高24位为虚部。

3.仿真:
I通过matlab对F(t) = 100 + 100cos(2pi30t) + 100cos(2pi70t) 这个信号以Fs = 100HZ进行采样,采样点数N = 128,采样完成后,将数据转换为16位二进制,并存入txt文件中。matlab程序如下:
(源:CSDN—傅外叶)
clear

Fs=100;                         
N = 128;
n = 1:N;
t = n/Fs;
% 生成测试信号
f1 = 30;                   
f2 = 70;                     
s1 = cos(2*pi*f1*t);    
s2 = cos(2*pi*f2*t);
fft_signal = 1 + s1 + s2 ;
data_before_fft = 100*fft_signal;  %系数放大100倍


fp = fopen('C:\Users\lys\Desktop\fft\data_before_fft.txt','w');
for i = 1:N
   if(data_before_fft(i)>=0)
       temp= dec2bin(data_before_fft(i),16);
   else
       temp= dec2bin(
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_44985628

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值