there are many situations when one has to carry some operations on spectra, like splitting a spectrum Z wide in two Z/2 spectra, or vice versa merging two Z sized spectra in a 2Z sized one. The only solution without having to go back to time domain and then to freq domain again (which is stupid imho) is operating convolution in frequency domain.
One example: I have two Z sized spectra representing, respectively, a STFT signal frame and an impulse response, which were NOT zero padded to start from; I want to convolve them non-circularly so I have to transform both spectra to double size spectra, zero padded and left justified; I have therefore to expand both spectra to 2Z sized ones by simply doubling the bin positions leaving the odd ones empty (resulting in a 2Z spectrum representing a repeating copy of the signal in the 2nd half); convolve with a Dirichlet kernel representing a binay square wave of unitary frequency (here is the point), so to zero the second half; then I can multiply the two 2Z sized spectra to obtain linear convolution; then carry the inverse operations to split the result in two spectra of size Z for subsequent overlap-save. This is a total of four convolutions in frequency domain.
I anticipate the answers: why not simply acquire zero padded frames of proper size at the origin? Well let's assume that I can't for many reasons. One is that I am working in a STFT context already adopting a standard frame format, like non-zero padded frames, where I get frames of a given format and am expected to return frames of the same size and format as result of my processing.
OTOH, if I avoided the frequency domain convolutions I would have to do IFFT on both spectra, zero pad in time domain, FFT again for multiplying the spectra, IFFT for splitting the result and then FFT again, for a total of seven fourier transforms, which is perhaps even more stupid...
So I am asking whether some math tricks exist to carry such operations with spectra as zero padding and splitting or any trick to speedup convolution in frequency domain without having to go back to time domain. Thanks