param n := 7; param N := 300; param pi := 4*atan(1); set NU_P := {0.0..0.25 by 1/N} union {0.75..1.0 by 1/N}; set NU_S := {0.25..0.75 by 1/N}; set NU := NU_P union NU_S; var rho2 >= 0; var g_real {0..n-1}; #var g_imag {1..n-1}; var G {nu in NU} = g_real[0] + 2*sum {k in 1..n-1} (g_real[k]*cos(2*pi*k*nu) # - g_imag[k]*sin(2*pi*k*nu) ); minimize power_bnd: rho2; subject to bnd_def: sum {nu in NU_S} G[nu] <= rho2; subject to DC_gain: G[0] = 1; subject to G_nonneg {nu in NU}: G[nu] >= 0; solve; printf {nu in NU}: "%7.4f %10.3e \n", nu, 20*log10(sqrt(G[nu])) > 1.out;