|
- //go:build cufft
-
- package gpudemod
-
- import (
- "math/cmplx"
-
- "sdr-wideband-suite/internal/dsp"
- )
-
- func ValidateFIR(iq []complex64, taps []float32, filtered []complex64, tol float64) bool {
- if len(iq) != len(filtered) {
- return false
- }
- ftaps := make([]float64, len(taps))
- for i, v := range taps {
- ftaps[i] = float64(v)
- }
- ref := dsp.ApplyFIR(iq, ftaps)
- for i := range ref {
- if cmplx.Abs(complex128(ref[i]-filtered[i])) > tol {
- return false
- }
- }
- return true
- }
-
- func ValidateDecimate(iq []complex64, factor int, decimated []complex64, tol float64) bool {
- if factor <= 0 {
- return false
- }
- ref := dsp.Decimate(iq, factor)
- if len(ref) != len(decimated) {
- return false
- }
- for i := range ref {
- if cmplx.Abs(complex128(ref[i]-decimated[i])) > tol {
- return false
- }
- }
- return true
- }
|