Effacer les filtres
Effacer les filtres

why does the following code give error?

2 vues (au cours des 30 derniers jours)
Sadiq
Sadiq le 13 Déc 2023
Commenté : Sadiq le 13 Déc 2023
u=[3 4 30 50];% Desired Vector
b=u;
[R,C]=size(b);
P=C/2;
M=2*C;
% calculate observed vector
xo=zeros(1,M);
for k=1:M
for i=1:P
xo(1,k)=xo(1,k)+1*exp(1i*((-pi/2)*sin(u(P+i))*(k-1)+(pi/(16*u(i)))*cos^2(u(P+i))*(k-1)^2)));
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
end
end
xe=zeros(1,M);
for k=1:M
for i=1:P
xe(1,k)=xe(1,k)+1*exp(1i*((k-1)*(-pi/2)*sin(b(P+i))+(pi/(16*b(i)))*cos^2(b(P+i))*(k-1)^2));
end
end
abc=0.0;
for m1=1:M
abc=abc+(abs(xo(1,m1)-xe(1,m1))).^2;
end
abc=abc/M;
e=abc

Réponse acceptée

Torsten
Torsten le 13 Déc 2023
Use
xo(1,k)=xo(1,k)+1*exp(1i*((-pi/2)*sin(u(P+i))*(k-1)+(pi/(16*u(i)))*cos(u(P+i))^2*(k-1)^2));
xe(1,k)=xe(1,k)+1*exp(1i*((k-1)*(-pi/2)*sin(b(P+i))+(pi/(16*b(i)))*cos(b(P+i))^2*(k-1)^2));
instead of
xo(1,k)=xo(1,k)+1*exp(1i*((-pi/2)*sin(u(P+i))*(k-1)+(pi/(16*u(i)))*cos^2(u(P+i))*(k-1)^2)));
xe(1,k)=xe(1,k)+1*exp(1i*((k-1)*(-pi/2)*sin(b(P+i))+(pi/(16*b(i)))*cos^2(b(P+i))*(k-1)^2));
  5 commentaires
Torsten
Torsten le 13 Déc 2023
Modifié(e) : Torsten le 13 Déc 2023
Because even the order in which terms are multiplied can matter for the result.
Here, the terms that are summed are absolutly identical while in your previous code, the multiplicative order in both terms differs.
Sadiq
Sadiq le 13 Déc 2023
Thanks a lot dear Torsten for your prompt response. Yes now I got it. Thank you once again.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Phase-Locked Loops dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by