无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

第六章合集代碼2:chatGPT生成的數(shù)字信號處理算法代碼及在stm32中的整合

2023-02-17 16:36 作者:西郵嚴老師  | 我要投稿

ARM_MATH_CM4

#include "arm_math.h"

#include "arm_const_structs.h"

#define FFT_SIZE 512

#define FFT_LEN FFT_SIZE?

#define SAMPLING_FREQUENCY 2400000

float32_t inputSignal[FFT_SIZE*2];

float32_t signal[FFT_SIZE*2];

float32_t fftOutput[FFT_SIZE];


/*通過計算fft來得到周期性信號的頻率值的函數(shù),來源于chatGPT*/

float32_t fftCalculate(void)

{

? ? arm_cfft_f32(&arm_cfft_sR_f32_len512, inputSignal, 0, 1);

? ? arm_cmplx_mag_f32(inputSignal, fftOutput, FFT_LEN);

? uint32_t maxValueIndex = 0;

? float32_t maxValue = 0;

? ? arm_max_f32(&fftOutput[1], FFT_LEN, &maxValue, &maxValueIndex);

? ? float32_t frequency =(float32_t) (maxValueIndex+1) * (float32_t)SAMPLING_FREQUENCY / (float32_t)FFT_SIZE;

return frequency ;

}


/*計算信號最大值的函數(shù),來源于chatGPT*/

float32_t get_signal_max(void)

{

? ? float32_t max_value = 0.0f;

? ? arm_max_f32(signal, FFT_SIZE, &max_value, NULL);

? ? return max_value;

}

/*計算信號最小值的函數(shù),來源于chatGPT*/

float32_t get_signal_min(void)

{

? ? float32_t min_value = 0.0f;

? ? arm_min_f32(signal, FFT_SIZE, &min_value, NULL);

? ? return min_value;

}


/*計算信號峰-峰值的函數(shù),來源于chatGPT*/

float32_t get_signal_peak_to_peak(void)

{

? ? float32_t min_value = 0.0f;

? ? float32_t max_value = 0.0f;

? ? arm_min_f32(signal, FFT_SIZE, &min_value, NULL);

? ? arm_max_f32(signal, FFT_SIZE, &max_value, NULL);

? ? return (max_value - min_value);

}


/*計算信號有效值的函數(shù),來源于chatGPT*/

float32_t get_signal_rms(void)

{

? ? float32_t rms_value = 0.0f;? ? ? ? ??

for(int k=0;k<FFT_SIZE;k++)//采樣數(shù)據(jù)轉(zhuǎn)換為0-3.3伏

signal[k]=signal[k]-get_signal_peak_to_peak()/2;

? ? arm_rms_f32(signal, FFT_SIZE, &rms_value);

? ? return rms_value;

}


for(int j=0;j<FFT_SIZE;j++)//采樣數(shù)據(jù)轉(zhuǎn)換為0-3.3伏

{

signal[j]=(AdcConvertedValue[j]&0xfff)*3.3f/4095.0f;//signal是用來計算有效值的數(shù)組

inputSignal[j*2]=(AdcConvertedValue[j]&0xfff)*3.3f/4095.0f;//inputSignal是用來計算復數(shù)fft的數(shù)組

inputSignal[j*2+1]=0;//交替插零,添加數(shù)據(jù)的虛部,以便使用復數(shù)傅里葉變換計算信號頻率

}


/*使用chatGPT提供的算法計算信號最大值、最小值。峰峰值、有效值、頻率*/

Unicode::snprintfFloat(textMaxValueBuffer, 10, "%2.3f", get_signal_max());

textMaxValue.invalidate();//更新最大值顯示內(nèi)容


Unicode::snprintfFloat(textMinValueBuffer, 10, "%2.3f", get_signal_min());

textMinValue.invalidate();//更新最小值顯示內(nèi)容


Unicode::snprintfFloat(textPPValueBuffer, 10, "%2.3f", get_signal_peak_to_peak());

textPPValue.invalidate();//更新峰-峰值顯示內(nèi)容


Unicode::snprintfFloat(textFreBuffer, 10, "%5.0f", fftCalculate());

textFre.invalidate();//更新頻率顯示內(nèi)容


Unicode::snprintfFloat(textRMSValueBuffer, 10, "%2.3f", get_signal_rms());

textRMSValue.invalidate();//更新有效值顯示內(nèi)容


第六章合集代碼2:chatGPT生成的數(shù)字信號處理算法代碼及在stm32中的整合的評論 (共 條)

分享到微博請遵守國家法律
玉门市| 阿克| 牡丹江市| 定日县| 奇台县| 沙雅县| 曲周县| 五家渠市| 洞口县| 兴化市| 苍山县| 天全县| 玉溪市| 吉木萨尔县| 眉山市| 玉田县| 西乌珠穆沁旗| 苏尼特右旗| 郁南县| 花垣县| 襄汾县| 哈巴河县| 耿马| 济源市| 南川市| 游戏| 罗田县| 色达县| 桦甸市| 澄城县| 巴彦淖尔市| 保定市| 伽师县| 岫岩| 阿图什市| 开远市| 宁安市| 彰化县| 日土县| 九寨沟县| 陇西县|