How to evaluate dirac function for Infi

3 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

Walter Roberson
Walter Roberson il 5 Mar 2019
idi = G == complex(-inf, inf);
G(idi) = 1i;
  3 Commenti
Walter Roberson
Walter Roberson il 5 Mar 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 il 5 Mar 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.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Introduction to Installation and Licensing in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by