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浏览量
138658 -
PSoC
+关注
关注
12文章
170浏览量
91896 -
信号处理
+关注
关注
48文章
1027浏览量
103263 -
FFT
+关注
关注
15文章
434浏览量
59368 -
频率
+关注
关注
4文章
1497浏览量
59215 -
开发板
+关注
关注
25文章
5035浏览量
97386 -
RTT
+关注
关注
0文章
65浏览量
17116
发布评论请先 登录
相关推荐
【新品发布】英飞凌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
•795次阅读
【英飞凌测评】英飞凌PSoC™ 62开发板试用报告-LCD ILI9341 8080 DEMO
# Infineon Psoc6-evaluationkit-062S2 说明 ## 简介 本文档为 `RT-Thread` 为 `PSoC6 CY8CKIT-062S2-43012` 开发板提供
玩转PSoC 6 RTT积木式开发套件,实现毫米波雷达等实用功能
本期英飞凌手工课,将由来自英飞凌的工程师Jenson给大家带来PSoC62withCAPSENSEevaluationkit(下称PSoC6RTT开
评论