A new method for the control of a battery energy storage system and its implementation on a 25 kW solar system to compensate solar power intermittency and improve distribution grid power quality is presented in this paper. The novelty of the proposed method is to provide a systematic way to optimize the size of the battery capacity for the desired level of solar power smoothing. This goal is achieved by designing a two-stage filter solution. The first stage is a fast response digital finite impulse response (FIR) filter that makes a trade-off between smoothing of the solar output and battery capacity. This paper proposes an optimal design of a minimum-length, low-group-delay FIR filter by employing convex optimization, discrete signal processing, and polynomial stabilization techniques. The new strategy proposed in this paper formulates the design of a length- $N$ low-group-delay FIR filter as a convex second-order cone programming, which guarantees that all the filter zeros are inside the unit circle (minimum-phase). A quasi-convex optimization problem is formulated to minimize the length of the low-group-delay FIR filter. The second-stage filter is designed to level the battery charging load. The effectiveness and performance of the proposed approach is demonstrated by simulation results and also over a real-case implementation.