网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 模拟技术 >

【英飞凌PSoC 6 RTT开发板试用】信号处理前端之频

时间:2023-07-14 09:02

人气:

作者:admin

标签: 开发板  频率  RTT  PSoC  FFT 

导读:FFT变换结果,幅值最大的横坐标对应信号频率,纵坐标对应幅度。幅值最大的为out[m]=val;则信号频率f0=(Fs/N)m ,信号幅值Vpp=val/(N/2)。N为FFT的点数,Fs为采样频率。相位Pha=atan2(a, b)弧度...

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开始测试印如下
image.png

实时采集测试

此时采集的是音频背景声,噪声很小,所以频率为0
image.png

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信