Asked by Marco
on 6 Jun 2011

[EDIT: 20110606 10:32 CDT - reformat - WDR]

??? Error using ==> times Matrix dimensions must agree. Error in ==> prop_marcuse at 49 ep = exp(-a*dz/2)*ifft((exp(-i*dz*d/2)).*fip); Error in ==> lt_amprett at 93 E = prop_marcuse(E,ac,b2,b3,ass,n2,Aeff,k0,dz,dt); ??? Error while evaluating uico

hi guys, i'm new in matlab central so hello to everyone. i've a problem in my program. the program it's about propagation in an optical fiber of a signal qpsk modulated. I can't post the functions here because it would be too long. if someone wants to help please contact me and i will give him all the program folder. i'm so close to the solution but i can't understand where i've to correct something. i think it's right but it doesn't seem. i hope someone will answer me. thanks everybody.

*No products are associated with this question.*

Answer by Matt Fig
on 6 Jun 2011

Use .* instead of * when you desire element-by-element multiplication. For example,

x = 1:3 y = 4:6 x.*y

Answer by Walter Roberson
on 6 Jun 2011

You probably need

ep = exp(-a.*dz/2).*ifft((exp(-i.*dz.*d/2)).*fip);

In particular I suspect the dot missing between the exp() term and the ifft() term is the key.

Show 1 older comment

Marco
on 6 Jun 2011

i put the dot but it doesn't change anything.

Walter Roberson
on 6 Jun 2011

The first. But using extra usually does not hurt. Unless you know you are wanting to use matrix multiplication (in a mathematical sense) then you should probably use .*

Walter Roberson
on 6 Jun 2011

Ah... what is the size of fip, and what is the size of dz and of d ?

Related Content

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments