I have a long measured impulse response and I wand to shorten it. I imagined two options. The first is a simple windowing. The second is to model it as an IIR (prony, yulewalker, stmcb method) before to use this filter to regenerate an IR of the appropriate length. My intuition leads me to think that the second method is more efficient because windowing at N sample is equivalent to create a Nth order FIR, and IIR are supposed to be more accurate (but maybe I'm wrong). Could you enlighten me on the issue ?
The required length of the impulse response is primarily determined by the frequency resolution of the filter. If you sample at 44.1 kHz and want to do something meaningful at 40 Hz, you will need 1000s of samples.
If your required frequency resolution is reasonably large, than the windowing approach can work fine. I'd suggest a rectangular window with a bit of a half-hanning or half raised cosine at the end to smooth out any transition. Just keep cutting the length to a point where the frequency domain error is still "acceptable".
If that doesn't work, you can try a hybrid of IIR and FIR. Match an IIR filter primarily at the lower frequency, calculate the difference the IIR to the target response and implement the difference as an additional FIR filter cascaded with the IIR