Zero padding in frequency domain causes noise in time domain
7 次查看(过去 30 天)
显示 更早的评论
Hello everybody,
I have a problem by zeropadding a signal in frequency domain to get a higher sampling rate in the time domain. The oversampled result in time domain gets additional noise (see figure).
Is there a way to oversample "my" signal without this additional noise?
Here is my code:
% B1: input signal with 128 samples
z = fft(B1);
% pad high frequency
zp = fftshift(z);
zp(1) = zp(1)/2;
zp(end+1) = zp(1);
zp = ifftshift([zeros(1,64),zp,zeros(1,63)]);
% resampling and renormalization
B2 = ifft(zp)*2;
Many thanks Chris
0 个评论
采纳的回答
Matt J
2014-8-18
编辑:Matt J
2014-8-18
The FFT-upsampling that you are doing is equivalent to sinc-interpolation. What you seem to be interpreting as "additional noise" is really just the non-monotonic character of sinc interpolation. I.e., sinc interpolators don't necessarily connect adjacent data points with monotonic curves, so you can get additional peaks and valleys in the upsampled signal.
If you want monotonically connected data points, you can use interp1 to do linear or shape-preserving cubic interpolation.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Multirate Signal Processing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!