- 2024-12-16
-
回复了主题帖:
2025年测评中心,DigiKey得捷赞助继续,欢迎跟帖推你期待的上线的测品啦~
来点ADI高档ADC吧
- 2024-12-10
-
发表了主题帖:
【Follow me第二季第1期】补充:AD5270数字电位器的驱动应用
AD5270是1024位、变阻器模式下的温度系数5 ppm/°C、1%电阻容差误差、SPI接口和50-TP存储器数字变阻器,性能十分优秀。
它集业界领先的可变电阻性能与非易失性存储器(NVM)于一体,并提供50次可编程(50-TP)存储器。将电阻值编程写入50-TP存储器之前,可进行无限次调整。这些器件不需要任何外部电压源来帮助熔断熔丝,并提供50次永久编程的机会。在50-TP激活期间,一个永久熔断熔丝指令会将游标位置固定。SPI接口控制时序如下:
使用开发板的SPI接口(任意IO软件模拟SPI)可以完成驱动控制,测试代码如下:
// AD5270 commands - new digital potentiometer
#define CMD_WR_RDAC 0x01
#define CMD_RD_RDAC 0x02
#define CMD_ST_RDAC 0x03
#define CMD_RST 0x04
#define CMD_RD_MEM 0x05
#define CMD_RD_ADDR 0x06
#define CMD_WR_CTRL 0x07
#define CMD_RD_CTRL 0x08
#define CMD_SHTDN 0x09
void vspi_write_word(const int chip_select, uint16_t data_to_send, const uint8_t bit_order, const uint8_t mode) {
vspi->beginTransaction(SPISettings(SPI_FREQ_FAST, bit_order, mode));
digitalWrite(chip_select, LOW); //pull SS slow to prep other end for transfer
vspi->transfer16(data_to_send);
digitalWrite(chip_select, HIGH); //pull ss high to signify end of data transfer
vspi->endTransaction();
}
/* Write a 4-bit command and a 10-bit data word */
void AD5270_Write(const int chip_select, uint8_t cmd, uint16_t data){
uint16_t data_word = ((cmd & 0x0F) << 10) | (data & 0x03FF);
vspi_write_word(chip_select, data_word, MSBFIRST, SPI_MODE1);
}
/* Enable/disable rheostat value changes */
void AD5270_LockUnlock(const int chip_select, uint8_t lock){
AD5270_Write(chip_select, CMD_WR_CTRL, lock ? 0 : 0x002);
}
/* Enable/disable hardware shutdown */
void AD5270_Shutdown(const int chip_select, uint8_t shutdown){
AD5270_Write(chip_select, CMD_SHTDN, shutdown ? 1 : 0);
}
/* Set the value of the digital rheostat - range is 0-0x3FF (0-100kOhm) */
void AD5270_Set(const int chip_select, uint16_t val)
{
AD5270_Write(chip_select, CMD_WR_RDAC, val);
}
#define CHIP_SEL_MEAS 10 // Chip select pin for measuring digital rheostat potentiometer
void setup() {
// put your setup code here, to run once:
// Set voltage measurement gain to 1 (maximum current (5V pk-pk) must be within ADC range)
AD5270_Shutdown(CHIP_SEL_MEAS, 1);
AD5270_Set(CHIP_SEL_MEAS, 100);
}
void loop() {
// put your main code here, to run repeatedly:
}
测试接线和效果:
- 2024-11-29
-
上传了资料:
MQTTX-Setup-1.11.0-x64.exe
- 2024-11-15
-
回复了主题帖:
TI 新推的两款C2000,一个带NPU,一个64位,有人想玩吗?
高端,p,65有没有
- 2024-11-14
-
回复了主题帖:
【STM32H7S78-DK】测评+ADC DMA采集1024点FFT计算速度测评
王1979 发表于 2024-11-12 08:32
**** 作者被禁止或删除 内容自动屏蔽 ****
算法调用不麻烦
- 2024-11-11
-
发表了主题帖:
【STM32H7S78-DK】测评+自适应滤波器计算速度测评
ARM DSP 库提供了 LMS 最小均方自适应滤波和归一化最小均方自适应滤波器,自适应滤波器能够根据输入信号自动调整滤波系数进行数字滤波。对于一些应用来说,由于事先并不知道需要进行操作的参数,例如一些噪声信号的特性,所以要求 使用自适应的系数进行处理。在这种情况下,通常使用自适应滤波器,自适应滤波器使用反馈来调整滤 波器系数以及频率响应。 随着处理器性能的增强,自适应滤波器的应用越来越常见,STM32H7S78具有高性能的DSP运算性能,本帖将在STM32H7S78测试自适应滤波器的性能。
测试代码参考了大佬们的分享,
#include "arm_math.h"
#include "arm_const_structs.h"
#define TEST_LENGTH_SAMPLES 2048 /* 采样点数 */
#define BLOCK_SIZE 2048 /* 调用一次arm_lms_norm_f32处理的采样点个数 */
#define NUM_TAPS 20 /* 滤波器系数个数 */
uint32_t blockSize = BLOCK_SIZE;
uint32_t numBlocks = TEST_LENGTH_SAMPLES/BLOCK_SIZE; /* 需要调用arm_lms_norm_f32的次数 */
static float32_t testInput_f32_50Hz_200Hz[TEST_LENGTH_SAMPLES]={0}; /* 源波形 */
static float32_t testInput_f32_REF[TEST_LENGTH_SAMPLES]={0}; /* 参考波形 */
static float32_t test_f32_ERR[TEST_LENGTH_SAMPLES]={0}; /* 误差数据 */
static float32_t testOutput[TEST_LENGTH_SAMPLES]={0}; /* 滤波后的输出 */
static float32_t lmsStateF32[BLOCK_SIZE + NUM_TAPS - 1]={0}; /* 状态缓存,大小numTaps + blockSize - 1 */
static float32_t lmsCoeffs32[NUM_TAPS] = {0}; /* 滤波器系数 */
/* 测试数据 */
const float32_t OrigalData1[2048]= {
0.00000,
0.36677,
0.72529,
1.06752,
1.38594,
1.67365,
1.92468,
2.13407,
2.29805,
2.41413,
2.48113,
2.49924,
2.46995,
2.39603,
2.28138,
2.13093,
1.95044,
1.74633,
1.52547,
1.29494,
1.06183,
0.83301,
0.61491,
0.41334,
0.23333,
0.07898,
-0.04666,
-0.14163,
-0.20510,
-0.23738,
-0.23987,
-0.21495,
-0.16591,
-0.09678,
-0.01218,
0.08287,
0.18316,
0.28343,
0.37862,
0.46405,
0.53553,
0.58958,
0.62349,
0.63545,
0.62458,
0.59094,
0.53557,
0.46034,
0.36798,
0.26186,
0.14594,
0.02454,
-0.09778,
-0.21643,
-0.32697,
-0.42528,
-0.50772,
-0.57132,
-0.61382,
-0.63386,
-0.63098,
-0.60568,
-0.55941,
-0.49453,
-0.41421,
-0.32239,
-0.22356,
-0.12265,
-0.02488,
0.06453,
0.14042,
0.19802,
0.23302,
0.24184,
0.22170,
0.17080,
0.08840,
-0.02514,
-0.16832,
-0.33850,
-0.53200,
-0.74414,
-0.96942,
-1.20162,
-1.43402,
-1.65960,
-1.87125,
-2.06199,
-2.22519,
-2.35480,
-2.44554,
-2.49308,
-2.49418,
-2.44684,
-2.35033,
-2.20528,
-2.01367,
-1.77877,
-1.50506,
-1.19815,
-0.86457,
-0.51162,
-0.14717,
0.22059,
0.58339,
0.93308,
1.26189,
1.56265,
1.82901,
2.05558,
2.23810,
2.37355,
2.46024,
2.49779,
2.48720,
2.43073,
2.33184,
2.19506,
2.02584,
1.83038,
1.61537,
1.38786,
1.15494,
0.92360,
0.70048,
0.49165,
0.30247,
0.13742,
0.00000,
-0.10740,
-0.18349,
-0.22814,
-0.24232,
-0.22801,
-0.18818,
-0.12656,
-0.04757,
0.04393,
0.14275,
0.24365,
0.34147,
0.43133,
0.50885,
0.57024,
0.61248,
0.63338,
0.63168,
0.60708,
0.56023,
0.49266,
0.40678,
0.30572,
0.19321,
0.07346,
-0.04904,
-0.16970,
-0.28400,
-0.38767,
-0.47686,
-0.54830,
-0.59946,
-0.62859,
-0.63487,
-0.61842,
-0.58030,
-0.52253,
-0.44795,
-0.36022,
-0.26362,
-0.16293,
-0.06327,
0.03010,
0.11200,
0.17746,
0.22198,
0.24165,
0.23337,
0.19492,
0.12514,
0.02394,
-0.10764,
-0.26740,
-0.45208,
-0.65738,
-0.87812,
-1.10833,
-1.34148,
-1.57064,
-1.78872,
-1.98864,
-2.16362,
-2.30735,
-2.41421,
-2.47948,
-2.49947,
-2.47166,
-2.39482,
-2.26903,
-2.09572,
-1.87766,
-1.61887,
-1.32450,
-1.00075,
-0.65463,
-0.29382,
0.07362,
0.43940,
0.79529,
1.13334,
1.44614,
1.72697,
1.97003,
2.17060,
2.32516,
2.43147,
2.48863,
2.49710,
2.45863,
2.37622,
2.25398,
2.09704,
1.91129,
1.70327,
1.47991,
1.24830,
1.01551,
0.78834,
0.57310,
0.37547,
0.20030,
0.05148,
-0.06815,
-0.15685,
-0.21402,
-0.24020,
-0.23698,
-0.20695,
-0.15355,
-0.08095,
0.00616,
0.10268,
0.20338,
0.30303,
0.39663,
0.47958,
0.54783,
0.59804,
0.62768,
0.63511,
0.61965,
0.58156,
0.52203,
0.44314,
0.34773,
0.23933,
0.12195,
0.00000,
-0.12195,
-0.23933,
-0.34773,
-0.44314,
-0.52203,
-0.58156,
-0.61965,
-0.63511,
-0.62768,
-0.59804,
-0.54783,
-0.47958,
-0.39663,
-0.30303,
-0.20338,
-0.10268,
-0.00616,
0.08095,
0.15355,
0.20695,
0.23698,
0.24020,
0.21402,
0.15685,
0.06815,
-0.05148,
-0.20030,
-0.37547,
-0.57310,
-0.78834,
-1.01551,
-1.24830,
-1.47991,
-1.70327,
-1.91129,
-2.09704,
-2.25398,
-2.37622,
-2.45863,
-2.49710,
-2.48863,
-2.43147,
-2.32516,
-2.17060,
-1.97003,
-1.72697,
-1.44614,
-1.13334,
-0.79529,
-0.43940,
-0.07362,
0.29382,
0.65463,
1.00075,
1.32450,
1.61887,
1.87766,
2.09572,
2.26903,
2.39482,
2.47166,
2.49947,
2.47948,
2.41421,
2.30735,
2.16362,
1.98864,
1.78872,
1.57064,
1.34148,
1.10833,
0.87812,
0.65738,
0.45208,
0.26740,
0.10764,
-0.02394,
-0.12514,
-0.19492,
-0.23337,
-0.24165,
-0.22198,
-0.17746,
-0.11200,
-0.03010,
0.06327,
0.16293,
0.26362,
0.36022,
0.44795,
0.52253,
0.58030,
0.61842,
0.63487,
0.62859,
0.59946,
0.54830,
0.47686,
0.38767,
0.28400,
0.16970,
0.04904,
-0.07346,
-0.19321,
-0.30572,
-0.40678,
-0.49266,
-0.56023,
-0.60708,
-0.63168,
-0.63338,
-0.61248,
-0.57024,
-0.50885,
-0.43133,
-0.34147,
-0.24365,
-0.14275,
-0.04393,
0.04757,
0.12656,
0.18818,
0.22801,
0.24232,
0.22814,
0.18349,
0.10740,
0.00000,
-0.13742,
-0.30247,
-0.49165,
-0.70048,
-0.92360,
-1.15494,
-1.38786,
-1.61537,
-1.83038,
-2.02584,
-2.19506,
-2.33184,
-2.43073,
-2.48720,
-2.49779,
-2.46024,
-2.37355,
-2.23810,
-2.05558,
-1.82901,
-1.56265,
-1.26189,
-0.93308,
-0.58339,
-0.22059,
0.14717,
0.51162,
0.86457,
1.19815,
1.50506,
1.77877,
2.01367,
2.20528,
2.35033,
2.44684,
2.49418,
2.49308,
2.44554,
2.35480,
2.22519,
2.06199,
1.87125,
1.65960,
1.43402,
1.20162,
0.96942,
0.74414,
0.53200,
0.33850,
0.16832,
0.02514,
-0.08840,
-0.17080,
-0.22170,
-0.24184,
-0.23302,
-0.19802,
-0.14042,
-0.06453,
0.02488,
0.12265,
0.22356,
0.32239,
0.41421,
0.49453,
0.55941,
0.60568,
0.63098,
0.63386,
0.61382,
0.57132,
0.50772,
0.42528,
0.32697,
0.21643,
0.09778,
-0.02454,
-0.14594,
-0.26186,
-0.36798,
-0.46034,
-0.53557,
-0.59094,
-0.62458,
-0.63545,
-0.62349,
-0.58958,
-0.53553,
-0.46405,
-0.37862,
-0.28343,
-0.18316,
-0.08287,
0.01218,
0.09678,
0.16591,
0.21495,
0.23987,
0.23738,
0.20510,
0.14163,
0.04666,
-0.07898,
-0.23333,
-0.41334,
-0.61491,
-0.83301,
-1.06183,
-1.29494,
-1.52547,
-1.74633,
-1.95044,
-2.13093,
-2.28138,
-2.39603,
-2.46995,
-2.49924,
-2.48113,
-2.41413,
-2.29805,
-2.13407,
-1.92468,
-1.67365,
-1.38594,
-1.06752,
-0.72529,
-0.36677,
-0.00000,
0.36677,
0.72529,
1.06752,
1.38594,
1.67365,
1.92468,
2.13407,
2.29805,
2.41413,
2.48113,
2.49924,
2.46995,
2.39603,
2.28138,
2.13093,
1.95044,
1.74633,
1.52547,
1.29494,
1.06183,
0.83301,
0.61491,
0.41334,
0.23333,
0.07898,
-0.04666,
-0.14163,
-0.20510,
-0.23738,
-0.23987,
-0.21495,
-0.16591,
-0.09678,
-0.01218,
0.08287,
0.18316,
0.28343,
0.37862,
0.46405,
0.53553,
0.58958,
0.62349,
0.63545,
0.62458,
0.59094,
0.53557,
0.46034,
0.36798,
0.26186,
0.14594,
0.02454,
-0.09778,
-0.21643,
-0.32697,
-0.42528,
-0.50772,
-0.57132,
-0.61382,
-0.63386,
-0.63098,
-0.60568,
-0.55941,
-0.49453,
-0.41421,
-0.32239,
-0.22356,
-0.12265,
-0.02488,
0.06453,
0.14042,
0.19802,
0.23302,
0.24184,
0.22170,
0.17080,
0.08840,
-0.02514,
-0.16832,
-0.33850,
-0.53200,
-0.74414,
-0.96942,
-1.20162,
-1.43402,
-1.65960,
-1.87125,
-2.06199,
-2.22519,
-2.35480,
-2.44554,
-2.49308,
-2.49418,
-2.44684,
-2.35033,
-2.20528,
-2.01367,
-1.77877,
-1.50506,
-1.19815,
-0.86457,
-0.51162,
-0.14717,
0.22059,
0.58339,
0.93308,
1.26189,
1.56265,
1.82901,
2.05558,
2.23810,
2.37355,
2.46024,
2.49779,
2.48720,
2.43073,
2.33184,
2.19506,
2.02584,
1.83038,
1.61537,
1.38786,
1.15494,
0.92360,
0.70048,
0.49165,
0.30247,
0.13742,
-0.00000,
-0.10740,
-0.18349,
-0.22814,
-0.24232,
-0.22801,
-0.18818,
-0.12656,
-0.04757,
0.04393,
0.14275,
0.24365,
0.34147,
0.43133,
0.50885,
0.57024,
0.61248,
0.63338,
0.63168,
0.60708,
0.56023,
0.49266,
0.40678,
0.30572,
0.19321,
0.07346,
-0.04904,
-0.16970,
-0.28400,
-0.38767,
-0.47686,
-0.54830,
-0.59946,
-0.62859,
-0.63487,
-0.61842,
-0.58030,
-0.52253,
-0.44795,
-0.36022,
-0.26362,
-0.16293,
-0.06327,
0.03010,
0.11200,
0.17746,
0.22198,
0.24165,
0.23337,
0.19492,
0.12514,
0.02394,
-0.10764,
-0.26740,
-0.45208,
-0.65738,
-0.87812,
-1.10833,
-1.34148,
-1.57064,
-1.78872,
-1.98864,
-2.16362,
-2.30735,
-2.41421,
-2.47948,
-2.49947,
-2.47166,
-2.39482,
-2.26903,
-2.09572,
-1.87766,
-1.61887,
-1.32450,
-1.00075,
-0.65463,
-0.29382,
0.07362,
0.43940,
0.79529,
1.13334,
1.44614,
1.72697,
1.97003,
2.17060,
2.32516,
2.43147,
2.48863,
2.49710,
2.45863,
2.37622,
2.25398,
2.09704,
1.91129,
1.70327,
1.47991,
1.24830,
1.01551,
0.78834,
0.57310,
0.37547,
0.20030,
0.05148,
-0.06815,
-0.15685,
-0.21402,
-0.24020,
-0.23698,
-0.20695,
-0.15355,
-0.08095,
0.00616,
0.10268,
0.20338,
0.30303,
0.39663,
0.47958,
0.54783,
0.59804,
0.62768,
0.63511,
0.61965,
0.58156,
0.52203,
0.44314,
0.34773,
0.23933,
0.12195,
0.00000,
-0.12195,
-0.23933,
-0.34773,
-0.44314,
-0.52203,
-0.58156,
-0.61965,
-0.63511,
-0.62768,
-0.59804,
-0.54783,
-0.47958,
-0.39663,
-0.30303,
-0.20338,
-0.10268,
-0.00616,
0.08095,
0.15355,
0.20695,
0.23698,
0.24020,
0.21402,
0.15685,
0.06815,
-0.05148,
-0.20030,
-0.37547,
-0.57310,
-0.78834,
-1.01551,
-1.24830,
-1.47991,
-1.70327,
-1.91129,
-2.09704,
-2.25398,
-2.37622,
-2.45863,
-2.49710,
-2.48863,
-2.43147,
-2.32516,
-2.17060,
-1.97003,
-1.72697,
-1.44614,
-1.13334,
-0.79529,
-0.43940,
-0.07362,
0.29382,
0.65463,
1.00075,
1.32450,
1.61887,
1.87766,
2.09572,
2.26903,
2.39482,
2.47166,
2.49947,
2.47948,
2.41421,
2.30735,
2.16362,
1.98864,
1.78872,
1.57064,
1.34148,
1.10833,
0.87812,
0.65738,
0.45208,
0.26740,
0.10764,
-0.02394,
-0.12514,
-0.19492,
-0.23337,
-0.24165,
-0.22198,
-0.17746,
-0.11200,
-0.03010,
0.06327,
0.16293,
0.26362,
0.36022,
0.44795,
0.52253,
0.58030,
0.61842,
0.63487,
0.62859,
0.59946,
0.54830,
0.47686,
0.38767,
0.28400,
0.16970,
0.04904,
-0.07346,
-0.19321,
-0.30572,
-0.40678,
-0.49266,
-0.56023,
-0.60708,
-0.63168,
-0.63338,
-0.61248,
-0.57024,
-0.50885,
-0.43133,
-0.34147,
-0.24365,
-0.14275,
-0.04393,
0.04757,
0.12656,
0.18818,
0.22801,
0.24232,
0.22814,
0.18349,
0.10740,
0.00000,
-0.13742,
-0.30247,
-0.49165,
-0.70048,
-0.92360,
-1.15494,
-1.38786,
-1.61537,
-1.83038,
-2.02584,
-2.19506,
-2.33184,
-2.43073,
-2.48720,
-2.49779,
-2.46024,
-2.37355,
-2.23810,
-2.05558,
-1.82901,
-1.56265,
-1.26189,
-0.93308,
-0.58339,
-0.22059,
0.14717,
0.51162,
0.86457,
1.19815,
1.50506,
1.77877,
2.01367,
2.20528,
2.35033,
2.44684,
2.49418,
2.49308,
2.44554,
2.35480,
2.22519,
2.06199,
1.87125,
1.65960,
1.43402,
1.20162,
0.96942,
0.74414,
0.53200,
0.33850,
0.16832,
0.02514,
-0.08840,
-0.17080,
-0.22170,
-0.24184,
-0.23302,
-0.19802,
-0.14042,
-0.06453,
0.02488,
0.12265,
0.22356,
0.32239,
0.41421,
0.49453,
0.55941,
0.60568,
0.63098,
0.63386,
0.61382,
0.57132,
0.50772,
0.42528,
0.32697,
0.21643,
0.09778,
-0.02454,
-0.14594,
-0.26186,
-0.36798,
-0.46034,
-0.53557,
-0.59094,
-0.62458,
-0.63545,
-0.62349,
-0.58958,
-0.53553,
-0.46405,
-0.37862,
-0.28343,
-0.18316,
-0.08287,
0.01218,
0.09678,
0.16591,
0.21495,
0.23987,
0.23738,
0.20510,
0.14163,
0.04666,
-0.07898,
-0.23333,
-0.41334,
-0.61491,
-0.83301,
-1.06183,
-1.29494,
-1.52547,
-1.74633,
-1.95044,
-2.13093,
-2.28138,
-2.39603,
-2.46995,
-2.49924,
-2.48113,
-2.41413,
-2.29805,
-2.13407,
-1.92468,
-1.67365,
-1.38594,
-1.06752,
-0.72529,
-0.36677,
0.00000,
0.36677,
0.72529,
1.06752,
1.38594,
1.67365,
1.92468,
2.13407,
2.29805,
2.41413,
2.48113,
2.49924,
2.46995,
2.39603,
2.28138,
2.13093,
1.95044,
1.74633,
1.52547,
1.29494,
1.06183,
0.83301,
0.61491,
0.41334,
0.23333,
0.07898,
-0.04666,
-0.14163,
-0.20510,
-0.23738,
-0.23987,
-0.21495,
-0.16591,
-0.09678,
-0.01218,
0.08287,
0.18316,
0.28343,
0.37862,
0.46405,
0.53553,
0.58958,
0.62349,
0.63545,
0.62458,
0.59094,
0.53557,
0.46034,
0.36798,
0.26186,
0.14594,
0.02454,
-0.09778,
-0.21643,
-0.32697,
-0.42528,
-0.50772,
-0.57132,
-0.61382,
-0.63386,
-0.63098,
-0.60568,
-0.55941,
-0.49453,
-0.41421,
-0.32239,
-0.22356,
-0.12265,
-0.02488,
0.06453,
0.14042,
0.19802,
0.23302,
0.24184,
0.22170,
0.17080,
0.08840,
-0.02514,
-0.16832,
-0.33850,
-0.53200,
-0.74414,
-0.96942,
-1.20162,
-1.43402,
-1.65960,
-1.87125,
-2.06199,
-2.22519,
-2.35480,
-2.44554,
-2.49308,
-2.49418,
-2.44684,
-2.35033,
-2.20528,
-2.01367,
-1.77877,
-1.50506,
-1.19815,
-0.86457,
-0.51162,
-0.14717,
0.22059,
0.58339,
0.93308,
1.26189,
1.56265,
1.82901,
2.05558,
2.23810,
2.37355,
2.46024,
2.49779,
2.48720,
2.43073,
2.33184,
2.19506,
2.02584,
1.83038,
1.61537,
1.38786,
1.15494,
0.92360,
0.70048,
0.49165,
0.30247,
0.13742,
0.00000,
-0.10740,
-0.18349,
-0.22814,
-0.24232,
-0.22801,
-0.18818,
-0.12656,
-0.04757,
0.04393,
0.14275,
0.24365,
0.34147,
0.43133,
0.50885,
0.57024,
0.61248,
0.63338,
0.63168,
0.60708,
0.56023,
0.49266,
0.40678,
0.30572,
0.19321,
0.07346,
-0.04904,
-0.16970,
-0.28400,
-0.38767,
-0.47686,
-0.54830,
-0.59946,
-0.62859,
-0.63487,
-0.61842,
-0.58030,
-0.52253,
-0.44795,
-0.36022,
-0.26362,
-0.16293,
-0.06327,
0.03010,
0.11200,
0.17746,
0.22198,
0.24165,
0.23337,
0.19492,
0.12514,
0.02394,
-0.10764,
-0.26740,
-0.45208,
-0.65738,
-0.87812,
-1.10833,
-1.34148,
-1.57064,
-1.78872,
-1.98864,
-2.16362,
-2.30735,
-2.41421,
-2.47948,
-2.49947,
-2.47166,
-2.39482,
-2.26903,
-2.09572,
-1.87766,
-1.61887,
-1.32450,
-1.00075,
-0.65463,
-0.29382,
0.07362,
0.43940,
0.79529,
1.13334,
1.44614,
1.72697,
1.97003,
2.17060,
2.32516,
2.43147,
2.48863,
2.49710,
2.45863,
2.37622,
2.25398,
2.09704,
1.91129,
1.70327,
1.47991,
1.24830,
1.01551,
0.78834,
0.57310,
0.37547,
0.20030,
0.05148,
-0.06815,
-0.15685,
-0.21402,
-0.24020,
-0.23698,
-0.20695,
-0.15355,
-0.08095,
0.00616,
0.10268,
0.20338,
0.30303,
0.39663,
0.47958,
0.54783,
0.59804,
0.62768,
0.63511,
0.61965,
0.58156,
0.52203,
0.44314,
0.34773,
0.23933,
0.12195,
0.00000,
-0.12195,
-0.23933,
-0.34773,
-0.44314,
-0.52203,
-0.58156,
-0.61965,
-0.63511,
-0.62768,
-0.59804,
-0.54783,
-0.47958,
-0.39663,
-0.30303,
-0.20338,
-0.10268,
-0.00616,
0.08095,
0.15355,
0.20695,
0.23698,
0.24020,
0.21402,
0.15685,
0.06815,
-0.05148,
-0.20030,
-0.37547,
-0.57310,
-0.78834,
-1.01551,
-1.24830,
-1.47991,
-1.70327,
-1.91129,
-2.09704,
-2.25398,
-2.37622,
-2.45863,
-2.49710,
-2.48863,
-2.43147,
-2.32516,
-2.17060,
-1.97003,
-1.72697,
-1.44614,
-1.13334,
-0.79529,
-0.43940,
-0.07362,
0.29382,
0.65463,
1.00075,
1.32450,
1.61887,
1.87766,
2.09572,
2.26903,
2.39482,
2.47166,
2.49947,
2.47948,
2.41421,
2.30735,
2.16362,
1.98864,
1.78872,
1.57064,
1.34148,
1.10833,
0.87812,
0.65738,
0.45208,
0.26740,
0.10764,
-0.02394,
-0.12514,
-0.19492,
-0.23337,
-0.24165,
-0.22198,
-0.17746,
-0.11200,
-0.03010,
0.06327,
0.16293,
0.26362,
0.36022,
0.44795,
0.52253,
0.58030,
0.61842,
0.63487,
0.62859,
0.59946,
0.54830,
0.47686,
0.38767,
0.28400,
0.16970,
0.04904,
-0.07346,
-0.19321,
-0.30572,
-0.40678,
-0.49266,
-0.56023,
-0.60708,
-0.63168,
-0.63338,
-0.61248,
-0.57024,
-0.50885,
-0.43133,
-0.34147,
-0.24365,
-0.14275,
-0.04393,
0.04757,
0.12656,
0.18818,
0.22801,
0.24232,
0.22814,
0.18349,
0.10740,
0.00000,
-0.13742,
-0.30247,
-0.49165,
-0.70048,
-0.92360,
-1.15494,
-1.38786,
-1.61537,
-1.83038,
-2.02584,
-2.19506,
-2.33184,
-2.43073,
-2.48720,
-2.49779,
-2.46024,
-2.37355,
-2.23810,
-2.05558,
-1.82901,
-1.56265,
-1.26189,
-0.93308,
-0.58339,
-0.22059,
0.14717,
0.51162,
0.86457,
1.19815,
1.50506,
1.77877,
2.01367,
2.20528,
2.35033,
2.44684,
2.49418,
2.49308,
2.44554,
2.35480,
2.22519,
2.06199,
1.87125,
1.65960,
1.43402,
1.20162,
0.96942,
0.74414,
0.53200,
0.33850,
0.16832,
0.02514,
-0.08840,
-0.17080,
-0.22170,
-0.24184,
-0.23302,
-0.19802,
-0.14042,
-0.06453,
0.02488,
0.12265,
0.22356,
0.32239,
0.41421,
0.49453,
0.55941,
0.60568,
0.63098,
0.63386,
0.61382,
0.57132,
0.50772,
0.42528,
0.32697,
0.21643,
0.09778,
-0.02454,
-0.14594,
-0.26186,
-0.36798,
-0.46034,
-0.53557,
-0.59094,
-0.62458,
-0.63545,
-0.62349,
-0.58958,
-0.53553,
-0.46405,
-0.37862,
-0.28343,
-0.18316,
-0.08287,
0.01218,
0.09678,
0.16591,
0.21495,
0.23987,
0.23738,
0.20510,
0.14163,
0.04666,
-0.07898,
-0.23333,
-0.41334,
-0.61491,
-0.83301,
-1.06183,
-1.29494,
-1.52547,
-1.74633,
-1.95044,
-2.13093,
-2.28138,
-2.39603,
-2.46995,
-2.49924,
-2.48113,
-2.41413,
-2.29805,
-2.13407,
-1.92468,
-1.67365,
-1.38594,
-1.06752,
-0.72529,
-0.36677,
-0.00000,
0.36677,
0.72529,
1.06752,
1.38594,
1.67365,
1.92468,
2.13407,
2.29805,
2.41413,
2.48113,
2.49924,
2.46995,
2.39603,
2.28138,
2.13093,
1.95044,
1.74633,
1.52547,
1.29494,
1.06183,
0.83301,
0.61491,
0.41334,
0.23333,
0.07898,
-0.04666,
-0.14163,
-0.20510,
-0.23738,
-0.23987,
-0.21495,
-0.16591,
-0.09678,
-0.01218,
0.08287,
0.18316,
0.28343,
0.37862,
0.46405,
0.53553,
0.58958,
0.62349,
0.63545,
0.62458,
0.59094,
0.53557,
0.46034,
0.36798,
0.26186,
0.14594,
0.02454,
-0.09778,
-0.21643,
-0.32697,
-0.42528,
-0.50772,
-0.57132,
-0.61382,
-0.63386,
-0.63098,
-0.60568,
-0.55941,
-0.49453,
-0.41421,
-0.32239,
-0.22356,
-0.12265,
-0.02488,
0.06453,
0.14042,
0.19802,
0.23302,
0.24184,
0.22170,
0.17080,
0.08840,
-0.02514,
-0.16832,
-0.33850,
-0.53200,
-0.74414,
-0.96942,
-1.20162,
-1.43402,
-1.65960,
-1.87125,
-2.06199,
-2.22519,
-2.35480,
-2.44554,
-2.49308,
-2.49418,
-2.44684,
-2.35033,
-2.20528,
-2.01367,
-1.77877,
-1.50506,
-1.19815,
-0.86457,
-0.51162,
-0.14717,
0.22059,
0.58339,
0.93308,
1.26189,
1.56265,
1.82901,
2.05558,
2.23810,
2.37355,
2.46024,
2.49779,
2.48720,
2.43073,
2.33184,
2.19506,
2.02584,
1.83038,
1.61537,
1.38786,
1.15494,
0.92360,
0.70048,
0.49165,
0.30247,
0.13742,
-0.00000,
-0.10740,
-0.18349,
-0.22814,
-0.24232,
-0.22801,
-0.18818,
-0.12656,
-0.04757,
0.04393,
0.14275,
0.24365,
0.34147,
0.43133,
0.50885,
0.57024,
0.61248,
0.63338,
0.63168,
0.60708,
0.56023,
0.49266,
0.40678,
0.30572,
0.19321,
0.07346,
-0.04904,
-0.16970,
-0.28400,
-0.38767,
-0.47686,
-0.54830,
-0.59946,
-0.62859,
-0.63487,
-0.61842,
-0.58030,
-0.52253,
-0.44795,
-0.36022,
-0.26362,
-0.16293,
-0.06327,
0.03010,
0.11200,
0.17746,
0.22198,
0.24165,
0.23337,
0.19492,
0.12514,
0.02394,
-0.10764,
-0.26740,
-0.45208,
-0.65738,
-0.87812,
-1.10833,
-1.34148,
-1.57064,
-1.78872,
-1.98864,
-2.16362,
-2.30735,
-2.41421,
-2.47948,
-2.49947,
-2.47166,
-2.39482,
-2.26903,
-2.09572,
-1.87766,
-1.61887,
-1.32450,
-1.00075,
-0.65463,
-0.29382,
0.07362,
0.43940,
0.79529,
1.13334,
1.44614,
1.72697,
1.97003,
2.17060,
2.32516,
2.43147,
2.48863,
2.49710,
2.45863,
2.37622,
2.25398,
2.09704,
1.91129,
1.70327,
1.47991,
1.24830,
1.01551,
0.78834,
0.57310,
0.37547,
0.20030,
0.05148,
-0.06815,
-0.15685,
-0.21402,
-0.24020,
-0.23698,
-0.20695,
-0.15355,
-0.08095,
0.00616,
0.10268,
0.20338,
0.30303,
0.39663,
0.47958,
0.54783,
0.59804,
0.62768,
0.63511,
0.61965,
0.58156,
0.52203,
0.44314,
0.34773,
0.23933,
0.12195,
0.00000,
-0.12195,
-0.23933,
-0.34773,
-0.44314,
-0.52203,
-0.58156,
-0.61965,
-0.63511,
-0.62768,
-0.59804,
-0.54783,
-0.47958,
-0.39663,
-0.30303,
-0.20338,
-0.10268,
-0.00616,
0.08095,
0.15355,
0.20695,
0.23698,
0.24020,
0.21402,
0.15685,
0.06815,
-0.05148,
-0.20030,
-0.37547,
-0.57310,
-0.78834,
-1.01551,
-1.24830,
-1.47991,
-1.70327,
-1.91129,
-2.09704,
-2.25398,
-2.37622,
-2.45863,
-2.49710,
-2.48863,
-2.43147,
-2.32516,
-2.17060,
-1.97003,
-1.72697,
-1.44614,
-1.13334,
-0.79529,
-0.43940,
-0.07362,
0.29382,
0.65463,
1.00075,
1.32450,
1.61887,
1.87766,
2.09572,
2.26903,
2.39482,
2.47166,
2.49947,
2.47948,
2.41421,
2.30735,
2.16362,
1.98864,
1.78872,
1.57064,
1.34148,
1.10833,
0.87812,
0.65738,
0.45208,
0.26740,
0.10764,
-0.02394,
-0.12514,
-0.19492,
-0.23337,
-0.24165,
-0.22198,
-0.17746,
-0.11200,
-0.03010,
0.06327,
0.16293,
0.26362,
0.36022,
0.44795,
0.52253,
0.58030,
0.61842,
0.63487,
0.62859,
0.59946,
0.54830,
0.47686,
0.38767,
0.28400,
0.16970,
0.04904,
-0.07346,
-0.19321,
-0.30572,
-0.40678,
-0.49266,
-0.56023,
-0.60708,
-0.63168,
-0.63338,
-0.61248,
-0.57024,
-0.50885,
-0.43133,
-0.34147,
-0.24365,
-0.14275,
-0.04393,
0.04757,
0.12656,
0.18818,
0.22801,
0.24232,
0.22814,
0.18349,
0.10740,
0.00000,
-0.13742,
-0.30247,
-0.49165,
-0.70048,
-0.92360,
-1.15494,
-1.38786,
-1.61537,
-1.83038,
-2.02584,
-2.19506,
-2.33184,
-2.43073,
-2.48720,
-2.49779,
-2.46024,
-2.37355,
-2.23810,
-2.05558,
-1.82901,
-1.56265,
-1.26189,
-0.93308,
-0.58339,
-0.22059,
0.14717,
0.51162,
0.86457,
1.19815,
1.50506,
1.77877,
2.01367,
2.20528,
2.35033,
2.44684,
2.49418,
2.49308,
2.44554,
2.35480,
2.22519,
2.06199,
1.87125,
1.65960,
1.43402,
1.20162,
0.96942,
0.74414,
0.53200,
0.33850,
0.16832,
0.02514,
-0.08840,
-0.17080,
-0.22170,
-0.24184,
-0.23302,
-0.19802,
-0.14042,
-0.06453,
0.02488,
0.12265,
0.22356,
0.32239,
0.41421,
0.49453,
0.55941,
0.60568,
0.63098,
0.63386,
0.61382,
0.57132,
0.50772,
0.42528,
0.32697,
0.21643,
0.09778,
-0.02454,
-0.14594,
-0.26186,
-0.36798,
-0.46034,
-0.53557,
-0.59094,
-0.62458,
-0.63545,
-0.62349,
-0.58958,
-0.53553,
-0.46405,
-0.37862,
-0.28343,
-0.18316,
-0.08287,
0.01218,
0.09678,
0.16591,
0.21495,
0.23987,
0.23738,
0.20510,
0.14163,
0.04666,
-0.07898,
-0.23333,
-0.41334,
-0.61491,
-0.83301,
-1.06183,
-1.29494,
-1.52547,
-1.74633,
-1.95044,
-2.13093,
-2.28138,
-2.39603,
-2.46995,
-2.49924,
-2.48113,
-2.41413,
-2.29805,
-2.13407,
-1.92468,
-1.67365,
-1.38594,
-1.06752,
-0.72529,
-0.36677,
};
const float32_t MixData1[2048] =
{
-0.278051,
0.419613,
0.592103,
1.351344,
0.950808,
1.518573,
1.952439,
1.964031,
2.002147,
2.735932,
2.748701,
3.007873,
2.661723,
2.230027,
2.198711,
2.238686,
2.303673,
1.688968,
1.021966,
0.992764,
1.255672,
0.834435,
0.894966,
0.541934,
-0.191558,
0.454859,
-0.422101,
-0.166369,
-0.165696,
-0.111096,
0.193036,
0.099203,
-0.462102,
-0.384870,
0.294480,
0.271472,
0.237205,
0.270189,
0.556456,
0.323860,
1.180522,
0.576420,
0.613936,
0.523991,
0.694625,
0.633623,
0.263763,
0.739548,
0.164113,
-0.003657,
0.287782,
-0.116635,
-0.185759,
-0.653773,
-0.518312,
-0.237934,
-0.574287,
-0.586067,
-0.913784,
-1.139522,
-0.881219,
-0.766761,
-0.690966,
-0.175750,
-0.504902,
0.066901,
0.231274,
-0.078085,
-0.184134,
0.096769,
0.014123,
0.130454,
0.446896,
0.475450,
-0.164312,
-0.165974,
0.465532,
-0.174178,
-0.334574,
0.117387,
-0.298101,
-0.372349,
-1.123950,
-0.711595,
-1.567631,
-1.623918,
-2.127912,
-2.014915,
-2.312444,
-2.215489,
-2.790054,
-2.838522,
-2.771863,
-2.674088,
-2.607103,
-2.372603,
-2.495317,
-2.047009,
-2.129746,
-1.688088,
-0.736920,
-0.856800,
-0.187631,
-0.001245,
0.824848,
0.228594,
1.265937,
2.027357,
2.100435,
2.256446,
2.115261,
3.389015,
2.431020,
2.807341,
3.002131,
2.351092,
2.339987,
2.087090,
1.721986,
2.049433,
1.590812,
0.819885,
1.141045,
1.254260,
0.641583,
0.622192,
0.251458,
-0.474724,
-0.158115,
-0.169190,
-0.637424,
-0.799728,
-0.016830,
-0.111711,
-0.423010,
-0.637288,
0.275569,
0.331804,
-0.036359,
0.222057,
0.485696,
0.353092,
0.556798,
1.133114,
0.611365,
1.012312,
0.903177,
0.382294,
0.939343,
0.308226,
0.539127,
0.296777,
0.086278,
0.411621,
0.103599,
-0.217065,
-0.030479,
-0.195911,
-0.255116,
-0.547480,
-1.156525,
-0.523555,
-0.282735,
-0.752963,
-0.768907,
-0.551752,
-0.290660,
-0.258563,
-0.389069,
0.293849,
-0.460610,
-0.387088,
0.858289,
0.280602,
0.537299,
-0.013063,
0.187755,
0.720094,
0.101744,
-0.132686,
-0.088742,
-0.934227,
-0.182602,
-0.828090,
-1.179810,
-1.254800,
-1.438828,
-1.779241,
-2.390736,
-2.230252,
-2.185227,
-2.600627,
-2.587400,
-2.583372,
-2.454518,
-2.450056,
-2.578903,
-2.623655,
-2.464975,
-1.760693,
-1.762233,
-1.142737,
-0.838546,
-0.374533,
-0.106143,
-0.014376,
0.458428,
0.883037,
1.107717,
1.144097,
1.585770,
2.512190,
2.040804,
1.976387,
2.470534,
2.372721,
2.977296,
2.636011,
2.523667,
2.059712,
2.394869,
1.674157,
2.071446,
0.819493,
1.694556,
0.804397,
0.732953,
0.529971,
0.469027,
0.287767,
0.536727,
-0.092822,
-0.081194,
-0.045534,
-0.161826,
-0.310320,
-0.026919,
-0.430860,
-0.196574,
0.158147,
0.111768,
0.396034,
0.150891,
0.150025,
0.489495,
0.485981,
0.163561,
0.619220,
0.611541,
0.155884,
-0.043578,
0.364270,
0.932256,
0.474445,
0.839491,
-0.173602,
0.023970,
-0.458810,
0.271759,
-0.713273,
-0.389788,
-0.376132,
-0.897861,
-0.271075,
-0.834011,
-1.025084,
-0.561849,
-0.614852,
-0.466063,
-0.537136,
0.025096,
-0.180440,
0.079190,
-0.446622,
0.431360,
-0.009958,
0.574599,
-0.088137,
0.272575,
-0.526605,
-0.031773,
0.302304,
0.027155,
0.146867,
-0.231649,
-0.945807,
-0.659285,
-1.028151,
-0.708110,
-1.320978,
-1.407632,
-1.764794,
-2.229964,
-2.038862,
-2.138561,
-2.178650,
-2.566788,
-2.915314,
-2.240422,
-2.481332,
-1.803639,
-2.118957,
-1.307709,
-0.909203,
-1.433635,
-0.625591,
-0.142631,
0.028413,
0.016518,
0.253732,
1.368444,
1.435858,
1.145170,
1.540291,
2.402732,
2.082858,
2.685889,
2.765246,
2.263746,
2.819416,
2.652811,
1.845281,
2.260908,
2.233011,
2.071601,
1.438805,
1.622938,
0.716195,
0.576169,
0.697739,
0.404560,
0.134971,
0.390014,
0.216177,
-0.309066,
-0.373539,
0.157669,
-0.085890,
-0.365194,
-0.566972,
-0.041571,
-0.187456,
-0.267048,
0.131639,
0.262973,
0.391679,
0.256704,
0.554361,
0.595764,
0.591663,
0.661543,
0.520339,
1.000666,
0.712233,
0.236681,
0.847405,
-0.270556,
0.027257,
0.290665,
0.453183,
-0.372548,
0.319754,
0.058501,
-0.210505,
-0.614093,
-0.591716,
-0.089049,
-0.216665,
-0.517731,
-0.513747,
-0.041185,
-0.233405,
-0.328007,
-0.187889,
0.020072,
-0.220126,
-0.078975,
-0.106235,
0.293345,
0.174012,
0.385052,
-0.136397,
-0.035604,
0.397930,
0.090979,
0.301539,
0.015352,
-0.493644,
-0.542326,
-0.945846,
-1.245981,
-1.674707,
-1.425038,
-1.615774,
-2.091006,
-2.237243,
-2.267972,
-2.183112,
-2.867010,
-2.531437,
-2.294973,
-2.204319,
-2.000308,
-1.964765,
-1.919177,
-1.734252,
-0.861705,
-0.735544,
-0.299804,
0.197920,
0.185430,
0.418532,
0.936872,
1.386989,
0.974997,
2.038928,
1.507485,
2.172123,
2.281768,
1.862455,
2.357536,
2.642628,
2.695962,
2.065099,
1.832827,
2.469485,
1.896391,
1.472379,
1.339534,
1.014666,
1.053991,
0.944137,
0.036546,
-0.250208,
0.154877,
-0.092601,
0.332818,
-0.237491,
-0.307166,
-0.555711,
0.206653,
0.135853,
-0.240190,
-0.175371,
0.244824,
-0.235681,
0.089085,
0.156867,
0.378576,
1.249162,
0.179068,
0.153244,
1.121611,
0.617478,
0.801829,
0.245574,
0.285625,
0.474771,
0.192913,
0.681581,
0.261999,
-0.161538,
-0.348001,
-0.378610,
-0.155281,
-0.280315,
-0.294542,
-0.933001,
-0.737207,
-0.295508,
-1.069209,
-0.451978,
-0.843080,
-0.210750,
-0.475503,
0.247316,
-0.241921,
0.117626,
-0.325404,
-0.023405,
0.270815,
-0.552631,
0.246094,
0.019483,
0.071030,
0.201806,
0.602276,
-0.439166,
-0.331840,
-0.582806,
-0.750964,
-0.734182,
-0.831071,
-1.270195,
-1.825618,
-1.968032,
-1.710466,
-2.164414,
-2.176854,
-2.107464,
-2.260391,
-2.956173,
-2.226412,
-2.570535,
-2.121081,
-2.319479,
-1.827073,
-2.060443,
-0.922858,
-1.508289,
-1.167309,
-0.683408,
0.434622,
1.246772,
1.224806,
1.635538,
1.473495,
2.117606,
2.629249,
3.115875,
2.656159,
2.529445,
2.741253,
3.494516,
3.307451,
3.146098,
3.045934,
3.106633,
2.834018,
2.387245,
2.430057,
2.105663,
1.667874,
1.690364,
0.771810,
0.736756,
0.739808,
0.472248,
0.234047,
0.746844,
0.100834,
0.589682,
-0.056752,
0.636103,
0.130160,
-0.065618,
0.358806,
0.468049,
1.039677,
1.205967,
0.635381,
1.042340,
0.862804,
1.064166,
1.366582,
1.306269,
0.688467,
1.492767,
1.256492,
0.903638,
0.540329,
0.677800,
0.146651,
0.571079,
0.466522,
-0.151364,
0.059724,
0.079687,
0.360848,
0.177197,
0.131896,
0.214081,
-0.393877,
-0.268149,
0.404721,
-0.351012,
-0.310679,
0.586257,
-0.108370,
0.621715,
0.699790,
0.186747,
1.125329,
0.406162,
0.482767,
0.728078,
0.514443,
0.887300,
0.662590,
0.685882,
-0.067507,
-0.024625,
0.396288,
0.148786,
-0.370714,
-0.704970,
-0.608318,
-0.843822,
-1.730051,
-1.457327,
-1.434621,
-1.606219,
-2.435722,
-2.299680,
-2.109391,
-2.008079,
-1.458030,
-1.274994,
-1.411305,
-1.049791,
-0.610698,
-0.836311,
-0.660881,
0.018656,
0.780030,
0.430543,
1.565411,
1.349442,
1.530551,
2.293393,
2.363122,
2.430692,
2.620503,
2.590710,
3.305382,
2.569533,
2.849722,
2.540316,
3.245416,
2.235564,
2.253771,
2.181615,
2.506356,
1.871819,
1.364354,
1.241756,
1.599763,
0.498632,
0.476353,
0.905162,
0.175571,
0.399942,
0.110309,
0.645106,
0.581168,
0.770809,
0.186366,
0.381534,
0.700933,
0.443843,
1.074409,
0.671337,
0.383685,
0.588885,
0.870202,
0.629095,
1.455836,
1.523360,
0.690576,
0.809577,
0.647595,
1.065731,
0.843768,
0.394528,
0.968935,
0.807392,
0.096189,
0.446127,
0.514206,
0.432563,
-0.108232,
0.261633,
-0.538776,
-0.537836,
0.170717,
-0.071436,
0.314821,
-0.335668,
0.384507,
-0.297584,
0.336408,
-0.102863,
0.170258,
0.249811,
0.371252,
0.776749,
0.916895,
1.163781,
0.888943,
0.828567,
0.526940,
0.381781,
0.346352,
0.571533,
-0.062067,
0.232292,
-0.066669,
-0.286076,
-0.476584,
-1.231899,
-1.725454,
-1.721778,
-2.071049,
-1.636038,
-1.469298,
-1.823176,
-2.083112,
-2.230058,
-2.043828,
-1.569286,
-1.607004,
-1.057289,
-1.288902,
-1.230434,
-0.168988,
-0.227956,
-0.036866,
0.679513,
1.016522,
1.756732,
1.196722,
2.165574,
2.628975,
2.165210,
3.068265,
3.146761,
3.097412,
3.145308,
3.032642,
2.606668,
2.991588,
2.627898,
2.535771,
2.510458,
2.581243,
1.595823,
2.234042,
1.872768,
1.229944,
1.404721,
0.668117,
0.711234,
0.802713,
0.312177,
0.109421,
0.048584,
0.342425,
0.206138,
0.239527,
0.825146,
0.710416,
0.217630,
1.051251,
0.261929,
0.326978,
0.605117,
0.773867,
0.913860,
1.448104,
1.569437,
0.698911,
1.029227,
1.529009,
0.744895,
0.490708,
0.354958,
0.459294,
0.795391,
0.131855,
0.582397,
0.145560,
0.014429,
0.519457,
-0.434466,
-0.325900,
-0.207033,
0.068816,
0.120300,
-0.560603,
0.233512,
-0.162614,
0.017789,
-0.215127,
0.145998,
0.026743,
0.298170,
1.027162,
0.923680,
1.028259,
0.351765,
0.443510,
0.806618,
0.167537,
0.339962,
0.609425,
0.000452,
0.310251,
-0.465816,
-0.341343,
-0.888474,
-0.728528,
-1.223135,
-1.543344,
-1.489578,
-1.538346,
-1.953323,
-1.640636,
-2.118454,
-2.452408,
-2.080447,
-2.109285,
-1.966841,
-2.116377,
-1.221518,
-1.647228,
-1.153597,
-0.716776,
-0.095504,
-0.210302,
0.725363,
1.054609,
0.995387,
1.231782,
2.033283,
2.025312,
2.822646,
2.749408,
2.372430,
3.175617,
3.169133,
2.607252,
2.685827,
3.347691,
2.512054,
2.204146,
2.531040,
1.793100,
2.146540,
1.787618,
1.954840,
1.471534,
0.710678,
1.139672,
0.396040,
1.049154,
0.015042,
0.580311,
0.570909,
0.467781,
0.153113,
0.671547,
0.292284,
0.503589,
0.100634,
0.898525,
0.609707,
1.185266,
1.130625,
0.663048,
0.663822,
0.693283,
0.843130,
0.856773,
0.850539,
1.046508,
0.858010,
1.295065,
0.974948,
1.155199,
0.905175,
0.751137,
0.780867,
-0.059289,
-0.177213,
0.050653,
-0.203156,
0.110647,
-0.375421,
-0.422658,
-0.023506,
-0.000158,
0.424780,
0.480925,
0.291510,
0.486928,
0.121902,
0.003310,
0.738561,
0.694012,
1.118046,
0.963212,
1.198456,
0.388176,
0.946203,
0.470969,
0.710465,
0.468134,
0.431212,
0.612881,
-0.075021,
-0.611694,
-0.156138,
-0.782831,
-0.899354,
-1.322509,
-1.218198,
-1.176684,
-1.556460,
-1.833960,
-1.509089,
-2.140020,
-2.475714,
-2.411920,
-1.577398,
-1.267204,
-1.313923,
-1.550226,
-0.848575,
-1.163776,
-0.019097,
0.201277,
-0.068780,
0.568261,
1.466468,
1.054058,
1.471568,
1.558835,
1.927196,
2.094198,
2.916793,
2.420345,
2.970983,
3.272351,
2.564576,
3.106890,
2.789672,
2.619376,
2.666380,
2.867571,
1.787402,
1.632014,
2.089382,
1.029588,
0.827413,
1.117832,
0.376422,
0.271852,
0.424302,
0.449313,
0.045081,
0.163969,
0.671942,
0.129110,
0.343688,
0.042405,
0.276977,
0.876151,
1.086986,
0.760233,
1.210006,
1.163925,
0.634267,
0.564007,
1.396934,
1.144970,
0.864892,
1.317445,
1.222063,
1.375884,
0.773057,
0.657617,
0.510200,
0.111117,
0.255145,
0.711889,
-0.110758,
0.184519,
-0.399349,
0.310651,
0.371847,
-0.323477,
-0.402236,
0.311610,
0.252571,
0.244261,
0.043552,
0.203817,
0.303035,
0.237371,
0.750215,
0.167424,
0.206133,
0.689142,
0.767769,
0.403585,
0.386755,
0.265352,
0.574144,
0.536515,
-0.073723,
0.028102,
-0.070763,
-0.601456,
-0.132186,
-0.212598,
-0.874368,
-0.714481,
-0.756415,
-1.517250,
-1.168757,
-1.846140,
-2.188589,
-2.267524,
-1.743268,
-1.536816,
-1.553647,
-1.891345,
-1.182682,
-1.455434,
-0.966373,
-0.895278,
-0.701868,
-0.111500,
0.286677,
-0.278051,
0.419613,
0.592103,
1.351344,
0.950808,
1.518573,
1.952439,
1.964031,
2.002147,
2.735932,
2.748701,
3.007873,
2.661723,
2.230027,
2.198711,
2.238686,
2.303673,
1.688968,
1.021966,
0.992764,
1.255672,
0.834435,
0.894966,
0.541934,
-0.191558,
0.454859,
-0.422101,
-0.166369,
-0.165696,
-0.111096,
0.193036,
0.099203,
-0.462102,
-0.384870,
0.294480,
0.271472,
0.237205,
0.270189,
0.556456,
0.323860,
1.180522,
0.576420,
0.613936,
0.523991,
0.694625,
0.633623,
0.263763,
0.739548,
0.164113,
-0.003657,
0.287782,
-0.116635,
-0.185759,
-0.653773,
-0.518312,
-0.237934,
-0.574287,
-0.586067,
-0.913784,
-1.139522,
-0.881219,
-0.766761,
-0.690966,
-0.175750,
-0.504902,
0.066901,
0.231274,
-0.078085,
-0.184134,
0.096769,
0.014123,
0.130454,
0.446896,
0.475450,
-0.164312,
-0.165974,
0.465532,
-0.174178,
-0.334574,
0.117387,
-0.298101,
-0.372349,
-1.123950,
-0.711595,
-1.567631,
-1.623918,
-2.127912,
-2.014915,
-2.312444,
-2.215489,
-2.790054,
-2.838522,
-2.771863,
-2.674088,
-2.607103,
-2.372603,
-2.495317,
-2.047009,
-2.129746,
-1.688088,
-0.736920,
-0.856800,
-0.187631,
-0.001245,
0.824848,
0.228594,
1.265937,
2.027357,
2.100435,
2.256446,
2.115261,
3.389015,
2.431020,
2.807341,
3.002131,
2.351092,
2.339987,
2.087090,
1.721986,
2.049433,
1.590812,
0.819885,
1.141045,
1.254260,
0.641583,
0.622192,
0.251458,
-0.474724,
-0.158115,
-0.169190,
-0.637424,
-0.799728,
-0.016830,
-0.111711,
-0.423010,
-0.637288,
0.275569,
0.331804,
-0.036359,
0.222057,
0.485696,
0.353092,
0.556798,
1.133114,
0.611365,
1.012312,
0.903177,
0.382294,
0.939343,
0.308226,
0.539127,
0.296777,
0.086278,
0.411621,
0.103599,
-0.217065,
-0.030479,
-0.195911,
-0.255116,
-0.547480,
-1.156525,
-0.523555,
-0.282735,
-0.752963,
-0.768907,
-0.551752,
-0.290660,
-0.258563,
-0.389069,
0.293849,
-0.460610,
-0.387088,
0.858289,
0.280602,
0.537299,
-0.013063,
0.187755,
0.720094,
0.101744,
-0.132686,
-0.088742,
-0.934227,
-0.182602,
-0.828090,
-1.179810,
-1.254800,
-1.438828,
-1.779241,
-2.390736,
-2.230252,
-2.185227,
-2.600627,
-2.587400,
-2.583372,
-2.454518,
-2.450056,
-2.578903,
-2.623655,
-2.464975,
-1.760693,
-1.762233,
-1.142737,
-0.838546,
-0.374533,
-0.106143,
-0.014376,
0.458428,
0.883037,
1.107717,
1.144097,
1.585770,
2.512190,
2.040804,
1.976387,
2.470534,
2.372721,
2.977296,
2.636011,
2.523667,
2.059712,
2.394869,
1.674157,
2.071446,
0.819493,
1.694556,
0.804397,
0.732953,
0.529971,
0.469027,
0.287767,
0.536727,
-0.092822,
-0.081194,
-0.045534,
-0.161826,
-0.310320,
-0.026919,
-0.430860,
-0.196574,
0.158147,
0.111768,
0.396034,
0.150891,
0.150025,
0.489495,
0.485981,
0.163561,
0.619220,
0.611541,
0.155884,
-0.043578,
0.364270,
0.932256,
0.474445,
0.839491,
-0.173602,
0.023970,
-0.458810,
0.271759,
-0.713273,
-0.389788,
-0.376132,
-0.897861,
-0.271075,
-0.834011,
-1.025084,
-0.561849,
-0.614852,
-0.466063,
-0.537136,
0.025096,
-0.180440,
0.079190,
-0.446622,
0.431360,
-0.009958,
0.574599,
-0.088137,
0.272575,
-0.526605,
-0.031773,
0.302304,
0.027155,
0.146867,
-0.231649,
-0.945807,
-0.659285,
-1.028151,
-0.708110,
-1.320978,
-1.407632,
-1.764794,
-2.229964,
-2.038862,
-2.138561,
-2.178650,
-2.566788,
-2.915314,
-2.240422,
-2.481332,
-1.803639,
-2.118957,
-1.307709,
-0.909203,
-1.433635,
-0.625591,
-0.142631,
0.028413,
0.016518,
0.253732,
1.368444,
1.435858,
1.145170,
1.540291,
2.402732,
2.082858,
2.685889,
2.765246,
2.263746,
2.819416,
2.652811,
1.845281,
2.260908,
2.233011,
2.071601,
1.438805,
1.622938,
0.716195,
0.576169,
0.697739,
0.404560,
0.134971,
0.390014,
0.216177,
-0.309066,
-0.373539,
0.157669,
-0.085890,
-0.365194,
-0.566972,
-0.041571,
-0.187456,
-0.267048,
0.131639,
0.262973,
0.391679,
0.256704,
0.554361,
0.595764,
0.591663,
0.661543,
0.520339,
1.000666,
0.712233,
0.236681,
0.847405,
-0.270556,
0.027257,
0.290665,
0.453183,
-0.372548,
0.319754,
0.058501,
-0.210505,
-0.614093,
-0.591716,
-0.089049,
-0.216665,
-0.517731,
-0.513747,
-0.041185,
-0.233405,
-0.328007,
-0.187889,
0.020072,
-0.220126,
-0.078975,
-0.106235,
0.293345,
0.174012,
0.385052,
-0.136397,
-0.035604,
0.397930,
0.090979,
0.301539,
0.015352,
-0.493644,
-0.542326,
-0.945846,
-1.245981,
-1.674707,
-1.425038,
-1.615774,
-2.091006,
-2.237243,
-2.267972,
-2.183112,
-2.867010,
-2.531437,
-2.294973,
-2.204319,
-2.000308,
-1.964765,
-1.919177,
-1.734252,
-0.861705,
-0.735544,
-0.299804,
0.197920,
0.185430,
0.418532,
0.936872,
1.386989,
0.974997,
2.038928,
1.507485,
2.172123,
2.281768,
1.862455,
2.357536,
2.642628,
2.695962,
2.065099,
1.832827,
2.469485,
1.896391,
1.472379,
1.339534,
1.014666,
1.053991,
0.944137,
0.036546,
-0.250208,
0.154877,
-0.092601,
0.332818,
-0.237491,
-0.307166,
-0.555711,
0.206653,
0.135853,
-0.240190,
-0.175371,
0.244824,
-0.235681,
0.089085,
0.156867,
0.378576,
1.249162,
0.179068,
0.153244,
1.121611,
0.617478,
0.801829,
0.245574,
0.285625,
0.474771,
0.192913,
0.681581,
0.261999,
-0.161538,
-0.348001,
-0.378610,
-0.155281,
-0.280315,
-0.294542,
-0.933001,
-0.737207,
-0.295508,
-1.069209,
-0.451978,
-0.843080,
-0.210750,
-0.475503,
0.247316,
-0.241921,
0.117626,
-0.325404,
-0.023405,
0.270815,
-0.552631,
0.246094,
0.019483,
0.071030,
0.201806,
0.602276,
-0.439166,
-0.331840,
-0.582806,
-0.750964,
-0.734182,
-0.831071,
-1.270195,
-1.825618,
-1.968032,
-1.710466,
-2.164414,
-2.176854,
-2.107464,
-2.260391,
-2.956173,
-2.226412,
-2.570535,
-2.121081,
-2.319479,
-1.827073,
-2.060443,
-0.922858,
-1.508289,
-1.167309,
-0.683408,
0.434622,
1.246772,
1.224806,
1.635538,
1.473495,
2.117606,
2.629249,
3.115875,
2.656159,
2.529445,
2.741253,
3.494516,
3.307451,
3.146098,
3.045934,
3.106633,
2.834018,
2.387245,
2.430057,
2.105663,
1.667874,
1.690364,
0.771810,
0.736756,
0.739808,
0.472248,
0.234047,
0.746844,
0.100834,
0.589682,
-0.056752,
0.636103,
0.130160,
-0.065618,
0.358806,
0.468049,
1.039677,
1.205967,
0.635381,
1.042340,
0.862804,
1.064166,
1.366582,
1.306269,
0.688467,
1.492767,
1.256492,
0.903638,
0.540329,
0.677800,
0.146651,
0.571079,
0.466522,
-0.151364,
0.059724,
0.079687,
0.360848,
0.177197,
0.131896,
0.214081,
-0.393877,
-0.268149,
0.404721,
-0.351012,
-0.310679,
0.586257,
-0.108370,
0.621715,
0.699790,
0.186747,
1.125329,
0.406162,
0.482767,
0.728078,
0.514443,
0.887300,
0.662590,
0.685882,
-0.067507,
-0.024625,
0.396288,
0.148786,
-0.370714,
-0.704970,
-0.608318,
-0.843822,
-1.730051,
-1.457327,
-1.434621,
-1.606219,
-2.435722,
-2.299680,
-2.109391,
-2.008079,
-1.458030,
-1.274994,
-1.411305,
-1.049791,
-0.610698,
-0.836311,
-0.660881,
0.018656,
0.780030,
0.430543,
1.565411,
1.349442,
1.530551,
2.293393,
2.363122,
2.430692,
2.620503,
2.590710,
3.305382,
2.569533,
2.849722,
2.540316,
3.245416,
2.235564,
2.253771,
2.181615,
2.506356,
1.871819,
1.364354,
1.241756,
1.599763,
0.498632,
0.476353,
0.905162,
0.175571,
0.399942,
0.110309,
0.645106,
0.581168,
0.770809,
0.186366,
0.381534,
0.700933,
0.443843,
1.074409,
0.671337,
0.383685,
0.588885,
0.870202,
0.629095,
1.455836,
1.523360,
0.690576,
0.809577,
0.647595,
1.065731,
0.843768,
0.394528,
0.968935,
0.807392,
0.096189,
0.446127,
0.514206,
0.432563,
-0.108232,
0.261633,
-0.538776,
-0.537836,
0.170717,
-0.071436,
0.314821,
-0.335668,
0.384507,
-0.297584,
0.336408,
-0.102863,
0.170258,
0.249811,
0.371252,
0.776749,
0.916895,
1.163781,
0.888943,
0.828567,
0.526940,
0.381781,
0.346352,
0.571533,
-0.062067,
0.232292,
-0.066669,
-0.286076,
-0.476584,
-1.231899,
-1.725454,
-1.721778,
-2.071049,
-1.636038,
-1.469298,
-1.823176,
-2.083112,
-2.230058,
-2.043828,
-1.569286,
-1.607004,
-1.057289,
-1.288902,
-1.230434,
-0.168988,
-0.227956,
-0.036866,
0.679513,
1.016522,
1.756732,
1.196722,
2.165574,
2.628975,
2.165210,
3.068265,
3.146761,
3.097412,
3.145308,
3.032642,
2.606668,
2.991588,
2.627898,
2.535771,
2.510458,
2.581243,
1.595823,
2.234042,
1.872768,
1.229944,
1.404721,
0.668117,
0.711234,
0.802713,
0.312177,
0.109421,
0.048584,
0.342425,
0.206138,
0.239527,
0.825146,
0.710416,
0.217630,
1.051251,
0.261929,
0.326978,
0.605117,
0.773867,
0.913860,
1.448104,
1.569437,
0.698911,
1.029227,
1.529009,
0.744895,
0.490708,
0.354958,
0.459294,
0.795391,
0.131855,
0.582397,
0.145560,
0.014429,
0.519457,
-0.434466,
-0.325900,
-0.207033,
0.068816,
0.120300,
-0.560603,
0.233512,
-0.162614,
0.017789,
-0.215127,
0.145998,
0.026743,
0.298170,
1.027162,
0.923680,
1.028259,
0.351765,
0.443510,
0.806618,
0.167537,
0.339962,
0.609425,
0.000452,
0.310251,
-0.465816,
-0.341343,
-0.888474,
-0.728528,
-1.223135,
-1.543344,
-1.489578,
-1.538346,
-1.953323,
-1.640636,
-2.118454,
-2.452408,
-2.080447,
-2.109285,
-1.966841,
-2.116377,
-1.221518,
-1.647228,
-1.153597,
-0.716776,
-0.095504,
-0.210302,
0.725363,
1.054609,
0.995387,
1.231782,
2.033283,
2.025312,
2.822646,
2.749408,
2.372430,
3.175617,
3.169133,
2.607252,
2.685827,
3.347691,
2.512054,
2.204146,
2.531040,
1.793100,
2.146540,
1.787618,
1.954840,
1.471534,
0.710678,
1.139672,
0.396040,
1.049154,
0.015042,
0.580311,
0.570909,
0.467781,
0.153113,
0.671547,
0.292284,
0.503589,
0.100634,
0.898525,
0.609707,
1.185266,
1.130625,
0.663048,
0.663822,
0.693283,
0.843130,
0.856773,
0.850539,
1.046508,
0.858010,
1.295065,
0.974948,
1.155199,
0.905175,
0.751137,
0.780867,
-0.059289,
-0.177213,
0.050653,
-0.203156,
0.110647,
-0.375421,
-0.422658,
-0.023506,
-0.000158,
0.424780,
0.480925,
0.291510,
0.486928,
0.121902,
0.003310,
0.738561,
0.694012,
1.118046,
0.963212,
1.198456,
0.388176,
0.946203,
0.470969,
0.710465,
0.468134,
0.431212,
0.612881,
-0.075021,
-0.611694,
-0.156138,
-0.782831,
-0.899354,
-1.322509,
-1.218198,
-1.176684,
-1.556460,
-1.833960,
-1.509089,
-2.140020,
-2.475714,
-2.411920,
-1.577398,
-1.267204,
-1.313923,
-1.550226,
-0.848575,
-1.163776,
-0.019097,
0.201277,
-0.068780,
0.568261,
1.466468,
1.054058,
1.471568,
1.558835,
1.927196,
2.094198,
2.916793,
2.420345,
2.970983,
3.272351,
2.564576,
3.106890,
2.789672,
2.619376,
2.666380,
2.867571,
1.787402,
1.632014,
2.089382,
1.029588,
0.827413,
1.117832,
0.376422,
0.271852,
0.424302,
0.449313,
0.045081,
0.163969,
0.671942,
0.129110,
0.343688,
0.042405,
0.276977,
0.876151,
1.086986,
0.760233,
1.210006,
1.163925,
0.634267,
0.564007,
1.396934,
1.144970,
0.864892,
1.317445,
1.222063,
1.375884,
0.773057,
0.657617,
0.510200,
0.111117,
0.255145,
0.711889,
-0.110758,
0.184519,
-0.399349,
0.310651,
0.371847,
-0.323477,
-0.402236,
0.311610,
0.252571,
0.244261,
0.043552,
0.203817,
0.303035,
0.237371,
0.750215,
0.167424,
0.206133,
0.689142,
0.767769,
0.403585,
0.386755,
0.265352,
0.574144,
0.536515,
-0.073723,
0.028102,
-0.070763,
-0.601456,
-0.132186,
-0.212598,
-0.874368,
-0.714481,
-0.756415,
-1.517250,
-1.168757,
-1.846140,
-2.188589,
-2.267524,
-1.743268,
-1.536816,
-1.553647,
-1.891345,
-1.182682,
-1.455434,
-0.966373,
-0.895278,
-0.701868,
-0.111500,
0.286677,
};
const float32_t OrigalData[2048] =
{
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
0.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
20.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
-2.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
-5.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
9.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
-4.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
3.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
12.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
5.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
25.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
7.000000,
};
const float32_t MixData[2048] =
{
-0.191369,
-0.749127,
-0.531185,
1.636901,
1.984951,
-0.536357,
-0.526809,
0.698130,
0.802163,
-1.580007,
-0.779832,
-1.143477,
0.462977,
1.285612,
-0.375808,
0.607811,
-0.741598,
-0.448738,
1.278238,
0.199438,
0.556566,
0.880427,
-1.063859,
0.842679,
-0.756426,
0.981440,
0.892898,
1.347870,
0.438222,
0.767736,
-0.433392,
-1.476173,
-0.510023,
0.689417,
-0.457657,
0.123272,
1.073843,
1.572955,
-0.077115,
-0.831921,
-0.709114,
1.883983,
-1.848087,
0.208080,
-0.323356,
-0.089697,
-1.777702,
-1.466205,
1.583541,
-1.754747,
1.515992,
-0.313105,
-0.242881,
-0.367793,
-0.923131,
0.701841,
-0.340415,
0.382061,
0.960845,
0.340726,
-0.031181,
1.300579,
-1.176799,
-0.976389,
-0.183658,
-1.846481,
0.592703,
-0.582565,
-0.341140,
-0.572744,
1.987394,
-0.608183,
-0.016105,
-0.499183,
0.162622,
0.046288,
0.738153,
-1.190017,
-0.346654,
-1.816176,
0.264233,
0.937689,
0.408466,
-0.837202,
0.513476,
-0.530290,
-0.160781,
0.486319,
-1.629413,
-0.890651,
-0.446313,
0.265341,
-0.225654,
-0.158109,
-0.482954,
1.830467,
0.320417,
-0.970291,
0.418248,
-2.135538,
20.910395,
17.841122,
20.597354,
18.321467,
19.781582,
18.686821,
20.227608,
19.327304,
19.555231,
21.727175,
18.988994,
20.848924,
19.233256,
19.599421,
21.270044,
20.478215,
20.442770,
21.154232,
19.411892,
19.833372,
-1.603663,
-1.774487,
-1.082986,
-3.759646,
-2.907569,
-3.261289,
-3.546728,
-1.411938,
-2.442689,
-3.056303,
-2.199872,
-3.738597,
-3.223296,
-1.687603,
-3.730154,
-0.496218,
-3.314874,
-2.055081,
-2.724858,
-2.169917,
-1.588044,
-0.776636,
-0.784726,
-2.426247,
-2.179535,
-1.755633,
-0.340519,
-1.100521,
-3.638904,
-2.733516,
3.874695,
4.059649,
5.716389,
4.530539,
6.600014,
5.525856,
5.321188,
7.095263,
4.609872,
5.368814,
5.612250,
4.356811,
5.186749,
3.582162,
6.033563,
6.898249,
5.307993,
2.811645,
6.881504,
3.719954,
3.730636,
4.138494,
4.730949,
3.611499,
8.048982,
4.068129,
5.884561,
5.684722,
4.153400,
4.079910,
6.681937,
5.724988,
3.898786,
4.719988,
4.887168,
5.637743,
5.976972,
6.002931,
5.975084,
5.297737,
6.682555,
4.158666,
7.081845,
5.679158,
6.458619,
4.778726,
4.226219,
5.538600,
5.476589,
5.490040,
5.205832,
5.680233,
5.499988,
4.230363,
3.633145,
5.458514,
5.172352,
5.495531,
3.516129,
4.353320,
5.199864,
6.344863,
3.802207,
5.131089,
5.219337,
5.285633,
4.189385,
4.183263,
4.451523,
5.068705,
5.486625,
7.068244,
3.401550,
5.991179,
6.043269,
4.899206,
4.052250,
4.653389,
4.663737,
5.578173,
-4.755886,
-4.283716,
-5.079975,
-4.414210,
-5.097557,
-3.207465,
-5.704865,
-4.267042,
-2.744498,
-5.581295,
-4.929389,
-4.230796,
-4.909626,
-4.045983,
-4.703848,
-3.632953,
-5.216252,
-6.728259,
-4.210673,
-5.360196,
-4.952863,
-4.368865,
-6.939665,
-5.359276,
-4.412516,
-7.280638,
-6.116867,
-5.816486,
-5.485327,
-4.334981,
7.671687,
8.873841,
9.632914,
9.469979,
9.063516,
9.556245,
10.575581,
9.125633,
10.625598,
10.799788,
8.518634,
8.607463,
9.607410,
8.248434,
7.344631,
9.271736,
9.435436,
9.197208,
8.037997,
8.607800,
10.030320,
9.179983,
8.806731,
8.425941,
8.636819,
9.029741,
9.304111,
8.297898,
8.004216,
9.043830,
9.163041,
9.034175,
8.384248,
7.340012,
8.828276,
9.865752,
10.810739,
9.516697,
9.336073,
9.462812,
9.108030,
8.187531,
8.390439,
7.852137,
8.854272,
9.184024,
9.840553,
8.591391,
8.041362,
9.326816,
7.563626,
7.957029,
7.394757,
9.059029,
9.327090,
7.991391,
8.766415,
9.647914,
9.232663,
8.721903,
9.063167,
8.829403,
7.717187,
9.506898,
9.776002,
9.253020,
9.351479,
9.395197,
9.342416,
8.545510,
9.400396,
9.495266,
10.376886,
7.309244,
7.468083,
9.655610,
10.132802,
9.316194,
7.802531,
8.427661,
10.013687,
10.232217,
9.707704,
7.528022,
9.452580,
7.056861,
9.226204,
8.879749,
9.758559,
8.872123,
7.964222,
8.699268,
8.877355,
7.503179,
9.307898,
8.117875,
10.114623,
9.486305,
8.500482,
7.885157,
7.317921,
9.894366,
10.316869,
9.266766,
8.410104,
9.476291,
9.053787,
9.273372,
10.725818,
8.796850,
9.117307,
7.825506,
8.277831,
10.027711,
8.450544,
7.154872,
9.562675,
9.576406,
9.518157,
9.827275,
8.331395,
9.357855,
8.747453,
9.437819,
8.124531,
9.266900,
8.792846,
10.942103,
8.882119,
9.421224,
9.459842,
8.498255,
10.184112,
9.407786,
10.027958,
8.322561,
8.191143,
9.542488,
9.684821,
9.616658,
-3.018951,
-3.927135,
-4.108310,
-5.048560,
-3.907581,
-3.435319,
-2.746054,
-4.727676,
-3.517871,
-3.256603,
-2.903085,
-4.132433,
-5.080795,
-4.418563,
-4.790791,
-4.017594,
-5.640663,
-4.659616,
-4.591201,
-3.231238,
-3.020852,
-3.475873,
-4.657343,
-4.582487,
-5.713247,
-2.676578,
-5.844275,
-3.170716,
-5.143565,
-3.947016,
-4.231541,
-3.212407,
-2.601830,
-4.255225,
-2.670143,
-5.430716,
-5.347036,
-3.349611,
-3.455481,
-3.848006,
1.355298,
3.772950,
4.220892,
3.152731,
2.829202,
1.958649,
2.787451,
4.036527,
3.087246,
2.989515,
3.564104,
2.233250,
2.610927,
1.754422,
1.409628,
2.644174,
3.875122,
2.584340,
3.889929,
2.159248,
2.891914,
2.258054,
3.452049,
3.568172,
2.458213,
2.142941,
0.108753,
1.524591,
3.866783,
5.014628,
3.411060,
3.037729,
3.535182,
1.341819,
4.056992,
3.182946,
2.160399,
3.003900,
3.064865,
3.101283,
3.954393,
3.124648,
3.118135,
4.446050,
0.729254,
3.393961,
1.564530,
3.224953,
4.563784,
1.302582,
3.110984,
2.226544,
3.832021,
3.316146,
1.794835,
3.612261,
3.800246,
2.050217,
2.413396,
4.400176,
2.650103,
3.893210,
4.497104,
3.937372,
4.404039,
2.551433,
3.892254,
4.519806,
4.159218,
4.814500,
1.298597,
3.801705,
3.188672,
3.239955,
4.163651,
3.011309,
3.623262,
2.118537,
3.178298,
3.573497,
3.041045,
2.549192,
3.994926,
4.583972,
3.466773,
1.814521,
3.026880,
2.899341,
0.465716,
2.713927,
3.631795,
3.706314,
0.981104,
2.727316,
3.819292,
2.366964,
3.684221,
1.963861,
3.948440,
4.409128,
3.813670,
2.821799,
2.954779,
2.360414,
2.561696,
3.623100,
3.082260,
3.150661,
3.866161,
3.581981,
3.229727,
3.986244,
3.066000,
1.710789,
2.908360,
4.874899,
2.770672,
1.823320,
3.192864,
2.553591,
3.843609,
4.202764,
2.912035,
3.989408,
2.662912,
2.494070,
1.553211,
2.544995,
4.413650,
3.280056,
2.347228,
2.394332,
2.524323,
3.871451,
3.013344,
3.187703,
3.165606,
2.888160,
1.357811,
4.364732,
1.414335,
0.369534,
2.552457,
3.724690,
2.968288,
2.736687,
2.845247,
3.389558,
3.397048,
3.781755,
2.243389,
2.053190,
3.825352,
2.688027,
2.298747,
1.850329,
1.963509,
2.619968,
3.568431,
1.902936,
4.524858,
4.489171,
4.245867,
3.104543,
2.574010,
4.050934,
3.021975,
3.282062,
4.066149,
1.223703,
4.158723,
2.489351,
1.279311,
2.730771,
2.078510,
2.124990,
2.041405,
3.615505,
2.254914,
2.428036,
3.144494,
1.628409,
3.888282,
0.353978,
2.611382,
2.397944,
3.710538,
3.406865,
3.595019,
2.495350,
4.855430,
2.525012,
3.003461,
2.305046,
4.275201,
2.044810,
1.569082,
2.687778,
5.057221,
2.732969,
2.248326,
3.010729,
3.225569,
2.706394,
3.482589,
1.458424,
1.567320,
-0.555789,
3.080790,
4.442939,
3.238116,
3.122721,
3.845333,
2.658504,
2.392372,
3.270601,
3.725726,
4.060191,
1.885879,
2.760272,
10.118199,
11.806606,
11.238046,
12.427293,
12.452675,
12.974889,
13.336935,
13.479238,
10.003256,
12.036254,
10.719331,
12.734945,
11.393162,
11.359317,
11.426971,
11.084504,
11.631946,
13.087906,
12.759296,
12.104975,
11.740420,
8.888618,
11.372645,
12.351950,
12.411682,
12.301632,
10.930858,
11.903953,
11.274828,
13.202222,
13.392753,
12.886341,
11.864719,
12.640542,
11.116491,
13.401556,
12.772636,
11.614163,
12.631864,
11.929024,
12.604826,
11.303522,
12.244977,
11.318461,
10.662016,
11.314049,
11.513576,
12.758536,
10.928917,
12.626499,
11.081752,
13.056499,
12.086366,
11.855402,
10.796979,
10.858069,
11.779116,
13.270837,
12.058332,
10.988444,
12.890824,
11.895496,
12.868898,
11.444749,
12.189483,
10.593911,
11.172877,
12.696624,
12.533058,
13.197526,
12.506154,
12.179692,
12.729587,
12.798504,
13.129747,
13.582342,
12.756347,
11.845798,
10.672523,
11.337512,
11.179131,
11.436697,
13.465063,
11.081615,
12.668532,
10.515674,
11.698381,
11.916703,
11.437482,
13.013418,
11.667011,
13.238574,
11.333662,
10.812477,
12.607026,
13.894420,
13.338355,
13.075339,
12.648913,
13.683885,
6.373446,
4.684835,
5.143509,
4.116877,
4.847059,
5.792419,
5.407943,
3.984098,
6.252480,
6.004841,
6.175336,
5.316578,
5.971478,
5.512969,
5.550868,
4.937370,
4.631392,
3.634516,
4.877606,
4.351711,
24.269755,
24.640878,
25.413885,
23.629609,
25.181290,
24.679503,
23.269497,
22.554806,
25.894235,
24.560946,
25.662211,
25.275855,
24.448629,
25.820538,
25.818659,
25.159790,
25.993625,
25.380302,
25.739870,
23.843429,
26.074818,
23.257756,
24.511182,
25.611507,
24.540054,
25.465904,
25.566659,
24.366501,
25.782308,
25.266479,
7.043245,
7.929045,
6.819392,
5.985242,
7.608212,
7.737461,
6.209048,
8.455440,
5.880634,
6.137267,
7.536348,
4.833134,
5.671861,
6.614699,
8.177697,
8.387626,
6.168403,
6.326179,
7.380058,
7.964334,
9.569601,
7.337192,
7.807847,
6.573755,
6.011224,
7.132337,
7.264387,
6.195267,
8.173349,
8.419950,
7.402783,
8.379375,
6.468091,
5.656961,
5.710908,
7.406720,
6.654044,
7.445923,
8.080649,
7.541225,
7.604885,
5.302966,
6.474810,
6.776079,
8.545189,
7.188862,
5.426539,
8.643812,
7.495264,
7.015756,
6.516814,
8.210869,
6.155687,
9.191678,
6.818163,
6.028582,
5.646904,
6.686993,
7.048484,
6.618632,
6.288055,
7.567591,
6.226985,
7.276264,
6.734415,
7.634540,
5.441156,
7.960036,
5.969569,
6.148803,
8.012569,
8.725189,
6.578929,
7.211702,
5.802283,
5.389515,
8.174351,
7.749141,
6.965420,
6.482423,
5.757767,
6.442935,
8.494895,
6.760179,
7.569572,
7.094422,
5.664344,
5.288769,
8.050819,
7.222689,
9.847221,
6.850237,
7.651105,
7.146910,
6.352025,
6.183520,
5.993922,
8.012459,
6.441806,
6.030844,
6.825159,
6.323066,
6.886529,
5.132140,
5.803993,
7.060870,
6.227052,
6.355260,
8.848466,
8.282246,
6.776619,
5.795912,
6.057793,
9.214122,
6.869101,
7.268129,
7.029081,
8.130347,
6.230249,
6.260183,
5.211649,
5.472602,
7.269470,
6.912228,
7.769458,
6.486948,
7.456511,
7.749295,
8.926703,
6.913637,
6.815894,
7.088230,
7.074207,
6.829103,
8.875026,
8.238620,
6.481127,
7.827610,
8.243983,
6.066656,
5.927471,
6.654590,
7.230047,
7.119509,
6.896261,
7.196357,
6.046410,
6.120738,
7.346869,
6.801541,
6.584296,
5.286987,
7.209935,
7.380413,
5.607311,
6.798960,
6.973972,
7.810840,
6.259502,
6.359475,
6.184767,
5.219459,
7.064596,
7.312455,
6.196338,
6.045742,
5.820075,
6.802202,
8.065646,
4.171872,
4.732984,
8.038709,
6.281535,
6.935907,
8.178235,
8.523277,
7.030259,
7.657438,
7.188683,
7.473293,
6.630315,
5.493502,
7.568678,
7.625452,
6.597252,
6.431136,
5.545781,
6.463156,
6.401551,
6.623049,
8.648526,
7.353456,
6.596998,
7.297770,
7.292613,
8.163939,
7.866269,
7.994731,
7.163869,
7.364719,
8.061693,
7.088825,
5.439744,
7.170877,
6.058343,
6.924883,
6.517801,
6.308143,
8.133026,
6.616336,
6.999758,
7.072493,
5.570238,
8.167932,
-0.191369,
-0.749127,
-0.531185,
1.636901,
1.984951,
-0.536357,
-0.526809,
0.698130,
0.802163,
-1.580007,
-0.779832,
-1.143477,
0.462977,
1.285612,
-0.375808,
0.607811,
-0.741598,
-0.448738,
1.278238,
0.199438,
0.556566,
0.880427,
-1.063859,
0.842679,
-0.756426,
0.981440,
0.892898,
1.347870,
0.438222,
0.767736,
-0.433392,
-1.476173,
-0.510023,
0.689417,
-0.457657,
0.123272,
1.073843,
1.572955,
-0.077115,
-0.831921,
-0.709114,
1.883983,
-1.848087,
0.208080,
-0.323356,
-0.089697,
-1.777702,
-1.466205,
1.583541,
-1.754747,
1.515992,
-0.313105,
-0.242881,
-0.367793,
-0.923131,
0.701841,
-0.340415,
0.382061,
0.960845,
0.340726,
-0.031181,
1.300579,
-1.176799,
-0.976389,
-0.183658,
-1.846481,
0.592703,
-0.582565,
-0.341140,
-0.572744,
1.987394,
-0.608183,
-0.016105,
-0.499183,
0.162622,
0.046288,
0.738153,
-1.190017,
-0.346654,
-1.816176,
0.264233,
0.937689,
0.408466,
-0.837202,
0.513476,
-0.530290,
-0.160781,
0.486319,
-1.629413,
-0.890651,
-0.446313,
0.265341,
-0.225654,
-0.158109,
-0.482954,
1.830467,
0.320417,
-0.970291,
0.418248,
-2.135538,
20.910395,
17.841122,
20.597354,
18.321467,
19.781582,
18.686821,
20.227608,
19.327304,
19.555231,
21.727175,
18.988994,
20.848924,
19.233256,
19.599421,
21.270044,
20.478215,
20.442770,
21.154232,
19.411892,
19.833372,
-1.603663,
-1.774487,
-1.082986,
-3.759646,
-2.907569,
-3.261289,
-3.546728,
-1.411938,
-2.442689,
-3.056303,
-2.199872,
-3.738597,
-3.223296,
-1.687603,
-3.730154,
-0.496218,
-3.314874,
-2.055081,
-2.724858,
-2.169917,
-1.588044,
-0.776636,
-0.784726,
-2.426247,
-2.179535,
-1.755633,
-0.340519,
-1.100521,
-3.638904,
-2.733516,
3.874695,
4.059649,
5.716389,
4.530539,
6.600014,
5.525856,
5.321188,
7.095263,
4.609872,
5.368814,
5.612250,
4.356811,
5.186749,
3.582162,
6.033563,
6.898249,
5.307993,
2.811645,
6.881504,
3.719954,
3.730636,
4.138494,
4.730949,
3.611499,
8.048982,
4.068129,
5.884561,
5.684722,
4.153400,
4.079910,
6.681937,
5.724988,
3.898786,
4.719988,
4.887168,
5.637743,
5.976972,
6.002931,
5.975084,
5.297737,
6.682555,
4.158666,
7.081845,
5.679158,
6.458619,
4.778726,
4.226219,
5.538600,
5.476589,
5.490040,
5.205832,
5.680233,
5.499988,
4.230363,
3.633145,
5.458514,
5.172352,
5.495531,
3.516129,
4.353320,
5.199864,
6.344863,
3.802207,
5.131089,
5.219337,
5.285633,
4.189385,
4.183263,
4.451523,
5.068705,
5.486625,
7.068244,
3.401550,
5.991179,
6.043269,
4.899206,
4.052250,
4.653389,
4.663737,
5.578173,
-4.755886,
-4.283716,
-5.079975,
-4.414210,
-5.097557,
-3.207465,
-5.704865,
-4.267042,
-2.744498,
-5.581295,
-4.929389,
-4.230796,
-4.909626,
-4.045983,
-4.703848,
-3.632953,
-5.216252,
-6.728259,
-4.210673,
-5.360196,
-4.952863,
-4.368865,
-6.939665,
-5.359276,
-4.412516,
-7.280638,
-6.116867,
-5.816486,
-5.485327,
-4.334981,
7.671687,
8.873841,
9.632914,
9.469979,
9.063516,
9.556245,
10.575581,
9.125633,
10.625598,
10.799788,
8.518634,
8.607463,
9.607410,
8.248434,
7.344631,
9.271736,
9.435436,
9.197208,
8.037997,
8.607800,
10.030320,
9.179983,
8.806731,
8.425941,
8.636819,
9.029741,
9.304111,
8.297898,
8.004216,
9.043830,
9.163041,
9.034175,
8.384248,
7.340012,
8.828276,
9.865752,
10.810739,
9.516697,
9.336073,
9.462812,
9.108030,
8.187531,
8.390439,
7.852137,
8.854272,
9.184024,
9.840553,
8.591391,
8.041362,
9.326816,
7.563626,
7.957029,
7.394757,
9.059029,
9.327090,
7.991391,
8.766415,
9.647914,
9.232663,
8.721903,
9.063167,
8.829403,
7.717187,
9.506898,
9.776002,
9.253020,
9.351479,
9.395197,
9.342416,
8.545510,
9.400396,
9.495266,
10.376886,
7.309244,
7.468083,
9.655610,
10.132802,
9.316194,
7.802531,
8.427661,
10.013687,
10.232217,
9.707704,
7.528022,
9.452580,
7.056861,
9.226204,
8.879749,
9.758559,
8.872123,
7.964222,
8.699268,
8.877355,
7.503179,
9.307898,
8.117875,
10.114623,
9.486305,
8.500482,
7.885157,
7.317921,
9.894366,
10.316869,
9.266766,
8.410104,
9.476291,
9.053787,
9.273372,
10.725818,
8.796850,
9.117307,
7.825506,
8.277831,
10.027711,
8.450544,
7.154872,
9.562675,
9.576406,
9.518157,
9.827275,
8.331395,
9.357855,
8.747453,
9.437819,
8.124531,
9.266900,
8.792846,
10.942103,
8.882119,
9.421224,
9.459842,
8.498255,
10.184112,
9.407786,
10.027958,
8.322561,
8.191143,
9.542488,
9.684821,
9.616658,
-3.018951,
-3.927135,
-4.108310,
-5.048560,
-3.907581,
-3.435319,
-2.746054,
-4.727676,
-3.517871,
-3.256603,
-2.903085,
-4.132433,
-5.080795,
-4.418563,
-4.790791,
-4.017594,
-5.640663,
-4.659616,
-4.591201,
-3.231238,
-3.020852,
-3.475873,
-4.657343,
-4.582487,
-5.713247,
-2.676578,
-5.844275,
-3.170716,
-5.143565,
-3.947016,
-4.231541,
-3.212407,
-2.601830,
-4.255225,
-2.670143,
-5.430716,
-5.347036,
-3.349611,
-3.455481,
-3.848006,
1.355298,
3.772950,
4.220892,
3.152731,
2.829202,
1.958649,
2.787451,
4.036527,
3.087246,
2.989515,
3.564104,
2.233250,
2.610927,
1.754422,
1.409628,
2.644174,
3.875122,
2.584340,
3.889929,
2.159248,
2.891914,
2.258054,
3.452049,
3.568172,
2.458213,
2.142941,
0.108753,
1.524591,
3.866783,
5.014628,
3.411060,
3.037729,
3.535182,
1.341819,
4.056992,
3.182946,
2.160399,
3.003900,
3.064865,
3.101283,
3.954393,
3.124648,
3.118135,
4.446050,
0.729254,
3.393961,
1.564530,
3.224953,
4.563784,
1.302582,
3.110984,
2.226544,
3.832021,
3.316146,
1.794835,
3.612261,
3.800246,
2.050217,
2.413396,
4.400176,
2.650103,
3.893210,
4.497104,
3.937372,
4.404039,
2.551433,
3.892254,
4.519806,
4.159218,
4.814500,
1.298597,
3.801705,
3.188672,
3.239955,
4.163651,
3.011309,
3.623262,
2.118537,
3.178298,
3.573497,
3.041045,
2.549192,
3.994926,
4.583972,
3.466773,
1.814521,
3.026880,
2.899341,
0.465716,
2.713927,
3.631795,
3.706314,
0.981104,
2.727316,
3.819292,
2.366964,
3.684221,
1.963861,
3.948440,
4.409128,
3.813670,
2.821799,
2.954779,
2.360414,
2.561696,
3.623100,
3.082260,
3.150661,
3.866161,
3.581981,
3.229727,
3.986244,
3.066000,
1.710789,
2.908360,
4.874899,
2.770672,
1.823320,
3.192864,
2.553591,
3.843609,
4.202764,
2.912035,
3.989408,
2.662912,
2.494070,
1.553211,
2.544995,
4.413650,
3.280056,
2.347228,
2.394332,
2.524323,
3.871451,
3.013344,
3.187703,
3.165606,
2.888160,
1.357811,
4.364732,
1.414335,
0.369534,
2.552457,
3.724690,
2.968288,
2.736687,
2.845247,
3.389558,
3.397048,
3.781755,
2.243389,
2.053190,
3.825352,
2.688027,
2.298747,
1.850329,
1.963509,
2.619968,
3.568431,
1.902936,
4.524858,
4.489171,
4.245867,
3.104543,
2.574010,
4.050934,
3.021975,
3.282062,
4.066149,
1.223703,
4.158723,
2.489351,
1.279311,
2.730771,
2.078510,
2.124990,
2.041405,
3.615505,
2.254914,
2.428036,
3.144494,
1.628409,
3.888282,
0.353978,
2.611382,
2.397944,
3.710538,
3.406865,
3.595019,
2.495350,
4.855430,
2.525012,
3.003461,
2.305046,
4.275201,
2.044810,
1.569082,
2.687778,
5.057221,
2.732969,
2.248326,
3.010729,
3.225569,
2.706394,
3.482589,
1.458424,
1.567320,
-0.555789,
3.080790,
4.442939,
3.238116,
3.122721,
3.845333,
2.658504,
2.392372,
3.270601,
3.725726,
4.060191,
1.885879,
2.760272,
10.118199,
11.806606,
11.238046,
12.427293,
12.452675,
12.974889,
13.336935,
13.479238,
10.003256,
12.036254,
10.719331,
12.734945,
11.393162,
11.359317,
11.426971,
11.084504,
11.631946,
13.087906,
12.759296,
12.104975,
11.740420,
8.888618,
11.372645,
12.351950,
12.411682,
12.301632,
10.930858,
11.903953,
11.274828,
13.202222,
13.392753,
12.886341,
11.864719,
12.640542,
11.116491,
13.401556,
12.772636,
11.614163,
12.631864,
11.929024,
12.604826,
11.303522,
12.244977,
11.318461,
10.662016,
11.314049,
11.513576,
12.758536,
10.928917,
12.626499,
11.081752,
13.056499,
12.086366,
11.855402,
10.796979,
10.858069,
11.779116,
13.270837,
12.058332,
10.988444,
12.890824,
11.895496,
12.868898,
11.444749,
12.189483,
10.593911,
11.172877,
12.696624,
12.533058,
13.197526,
12.506154,
12.179692,
12.729587,
12.798504,
13.129747,
13.582342,
12.756347,
11.845798,
10.672523,
11.337512,
11.179131,
11.436697,
13.465063,
11.081615,
12.668532,
10.515674,
11.698381,
11.916703,
11.437482,
13.013418,
11.667011,
13.238574,
11.333662,
10.812477,
12.607026,
13.894420,
13.338355,
13.075339,
12.648913,
13.683885,
6.373446,
4.684835,
5.143509,
4.116877,
4.847059,
5.792419,
5.407943,
3.984098,
6.252480,
6.004841,
6.175336,
5.316578,
5.971478,
5.512969,
5.550868,
4.937370,
4.631392,
3.634516,
4.877606,
4.351711,
24.269755,
24.640878,
25.413885,
23.629609,
25.181290,
24.679503,
23.269497,
22.554806,
25.894235,
24.560946,
25.662211,
25.275855,
24.448629,
25.820538,
25.818659,
25.159790,
25.993625,
25.380302,
25.739870,
23.843429,
26.074818,
23.257756,
24.511182,
25.611507,
24.540054,
25.465904,
25.566659,
24.366501,
25.782308,
25.266479,
7.043245,
7.929045,
6.819392,
5.985242,
7.608212,
7.737461,
6.209048,
8.455440,
5.880634,
6.137267,
7.536348,
4.833134,
5.671861,
6.614699,
8.177697,
8.387626,
6.168403,
6.326179,
7.380058,
7.964334,
9.569601,
7.337192,
7.807847,
6.573755,
6.011224,
7.132337,
7.264387,
6.195267,
8.173349,
8.419950,
7.402783,
8.379375,
6.468091,
5.656961,
5.710908,
7.406720,
6.654044,
7.445923,
8.080649,
7.541225,
7.604885,
5.302966,
6.474810,
6.776079,
8.545189,
7.188862,
5.426539,
8.643812,
7.495264,
7.015756,
6.516814,
8.210869,
6.155687,
9.191678,
6.818163,
6.028582,
5.646904,
6.686993,
7.048484,
6.618632,
6.288055,
7.567591,
6.226985,
7.276264,
6.734415,
7.634540,
5.441156,
7.960036,
5.969569,
6.148803,
8.012569,
8.725189,
6.578929,
7.211702,
5.802283,
5.389515,
8.174351,
7.749141,
6.965420,
6.482423,
5.757767,
6.442935,
8.494895,
6.760179,
7.569572,
7.094422,
5.664344,
5.288769,
8.050819,
7.222689,
9.847221,
6.850237,
7.651105,
7.146910,
6.352025,
6.183520,
5.993922,
8.012459,
6.441806,
6.030844,
6.825159,
6.323066,
6.886529,
5.132140,
5.803993,
7.060870,
6.227052,
6.355260,
8.848466,
8.282246,
6.776619,
5.795912,
6.057793,
9.214122,
6.869101,
7.268129,
7.029081,
8.130347,
6.230249,
6.260183,
5.211649,
5.472602,
7.269470,
6.912228,
7.769458,
6.486948,
7.456511,
7.749295,
8.926703,
6.913637,
6.815894,
7.088230,
7.074207,
6.829103,
8.875026,
8.238620,
6.481127,
7.827610,
8.243983,
6.066656,
5.927471,
6.654590,
7.230047,
7.119509,
6.896261,
7.196357,
6.046410,
6.120738,
7.346869,
6.801541,
6.584296,
5.286987,
7.209935,
7.380413,
5.607311,
6.798960,
6.973972,
7.810840,
6.259502,
6.359475,
6.184767,
5.219459,
7.064596,
7.312455,
6.196338,
6.045742,
5.820075,
6.802202,
8.065646,
4.171872,
4.732984,
8.038709,
6.281535,
6.935907,
8.178235,
8.523277,
7.030259,
7.657438,
7.188683,
7.473293,
6.630315,
5.493502,
7.568678,
7.625452,
6.597252,
6.431136,
5.545781,
6.463156,
6.401551,
6.623049,
8.648526,
7.353456,
6.596998,
7.297770,
7.292613,
8.163939,
7.866269,
7.994731,
7.163869,
7.364719,
8.061693,
7.088825,
5.439744,
7.170877,
6.058343,
6.924883,
6.517801,
6.308143,
8.133026,
6.616336,
6.999758,
7.072493,
5.570238,
8.167932,
};
//原始波形由任意波形+ 高斯分布白噪声 + 均匀分布白噪声组成,滤除高斯分布白噪声 + 均匀分布白噪声。
void arm_lms_f32_test2(void)
{
uint32_t i;
arm_lms_norm_instance_f32 lmsS;
float32_t *inputF32, *outputF32, *inputREF, *outputERR;
/* 如果是实时性的滤波,仅需清零一次 */
memset(lmsCoeffs32,0,sizeof(lmsCoeffs32));
memset(lmsStateF32,0,sizeof(lmsStateF32));
/* 初始化输入输出缓存指针 */
inputF32 = (float32_t *)&MixData[0]; /* 原始波形 */
outputF32 = (float32_t *)&testOutput[0]; /* 滤波后输出波形 */
inputREF = (float32_t *)&OrigalData[0]; /* 参考波形 */
outputERR = (float32_t *)&test_f32_ERR[0]; /* 误差数据 */
/* 归一化LMS初始化 */
arm_lms_norm_init_f32 (&lmsS, /* LMS结构体 */
NUM_TAPS, /* 滤波器系数个数 */
(float32_t *)&lmsCoeffs32[0], /* 滤波 */
&lmsStateF32[0], /* 滤波器系数 */
0.01, /* 步长 */
blockSize); /* 处理的数据个数 */
/* 实现LMS自适应滤波,这里每次处理1个点 */
for(i=0; i < numBlocks; i++)
{
arm_lms_norm_f32(&lmsS, /* LMS结构体 */
inputF32 + (i * blockSize), /* 输入数据 */
inputREF + (i * blockSize), /* 输出数据 */
outputF32 + (i * blockSize), /* 参考数据 */
outputERR + (i * blockSize), /* 误差数据 */
blockSize); /* 处理的数据个数 */
}
/* 打印滤波后结果 */
for(i=0; i<TEST_LENGTH_SAMPLES; i++)
{
printf("%f, %f, %f\r\n", MixData[i], outputF32[i], test_f32_ERR[i]);
}
}
图中红色信号是原始测试波形数据,绿色是滤波后数据,可见噪声毛刺基本被滤除,
性能
计算2048点自适应滤波耗时180个时钟周期,主频配置的是600MHz,即1/600*180=0.3us,足以满足一般实时性要求较高的场合。
-
发表了主题帖:
【STM32H7S78-DK】测评+ADC DMA采集1024点FFT计算速度测评
在前面帖子实现ADC DMA采集、DSP库添加的基础上,本帖将采集1024点数据进行FFT运算,评估STM32H7S78的DSP性能。
测试代码如下:
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stdio.h"
#include "arm_math.h"
#include "perf_counter.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
/* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define VDDA_APPLI (3300UL)
#define VAR_CONVERTED_DATA_INIT_VALUE (__LL_ADC_DIGITAL_SCALE(LL_ADC_RESOLUTION_12B) + 1)
#define ADC_CONVERTED_DATA_BUFFER_SIZE 1024
ALIGN_32BYTES (uint16_t uhADCxConvertedData[ADC_CONVERTED_DATA_BUFFER_SIZE]);
uint16_t uhADCxConvertedData_Voltage_mVolt[ADC_CONVERTED_DATA_BUFFER_SIZE];
//0: DMA transfer is not completed
//1: DMA transfer is completed
//2: DMA transfer has not yet been started yet (initial state)
__IO uint8_t ubDmaTransferStatus = 2U;
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc2;
DMA_HandleTypeDef handle_GPDMA1_Channel0;
TIM_HandleTypeDef htim6;
UART_HandleTypeDef huart4;
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
static void MPU_Config(void);
static void MX_GPIO_Init(void);
static void MX_GPDMA1_Init(void);
static void MX_TIM6_Init(void);
static void MX_UART4_Init(void);
static void MX_ADC2_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* USER CODE BEGIN PFP */
int __io_putchar(int ch)
{
HAL_UART_Transmit(&huart4 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END PFP */
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{
ubDmaTransferStatus = 1;
}
int tmp_index;
#define FFT_LENGTH ADC_CONVERTED_DATA_BUFFER_SIZE
float fft_inputbuf[FFT_LENGTH * 2];
float fft_outputbuf[FFT_LENGTH];
uint32_t ifftFlag = 0;
uint32_t fftSize = 0;
#define TEST_LENGTH_SAMPLES 1024
static float32_t testOutput_f32[TEST_LENGTH_SAMPLES*2];
static float32_t testOutputMag_f32[TEST_LENGTH_SAMPLES*2];
static float32_t testInput_f32[TEST_LENGTH_SAMPLES*2];
static float32_t Phase_f32[TEST_LENGTH_SAMPLES*2];
void PowerPhaseRadians_f32(float32_t *_ptr, float32_t *_phase, uint16_t _usFFTPoints, float32_t _uiCmpValue)
{
float32_t lX, lY;
uint16_t i;
float32_t phase;
float32_t mag;
for (i=0; i <_usFFTPoints; i++)
{
lX= _ptr[2*i];//实部
lY= _ptr[2*i + 1];//虚部
phase = atan2f(lY, lX);//atan2求解的结果范围是(-pi, pi], 弧度
arm_sqrt_f32((float32_t)(lX*lX+ lY*lY), &mag);//求模
if(_uiCmpValue > mag)
{
Phase_f32[i] = 0;
}
else
{
Phase_f32[i] = phase* 180.0f/3.1415926f;//将求解的结果由弧度转换为角度
}
}
}
static void arm_rfft_f32_app2(void)
{
uint16_t i;
arm_rfft_fast_instance_f32 S;
//正变换
ifftFlag = 0;
//初始化结构体S中的参数
arm_rfft_fast_init_f32(&S, TEST_LENGTH_SAMPLES);
for(i=0; i<TEST_LENGTH_SAMPLES; i++)
{
//测试波形
//testInput_f32[i] = 1 + cos(2*3.1415926f*50*i/1024 + 3.1415926f/3);
testInput_f32[i * 2] = uhADCxConvertedData_Voltage_mVolt[i];
testInput_f32[i * 2 + 1] = 0;//虚部赋值,固定为0.
}
//1024点实序列快速变换
arm_rfft_fast_f32(&S, testInput_f32, testOutput_f32, ifftFlag);
arm_cmplx_mag_f32(testOutput_f32, testOutputMag_f32, TEST_LENGTH_SAMPLES);
PowerPhaseRadians_f32(testOutput_f32, Phase_f32, TEST_LENGTH_SAMPLES, 0.5f);
//串口打印求解的幅频和相频
for(i=0; i<TEST_LENGTH_SAMPLES; i++)
{
//printf("%f, %f\r\n", testOutputMag_f32[i], Phase_f32[i]);
}
}
/* USER CODE END 0 */
/**
* [url=home.php?mod=space&uid=159083]@brief[/url] The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MPU Configuration--------------------------------------------------------*/
MPU_Config();
/* MCU Configuration--------------------------------------------------------*/
/* Update SystemCoreClock variable according to RCC registers values. */
SystemCoreClockUpdate();
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
init_cycle_counter(true);
/* USER CODE END Init */
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_GPDMA1_Init();
MX_TIM6_Init();
MX_UART4_Init();
MX_ADC2_Init();
/* USER CODE BEGIN 2 */
start_cycle_counter();
//DSP_RMS();
int64_t lCycleUsed = stop_cycle_counter();
printf("ADC DMA DEMO\n");
for (tmp_index = 0; tmp_index < ADC_CONVERTED_DATA_BUFFER_SIZE; tmp_index++)
{
uhADCxConvertedData[tmp_index] = VAR_CONVERTED_DATA_INIT_VALUE;
}
if (HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED) != HAL_OK)
{
printf("ADC Calibration Err\n");
Error_Handler();
}
printf("ADC Calibration End\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LD4_GPIO_Port, LD4_Pin);
if (HAL_ADC_Start_DMA(&hadc2,(uint32_t *)uhADCxConvertedData,ADC_CONVERTED_DATA_BUFFER_SIZE) != HAL_OK)
{
Error_Handler();
}
HAL_Delay(50);
if (ubDmaTransferStatus == 1)
{
ubDmaTransferStatus = 0;
for (tmp_index = 0; tmp_index < ADC_CONVERTED_DATA_BUFFER_SIZE; tmp_index++)
{
uhADCxConvertedData_Voltage_mVolt[tmp_index] = __LL_ADC_CALC_DATA_TO_VOLTAGE(VDDA_APPLI, uhADCxConvertedData[tmp_index], LL_ADC_RESOLUTION_12B);
//printf("voltage[%d]=%d mV\n",tmp_index,uhADCxConvertedData_Voltage_mVolt[tmp_index]);
//printf("%d\n",uhADCxConvertedData_Voltage_mVolt[tmp_index]);
arm_rfft_f32_app2();
printf("cycle counter = %lld\n",lCycleUsed);
}
}
}
/* USER CODE END 3 */
}
主要用到的函数是arm_rfft_fast_f32,函数原型是
void arm_rfft_fast_f32(
const arm_rfft_fast_instance_f32 * S,
float32_t * p,
float32_t * pOut,
uint8_t ifftFlag)
这个函数用于单精度浮点实数FFT,函数有4个参数:
S是FFT实例化句柄,调用函数arm_rfft_fast_init_f32初始化得到,然后供此函数arm_rfft_fast_f32调用。支持32, 64, 128, 256, 512, 1024, 2048, 4096点FFT。
比如做1024点FFT,代码如下:
arm_rfft_fast_instance_f32 S;
arm_rfft_fast_init_f32(&S, 1024);
arm_rfft_fast_f32(&S, testInput_f32, testOutput_f32, ifftFlag);
p是实数地址,比如我们要做1024点实数FFT,要保证有1024个缓冲。
pOut是FFT转换结果,转换结果不是实数了,而是复数,按照实部,虚拟,实部,虚部,依次排列。比如做1024点FFT,这里的输出也会有1024个数据,即512个复位。
ifftFlag用于设置正变换和逆变换,ifftFlag=0表示正变换,ifftFlag=1表示逆变换。
测试结果:
调用arm_rfft_fast_f32计算1024点FFT耗时184个时钟周期,主频配置的是600MHz,即1/600*184=0.307us,下图是大佬测试的STM32F4和F1的数据,可见1024点FFT性能可以说是F4的369.25/0.307=1202倍
- 2024-11-04
-
回复了主题帖:
【STM32H7S78-DK】测评+TouchGFX显示曲线
版本是TouchGFX 4.24.1 Designer
- 2024-11-01
-
发表了主题帖:
【STM32H7S78-DK】测评+TouchGFX显示曲线
本帖最后由 dql2016 于 2024-11-4 20:16 编辑
TouchGFX带有丰富的曲线控件,十分方便展示数据动态过程,通过曲线的高速刷新显示,也能体现STM32H7S78强大的图形性能。如下图,选中动态曲线控件,添加到屏幕中:
动态曲线行为选择向左滚动刷新,点数100,数据范围0~3300,ADC采集模拟电压的范围:
打开水平、垂直分割线的显示:
再添加一个文本显示区域用于显示实时数据:
文本显示采用通配符形式<value>,这样在程序中能够动态的更新显示内容:
添加wildcard,添加初始显示值和缓存大小:
同样的方法再添加几个文本显示区,adc用于显示ADC实时采集电压,rms用于显示采集1024点计算的均方根值,time用于显示计算rms值消耗的时间,RMS计算采样CMSIS-DSP库,这样评估STM32H7S78的DSP性能:
通过TouchGFX官网资料可以知道TouchGFX使用的是MVP框架,在MVP框架中所有数据仅能保存在称为 Model 的类对象中,Presenter是视图(View)与Model之间的纽带,View只能通过Presenter来读取数据。MVP框架所有需要保存的数据必须再Model 的类对象。View不能直接读写Model中的数据,必须得通过Presenter来操作,所以先要在Presenter中实现对数据的读写,在ScreenPresenter.hpp中添加读写函数。
在Model.cpp tick中添加模拟产生正弦曲线数据:
void Model::tick()
{
static uint32_t cnt = 0;
static time_t raw_time = 1671459593;
++cnt;
if (cnt % 60 == 0)
{ /* Simple counter increase */
++raw_time;
}
if (raw_time != last_time)
{
last_time = raw_time;
current_dt = *gmtime(&raw_time); /* Simple gmtime calculation */
/* Notify active presenter */
modelListener->notifyNewDateTime(¤t_dt);
}
{
double temp;
//if (cnt % 2 == 0)
{
/* Calculate temperature manually */
temp = 0;
for (size_t i = 1; i <= this->sinus_count; i += 2)
{
temp += sin(2.0 * 3.1415 * (20 * i) * cnt * 20) * (48 / i) + (i == 1 ? 50 : 0);
}
temp=temp*10+500;
modelListener->notifyNewTemp((float)temp);
}
}
}
在Screen1Presenter.cpp中添加实现:
void
Screen1Presenter::notifyNewTemp(float temp) {
view.setTemp(temp);
}
在Screen1View.cpp中添加刷新数据到曲线,更新文本显示:
void Screen1View::setTemp(float temp)
{
dynamicGraph1.addDataPoint((int)temp);//更新曲线点数据
Unicode::snprintfFloat(textArea1Buffer, TEXTAREA1_SIZE, "%2.3f", float(12.556));
textArea1.invalidate();//更新文本显示区1
Unicode::snprintfFloat(textArea2Buffer, TEXTAREA2_SIZE, "%2.1f", float(12.5));
textArea2.invalidate();//更新文本显示区2
Unicode::snprintf(textArea3Buffer, TEXTAREA3_SIZE, "%d", 123);
textArea3.invalidate();//更新文本显示区3
}
效果:
[localvideo]9e1a9d54f0856446dce6e68d43db7dd3[/localvideo]
文本显示区是问号,有没有懂的大佬指点一下,这是啥情况?
- 2024-10-27
-
发表了主题帖:
【STM32H7S78-DK】测评+图形库的应用TouchGFX初探
原计划是要移植LVGL的,但是在看了一些资料后,发现LVGL暂时不支持STM32H7S78的高性能图形引擎GPU,在详细了解了相关资料后,发现还是ST自家的TouchGFX对齐支持最完善,能够充分发挥其高性能图形特性。TouchGFX框架包含易于使用的拖放式图形构建PC工具TouchGFX Designer (TouchGFXDesigner)以及强大的优化图形处理内核TouchGFX引擎。结合WYSIWYG仿真器和自动代码生成功能,TouchGFX大大简化了GUI开发。TouchGFX拥有自己的上位机TouchGFX Designer用于开发图形UI,当前版本是4.24.1,笔者下载的就是这个版本,而且TouchGFX也集成到了STM32CubeMX生态中,使用起来十分方便。本帖初步探索TouchGFX的应用,后续利用TouchGFX实现电压采集波形的刷新展示。
使用软件:
TouchGFX Designer(4.21.4)
STM32CubeIDE(自家的IDE,支持最完善)
下载安装好TouchGFX Designer,打开软件,在home主页点击新建项目按钮,就可以开始了,当前版本相比以往的版本优化不少,使用起来十分流程:
在搜索框搜索板卡关键字即可,通过板卡模板创建项目的好处是,各种外设都帮我们配置好了,十分方便快速体验demo和创建项目:
在屏幕1中我加入了一张图片作为背景,然后加入了一个按钮,按钮有多种样式和尺寸可选,这里选的是翻转样式:
然后是配置按钮的参数,主要是按下后触发的回调名称,这里就使用默认的function1了:
点击右下角按钮或者按F4生成工程:
生成工程后,可以在电脑上仿真运行,查看UI基本效果:
也可以直接点击编译下载,将工程烧写到开发板上运行观看效果:
使用stm32cubeide导入工程,添加一个GPIO控制LED:
然后保存更新下代码,在生成的代码中,很容易就能找到需要用户添加逻辑的部分,在User/gui/Screen11view.cpp中添加按键翻转LED的控制代码,这里的函数名和之前创建按钮填入的回调名称一致:
在类中添加声明:
效果
[localvideo]8f44e4ece37af5355632bcf23b152b7a[/localvideo]
- 2024-10-26
-
上传了资料:
Follow me第二季第1期代码
- 2024-10-13
-
发表了主题帖:
【STM32H7S78-DK】测评+SPI应用之驱动AD9833
由于STM32H7S78是没有DAC外设的,因此要想产生模拟信号,通常有2种方法,一是PWM加输出滤波器,二是专用DDS芯片。
AD9833是一款低功耗、可编程波形发生器,能够产生正弦波、三角波和方波输出。各种类型的检测、信号激励和时域反射(TDR)应用都需要波形发生器。输出频率和相位可通过软件进行编程,调整简单。无需外部元件。频率寄存器为28位宽,时钟速率为25 MHz时,可以实现0.1 Hz的分辨率;时钟速率为1 MHz时,AD9833可以实现0.004 Hz的分辨率。
AD9833通过一个3线串行接口写入数据。该串行接口能够以最高40 MHz的时钟速率工作,并且与DSP和微控制器标准兼容。该器件采用2.3 V至5.5 V电源供电。主页特性:
特性
数字可编程频率和相位
当供电电压为3 V时,功耗为12.65 mW
输出频率范围:0 MHz至12.5 MHz
28位分辨率(25 MHz基准时钟时为0.1 Hz)
正弦波/三角波/方波输出
2.3 V至5.5 V电源供电
无需外部元件
三线式SPI接口
扩展温度范围: -40 ℃至+105 ℃
掉电选项
10引脚MSOP封装
通过汽车应用认证
AD9833-EP支持防务和航空航天应用(AQEC标准)
下载 AD9833-EP数据手册 (pdf)
温度范围: −55 ℃至+125 ℃
受控制造基线
一个装配/测试厂
一个制造厂
增强型产品变更通知
认证数据可应要求提供
V62/14619-01XE DSCC图纸号
使用SPI接口即可与AD9833通信,通常可以使用GPIO模拟方式或者硬件SPI接口,本帖使用硬件SPI接口。查看原理图,得知arduino接口上的SPI接口是SPI4,片选使用的是PF8,不是硬件片选信号:
SPI接口配置如下:
PF8配置为GPIO作为片选:
然后在AD98333.h头文件定义相关寄存器:
#ifndef INC_AD9833_H_
#define INC_AD9833_H_
#include "main.h"
/*** Redefine if necessary ***/
#define AD9833_SPI_PORT hspi4
extern SPI_HandleTypeDef AD9833_SPI_PORT;
/*** Control Register Bits (DataSheet AD9833 p. 14, Table 6) ***/
#define B28_CFG (1 << 13)
#define HLB_CFG (1 << 12)
#define F_SELECT_CFG (1 << 11)
#define P_SELECT_CFG (1 << 10)
#define RESET_CFG (1 << 8)
#define SLEEP1_CFG (1 << 7)
#define SLEEP12_CFG (1 << 6)
#define OPBITEN_CFG (1 << 5)
#define DIV2_CFG (1 << 3)
#define MODE_CFG (1 << 1)
/*** Bitmask to register access ***/
#define FREQ0_REG 0x4000
#define PHASE0_REG 0xC000
//#define FREQ1_ACCESS 0x8000
//#define PHASE1_ACCESS 0xE000
/*** Waveform Types (DataSheet p. 16, Table 15) ***/
#define WAVEFORM_SINE 0
#define WAVEFORM_TRIANGLE MODE_CFG
#define WAVEFORM_SQUARE OPBITEN_CFG | DIV2_CFG
#define WAVEFORM_SQUARE_DIV2 OPBITEN_CFG
/*** Sleep Modes ***/
#define NO_POWERDOWN 0
#define DAC_POWERDOWN SLEEP12_CFG
#define CLOCK_POWERDOWN SLEEP1_CFG
#define FULL_POWERDOWN SLEEP12_CFG | SLEEP1_CFG
#define FMCLK 25000000
#define BITS_PER_DEG 11.3777777777778 // 4096 / 360
typedef enum {
wave_triangle,
wave_square,
wave_sine,
} WaveDef;
/*
* [url=home.php?mod=space&uid=159083]@brief[/url] Set signal generation frequency
* @param Frequency value in uint32_t format
*/
void AD9833_SetFrequency(uint32_t freq);
/*
* @brief Set signal generation waveform
* @param Waveform in WaveDef Type declared in .h file
*/
void AD9833_SetWaveform(WaveDef Wave);
/*
* @brief Set signal generation phase
* @param Phase in degrees in uint16_t format. Value can be large then 360
*/
void AD9833_SetPhase(uint16_t phase_deg);
/*
* @brief AD9833 Initial Configuration
* @param Type of Waveform, Frequency, Phase in degrees
*/
void AD9833_Init(WaveDef Wave, uint32_t freq, uint16_t phase_deg);
/*
* @brief Enable or disable the output of the AD9833
* @param Output state (ON/OFF)
*/
void AD9833_OutputEnable(uint8_t output_state);
/*
* @brief Set Sleep Mode Function (Explained in datasheet Table 14)
* @param Mode of sleep function defined in title
*/
void AD9833_SleepMode(uint8_t mode);
#endif /* INC_AD9833_H_ */
源码AD9833.c实现初始化、频率、相位设置:
//Setup Hardware SPI to POLATRITY HIGH, PHASE 1 EDGE
#include "AD9833.h"
uint8_t _waveform = WAVEFORM_SINE;
uint8_t _sleep_mode = NO_POWERDOWN;
uint8_t _freq_source = 0;
uint8_t _phase_source = 0;
uint8_t _reset_state = 0;
/*
* @brief Set Chip Select pin to LOW state
*/
static void AD9833_Select(void)
{
HAL_GPIO_WritePin(AD9833_FSYNC_GPIO_Port, AD9833_FSYNC_Pin, GPIO_PIN_RESET);
}
/*
* @brief Set Chip Select pin to HIGH state
*/
static void AD9833_Unselect(void)
{
HAL_GPIO_WritePin(AD9833_FSYNC_GPIO_Port, AD9833_FSYNC_Pin, GPIO_PIN_SET);
}
/*
* @brief Send data by SPI protocol
* @param Data variable in uint16_t format
*/
static void AD9833_WriteRegister(uint16_t data)
{
AD9833_Select();
uint8_t LByte = data & 0xff;
uint8_t HByte = (data >> 8) & 0xff;
HAL_SPI_Transmit(&AD9833_SPI_PORT, &HByte, 1, HAL_MAX_DELAY);
HAL_SPI_Transmit(&AD9833_SPI_PORT, &LByte, 1, HAL_MAX_DELAY);
AD9833_Unselect();
}
/*
* @brief Update Control Register Bits
*/
static void AD9833_WriteCfgReg(void)
{
uint16_t cfg = 0;
cfg |= _waveform;
cfg |= _sleep_mode;
cfg |= (_freq_source ? F_SELECT_CFG : 0); //it's unimportant because don't use FREQ1
cfg |= (_phase_source ? P_SELECT_CFG : 0); //it's unimportant because don't use PHASE1
cfg |= (_reset_state ? RESET_CFG : 0);
cfg |= B28_CFG;
AD9833_WriteRegister(cfg);
}
void AD9833_SetWaveform(WaveDef Wave)
{
if (Wave == wave_sine) _waveform = WAVEFORM_SINE;
else if (Wave == wave_square) _waveform = WAVEFORM_SQUARE;
else if (Wave == wave_triangle) _waveform = WAVEFORM_TRIANGLE;
AD9833_WriteCfgReg();
}
void AD9833_SetFrequency(uint32_t freq)
{
// TODO: calculate max frequency based on refFrequency.
// Use the calculations for sanity checks on numbers.
// Sanity check on frequency: Square - refFrequency / 2
// Sine/Triangle - refFrequency / 4
if (freq > (FMCLK >> 1)) //bitwise FMCLK / 2
freq = FMCLK >> 1;
else if (freq < 0) freq = 0;
uint32_t freq_reg = (float)freq * (float)((1 << 28) / FMCLK); // Tuning word
uint16_t LSB = FREQ0_REG | (freq_reg & 0x3FFF);
uint16_t MSB = FREQ0_REG | (freq_reg >> 14);
AD9833_WriteCfgReg(); // Update Config Register
AD9833_WriteRegister(LSB);
AD9833_WriteRegister(MSB);
}
void AD9833_SetPhase(uint16_t phase_deg)
{
if(phase_deg < 0) phase_deg = 0;
else if (phase_deg > 360) phase_deg %= 360;
uint16_t phase_val = ((uint16_t)(phase_deg * BITS_PER_DEG)) & 0xFFF;
AD9833_WriteRegister(PHASE0_REG | phase_val);
}
void AD9833_Init(WaveDef Wave, uint32_t freq, uint16_t phase_deg)
{
AD9833_OutputEnable(0);
AD9833_SetWaveform(Wave);
AD9833_WriteCfgReg();
AD9833_SetFrequency(freq);
AD9833_SetPhase(phase_deg);
AD9833_OutputEnable(1);
}
void AD9833_SleepMode(uint8_t mode)
{
_sleep_mode = mode;
AD9833_WriteCfgReg();
}
void AD9833_OutputEnable(uint8_t output_state)
{
_reset_state = !output_state;
AD9833_WriteCfgReg();
}
最后调用接口初始化:
AD9833_Init(wave_sine, 100, 0);
将输出频率100Hz的正弦波。
接线:
AD9833模块:
波形效果如下,可见正确驱动了芯片:
- 2024-10-10
-
发表了主题帖:
【STM32H7S78-DK】测评+DSP计算速度评估
本帖最后由 dql2016 于 2024-10-10 22:33 编辑
在前面的帖子中,顺利的添加了DSP库进行数学计算,本帖添加傻孩子大佬的开源性能评估库perf_counter(https://github.com/GorgonMeducer/perf_counter)进行计算性能的测试,通过计算耗时来衡量DSP性能。
perf_counter是一个基于C语言的模块,提供以下功能:
精确测量系统性能
精确测量函数执行时间
精确测量中断响应延迟
提供精确到us级的阻塞或非阻塞的延时服务
改善伪随机数的随机数特性
提供系统时间戳
……
它使用了SysTick却不会占用SysTick,支持所有Cortex-M处理器裸机环境和RTOS环境、KEIL、IAR、GCC等编译器平台都支持。下载源码包后得到下面文件:
对于裸机,只需将图中的4个文件加入到工程中即可:
首先在mian.c加入对头文件的引用:
#include "perf_counter.h"
然后对 perf_counter 库进行初始化:
init_cycle_counter(false);
或者
init_cycle_counter(true);
如果用户并没有自己初始化 SysTick,传递 false 给函数 init_cycle_counter() 。
如果用户自己初始化了 SysTick,传递true 给函数 init_cycle_counter() 。
本项目生产的工程是初始化了SysTick,所以入口参数是true
在systick中断中调用perfc_port_insert_to_system_timer_insert_ovf_handler():
将前面帖子中计算RMS的打印屏蔽掉
//DSP库求均方根测试
static void DSP_RMS(void)
{
float32_t pSrc[10] = {0.7060f, 0.0318f, 0.2769f, 0.0462f, 0.0971f, 0.8235f, 0.6948f, 0.3171f,0.9502f, 0.0344f};
float32_t pResult;
uint32_t pIndex;
q31_t pSrc1[10];
q31_t pResult1;
q15_t pSrc2[10];
q15_t pResult2;
//printf("******** stm32h7s78-dk eeworld dsp test ***********\r\n");
arm_rms_f32(pSrc, 10, &pResult);
//printf("arm_rms_f32 : pResult = %f\r\n", pResult);
/*****************************************************************/
for(pIndex = 0; pIndex < 10; pIndex++)
{
pSrc1[pIndex] = rand();
}
arm_rms_q31(pSrc1, 10, &pResult1);
//printf("arm_rms_q31 : pResult = %d\r\n", pResult1);
/*****************************************************************/
for(pIndex = 0; pIndex < 10; pIndex++)
{
pSrc2[pIndex] = rand()%32768;
}
arm_rms_q15(pSrc2, 10, &pResult2);
//printf("arm_rms_q15 : pResult = %d\r\n", pResult2);
//printf("******************************************************************\r\n");
}
测量调用该函数耗时:
start_cycle_counter();
DSP_RMS();
int64_t lCycleUsed = stop_cycle_counter();
printf("cycle counter = %lld\n",lCycleUsed);
printf如果需要打印64位数据int64、uint64类型,需要开启完整标准输出库的支持:
直接编译下载程序,输出计算打印结果是0,在STM32官方论坛中找到了答案:
https://community.st.com/t5/stm32cubeide-mcus/wrong-result-when-printing-a-int64-t-value-using-stm32cubeide/td-p/148913
STM32CubeIDE uses a reduced library by default in order to reduce code size, as it's usually preferred for embedded development. Part of this tradeoff is dropping support for long long ints in printf-type functions.
> What can I do to print a 64-bit int value?
Change the runtime library from reduced to standard.
之前配置的是精简标准输出库,导致输出不正确。
修改后,打印正确:
stm32h7s7 主频配置的是600MHz,1/600 000 000 (s) * 35630(cycle) =5.938*10^-5 (s)=59.38us
可见计算速度还是很快的,总共计算了10个数据的arm_rms_f32、arm_rms_q31、arm_rms_q15。
- 2024-10-09
-
回复了主题帖:
总感觉不痛快,想找点刺激
okhxyyo 发表于 2024-10-9 16:37
公园20分钟效应不知道你听没听过。下班了到周边环境好的地方散步20分钟会让你心情舒畅很多。我住的小区环境 ...
在家里上班感觉就是不一样啊
- 2024-10-04
-
发表了主题帖:
【STM32H7S78-DK】测评+DSP测试
本帖最后由 dql2016 于 2024-10-10 21:22 编辑
STM32H7S78采用的是M7内核,支持双精度浮点DSP指令,性能强劲。通常可以在STM32CubeMX配置界面通过如下方法加入DSP库:
但实际测试下来,通过此方法STM32H7S78无法将DSP库添加到工程,因此只能采用手动下载DSP库并添加到STM32CubeIDE工程。
ARM公司提供的数字信号库CMSIS-DSP可以在github上下载,也可以在ST提供的STM32Cube软件包里面找到。由于CMSIS-5.6.0以后版本不再提供编译好的静态库,这里为了方便下载CMSIS-5.6.0版本,解压后主要关注下面3个文件夹:
Lib文件夹中包含的底层库包括IAR、KEIL、GCC三个编译器平台,字母l代表小端地址格式,b代表大端地址格式(所有STM32皆为小端地址格式处理器);字母f代表使用浮点处理单元(FPU)
对于M7内核提供如下3种:
arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit)
arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit)
arm_cortexM7l_math.lib (Cortex-M7, Little endian)
这里我们使用第1种。
DSP库Source目录包含了各种数学运算库的源码,如果使用添加源码的方式,能够更好的使用编译器的优化功能,这也是5.6.0不再提供静态库的原因,armcc v6无法对静态lib优化。
1)BasicMathFunctions
基本数学函数:提供浮点数的各种基本运算函数,如向量加减乘除等运算。
2)CommonTables
数字信号处理常用参数表。
3)ComplexMathFunctions
复数计算数学函数。
4)ControllerFunctions
控制算法函数。包括正弦余弦,PID电机控制,矢量Clarke变换,矢量Clarke逆变换等。
5)FastMathFunctions
常见快速算法的数学函数。
6)FilteringFunctions
滤波函数功能,主要为FIR和LMS(最小均方根)等滤波函数。
7)MatrixFunctions
矩阵处理函数。包括矩阵加法、矩阵初始化、矩阵反、矩阵乘法、矩阵规模、矩阵减法、矩阵转置等函数。
8)StatisticsFunctions
统计功能函数。如求平均值、最大值、最小值、计算均方根RMS、计算方差/标准差等。
9)SupportFunctions
支持功能函数,如数据拷贝,Q格式和浮点格式相互转换,Q任意格式相互转换。
10)TransformFunctions
变换功能。包括复数FFT(CFFT)/复数FFT逆运算(CIFFT)、实数FFT(RFFT)/实数FFT逆运算(RIFFT)、和DCT(离散余弦变换)和配套的初始化函数。
在工作空间目录下添加DSP文件夹:
将上面的Include、Lib、Source三个文件夹复制到DSP文件夹中,如下图:
然后在STM32CubeIDE指定库路径和头文件路径。
首先添加静态库:
然后添加静态库路径:
添加头文件引用路径:
添加宏定义:
使能硬件浮点运算单元FPU:
添加头文件:
#include "arm_math.h"
添加浮点运算测试代码:
//DSP库求均方根测试
static void DSP_RMS(void)
{
float32_t pSrc[10] = {0.7060f, 0.0318f, 0.2769f, 0.0462f, 0.0971f, 0.8235f, 0.6948f, 0.3171f,0.9502f, 0.0344f};
float32_t pResult;
uint32_t pIndex;
q31_t pSrc1[10];
q31_t pResult1;
q15_t pSrc2[10];
q15_t pResult2;
printf("******** stm32h7s78-dk eeworld dsp test ***********\r\n");
arm_rms_f32(pSrc, 10, &pResult);
printf("arm_rms_f32 : pResult = %f\r\n", pResult);
/*****************************************************************/
for(pIndex = 0; pIndex < 10; pIndex++)
{
pSrc1[pIndex] = rand();
}
arm_rms_q31(pSrc1, 10, &pResult1);
printf("arm_rms_q31 : pResult = %d\r\n", pResult1);
/*****************************************************************/
for(pIndex = 0; pIndex < 10; pIndex++)
{
pSrc2[pIndex] = rand()%32768;
}
arm_rms_q15(pSrc2, 10, &pResult2);
printf("arm_rms_q15 : pResult = %d\r\n", pResult2);
printf("******************************************************************\r\n");
}
调用
计算结果符合预期,可见DSP库被正确的加入到了工程中
附件:
- 2024-09-29
-
回复了主题帖:
【STM32H7S78-DK】测评+STM32CubeIDE配置ADC DMA采集
freebsder 发表于 2024-9-29 14:30
这个波形看起来有些奇怪。
采集完了,停止采集delay了50ms,没有连续不停采集,这样的是对的
- 2024-09-22
-
发表了主题帖:
【STM32H7S78-DK】测评+STM32CubeIDE配置ADC DMA采集
本帖最后由 dql2016 于 2024-9-22 21:16 编辑
DMA(Direct Memory Access)—直接存储器存取,是单片机的一个外设,它的主要功能是用来搬数据,但是不需要占用CPU, 即在传输数据的时候,CPU可以干其它的事情,好像是多线程一样。STM32H7S的DMA和STM32F1、F4系列玩法不一样,分为GPDMA(通用DMA)和HPDMA(高性能DMA)。
数据传输支持从外设到存储器或者存储器到存储器, 这里的存储器可以是SRAM或者是FLASH。选择ADC2的通道2,连续转换,DMA单次模式,开启ADC中断,这样当DMA将ADC转换数据搬运到RAM后进入中断回调函数,通知应用处理:
中断开启:
GPDMA选择通道0,标准模式,ADC2请求,数据长度为半字:
在main.c中增加测试代码,在ADC中断置位标准,主循环进行处理:
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
/* USER CODE END PTD */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define VDDA_APPLI (3300UL)
#define VAR_CONVERTED_DATA_INIT_VALUE (__LL_ADC_DIGITAL_SCALE(LL_ADC_RESOLUTION_12B) + 1)
#define ADC_CONVERTED_DATA_BUFFER_SIZE 256
ALIGN_32BYTES (uint16_t uhADCxConvertedData[ADC_CONVERTED_DATA_BUFFER_SIZE]);
uint16_t uhADCxConvertedData_Voltage_mVolt[ADC_CONVERTED_DATA_BUFFER_SIZE];
/* 0: DMA transfer is not completed */
/* 1: DMA transfer is completed */
/* 2: DMA transfer has not yet been started yet (initial state) */
__IO uint8_t ubDmaTransferStatus = 2U;
/* USER CODE END PD */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM */
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc2;
DMA_HandleTypeDef handle_GPDMA1_Channel0;
TIM_HandleTypeDef htim6;
UART_HandleTypeDef huart4;
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
static void MPU_Config(void);
static void MX_GPIO_Init(void);
static void MX_GPDMA1_Init(void);
static void MX_TIM6_Init(void);
static void MX_UART4_Init(void);
static void MX_ADC2_Init(void);
/* USER CODE BEGIN PFP */
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/* USER CODE BEGIN PFP */
int __io_putchar(int ch)
{
HAL_UART_Transmit(&huart4 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/* USER CODE END PFP */
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc)
{
ubDmaTransferStatus = 1;
}
int tmp_index;
/* USER CODE END 0 */
/**
* [url=home.php?mod=space&uid=159083]@brief[/url] The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MPU Configuration--------------------------------------------------------*/
MPU_Config();
/* MCU Configuration--------------------------------------------------------*/
/* Update SystemCoreClock variable according to RCC registers values. */
SystemCoreClockUpdate();
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_GPDMA1_Init();
MX_TIM6_Init();
MX_UART4_Init();
MX_ADC2_Init();
/* USER CODE BEGIN 2 */
printf("ADC DMA DEMO\n");
for (tmp_index = 0; tmp_index < ADC_CONVERTED_DATA_BUFFER_SIZE; tmp_index++)
{
uhADCxConvertedData[tmp_index] = VAR_CONVERTED_DATA_INIT_VALUE;
}
if (HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED) != HAL_OK)
{
printf("ADC Calibration Err\n");
Error_Handler();
}
printf("ADC Calibration End\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(LD4_GPIO_Port, LD4_Pin);
if (HAL_ADC_Start_DMA(&hadc2,(uint32_t *)uhADCxConvertedData,ADC_CONVERTED_DATA_BUFFER_SIZE) != HAL_OK)
{
Error_Handler();
}
HAL_Delay(50);
if (ubDmaTransferStatus == 1)
{
ubDmaTransferStatus = 0;
for (tmp_index = 0; tmp_index < ADC_CONVERTED_DATA_BUFFER_SIZE; tmp_index++)
{
uhADCxConvertedData_Voltage_mVolt[tmp_index] = __LL_ADC_CALC_DATA_TO_VOLTAGE(VDDA_APPLI, uhADCxConvertedData[tmp_index], LL_ADC_RESOLUTION_12B);
//printf("voltage[%d]=%d mV\n",tmp_index,uhADCxConvertedData_Voltage_mVolt[tmp_index]);
printf("%d\n",uhADCxConvertedData_Voltage_mVolt[tmp_index]);
}
}
}
/* USER CODE END 3 */
}
/**
* @brief ADC2 Initialization Function
* @param None
* @retval None
*/
static void MX_ADC2_Init(void)
{
/* USER CODE BEGIN ADC2_Init 0 */
/* USER CODE END ADC2_Init 0 */
ADC_ChannelConfTypeDef sConfig = {0};
/* USER CODE BEGIN ADC2_Init 1 */
/* USER CODE END ADC2_Init 1 */
/** Common config
*/
hadc2.Instance = ADC2;
hadc2.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV10;
hadc2.Init.Resolution = ADC_RESOLUTION_12B;
hadc2.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc2.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc2.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
hadc2.Init.LowPowerAutoWait = DISABLE;
hadc2.Init.ContinuousConvMode = ENABLE;
hadc2.Init.NbrOfConversion = 1;
hadc2.Init.DiscontinuousConvMode = DISABLE;
hadc2.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc2.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc2.Init.SamplingMode = ADC_SAMPLING_MODE_NORMAL;
hadc2.Init.ConversionDataManagement = ADC_CONVERSIONDATA_DMA_ONESHOT;
hadc2.Init.Overrun = ADC_OVR_DATA_PRESERVED;
hadc2.Init.OversamplingMode = DISABLE;
if (HAL_ADC_Init(&hadc2) != HAL_OK)
{
Error_Handler();
}
/** Configure Regular Channel
*/
sConfig.Channel = ADC_CHANNEL_2;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_6CYCLES_5;
sConfig.SingleDiff = ADC_SINGLE_ENDED;
sConfig.OffsetNumber = ADC_OFFSET_NONE;
sConfig.Offset = 0;
sConfig.OffsetSign = ADC_OFFSET_SIGN_NEGATIVE;
if (HAL_ADC_ConfigChannel(&hadc2, &sConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN ADC2_Init 2 */
/* USER CODE END ADC2_Init 2 */
}
/**
* @brief GPDMA1 Initialization Function
* @param None
* @retval None
*/
static void MX_GPDMA1_Init(void)
{
/* USER CODE BEGIN GPDMA1_Init 0 */
/* USER CODE END GPDMA1_Init 0 */
/* Peripheral clock enable */
__HAL_RCC_GPDMA1_CLK_ENABLE();
/* GPDMA1 interrupt Init */
HAL_NVIC_SetPriority(GPDMA1_Channel0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(GPDMA1_Channel0_IRQn);
/* USER CODE BEGIN GPDMA1_Init 1 */
/* USER CODE END GPDMA1_Init 1 */
/* USER CODE BEGIN GPDMA1_Init 2 */
/* USER CODE END GPDMA1_Init 2 */
}
/**
* @brief TIM6 Initialization Function
* @param None
* @retval None
*/
static void MX_TIM6_Init(void)
{
/* USER CODE BEGIN TIM6_Init 0 */
/* USER CODE END TIM6_Init 0 */
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM6_Init 1 */
/* USER CODE END TIM6_Init 1 */
htim6.Instance = TIM6;
htim6.Init.Prescaler = 0;
htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
htim6.Init.Period = 299;
htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM6_Init 2 */
/* USER CODE END TIM6_Init 2 */
}
/**
* @brief UART4 Initialization Function
* @param None
* @retval None
*/
static void MX_UART4_Init(void)
{
/* USER CODE BEGIN UART4_Init 0 */
/* USER CODE END UART4_Init 0 */
/* USER CODE BEGIN UART4_Init 1 */
/* USER CODE END UART4_Init 1 */
huart4.Instance = UART4;
huart4.Init.BaudRate = 115200;
huart4.Init.WordLength = UART_WORDLENGTH_8B;
huart4.Init.StopBits = UART_STOPBITS_1;
huart4.Init.Parity = UART_PARITY_NONE;
huart4.Init.Mode = UART_MODE_TX_RX;
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
huart4.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart4.Init.ClockPrescaler = UART_PRESCALER_DIV1;
huart4.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart4) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetTxFifoThreshold(&huart4, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_SetRxFifoThreshold(&huart4, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
{
Error_Handler();
}
if (HAL_UARTEx_DisableFifoMode(&huart4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN UART4_Init 2 */
/* USER CODE END UART4_Init 2 */
}
/**
* @brief GPIO Initialization Function
* @param None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOM_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOO_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOM, LD4_Pin|LD3_Pin, GPIO_PIN_SET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOO, LD1_Pin|LD2_Pin, GPIO_PIN_RESET);
/*Configure GPIO pins : LD4_Pin LD3_Pin */
GPIO_InitStruct.Pin = LD4_Pin|LD3_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOM, &GPIO_InitStruct);
/*Configure GPIO pins : LD1_Pin LD2_Pin */
GPIO_InitStruct.Pin = LD1_Pin|LD2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOO, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}
/* USER CODE BEGIN 4 */
/* USER CODE END 4 */
/* MPU Configuration */
static void MPU_Config(void)
{
MPU_Region_InitTypeDef MPU_InitStruct = {0};
/* Disables the MPU */
HAL_MPU_Disable();
/** Initializes and configures the Region and the memory to be protected
*/
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER0;
MPU_InitStruct.BaseAddress = 0x08000000;
MPU_InitStruct.Size = MPU_REGION_SIZE_64KB;
MPU_InitStruct.SubRegionDisable = 0x0;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.AccessPermission = MPU_REGION_PRIV_RO;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;
HAL_MPU_ConfigRegion(&MPU_InitStruct);
/* Enables the MPU */
HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);
}
/**
* @brief This function is executed in case of error occurrence.
* @retval None
*/
void Error_Handler(void)
{
/* USER CODE BEGIN Error_Handler_Debug */
/* User can add his own implementation to report the HAL error return state */
__disable_irq();
while (1)
{
}
/* USER CODE END Error_Handler_Debug */
}
#ifdef USE_FULL_ASSERT
/**
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
*/
void assert_failed(uint8_t *file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
接线,还是上帖的A4管脚:
串口示波器采集波形效果:
视频
[localvideo]ab998c31302e7ccdef895d988b3f8555[/localvideo]
- 2024-09-21
-
回复了主题帖:
【STM32H7S78-DK】测评+STM32CubeIDE配置ADC单通道轮询
lugl4313820 发表于 2024-9-21 13:30
看我前面的帖子,秒秒搞定呀,官方的屏驱动好了的,非常简单。
简单的可以,我试了自带的复杂demo,固件太大了,那个一键下载不行,它是下载到内部flash
-
回复了主题帖:
【STM32H7S78-DK】测评+STM32CubeIDE配置ADC单通道轮询
lugl4313820 发表于 2024-9-21 08:32
我在前面测试过,好象参考电压不是3.3v,你分个压过去测试一下看是不是这样的。
看原理图是3.3V,测试VCC计算也得到3.3V,大佬教我学学touchgfx呀,折腾了一下,无法下载到外部flash
- 2024-09-20
-
回复了主题帖:
【STM32H7S78-DK】测评+STM32CubeIDE下载程序到外部Flash
秦天qintian0303 发表于 2024-9-20 08:24
外部Flash启动和内部启动有什么差异吗?启动速度等
肯定慢一些了,内部flash贵很多