3.2 周期(頻率),幅值,相位分析
原理
FFT變換結果,幅值最大的橫坐標對應信號頻率,縱坐標對應幅度。幅值最大的為out[m]=val;則信號頻率f0=(Fs/N)m ,信號幅值Vpp=val/(N/2)。N為FFT的點數,Fs為采樣頻率。相位Pha=atan2(a, b)弧度制,其中ab是輸出虛數結果的實部和虛部。
添加命令行
shell_fun.h中
void FrqFun(void* param);
shell_fun.c中
#include "frq.h"
shell_cmd_list中添加一行
{ (const uint8_t*)"frt", FrqFun, "frq"},
添加命令執行函數
void FrqFun(void* param)
{
Frq_main();
}
實現代碼
Frq.c
#include "arm_math.h"
#include "arm_const_structs.h"
#include < stdio.h >
#define TEST_LENGTH_SAMPLES 2048
#define FS 10000
extern float32_t testInput_f32_10khz[TEST_LENGTH_SAMPLES];
static float32_t testOutput[TEST_LENGTH_SAMPLES/2];
static uint32_t fftSize = 1024;
static uint32_t ifftFlag = 0;
static uint32_t doBitReverse = 1;
static arm_cfft_instance_f32 varInstCfftF32;
static int testIndex = 0;
static float testtmp_f32_10khz[2048];
static int32_t adcbuffer[2048];
int32_t frq_main(void)
{
arm_status status;
float32_t maxValue;
status = ARM_MATH_SUCCESS;
status=arm_cfft_init_f32(&varInstCfftF32,fftSize);
//memcpy(testtmp_f32_10khz,testInput_f32_10khz,sizeof(testInput_f32_10khz));
adc_samp(adcbuffer,2048);
for(int i=0; i< 2048;i ++)
{
testtmp_f32_10khz[i] = (float)adcbuffer[i];
}
arm_cfft_f32(&varInstCfftF32, testtmp_f32_10khz, ifftFlag, doBitReverse);
arm_cmplx_mag_f32(testtmp_f32_10khz, testOutput, fftSize);
/* Calculates maxValue and returns corresponding BIN value */
arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);
float freq = (FS/TEST_LENGTH_SAMPLES)*testIndex;
float vpp = maxValue/(TEST_LENGTH_SAMPLES/2);
float pha = atan2(testOutput[2*testIndex],testOutput[2*testIndex+1]);
printf("freq=%f,vpp=%f,pha=%frn",freq,vpp,pha);
}
/** endlink */
Frq.h
#ifndef FRQ_H
#define FRQ_H
int frq_main(void);
#endif
測試
輸入frq開始測試印如下
實時采集測試
此時采集的是音頻背景聲,噪聲很小,所以頻率為0
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
英飛凌
+關注
關注
66文章
2183瀏覽量
138645 -
PSoC
+關注
關注
12文章
170瀏覽量
91892 -
信號處理
+關注
關注
48文章
1026瀏覽量
103256 -
FFT
+關注
關注
15文章
434瀏覽量
59366 -
頻率
+關注
關注
4文章
1494瀏覽量
59211 -
開發板
+關注
關注
25文章
5032瀏覽量
97371 -
RTT
+關注
關注
0文章
65瀏覽量
17114
發布評論請先 登錄
相關推薦
【新品發布】英飛凌PSoC 6 RTT物聯網開發板內容詳解
4月12日,英飛凌聯合 RT-Thread 發布PSoC? 62 with CAPSENSE? evaluation kit開發板 (以下簡稱PSoC
發表于 04-13 13:46
【資料下載】英飛凌PSoC 6 RTT物聯網開發板
Infineon Psoc6-evaluationkit-062S2 說明開發板免費試用活動:https://bbs.elecfans.com/jishu_2349212_1_1.html簡介本文
發表于 04-13 13:38
【新品試用】英飛凌PSoC 6 RTT開發板試用活動
概述、軟件調試、硬件接入、視頻演示,不少于500字+2張圖片。
2)報告形式:標題格式 【評測活動標題+自擬標題】示例: 【英飛凌PSoC 6 RTT
發表于 04-13 15:26
【英飛凌PSoC 6 RTT開發板試用】
單周期乘法和MPU,可以充分發揮 PSoC6 雙核芯片性能。
該開發板核心 板載資源 如下:
MCU:CY8C624ABZI-S2D44,Cortex-M4主頻 150MHz,Cortex-M0主頻
發表于 05-30 20:47
英飛凌聯合 RT-Thread 發布 PSoC? 62 with CAPSENSE ? evaluation kit開發板
近日,RT-Thread 社區團隊打造了新品開發板:英飛凌聯合 RT-Thread 發布 ?PSoC 62 with CAPSENSE evaluation kit開發板?(以下簡稱
基于PSOC6開發板構建的智能小車
本項目是基于Psoc6-evaluationkit-062S2開發板構建的智能小車。該開發板由RT-Thread與英飛凌聯合推出,集成了一顆32位雙核CPU子系統,包括150MHz的A
發表于 07-28 15:14
?794次閱讀
【英飛凌測評】英飛凌PSoC? 62開發板試用報告-LCD ILI9341 8080 DEMO
# Infineon Psoc6-evaluationkit-062S2 說明 ## 簡介 本文檔為 `RT-Thread` 為 `PSoC6 CY8CKIT-062S2-43012` 開發板提供
玩轉PSoC 6 RTT積木式開發套件,實現毫米波雷達等實用功能
本期英飛凌手工課,將由來自英飛凌的工程師Jenson給大家帶來PSoC62withCAPSENSEevaluationkit(下稱PSoC6RTT開
評論