What is wrong in my code?

4 visualizzazioni (ultimi 30 giorni)
riki singh
riki singh il 11 Gen 2023
Modificato: Abhishek il 18 Ago 2025
q=readtable('a.txt');
A=q.a;
B=q.b;
C=q.c;
L=length(A);
P=length(B);
S=1;
q.complex=complex(q.d,q.e);
v=reshape(q.complex,L,[]);
X=-10.27:0.1361:10.139;
Y=-10.57:0.1401:10.4366;
v_I=16*ifft2(v.');
v_db=20*log10(v_I);
figure
imagesc(X,Y,v_db.'); grid on
axis equal
axis tight; colormap(hot);
My question is at theory wise v_I(i,j) has to be converted into v_I(e,f) where e=(i^2-j^2)/2*i and f=j and then we have to convert it into a figure. I am not able to this transform.
  5 Commenti
riki singh
riki singh il 11 Gen 2023
I hv edited plz check now..
riki singh
riki singh il 12 Gen 2023
My main aim is once i do this step V_i= 16*ifft2(v.'); I will get as 2D array Next is i have to extract the data and change the values inside v.'matrix into X=u^2 Y=v
And now plot the image wrt v(x,y) which was basically before v(u,v) Just the transformation inside the matrix

Accedi per commentare.

Risposte (1)

Abhishek
Abhishek il 18 Ago 2025
Modificato: Abhishek il 18 Ago 2025
I understand you're encountering an error when attempting to visualize a 2D complex-valued matrix using `imagesc`. The issue arises from passing complex data to a function that only supports real values.
In your code, you're performing an inverse FFT operation and then directly computing the dB scale with `log10`. You are applying `log10` directly to` v_I`, which is a complex matrix (since `ifft2` of complex data typically remains complex). Taking `log10` of complex values results in complex outputs, which `imagesc()` cannot plot.
To plot magnitude in dB, you should first take the absolute value of ` v_I`. Make the following changes in your code to compute `v_db`:
v_db = 20 * log10(abs(v_I) + eps);
I tried applying the above change, and ran the code with the given input file in MATLAB R2024b, and got the following plot:
Hope it helps.

Community Treasure Hunt

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

Start Hunting!

Translated by