How to understand the filter coefficients in FIR filter Here it is the difference equation we have: 

y(n) = -0.25x(n) - 0.15x(n − 1) + 0.78x(n − 2) − 0.15x(n − 3) - 0.25x(n - 4)


I understand that is FIR. The coefficients are selected in the way that certain input signal frequencies are removed by such convolution system. Take Matlab audio file gong.mat for example, we read the file then we have input signal x and sampling rate Fs, then through such system, we have output signal y. How do we understand the filter coefficients that make some input signal frequencies are filtered? Different coefficients lead to different filter type? Can we estimate what frequencies are removed?
2-tap FIR filters can be understood with a simple intuition (I use Python for plotting, but freqz is the same there).

Let's start with two taps with the same value: b = [1, 1]. This lets through constant signals (e.g. [1, 1, 1, ...]) but will more or less block rapidly changing ones (e.g. [1, -1, 1, -1, ...]), i.e. it is a lowpass:

w, h = scipy.signal.freqz([1, 1], 1)

plt.plot(w, abs(h))




On the other hand, b = [-1, 1] will do the opposite: let changing signals pass but block constant ones, i.e., we have a highpass.

w, h = scipy.signal.freqz([-1, 1], 1)

plt.plot(w, abs(h))




I'm not sure it is straightforward to expand this intuition to more complex signals like yours. But looking at the shape, I would expect some band-pass behavior (because we have both high- and lowpass components) with a peak frequency around one third of the sampling frequency (because a signal like [1, 0, 0, -1, 0, 0, 1, ...] will be able to pass). This apparently isn't so far from the truth: