Spørgsmål:
Registrering af signaler ved hjælp af statistik
HH- Apologize to Carole Baskin
2017-07-19 19:06:32 UTC
view on stackexchange narkive permalink

Jeg har samplet et udsnit af spektret med få Hz. Jeg har gennemsnitlige standardafvigelser og rækkevidde data for hver frekvens, der samples (og jeg kan indsamle flere statistikker, hvis det er nødvendigt). Jeg har samplet i flere sekunder, før jeg lagrer spektrumstatistikken.

Jeg vil gerne være i stand til at gætte, hvor menneskeskabte signaler (dvs. kanaler) findes i dette spektrum (i modsætning til støjgulv). Dette viser sig at være en vanskelig opgave, især da støjgulveffekten undertiden ændres (forskellige antenneindgange for f.eks. Forskellige bånd.)

Jeg tvivler på, at nogen har en klar løsning på dette, men hvad er nogle udgangspunkt eller tips til at hjælpe mig med at identificere kanaler?

I nedenstående billede er 'normal' virkelig autokorrelation fra Pandaer 'normal' is really autocorr from Pandas

Tre svar:
Rodney Price
2017-07-20 09:56:15 UTC
view on stackexchange narkive permalink

Der er en række muligheder, afhængigt af hvilken type signal du vil finde. Jeg starter fra let og går op til hårdt. Jeg antager, at du bruger en FFT til at få dine spektre.

  1. RFI. En tidligere plakat henviste til nogle papirer om at finde RFI. Jeg ved ikke nøjagtigt, hvordan det er defineret, men lad os antage, at det er utilsigtet RF fra ting som at skifte strømforsyning (linjespektre) og dårligt kablede automotorer (impulsiv støj). Impulsiv støj er smal i tid og bred i frekvens, hvilket antyder, at du bare skal se på din modtagerudgang. Der er sandsynligvis en eller anden statistisk test, du kunne anvende (siger, at nulhypotesen er hvid Gaussisk støj). For linjespektre skal du gøre det samme i frekvensdomænet. Måske vil de, der ved mere om RFI end jeg, sige noget andet. Jeg vil dog foreslå, at i stedet for at behandle dit signal, mens du laver, at du bruger den første behandling, som jeg diskuterer næste gang.
  2. Konventionelle analoge signaler. Med dette mener jeg de AM, FM, SSB osv. Transmissioner, som du kører hele tiden. Disse lever i en mellemregion mellem impulser og linjespektre, hvilket gør tingene lidt sværere. Jeg vil foreslå, at du beregner et effektspektrum, og ud fra det autokorrelationen. Dette er let, hvis du allerede bruger en FFT: Beregn FFT, og multiplicer derefter hvert element med dets komplekse konjugat. Nu har du strømspektret. Gør derefter den inverse FFT for at få autokorrelationen. Hvis der er et signal der, vil du se en udtværet top nær $ \ tau = 0 $, hvor $ \ tau $ er forsinkelsen. Hvis det er relativt bredbånd, bliver toppen smallere; hvis det er smalbånd (sammenlignet med din FFT) bliver toppen bredere. Se efter toppe i både effektspektret og autokorrelationen. Dette fungerer bedre end statistik-indsamling, som du beskriver, fordi det udnytter sammenhængen i signalet. Hvis du bruger en stor FFT, vil du gennemsnitlig over en masse signal, som vil undertrykke støj og bedre vise dig, hvad der er. Hvis det bare er støj, ser du en meget smal top lige ved $ \ tau = 0 $ og et fladt effektspektrum.
  3. Konventionelle digitale signaler. Jeg mener konventionel fra et skinradioperspektiv; tilstande som PSK31 osv. En autokorrelation / power spectrum-tilgang kan også fungere godt her. De samme fysiske principper gælder: støjgennemsnit usammenhængende, mens signalgennemsnit er kohærent. Der er dog en advarsel. Da signaler bliver mere båndbreddeeffektive, begynder de at ligne mere som hvid støj. Et AFSK-signal som dem, der ofte bruges i pakkeradio, er for eksempel frygteligt (tilgiv mig, pakkeradioentusiaster) ineffektivt. Det tager meget båndbredde at få et par bits igennem. PSK31 er meget bedre. Nogle af de mere moderne tilstande, såsom WSPR og pårørende, er virkelig gode. Du ser et fladt spektrum på tværs af hele signalbåndbredden. De prøver ikke at være luskede. Det er bare situationens fysik.
  4. Bredbånds digitale signaler. Dette er en bred kategori, men inkluderer spredte spektrumsignaler såvel som meget stærkt optimerede signaler som dem, din mobiltelefon bruger. Der har været en bemærkelsesværdig mængde R&D sat i disse signaler for at gøre dem effektive, og fordi de er nødt til at skubbe mange bits på tværs, er de bredbånd, og så signal-støj-forholdet i en given frekvensbakke et par Hz på tværs bliver dårlig. De er bare svære at se, og der er et overraskende antal af dem derude. Det er her cyclostationær behandling, en form for statistik med højere ordre, kommer til sin ret. Cyklostationær behandling bruges til at udtrække bithastigheden fra et ukendt signal. Selvom du ikke kan se signalet gennem andenordens statistik (som autokorrelation), vil signalets bithastighed ofte springe lige ud af en cyklostationær tilgang. Matematikken kan være skræmmende, men hvis du virkelig er interesseret, skal du holde fast ved den, og du vil opdage, at den virkelig ikke er så hård.

