Zero Padding Problem with FFT Square Wave Pulse

2 次查看(过去 30 天)
Hi,
I'm trying to smoothen out the sinc pulse response that I get from the fft of a rectangular pulse. I thought that zero padding should help me to do this but I still end up with a sharp/pointy pulse after everything. Any help would be greatly appreciated.
Lamda1 = .003;
N = 8*pi./Lamda1;
Step1 = .05;
A1 = [-N/2:Step1:(N/2)-Step1];
R1 = zeros(size(A1));
R1(A1>(-N/4)& A1<(N/4)-Step1) = 1;
figure (1); plot(A1,R1)
FD1 =fft(R1)/N;
figure (2); plot(abs(FD1))
figure (3); plot(abs(fftshift(FD1)))
  2 个评论
Honglei Chen
Honglei Chen 2012-6-28
Could you clarify a little more? I don't know what you mean by smoothen out the sinc pulse response. The reason you see a pulse is because your sample rate is very high. You can try to increase Step1 and decrease Lamda1 and see if that's what you want.
Matt
Matt 2012-6-29
I create the square pulse. No problems there.
The problem occurs when I look at the fft outputs. When I zoom in on Figure (3), the sinc pulse doesn't have the typical sinusoidal curvature. It is pointy, slightly triangular...
I think I need to pad the R1 with more zeros, I just don't know how to do that... I can't really change the limits of A1.
Do you know if the R1 = zeros ((size (A1)); function is correct?
Thanks.

请先登录,再进行评论。

回答(1 个)

Honglei Chen
Honglei Chen 2012-6-29
R1 is correct. If all you want is to do zero padding and then FFT, you can do it by specifying the number of FFT points in fft() function. For example
FD1 = fft(R1,nextpow2(numel(R1)))

类别

Help CenterFile Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by