调用quartus的ip核测量频率和幅值,可以把程序分成四大部分。第一部分是AD采样模块,本次实验用的是ad828,最高采样率为70M,
根据奈贵斯特采样定律 Fs > 2Fc,即采样率要大于信号最高频率的两倍,如果要求信号的频率,需要知道频率所对应的地址和频率分
变率F。而F = Fs/N,所以只要知道了采样速率FS和地址坐标,就可以求出频率来。ad采样率为50M,程序设定的有四个频率分辨率,
分别为1Hz,10Hz,100HZ还有1KHz,拿1Hz来举例,FS = F * N,所以只要对采样时钟进行适当的分频就可以算出FS来。
另外还需要注意的一点就是fft输入的数据是有符号的,需要对原始数据处理一下,变成有符号的二进制,只要在前面补零就可以。
/*----------------------------------------------------------------------- Date : 2017-XX-XX Description : Design for 频率分辨率. -----------------------------------------------------------------------*/ module sample_clk ( //global clock input clk, //system clock 200M input rst_n, //sync reset //key interface // input key0_value, input [1:0] key_data, //sample_clk interface output reg sample_clk ); //-------------------------------- //Funtion : /* always @(posedge clk or negedge rst_n) begin if(!rst_n) key_data <= 2'd0; else if(key0_value) key_data <= key_data + 1'b1; end */ //-------------------------------- //Funtion : 分频 reg [15:0] n; always @(posedge clk or negedge rst_n) begin if(!rst_n) n <= 16'd0; else case(key_data) 2'b00 : n <= 16'd48828; //频率分辨率 1Hz 2'b01 : n <= 16'd4882; //10Hz 2'b10 : n <= 16'd488; //100Hz 2'b11 : n <= 16'd48; //1KHz default : ; endcase end //-------------------------------- //Funtion : sample_clk reg [15:0] cnt_clk; always @(posedge clk or negedge rst_n) begin if(!rst_n) cnt_clk <= 16'd0; else if(cnt_clk >= n - 1'b1) cnt_clk <= 16'd0; else cnt_clk <= cnt_clk + 1'b1; end always @(posedge clk or negedge rst_n) begin if(!rst_n) sample_clk <= 1'b0; else if(cnt_clk >= n - 1'b1) sample_clk <= ~sample_clk; else sample_clk <= sample_clk; end endmodule
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
FFT
+关注
关注
15文章
425浏览量
58644 -
时钟
+关注
关注
10文章
1480浏览量
130306 -
AD采样
+关注
关注
0文章
23浏览量
15671
原文标题:FFT_ad采样速率
文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
写入测量文件与串口采样速率的问题
各位大神好,小妹初学Labview,近来遇到一个关于串口采样速率的问题,当我想把得到的数据存为excel文档时,加入了写入测量文件,但是当我加入这个模块后,我的串口采样速率会变慢而且每
发表于 04-20 22:14
FFT至简设计法实现法_FFT算法_蝶形运算_fpga
DIT-FFT至简设计实现法工程说明本设计讨论的是基于至简设计法实现按时间抽选的基2-FFT算法(即DIF-FFT)实现过程,支持N由8到1
发表于 08-02 17:32
AD采样速率是否可控?
手头上有个AD(TLC549),以前接触AD不多,对于其采样频率不是很理解。网络上有些人说AD的采样速率是由使用者给AD的时钟来确定的。平时自己听到比较多的是AD的最大采样
发表于 03-23 17:12
请问ad9625输出速率是否就等于采样速率?
1.我用的是ad9625,datasheet上没有标明输出速率,那输出速率是否就等于采样速率2.如果想要将采样的输出结果先存到存储器中然后再
发表于 10-10 11:18
【设计技巧】rtos的核心原理简析
rtos的核心原理简析rtos全称real-time operating system(实时操作系统),我来简单分析下:我们都知道,c语句中调用一个函数后,该函数的返回地址都是放在堆栈中的(准确
发表于 07-23 08:00
Armv8.1-M PAC和BTI扩展简析
1、Armv8.1-M PAC和 BTI 扩展简析Armv8-M通过Trustzone for Armv8-M, Memory Protection Unit (MPU) 和Privileged
发表于 08-05 14:56
单片机ADC的采样频率和采样速率是不是同一个概念?采样频率、速率要远远大于被采样的信号频率和速率?
单片机ADC的采样频率和采样速率是不是同一个概念?采样频率、速率要远远大于被采样的信号频率和
发表于 11-15 19:09
RK3288 Android6.0系统RT5640播放时的Codec寄存器列表简析
1、RT5640播放时的Codec寄存器列表简析Platform: RockchipOS: Android 6.0Kernel: 3.10.92Codec: RT5640此文给调试RT5640播放
发表于 11-24 18:12
ADC输出转换采样生成FFT图详解
您可以通过周期性地收集大量的 ADC 输出转换采样来生成 FFT图。一般而言,ADC 厂商们将一种单音、满量程模拟
发表于 12-11 11:03
•7879次阅读
多速率采样中的CIC滤波器设计与分析
CIC滤波器是常用于多速率采样抽取或内插过程中的高效滤波器,具有结构简单,易于工程实现的特点。以提高采样速率为例,首先介绍了内插理论和CtC滤波器原理,重点给出了CIC滤波器
发表于 09-20 15:12
•73次下载
FFT的分析和Xilinx FFT核的介绍
fft输入输出解析。 输入:fft要求输入一个复数,但一般可以只输入实数。 输出:输出一个复数,其模为信号强度。相位为波形相位。 设: 采样频率FS 转换长度N 则: 分辨率为FS/N。 ‘量程
发表于 02-08 15:15
•1226次阅读
Raspberry Pi Pico上的ADC采样和FFT
电子发烧友网站提供《Raspberry Pi Pico上的ADC采样和FFT.zip》资料免费下载
发表于 06-16 11:45
•10次下载
评论