Her er et par eksempler til at illustrere autokorrelationen / magt spektrum tilgang. På billederne plotter jeg først signalet, derefter effektspektret og derefter autokorrelationen. Disse er simulerede signaler med samplingsinterval $ \ Delta t = 1 $.

Hvid gaussisk støj

Fladt effektspektrum, autokorrelation har en top ved nul forsinkelse, flad overalt ellers. white Gaussian noise

Barkerkodet puls

Radarer bruger disse til at reducere deres maksimale effektbehov, mens de opretholder rækkeviddeopløsningen. $ \ sin ^ 2 \ omega / \ omega ^ 2 $ struktur på grund af pulsformen. Autokorrelation viser en smal top ved nul forsinkelse. I naturen er disse impulser meget kortere, end jeg viser her, hvilket fører til fladere bredere spektre. De kan være vanskelige at skelne fra støj, medmindre du har en eller anden uafhængig måde at beregne SNR i kanalen (hvilket er svært, hvis du ikke rigtig ved, at der er et signal i kanalen). Bedst at bare se direkte i tidsdomænet.

Barker-coded pulse

FM med sinusformet modulering

Let at se i begge energispektret og autokorrelationen.

FM with sinusoidal modulation

Summen af ​​alle tre

Her har jeg indstillet støj $ $ sigma = 1/4 $, impulsens maksimale amplitude til $ 2 $ og FM-signalets maksimale amplitude til $ 1/4 $. Det fjerde plot er et nærbillede af autokorrelationen nær nul forsinkelse.

Sum of noise, pulse, and FM signal

