調(diào)用quartus的ip核測量頻率和幅值,可以把程序分成四大部分。第一部分是AD采樣模塊,本次實驗用的是ad828,最高采樣率為70M,
根據(jù)奈貴斯特采樣定律 Fs > 2Fc,即采樣率要大于信號最高頻率的兩倍,如果要求信號的頻率,需要知道頻率所對應的地址和頻率分
變率F。而F = Fs/N,所以只要知道了采樣速率FS和地址坐標,就可以求出頻率來。ad采樣率為50M,程序設定的有四個頻率分辨率,
分別為1Hz,10Hz,100HZ還有1KHz,拿1Hz來舉例,F(xiàn)S = F * N,所以只要對采樣時鐘進行適當?shù)姆诸l就可以算出FS來。
另外還需要注意的一點就是fft輸入的數(shù)據(jù)是有符號的,需要對原始數(shù)據(jù)處理一下,變成有符號的二進制,只要在前面補零就可以。
/*----------------------------------------------------------------------- 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文章
444瀏覽量
60805 -
時鐘
+關注
關注
11文章
1891瀏覽量
133016 -
AD采樣
+關注
關注
0文章
23瀏覽量
16386
原文標題:FFT_ad采樣速率
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
FFT至簡設計法實現(xiàn)法_FFT算法_蝶形運算_fpga
基于ATM理念的UTRAN傳輸架構簡析
EPON技術簡析
筆記本屏幕亮度與反應速度簡析
簡析BGA封裝技術與質量控制
鼠標HID例程(中)簡析
ad7705最大采樣速率是多少?

簡析比較器的原理及應用資料下載

Raspberry Pi Pico上的ADC采樣和FFT

評論