#include
"sys.h"
#include
"delay.h"
#include
"usart.h"
#include
"led.h"
#include
"key.h"
#include
"lcd.h"
#include
"timer.h"
#include
"math.h"
#include
"arm_math.h"
#include
"adc.h"
#define fft_length 1024
//fft長度,預設是1024點fft
float fft_inputbuf[fft_length*2]
;//fft輸入陣列
float fft_outputbuf[fft_length]
;//fft輸出陣列
float outmax;
float frq;
u8 timeout;
//定時器溢位次數
u16 height;
intmain
(void
)arm_cfft_radix4_f32
(&scfft,fft_inputbuf)
;//fft計算(基4)
arm_cmplx_mag_f32
(fft_inputbuf,fft_outputbuf,fft_length)
;//把運算結果複數求模得幅值
//輸出最大分量
outmax=0;
frq=0;
for(i=
1; i2; i++)}
//20k/1024=19.5 每兩個點的間隔是19.5hz
printf
("%f\t\t%f\r\n"
,frq*
19.5
,outmax)
;//清屏
lcd_clear
(0xffff);
// //繪製水平刻度,因為所使用的示波器的分度是1.25khz/分度
// //為了方便對比,這裡也取1.25khz,即1.25k/19.5=64格
// point_color=red;
// for(i=0; i<5; i++)
// lcd_drawline(0,64*i,239,64*i);
// //繪製頻譜圖,因顯示屏解析度是320*240,這裡只取前0--319*19.5hz範圍的頻域進行顯示
// point_color=blue;
// for(i=1; i<319; i++)
//
//繪製水平刻度,因為所使用的示波器的分度是1.25khz/分度
//繪製0--10khz範圍的頻域進行顯示
//因為20khz的取樣速率決定了最大顯示的頻率是10khz,快速傅利葉變換後,後半截與前半截對稱,捨棄
point_color=red;
for(i=
0; i<
11; i=i+2)
lcd_drawline(0
,32*i,239,32
*i);
32div
point_color=blue;
for(i=
1; i<
256; i++)}
}
//定時器3中斷服務函式
void
tim3_irqhandler
(void
)tim_clearitpendingbit
(tim3,tim_it_update)
;//清除中斷標誌位
}
以正點原子f407開發板 實驗47 dsp測試實驗 例程為藍本,新增adc.c、adc.h到專案中,實現模擬訊號採集並做硬體快速傅利葉變換。 F4的實現方式
1 在螢幕編輯器的layout中,指定螢幕元素所使用的search help 2 使用函式的方法,在選擇螢幕上實現f4.所使用的函式為 f4if int table value request report ztest03.types begin of t s werks,werks type t0...
F4 陣列逆轉 10 分
本題要求實現乙個函式,可將乙個整型陣列裡的元素逆轉。例如原陣列是 1,3,5,7,9 逆轉之後變成 9,7,5,3,1 函式介面定義 void reverse int array,int size 其中引數 array是陣列首位址,size是陣列的長度 size 0 裁判測試程式樣例 函式被呼叫進行...
SAP中的F4幫助
今天在除錯標準程式的時候,意外的發現了乙個f4幫助的函式,感覺還是挺好用的。f4if field value request從函式名就可以看出是給字段新增f4幫助的。f4 help for fields that are only known at runtime這是這個函式的描述,即執行時使用。在...