How to evaluate dirac function for Infi

7 Ansichten (letzte 30 Tage)
Elijah Kornefel
Elijah Kornefel am 5 Mär. 2019
Kommentiert: Elijah Kornefel am 5 Mär. 2019
dk= 1;
k = -10:dk:10;
G=(dirac(k+8)-2*dirac(k+4)+dirac(k)-2*dirac(k-4)+dirac(k-8)).*exp(-1i*pi.*k/8);
idx = G == Inf; %find Inf
G(idx) = 1; %sets Inf = 1
mag=abs(G);
stem(k,mag)
title('Magnitude vs k')
xlabel('k')
ylabel('Magnitude')
figure
phase=angle(G);
stem(k,phase)
title('Phase vs. k')
xlabel('k')
ylabel('Phase')
I know how to show values when G is equal to Inf, but my issue rises when G = Inf + Infi for example.
I have tried:
idi = G == -Inf + Infi;
G(idi) = 1i;
But no luck. Any help appreciated.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 5 Mär. 2019
idi = G == complex(-inf, inf);
G(idi) = 1i;
  3 Kommentare
Walter Roberson
Walter Roberson am 5 Mär. 2019
Could you confirm that your system cannot produce +inf +inf*i ?
You can make the code more compact:
notfin = ~isfinite(G);
G(notfin) = complex(sign(real(G(notfin))), sign(imag(G(notfin))));
Elijah Kornefel
Elijah Kornefel am 5 Mär. 2019
This also works. Thank you. I'll be sure to check for these any time I use dirac. My function did not necessarily produce every inf and infi combination, but it is more to check for all. This shorter snippet does that.
Thank you.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Introduction to Installation and Licensing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by