how to do zero padding for a vector?

 Risposta accettata

A=[1 2 3]
B=[A zeros(1,3)]

2 Commenti

g.p
g.p il 8 Ago 2016
THANKS ITS SIMPLE. IT WORKS.
thanks, simple

Accedi per commentare.

Più risposte (1)

John BG
John BG il 8 Ago 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 Commenti

g.p
g.p il 8 Ago 2016
GREAT ONE COMPLETELY HELPFULL. THANKS A LOT. CAN U TELL ME HOW TO PADD IN 000123 RATHER THAN 123000. PRE PADDING ??

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by