There are a number of things that you could try, but the first thing would be to
using BenchmarkTools
@benchmark upfirdn(...)
to figure out how much time it’s taking and how much GC it’s doing.
Your best bets are going to be to reduce allocations. perhaps create a buffer that you reuse by calling filt! and then use a @view to strip padding etc.