add some code

This commit is contained in:
2025-09-05 13:25:11 +08:00
parent 9ff0a99e7a
commit 3cf1229a85
8911 changed files with 2535396 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
#include <stdlib.h>
#include <stdio.h>
void test_fft2r();
int main(void)
{
printf("main starts!\n");
// xt_iss_profile_enable();
test_fft2r();
// xt_iss_profile_disable();
printf("Test done\n");
}

View File

@@ -0,0 +1,77 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "dsp_common.h"
#include "dspm_mult.h"
#include "dsps_fft2r.h"
extern void xt_iss_profile_disable();
extern void xt_iss_profile_enable();
bool dsp_is_power_of_two(int x)
{
return (x != 0) && ((x & (x - 1)) == 0);
}
int dsp_power_of_two(int x)
{
for (size_t i = 0; i < 16; i++) {
x = x >> 1;
if (0 == x) {
return i;
}
}
return 0;
}
#define test_size 128
static float data[test_size * 2];
static float check_data[test_size * 2];
static float data_test[test_size * 2];
void test_fft2r()
{
int N = sizeof(data) / sizeof(float) / 2;
int check_bin = 32;
float check_ampl = 2000;
for (int i = 0 ; i < N ; i++) {
data[i * 2 + 0] = check_ampl * sinf(M_PI / N * check_bin * 2 * i) / (N / 2);
data[i * 2 + 1] = 2;
}
for (int i = 0 ; i < N * 2 ; i++) {
check_data[i] = data[i];
data_test[i] = -1;
}
// Init FFT tables
esp_err_t ret = dsps_fft2r_init_fc32(NULL, 4096);
TEST_ESP_OK(ret);
int N_check = N;
// table = (uint16_t *)dsps_fft2r_rev_tables_fc32[6];
// table_size = dsps_fft2r_rev_tables_fc32_size[6];
xt_iss_profile_enable();
dsps_fft2r_fc32(data, N_check);
// dsps_bit_rev_lookup_fc32_ae32(data, N_check, dsps_fft2r_rev_tables_fc32[6]);
dsps_fft2r_fc32_aes3_(check_data, N_check, dsps_fft_w_table_fc32);
// dsps_bit_rev_lookup_fc32_ae32(data, N_check, dsps_fft2r_rev_tables_fc32[6]);
xt_iss_profile_disable();
for (int i = 0 ; i < N_check ; i++) {
if (abs(check_data[i] - data[i]) == 0) {
printf("Data[%i] =%8.4f, %8.4f, %f \n", i, data[i], check_data[i], check_data[i] - data[i]);
} else {
printf("ERROR: Data[%i] =%f, %f, %f \n", i, data[i], check_data[i], check_data[i] - data[i]);
}
}
printf("Test Pass!\n");
}