Запись суммы функций sinc в усилителе - PullRequest
0 голосов
/ 31 октября 2019

Я должен реализовать выход Mathematica как переменную в amp, которая является суммой и произведением sinc-функций. Я определил функцию sinc как

var SincA {i in N}=   if abs(x1[i]) > 1e-8 then sin(x1[i])/x1[i] else 1;
var SincB {i in N}=   if abs(x2[i]) > 1e-8 then sin(x2[i])/x2[i] else 1;

. Однако выход Mathematica принимает форму

    -19.99590492248535*Sinc[0.12566370614359174*(0. + t)]*
  Sinc[0.26927937030769655*(-65. + u)] - 
 4.360287189483643*Sinc[0.12566370614359174*(25. + t)]*
     Sinc[0.26927937030769655*(-65. + u)] + 
 12.314101219177246*Sinc[0.12566370614359174*(50. + t)]*
  Sinc[0.26927937030769655*(-65. + u)] 

, и это лишь малая часть общего объема.

Я могу воспроизвести это в усилителе как

var Sinc1x1A{i in N}= if abs(0.12566370614359174*(0. + x1[i])) > 1e-8 then sin(0.12566370614359174*(0. + x1[i]))/(0.12566370614359174*(0. + x1[i])) else 1;

var Sinc1x1B{i in N} = if abs(0.26927937030769655*(-65. + x2[i])) > 1e-8 then sin(0.26927937030769655*(-65. + x2[i]))/(0.26927937030769655*(-65. + x2[i])) else 1

var Resultx1{i in N} = -19.99590492248535*Sinc1x1A[i]*Sinc1x1B[i]-...;

Однако этот метод крайне неэффективен, поскольку мне приходится определять слишком много переменных.

Я хочу создать функцию sinc без определенного аргумента, а затем вызывать ее столько раз, сколько нужно, вместо того, чтобы определять десятки переменных.

Я нашел эти слайды, https://ampl.com/MEETINGS/TALKS/2018_07_Valencia_WA-57.pdf, но я не могу найти способ сделать то, что я хочу.

Может кто-нибудь указать мне какую-то документацию, где это решается?

...