Frequency filtering with a DFT and meaning of removing complex conjugates I've seen many implementations to filter out frequency components of some time domain signal by performing a DFT, zeroing the unwanted frequency bins, and performing the IDFT to get the filtered signal, but more than a few times I've seen the results of the DFT treated as frequency components from 0 to the sampling rate instead of 0 to half the sampling rate then the complex conjugates. Take for example this bandpass implementation by a group at MIT: https://github.com/diego898/matlab-utils/blob/master/toolbox/EVM_Matlab/ideal_bandpassing.m

It's defining the frequency bins and corresponding bandpass filter as

Freq = 1:n;
Freq = (Freq-1)/n*samplingRate;
mask = Freq &gt; wl &amp; Freq &lt; wh;


n being the number of samples and wl and wh being the low and high frequencies respectively.

My first intuition is that that's incorrect, but it makes me wonder if I'm missing something since I've seen it done this way multiple times.

But the more interesting question to me is, assuming it is wrong: what physical meaning, if any, does removing one but not both of these complex conjugates have? For example, if I used the above bandpass implementation to make a low-pass filter which filtered out one half the sampling frequency, I would keep the DC component and all the first complex values. But then I would remove all of their conjugates. While I don't actually think that's the low pass filter intended, it does still have the effect of smoothing out the signal, but how would you describe that? I don't imagine it's still considered a temporal filter in that case.
Here is a different way to look at it:

The violation of complex conjugate symmetry produces and "error". That error is, that the impulse response becomes complex. By applying the "real()" operator on the inverse FFT, the error is eliminated again.