How do I add zero padding to this convolution?

21 Ansichten (letzte 30 Tage)
Brianna Miranda
Brianna Miranda am 17 Okt. 2021
Kommentiert: Matt J am 18 Okt. 2021
% My question is how do I add zero padding to this plot? I'm trying to show the effects of circular convolution with and without zero padding.
% This part is taking fourier transform of two different functions
a = 0.5;
n = [0,1,2,3,4,5,6,7];
x1 = a.^n;
x2 = [1,1,1,1,1,1,0,0];
X1 = fft(x1,16);
X2 = fft(x2,16);
% Here is the convolution of them. Need to add zero padding for this
% convolution plot
X1X2 = X1.*X2;
x1x2_conv = ifft(X1X2);

Akzeptierte Antwort

Matt J
Matt J am 18 Okt. 2021
Bearbeitet: Matt J am 18 Okt. 2021
Not sure what the question is, but you can easily compare your result to direct convolution to see if it's correct.
x1x2_conv = ifft(X1X2)
x1x2_conv = 1×16
1.0000 1.5000 1.7500 1.8750 1.9375 1.9688 0.9844 0.4922 0.2422 0.1172 0.0547 0.0234 0.0078 0 -0.0000 -0.0000
conv(x1,x2)
ans = 1×15
1.0000 1.5000 1.7500 1.8750 1.9375 1.9688 0.9844 0.4922 0.2422 0.1172 0.0547 0.0234 0.0078 0 0
  2 Kommentare
Brianna Miranda
Brianna Miranda am 18 Okt. 2021
My question is how do I add zero padding to this plot. I'm trying to show the effects of circular convolution with and without zero padding. This code shows the effect without zero padding but I'm not sure how to add in zero padding.
Matt J
Matt J am 18 Okt. 2021
You have applied zero padding. To omit zero padding,
X1 = fft(x1);
X2 = fft(x2);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by