ssa

Форк
0
/
fft_test.go 
54 строки · 1.4 Кб
1
package tests
2

3
import (
4
	"strconv"
5
	"testing"
6

7
	"github.com/mjibson/go-dsp/fft"
8
	"github.com/xuri/excelize/v2"
9
)
10

11
func TestFFT(t *testing.T) {
12
	x := loadXlsx("fft_test.xlsx")
13
	fft_signal := fft.FFTReal(x)
14
	safeToXlsx3("fft_test.xlsx", fft_signal)
15
}
16

17
// Получить входной сигнал из файла xlsx
18
func loadXlsx(filename string) []float64 {
19
	output := make([]float64, 0)
20

21
	file_graph, _ := excelize.OpenFile(filename, excelize.Options{})
22
	defer file_graph.Close()
23

24
	rows, err := file_graph.GetRows("input")
25
	if err != nil {
26
		return nil
27
	}
28

29
	for _, row := range rows {
30
		//fmt.Println(row[0])
31
		n, err := strconv.ParseFloat(row[0], 64)
32
		if err == nil {
33
			output = append(output, n)
34
		}
35
	}
36
	return output
37
}
38

39
// Сохранить в xlsx для дебага
40
func safeToXlsx3(filename string, y []complex128) {
41
	file_graph, _ := excelize.OpenFile(filename, excelize.Options{})
42
	defer file_graph.Close()
43
	lenFor := len(y)
44
	for ind := 0; ind < lenFor; ind++ {
45
		//file_graph.SetCellValue("golang2", "B"+strconv.Itoa(ind+1), coefs.A[ind])
46
		//file_graph.SetCellValue("golang2", "C"+strconv.Itoa(ind+1), coefs.B[ind])
47
		file_graph.SetCellValue("output", "A"+strconv.Itoa(ind+1), y[ind])
48
		file_graph.SetCellValue("output", "B"+strconv.Itoa(ind+1), real(y[ind]))
49
		file_graph.SetCellValue("output", "C"+strconv.Itoa(ind+1), imag(y[ind]))
50

51
		//file_graph.SetCellValue("golang2", "E"+strconv.Itoa(ind+1), coefs.D[ind])
52
	}
53
	file_graph.Save()
54
}
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.