Omkring 2 - Jeg tror, ​​jeg har brug for to FFT-snapshots af spektret for at gøre dette, ikke arrays over tid, som jeg har nu? Så for hver frekvens ville jeg tage en prøve på tidspunktet t, vente lidt og derefter tage en anden prøve på t + n og bruge de to prøver og gentage for hver freq?
Nej, du mister sammenhæng på den måde. Gør hvad jeg sagde ovenfor. Tag et FFT-øjebliksbillede, multiplicer hver prøve med dens komplekse konjugat, og tag derefter det inverse FFT for at få autokorrelationen.
En prøve er nok til at udføre autokorrelation? Det virker kontraintuitivt for mig (men selvfølgelig er jeg ikke særlig fortrolig med dette)
Ved "prøve" ville de fleste mennesker tro, at du henviser til et nummer, der repræsenterer et øjeblik i tiden. Hvis det er hvad du mener, skal du læse den FFT-artikel, jeg linkede til ovenfor. Hvis ikke, antager du formodentlig en serie prøver, der danner en tidsserie, som du derefter behandler ved hjælp af FFT. Det er det, jeg mener, og ja, det er her, du starter, når du vil beregne en autokorrelation.
Jeg har mange prøver og har udført FFT. Der er flere pigge eller pukkel, der svarer til menneskeskabte (modulerede) signaler, der er lette at se, men som er vanskelige at finde algoritmisk. Det lyder som fra din autokorrelationsbeskrivelse, jeg leder kun efter et signal, ikke mange (som der findes i spektret i øjeblikket.) For eksempel bruger du "toppen", ental, i din beskrivelse. Dette er hvad der forvirrer mig.
I stedet for at udføre autokorrelationen manuelt, er der nogen grund til, at jeg ikke kan bruge et bibliotek (såsom Pandas) til at gøre det for mig (ved at fylde prøverne i en serie)?
Jeg ved relativt lidt om FFT / DSP, men I stipendiater virker ret skarpe! Vi er meget glade for at have dig her på HamSE. Jeg har inviteret forfatteren af ​​[Linrad] (http://www.sm5bsz.com/linuxdsp/linrad.htm) til at deltage her. Han er ekspert på DSP / FFT. Uanset om han har tid eller ej, kan du finde [Linrad-webstedet] (http://www.sm5bsz.com/linuxdsp/linrad.htm) og / eller [Linrad Google-gruppen] (https://groups.google .com / forum / #! forum / linrad) til at være nyttigt. Linrad er den bedste SDR-software til at høre de meget svageste signaler begravet i støj.
@MikeWaters, Jeg er glad for at have ham! hestehår, hvis du bruger Python, har Numpy en FFT-rutine. Jeg ved ikke meget om Pandaer, men hvis det bruger følelsesløse arrays, er du sandsynligvis okay. Med hensyn til autokorrelationen vil den vise mange signaler lige så godt som en. Mængden, du sandsynligvis er interesseret i, er forholdet mellem værdien ved $ \ tau = 0 $ (og meget tæt på hinanden) og den maksimale værdi overalt ellers. Du kan gøre det mere præcist med den rigtige form for statistisk test, men sædet til bukserne fungerer sandsynligvis fint til dine formål.
@horsehair, ked af forvirringen. Jeg mente toppen på $ \ tau = 0 $. Den ene dukker op, om du har signal eller bare støj. Toppe eller pukkel andre steder betyder, at du har signal. Husk, at jeg taler om autokorrelation, ikke om den rå FFT-output.
Se det billede, jeg tilføjede til spørgsmålet. Jeg tager faktisk FFT med følelsesløs. Dataene i grafen, der siger 'normal', er virkelig autokorroutput fra Pandas. Det er altid meget lavt. På toppen ser du der (en af ​​mange toppe (menneskeskabte kanaler, såsom FM-udsendelsesstationer) i min graf. Pandas 'autocor giver -0.05 på toppen af ​​den kanal (lige til venstre for hvor markøren er). Så Pandas-metoden ser ikke ud til at virke. Jeg gætter ud fra sammenhæng, at den autokorr-tilgang, du giver, er til et signal, ikke et frekvensdomænespektrum, der indeholder mange signaler?
@horsehair, Pandas har ikke noget at gøre med det. Se på de ekstra billeder, jeg har lagt ud i mit svar. Læs svaret nøje. Jeg har allerede investeret for meget tid i dette, så jeg er nødt til at logge af. Held og lykke.
Raul O.
2017-07-19 20:03:45 UTC
view on stackexchange narkive permalink

Nå, dette er et velstuderet felt (detektion og afbødning af radiofrekvensinterferens). Der er masser af litteratur om det.

Den støj, du modtager, er teoretisk Additive White Gaussian Noise (AWGN). Det betyder, at dens sandsynlighedsdensitetsfunktion (PDF) er Gaussisk, og pdf'en af ​​dens samples magt er eksponentiel. Ved at indstille en falsk alarmsandsynlighed i henhold til signalets styrke kan du let registrere prøver, der potentielt ikke er støj. Tjek f.eks. Punkt 2.2 i dette papir. Denne tærskelmetode anvendes i frekvensdomænet i teknikker til frekvensblankering og spektrogramblanking.

Normalitetstest bruges også til at evaluere, om et signal er AWGN. Jeg har læst mange omtaler til Anderson-Darling-testen, men jeg arbejdede aldrig med den.

Du kan bruge Kurtosis til at se, om et signal er Gaussisk eller ej (men vær forsigtig, fordi Kurtosis er svag mod visse sinusformede signaler). Hvis det ikke er Gaussisk, er det sandsynligt, at det er menneskeskabt (dog kan nogle frekvente Jammere udsende Gaussiske signaler). Kurtosis er også blevet brugt til at detektere RFI i frekvensdomænet, ikke kun i tidsdomænet (se efter spektral kurtose).

Her har du en anden interessant (og åben! ) papir om RFI-detektion.

Jeg er ikke sikker på, om der er AWGN-lignende signaler fra mennesker, der adskiller sig fra støj til jamming. Spektret af signaler krypteret med koder (såsom GPS-signaler, der bruger Pseudo-tilfældig støjkoder) er synkroniserede, og de er kun flade i en lille brøkdel af dens båndbredde. Selvom du prøver denne lille brøkdel, er jeg ikke sikker på, om signalet i tide vil virke gaussisk.

Her har du et andet interessant (og åbent!) Papir om RFI-detektion: http://www.mdpi.com/2072-4292/2/1/191
Jeg har et stort spektrum med mange signaler i det. Det lyder som det, du foreslår, er at give en båndbredde. Jeg kunne rulle over spektret og kontrollere hver sektion (med en vis bredde), men signalerne har også forskellige bredder; nogle har bredde '1' (prøveudtagningsstørrelsen), andre er hundreder eller tusinder af Hz ...
Du kan gøre det for forskellige værdier langs tid for en enkelt bin i spektret.
Ville PDF-filen for nogle menneskeskabte signaler (f.eks. Krypterede signaler) også være gaussisk?
Velkommen til Amateur Radio Stack Exchange og tak for dit informerede svar! Bare én ting - hvis du tænker på mere at sige, eller hvis nogen beder om afklaring, skal du sørge for at [redigere] dit svar for at inkludere det ekstra materiale. Kommentarer bør betragtes som flygtige - skal slettes, når de er håndteret.
@horsehair: når du bare indsamler usammenhængende statistikker, som du gør, når du tager gennemsnit og standardafvigelse i hver frekvensbakke, ødelægger du den sammenhængende information, du har brug for for at afgøre, om der findes signaler. I så fald fungerer metoderne i ovenstående papirer ikke. Især wavelet-tærskelværdi og multiresolution Fourier-metoder, der er omtalt i ovenstående papirer, kan ikke fungere. Én ting, du kan prøve: kontrollere, om signalet er hvidt; det vil sige, om gennemsnittet er nul, og standardafvigelsen er konstant gennem alle dine frekvensbakker. -Rod KD0FFJ
@horsehair: Problemet med den metode, jeg skitserede ovenfor, er, at mange bredbåndssignaler (hvilket betyder meget bredere end dine frekvensbakker) varierer jævnt over deres båndbredde. På tværs af ethvert lille antal skraldespande vil det se hvidt ud. Derfor er der behov for sammenhængende metoder. Jeg kan komme med forslag, hvis du er interesseret. -Rod KD0FFJ
@RodneyPrice - Jeg har skiftet til at holde 100 prøver af hver frekvens (prøver 2s fra hinanden) og bruge en scipy normalitetstest. Testen rapporterede, at næsten alle frekvenser (selv dem, der indeholdt dele af kendte menneskeskabte signaler) var hvide! Jeg tror, ​​at din kommentar forklarer, hvorfor det er?
Se mit svar nedenfor. Masser af menneskeskabte signaler er hvide. Ved du, hvilken slags signal du ser på?
hotpaw2
2017-09-22 21:16:23 UTC
view on stackexchange narkive permalink

Du kan prøve at tage en billedoptagelse af spektrumvandfaldet i nogen varighed og føre billedet til en maskinlæringsinferensemotor, måske et DNN.

Inferensmotoren kunne trænes i et stort billede database med masser af vandfald af masser af kendte eller formodede signaltyper, svarende til disse signal-ID-databaser:

https://www.sigidwiki.com/wiki/Signal_Identification_Guide

http://qrznow.com/signal-identification-guide/

Et svar, der adresserer det, jeg spurgte, og som er kreativt og potentielt effektivt. tak skal du have


Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...