Asked by William A Lowe
on 16 Jul 2019

I'm writing a DFT script and I keep running up agains this problem where my matrix multiplication is erroring out due to their matrix sizes. One is 1x1000 and the other is 500 x 500.

Here is the code below.

clc;

clear all;

close all;

t = 0:1/100:10-1/100; % Time vector

xn = 5 + 2*cos(2*pi*t-pi/2) + 3*cos(2*pi*4*t); %Signal in Time domain

N = 500; % length of data points

for k=0:N-1

for n=0:N-1

Wn=exp(-j*2*pi*k*n/N);

X1(k+1,n+1)=Wn;

end

end

Xk = X1*xn';

Answer by KALYAN ACHARJYA
on 16 Jul 2019

Edited by KALYAN ACHARJYA
on 16 Jul 2019

Accepted Answer

What I did?

For matrix multiplication, the number of columns in first matrix must be equal to the number of rows in second matrix, hence I try to satisfy the issue by changing N=500 to N=1000

t = 0:1/100:10-1/100; % Time vector

xn = 5 + 2*cos(2*pi*t-pi/2) + 3*cos(2*pi*4*t); %Signal in Time domain

N = 1000; % length of data points

X1=zeros(N,N);

for k=0:N-1

for n=0:N-1

Wn=exp(-j*2*pi*k*n/N);

X1(k+1,n+1)=Wn;

end

end

Xk=X1*xn';

madhan ravi
on 16 Jul 2019

Preallocate X1.

KALYAN ACHARJYA
on 16 Jul 2019

#Edited @Madhan I am Sorry, ohh God..I missed it again. Thanks

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.