Brugtgrej.dk
Forside  |   Ny annonce  |   Forum  |   Nyhedsmails  |   Om brugtgrej  |   Kontakt Brugtgrej
152 online brugere
2998 online annoncer
SælgesKøbes

GNU radio blok


#1  20/03-24 13:09
Jørgen Kragh
Indlæg: 646
Jeg er i færd med at skrive en repeater i GNU radio, og der er jeg løbet ind i en lille udfordring.

Jeg skal have undersøgt om en stream af typen FLOAT er identisk med 0 eller ej og give en indkation af typen FLOAT eller INT. Det signal skal bruges til at multiplicere den komplekse stream fra NBFM TX til TX båndpasfiltret, i.e. tænde og slukke for TX.

Jeg har forsøgt med diverse stream-værktøjsblokke og med Threshold, hvor MAX/MIN er sat +/-1e-6, men det er ikke pålideligt, og en jagt på diverse websider har ikke givet noget brugbart resultat.

Nogen der ved, om der findes en GNU blok der kan undersøge om en FLOAT stream er identisk med 0, og give et FLOAT eller INT signal?

Vy 73

Jørgen

Redigeret 20/03-24 13:10
#2  20/03-24 15:16
Hans-Jørgen Petersen
Indlæg: 315
Svar til #1:

Hej Jørgen

Jeg ved ikke hvad GNUradio er skrevet i (C++ ?)
Men hvad med bare at tage recibrokværdien af din float, og handle på den exception error du får, hvis den virkelig var nul?

Du kan måske også finde lidt inspiration her:
https://stackoverflow.com/questions/46762102/fas test-way-to-compare-a-double-to-exact-0- while-both-0-0-or-0-0-are-accepted

Mvh
Hans-Jørgen

#3  20/03-24 16:49
Hans Jørgen Jakobsen
Indlæg: 3
Svar til #1:
Hvis din FLOAT er resultatet nogen beregninger skal du ikke forvente at den vil blive 0, fordi der er usikkerhed/ustabilitet i beregningerne. Så det bedste du nok kan gøre er at sætte grænsen op fra 1e-6.

Det er et klassisk problem man har med FLOATs.

/hjj

#4  20/03-24 17:25
Jørgen Kragh
Indlæg: 646
Svar til #2 og 3#:

Hej Hans-Jørgen og Hans Jørgen

Tak for jeres respons. Det er blokken "CTCSS Squelch", som kan åbne/lukke for en FLOAT stream afhængig af, om der detekteres en CTCSS tone i streamen eller ej. Det vil sige at når der ikke er tone, er streamen på udgangen 0 (som i NUL) og ikke +/- "0". Det fremgår af GNU radio dokumentationen. Så det jeg har brug for er en detektor der går op eller ned, når streamen er 0, intet andet. Med GNUs standardblokke har det, i hvert fald for mig, vist sig at være en større opgave.

GNU radio er skrevet i C++, som jeg absolut ikke kan programmere i, men man kan skrive sine egne OOT blokke i Python. Det kunne jeg selvfølgelig sætte mig ned og finde ud af gøre, men nu vil jeg først undersøge, om ikke man kan finde sådan en OOT blok et sted. Der må da være andre end jeg, der har prøvet at skrive en repeater i GNU radio.


vy 73

Jørgen