how to do zero padding for a vector?
532 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
g.p
el 7 de Ag. de 2016
Comentada: Superunknown
el 5 de Abr. de 2023
please help. i have just started learning matlab .
0 comentarios
Respuesta aceptada
Más respuestas (1)
John BG
el 8 de Ag. de 2016
Grupeet
the padding you may have in mind is the actual interpolation of zeros blocks after each symbol.
A=[1 2 3]
B=[A zeros(1,3)]
length of the padding
N=4
then
B=zeros(1,N*length(A))
=
0 0 0 0 0 0 0 0 0 0 0 0
B([1:N:end])
=
0 0 0
B([1:N:end])=A
=
1 0 0 0 2 0 0 0 3 0 0 0
In the example, appeneded DTFT code
it is clearly mentioned, the fft(x,2000) one-off zero padding in frequency domain helps reach the correct fft amplitude plot
Without FFT frequency zero padding
Fs = 1e3;
t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+sin(2*pi*202.5*t);
xdft = fft(x);
xdft = xdft(1:length(x)/2+1);
xdft = xdft/length(x);
xdft(2:end-1) = 2*xdft(2:end-1);
freq = 0:Fs/length(x):Fs/2;
figure(1);plot(freq,abs(xdft))
hold on;
figure(1);plot(freq,ones(length(x)/2+1,1),'LineWidth',2)
xlabel('Hz');ylabel('Amplitude');hold off;
with FFT frequency zero padding
xdft = fft(x,2000);
xdft = xdft(1:length(xdft)/2+1);
xdft = xdft/length(x);
xdft(2:end-1) = 2*xdft(2:end-1);
freq = 0:Fs/(2*length(x)):Fs/2;
figure(2);plot(freq,abs(xdft));
hold on;
figure(2);plot(freq,ones(2*length(x)/2+1,1),'LineWidth',2)
xlabel('Hz'); ylabel('Amplitude');
hold off;
Gurpreet would you please be so kind to mark my answer as Accepted Answer?
To any other reader, please if you find this answer of any help solving your question,
please click on the thumbs-up vote link,
thanks in advance
John BG
2 comentarios
Ver también
Categorías
Más información sobre Spectral Estimation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!