Ma, 8 aug 2011 16 54 29 -0400. Takk for ditt svar Marcus Jeg har jobbet med denne blokken, men dessverre ønsker jeg ikke å filtrere strømspekteret jeg vil at hvert spekter skal veies like, jeg vil gjerne beregne det aritmetiske gjennomsnittet for alle kraftspektraene innen et minutt tror jeg at det er 4000 per sekund, slik at jeg vil gjennomsnittlig 240.000 spektra og returnere et enkelt strømspekter som er gjennomsnittet som skal vises. Som for den beholde i N fildump , Jeg trodde det da jeg kom over movingaverageff, men det regner gjennomsnittet hver gang det mottar et nytt spekter som er veldig sløsing i mitt tilfelle, siden det beregner gjennomsnittet 240.000 ganger mer enn jeg trenger. På månen, 8. august 2011 klokken 12 45, skrev Marcus D Leech skjult skrev. 08 08 2011 12 31 skrev Prachi Parihar. Jeg er ny på gnuradio, og jeg lurte på om noen kunne peke meg i riktig retning. Jeg bruker en usrp til å lese signaler. I frekvensdomenet har jeg vært i stand til å gjøre denne suksessen sfully bruker som bruker fftsinkc til å vise signalet. Hva jeg vil gjøre i stedet for å vise signalet kontinuerlig er å vise gjennomsnittet av effektspekteret av signalet hvert minutt ved å bruke alle prøvene samlet på ett minutt, jeg kan ikke finne en blokk som tar bare boksens gjennomsnitt på mange spektra en gang i minuttet. Hvis jeg ikke kan finne en blokk for å gjøre dette, vil jeg prøve å skrive en selv hvis jeg trenger det, er det et sterkt behov for å skrive denne blokken i C eller kan jeg skrive det i python. Thanks på forhånd for din help. There sa logPowerFFT hier blokk i GRC som lar deg sette rammefrekvens og alpha verdi, og det produserer en FLOAT vektor som er lengden på FFT. You kan deretter videre IIR filter de vektorer, og gjør deretter en beholder i N for å få dem til å dumpe til en fil en gang i minuttet. fftfilterccc int decimation std vektor grcomplex std tildeler grcomplex kraner int nthreads 1 grfftfiltercccsptr. Fast FFT filter med grcomplex inngang, grcomplex utgang og grcomplex taps. grfftfiltercccsptr settaps selv std vektor grcomplex std allokering grcomplex kraner grfftfiltercccsptr kraner selv std vektor grcomplex, std allokering grcomplex fftfilterfff int decimation floatvector taps int nthreads 1 grfftfilterfffsptr. Fast FFT filter med float inngang, float utgang og float taps. Filter-Delay Kombinasjonsblokk. Blokken tar en eller to float strøm og utdata en kompleks strøm Hvis bare en float strøm er inntastet, den virkelige utdata er en forsinket versjon av denne inngangen, og den imaginære utgangen er den filtrerte utgangen Hvis to flyter er koblet til inngangen, er den virkelige utgangen den forsinkede versjonen av den første inngangen, og den imaginære utgangen er den filtrerte utgangen forsinkelsen i ekte sti står for gruppens forsinkelse introdusert av filteret i den imaginære banen. Filterkranene må b e beregnet før du initialiserer denne blokken. granfilterccc int decimering std vektor grcomplex std allokering grcomplex kraner grfilterfiltercccsptr. FIR filter med grcomplex inngang, grcomplex utgang og grcomplex kraner. grfirfiltercccsptr settaps selvstd vektor grcomplex std allokering grcomplex kraner grfirfiltercccsptr kraner selv std vektor grcomplex, std allokering grcomplex firfilterccf int decimering floatvector kraner grfirfilterccfsptr. FIR filter med grcomplex inngang, grcomplex utgang og float taps. grfirfilterccfsptr settaps selv floatvector kraner grfirfilterccfsptr kraner selv floatvector firfilterfcc int decimering std vektor grcomplex std allokering grcomplex kraner grfirfilterfccsptr. FIR filter med float inngang, grcomplex utgang og grcomplex taps. grfirfilterfccsptr settaps self std vektor grcomplex std allokering grcomplex kraner grfirfilterfccsptr kraner selv std vektor grcomplex, std allokering grcomplex firfilterfff int decimering floatvector kraner grfilterfilterfffsptr. FIR filter med float inngang, float utgang og float taps. FIR filter med floa t input, short output og float taps. grfirfilterfsfsptr settaps self floatvector kraner grfirfilterfsfsptr kraner selv floatvector firfilterscc int decimation std vektor grcomplex std allokering grcomplex kraner grfirfiltersccsptr. FIR filter med kort inngang, grcomplex utgang og grcomplex taps. grfirfiltersccsptr settaps selv std vektor grcomplex std allocator grcomplex kraner grfirfiltersccsptr kraner selv std vektor grcomplex, std måleren grcomplex fractionalinterpolatorcc flottør faseskiftet flottør interpratio grfractionalinterpolatorccsptr. Interpolating MMSE-filter med grcomplex inndata, grcomplex output. grfractionalinterpolatorccsptr interpratio selv flottør grfractionalinterpolatorccsptr mu selv flottør grfractionalinterpolatorccsptr setinterpratio selv flottør interpratio grfractionalinterpolatorccsptr setmu selv flottør mu fractionalinterpolatorff flyte faseskiftet float interpratio grfractionalinterpolatorffsptr. Interpolerende mmse filter med float inngang, float output. grfractionalinterpolatorffsptr jeg nterpratio self float grfractionalinterpolatorffsptr mu self float grfractionalinterpolatorffsptr setinterpratio selvflytende interpratio grfractionalinterpolatorffsptr setmu selvflytende mu freqxlatingfirfilterccc int decimering std vektor grcomplex std allokering grcomplex kraner dobbel centerfreq dobbel samplingfreq grfreqxlatingfirfiltercccsptr. FIR filter kombinert med frekvensoversettelse med grcomplex inngang, grcomplex utgang og grcomplex kraner. Dette klassen kombinerer effektivt en frekvensoversettelse, typisk nedkonvertering med et FIR-filter, typisk lavpass og decimering. Den er ideelt egnet for et kanalvalgfilter og kan effektivt brukes til å velge og avklare et smalbåndsignal ut av bred båndbreddeinngang. Bruk en enkelt input-array for å produsere et enkelt utdata-array Ytterligere innganger og eller utganger blir ignorert. Konstruer et FIR-filter med de givne kranene og en komposittfrekvensomtale som skifter centerfreq ned til null Hz. Frekvensoversettelsen kommer logisk før filtreringsoperasjonen. grfreqxlatingfirfiltercccsptr setcenterfreq selvdobbel senterfreq grfreqxlatingfirfiltercccsptr settaps selv std vektor grcomplex std allokering grcomplex kraner freqxlatingfirfilterccf int decimering floatvector kraner dobbelt centerfreq dobbel samplingfreq grfreqxlatingfilter filterfilter kombinert med frekvensomtale med grcomplex inngang, grcomplex utgang og float kraner. Denne klassen effektivt kombinerer en frekvensoversettelse, typisk nedoverkonvertering med et FIR-filter, typisk lavpass og dekimering. Det er ideelt for et kanalvalgfilter og kan effektivt brukes til å velge og avkaste et smalbåndsignal ut av bred båndbreddeinngang. Brukes av en enkelt inngangsgruppe å produsere et enkelt utgangssystem Ytterligere innganger og eller utganger ignoreres. Konstruer et FIR-filter med de givne kranene og en komposittfrekvensomtale som skifter centerfreq ned til null Hz. Frekvensoversettelsen kommer logisk før filtreringsoperasjonen. grfreqxlatingfirfilterccfsptr setcenterfreq selv doble centerfreq grfreqxlatingfirfilterccfsptr settaps selvflatvektor kraner freqxlatingfirfilterfcc int decimering std vektor grcomplex std allokering grcomplex kraner dobbel centerfreq dobbel samplingfreq grfreqxlatingfirfilterfccsptr. FIR filter kombinert med frekvensoversettelse med float inngang, grcomplex utgang og grcomplex kraner. Denne klassen kombinerer effektivt en frekvensoversettelse nedkonvertering med et FIR-filter, typisk lavpass og dekimering. Det er ideelt for et kanalvalgfilter, og kan effektivt brukes til å velge og avkoble et smalbåndsignal ut av bred båndbreddeinngang. Bruk et enkelt inngangsarray for å produsere en enkelt utgang array Ekstra innganger og eller utganger blir ignorert. Konstruer et FIR-filter med de givne kranene og en komposittfrekvensomtale som skifter centerfreq ned til null Hz. Frekvensoversettelsen kommer logisk før filtreringsoperasjonen. grfreqxlatingfirfilterfccsptr se tcenterfreq self double centerfreq grfreqxlatingfirfilterfccsptr settaps selv std vektor grcomplex std allokering grcomplex kraner freqxlatingfirfilterfcf int decimation floatvector kraner dobbelt centerfreq double samplingfreq grfreqxlatingfirfilterfcfsptr. FIR filter kombinert med frekvensoversettelse med float inngang, grcomplex utgang og float kraner. Denne klassen kombinerer effektivt en frekvens oversettelse vanligvis ned konvertering med et FIR-filter, typisk lavpass og decimering. Det er ideelt for et kanalvalgfilter, og kan effektivt brukes til å velge og avkoble et smalbåndsignal ut av bred båndbreddeinngang. Bruk et enkelt inngangsarray for å produsere en enkelt utgangsserie Ytterligere innganger og eller utganger ignoreres. Konstruer et FIR-filter med de givne kranene og en komposittfrekvensomtale som skifter centerfreq ned til null Hz. Frekvensoversettelsen kommer logisk før filtreringsoperasjonen. grfreqxlatingfirfilterfcfsptr setcenterfreq self double centerfreq g rfreqxlatingfirfilterfcfsptr settaps self floatvector kraner freqxlatingfirfilterscc int decimation std vektor grcomplex std allokering grcomplex kraner dobbel centerfreq double samplingfreq grfreqxlatingfirfiltersccsptr. FIR filter kombinert med frekvens oversettelse med kort inngang, grcomplex utgang og grcomplex kraner. Denne klassen kombinerer effektivt en frekvens oversettelse vanligvis ned konvertering med en FIR filter vanligvis lavpass og decimering Det er ideelt for et kanalvalgfilter og kan effektivt brukes til å velge og avkaste et smalbåndsignal ut av bred båndbreddeinngang. Bruk et enkelt inngangs array til å produsere et enkelt utdata-array. Ytterligere innganger og eller utganger ignoreres. Konstruer et FIR-filter med de givne kranene og en komposittfrekvensomtale som skifter centerfreq ned til null Hz. Frekvensoversettelsen kommer logisk før filtreringsoperasjonen. grfreqxlatingfirfiltersccsptr setcenterfreq self double centerfreq grfreqxlatingfirfiltersccsptr set kraner selv std vektor grcomplex std tildeler grcomplex kraner freqxlatingfirfilterscf int decimation floatvector kraner dobbelt centerfreq double samplingfreq grfreqxlatingfirfilterscfsptr. FIR filter kombinert med frekvens oversettelse med kort inngang, grcomplex utgang og float kraner. Denne klassen kombinerer effektivt en frekvens oversettelse vanligvis ned konvertering med et FIR filter typisk lavpass og dekimering Den er ideell for et kanalvalgfilter og kan effektivt brukes til å velge og avkaste et smalbåndsignal ut av bred båndbreddeinngang. Bruk et enkelt inngangs array til å produsere et enkelt utgangsarray Ekstra innganger og eller utganger ignoreres. Konstruer et FIR-filter med de givne kranene og en komposittfrekvensomtale som skifter centerfreq ned til null Hz. Frekvensoversettelsen kommer logisk før filtreringsoperasjonen. grfreqxlatingfirfilterscfsptr setcenterfreq self double centerfreq grfreqxlatingfirfilterscfsptr settaps selvflatvektor kraner hilbertfc usignert int ntaps grhilbertfcsptr. real utgang er innspilt riktig forsinket imaginær utgang er hilbert filtrert 90 graders faseskift versjon av inngang. iirfilterffd doublevector fftaps doublevector fbtaps griirfilterffdsptr. IIR filter med float inngang, float utgang og dobbelt kraner. Dette filteret bruker Direct Form I implementering, der inneholder feed-forward kraner, og tilbakemelding ones. The input og output tilfredsstille en forskjell ligning av form. yn - sum ak y nk sum bk x nk. med den tilsvarende rasjonelle systemfunksjonen. Merk at enkelte tekster definerer systemfunksjonen med en i nevnen. Hvis du bruker denne konvensjonen, må du negere tilbakekoblingskranene. griirfilterffdsptr settaps selv dobbeltvektor fftaps doublevector fbtaps interpfirfilterccc int interpolering std vektor grcomplex std allokering grcomplex kraner grinterpfirfiltercccsptr. Interpolating FIR filter med grcomplex inngang, grcomplex utgang og grcomplex taps. grinterpfirfiltercccsptr settaps selv std vektor grcomplex std tildeler grcomplex kraner interpfirfilterccf int interpolasjon floatvector kraner grinterpfirfilterccfsptr. Interpolating FIR filter med grcom plexigangsinngang, grompleksutgang og floattapper. grinterpfirfilterccfsptr settaps selvflatvektorkraner interpfirfilterfcc int interpolering std vektor grcomplex std allokering grcomplex kraner grinterpfirfilterfccsptr. Interpolating FIR filter med float-inngang, grcomplex utgang og grcomplex kraner. grinterpfirfilterfccsptr settaps selvstd vektor grcomplex std allokering grcomplex kraner interpfirfilterfff int interpolering floatvector kraner grinterpfirfilterfffsptr. Interpolating FIR filter med float inngang, float output og float kraner. grinterpfirfilterfffsptr settaps selvflatvektor kraner interpfirfilterfsf int interpolation floatvector kraner grinterpfilter filterfsfs. Interpolering FIR filter med float inngang, short output og float taps. grinterpfirfilterfsptr settaps selv floatvector kraner interpfirfilterscc int interpolering std vektor grcomplex std allokering grcomplex kraner grinterpfirfiltersccsptr. Interpolating FIR filter med kort inngang, grcomplex utgang og grcomplex taps. grinterpfirfiltersccs ptr settaps selv std vektor grcomplex std allokering grcomplex kraner rationalresamplerbaseccc int interpolering int decimering std vektor grcomplex std allokering grcomplex kraner grrationalresamplerbasecccsptr. Rational Resampling Polyphase FIR filter med grcomplex input, grcomplex output og grcomplex taps. grrationalresamplerbasecccsptr settaps selvstd vektor grcomplex std allokering grcomplex kraner rationalresamplerbaseccf int interpolering int decimering floatvector kraner grrationalresamplerbaseccfsptr. Rational Resampling Polyphase FIR filter med grcomplex inngang, grcomplex utgang og float kraner. grrationalresamplerbaseccfsptr settaps selv floatvector kraner rationalresamplerbasefcc int interpolering int decimation std vektor grcomplex std allokering grcomplex kraner grrationalresamplerbasefccsptr. Rational Resampling Polyphase FIR filter med float inngang , grcomplex utgang og grcomplex taps. grrationalresamplerbasefccsptr settaps selv std vektor grcomplex std allokering grcomplex kraner rationalres amplerbasefff int interpolation int decimation floatvector kraner grrationalresamplerbasefffsptr. Rational Resampling Polyphase FIR filter med float inngang, float output og float kraner. grrationalresamplerbasefffsptr settaps selv floatvector kraner rationalresamplerbasefsf int interpolation int decimation floatvector kraner grrationalresamplerbasefsfsptr. Rational Resampling Polyphase FIR filter med float inngang, kort utgang og float taps. grrationalresamplerbasefsfsptr settaps self floatvector kraner rationalresamplerbasescc int interpolering int decimation std vektor grcomplex std allokering grcomplex kraner grrationalresamplerbasesccsptr. Rational Resampling Polyphase FIR filter med kort inngang, grcomplex utgang og grcomplex kraner. grrationalresamplerbasesccsptr settaps selv std vektor grcomplex std tildeler grcomplex kraner singlepoleiirfiltercc double alpha usignert int vlen 1 grsinglepoleiirfilterccsptr. single pole IIR filter med kompleks inngang, kompleks output. The inngang og utgang tilfredsstiller en dif ference ligning av form. yn - 1-alfa y n-1 alfa x n. med den tilsvarende rasjonelle systemfunksjonen. Merk at noen tekster definerer systemfunksjonen med en i nevnen Hvis du bruker denne konvensjonen, må du neger tilbakemelding tap. grsinglepoleiirfilterccsptr settaps selvstendig dobbelt alpha singlepoleiirfilterff dobbelt alfa usignert int vlen 1 grsinglepoleiirfilterffsptr. single pol IIR filter med float input, float output. Input og output tilfredsstille en forskjell ligning for form. yn - 1-alpha y n - 1 alfa x n. med den tilsvarende rasjonelle systemfunksjonen. Merk at enkelte tekster definerer systemfunksjonen med en i nevnen. Hvis du bruker denne konvensjonen, må du negere tilbakemeldingen. Tap. grsinglepoleiirfilterffsptr settaps selv dobbelt alfa movingaveragecc int lengde grcomplex skala int maxiter 4096 grmovingaverageccsptr. output er flytende summen av de siste N-prøvene, skalert av skalafaktor. maxiter begrenser hvor lenge vi går uten å skylle akkumulatoren ator Dette er nødvendig for å unngå numerisk ustabilitet for float og kompleks. grmovingaverageccsptr lengde selvintegreringsgrensesnittskala selv gr grensesnitt grmovingaverageccsptr setlengthandscale self int lengde grcomplex skala movingaverageff int lengde float skala int maxiter 4096 grmovingaverageffsptr. output er flytende summen av de siste N prøvene, skalert av skalaen faktor. maxiter begrenser hvor lenge vi går uten å spyle akkumulatoren Dette er nødvendig for å unngå numerisk ustabilitet for float og complex. output er flytende summen av de siste N-prøvene, skalert av skalaen factor. maxiter begrenser hvor lenge vi går uten å skylle akkumulatoren Dette er nødvendig for å unngå numerisk ustabilitet for float og complex. output er flytende summen av de siste N-prøvene, skalert av skalaen factor. maxiter begrenser hvor lenge vi går uten å skylle akkumulatoren Dette er nødvendig for å unngå numerisk ustabilitet for float og complex. grmovingaveragesssptr lengde self int grmovingaveragesssptr skala Selv kort grmovingaveragesssptr setlengthandscale selv intlengden kort skala pfbarbresamplerccf float rate floatvector kraner usignert int filtre 32 grpfbarbresamplerccfsptr. Polyphase filterbank vilkårlig resampler med grcomplex inngang, grcomplex utgang og float taps. This blokk tar inn en signalstrøm og utfører vilkårlig resampling Resampling rate kan være noe reelt tall Resampling er gjort ved å konstruere filtre hvor er interpoleringshastigheten Vi beregner deretter hvor. Bruk og vi kan utføre rasjonell resampling hvor er et rasjonelt tall nær inngangshastigheten der vi har filtre og vi sykler gjennom dem som en polyphase filterbank med en slik hastighet. For å få den vilkårlig frekvensen, vil vi interpolere mellom to punkter. For hver verdi ut tar vi en utgang fra det nåværende filteret og det neste filteret og deretter interpolerer lineært mellom de to basert på den reelle resampling rate vi vil. Den lineære interpoleringen gir oss bare en tilnærming til den virkelige s amplering angitt Feilen er en kvantiseringsfeil mellom de to filtrene vi brukte som våre interpoleringspunkter. I denne sammenhengen bestemmer antall filtre kvantiseringsfeil jo større jo mindre støy Du kan designe for et spesifisert støygulv ved å sette filteret størrelsesparametere Størrelsen er standard til 32 filtre, som er omtrent like god som de fleste implementeringer trenger. Tricket med å designe dette filteret er hvordan man angir kretsene til prototypefilteret. Som PFB-interpolatoren er kranene spesifisert ved hjelp av den interpolerte filterhastigheten I dette tilfellet er denne hastigheten inntaksprøvefrekvensen multiplisert med antall filtre i filterbanken, som også er interpolasjonsfrekvensen. Alle andre verdier bør være i forhold til denne hastigheten. For eksempel for en 32-fil vilkårlig resampler og ved bruk av GNU Radio s firdes verktøy for å bygge filteret, vi bygger et lavpassfilter med en samplingsfrekvens på en 3 dB båndbredde og en overgangsbåndbredde på Vi kan også spesifisere ut-av-b og dempning å bruke, og filtervinduet fungerer som et Blackman-harris-vindu i dette tilfellet. Den første inngangen er forsterkningen av filteret, som vi spesifiserer her som interpoleringsrate. Teorien bak denne blokken finner du i kapittel 7 5 i Følg book. Build polyphase filterbank arbitray resampler. Print alle filterbanken kraner til screen. grpfbarbresamplerccfsptr setrate selvflytende rate pfbchannelizerccf usignerte int numchans floatvector kraner float oversamplerate 1 grpfbchannelizerccfsptr. Polyphase filterbank kanalizer med grcomplex inngang, grcomplex utgang og float kraner. Denne blokk tar inn komplekse innganger og kanaliserer den til kanaler med like båndbredde. Hver av de resulterende kanalene blir decimert til den nye frekvensen som er inngangssamplingsfrekvens dividert med antall kanaler. PFB kanaliserings-koden tar tappene generert ovenfor og bygger et sett med filtre Settet inneholder antall filtre og hvert filter inneholder antall kraner Hver trykk på filterprototypen er sekvensielt satt inn i det neste filteret Når alle inngangskranene er brukt, fylles de gjenværende filtre i filterbanken med 0 s for å sikre at hvert filter har samme antall kraner. Hver filter opererer ved hjelp av GRFC-filterkursene til GNU Radio som tar inngangsstrømmen til og utfører den indre produktberegningen til hvor er antall filterkraner For å håndtere dette effektivt i GNU Radio-strukturen, må hver filterinngang komme fra egen inngangsstrøm, så kanalisereren må være forsynt med strømmer hvor inngangsstrømmen har blitt deinterleaved Dette gjøres lett ved hjelp av grstreamtostreams-blokken. Produksjonen blir da produsert som en vektor, hvor indeksen i vektoren er den neste prøven fra th-kanalen. Dette håndteres lett ved å sende utgangen til en grvectortostreams blokkerer for å håndtere konverterings - og passeringsstrømmene. Inndata og utdataformatering er gjort ved hjelp av en hierblock2 kalt pfbchannelizerccf Dette kan ta inn en enkelt strøm og utgang uts streams basert på oppførselen beskrevet ovenfor. Filterets taps skal baseres på inntaksprøvefrekvensen. For eksempel bygger vi et lavpassfilter med en samplingsfrekvens på en 3 - dB-båndbredde og en overgangsbåndbredde på Vi kan også spesifisere den utgående bånddempingen som skal brukes, og filtervinduet fungerer som et Blackman-harris-vindu i dette tilfellet. Den første inngangen er gevinsten til filteret, som vi spesifiserer her som enhet. Filterutgangen kan også være oversamplet. Oversamplingsfrekvensen er forholdet mellom den faktiske utgangssamplingsfrekvensen og den normale utgangssamplingsfrekvensen. Det må være rasjonelt relatert til antall kanaler som N i for jeg i 1, N, som gir en utgangsprøvefrekvens på fs N, fs hvor fs er inntaksprøvehastigheten og N er antall kanaler. For eksempel for 6 kanaler med fs 6000 Hz er den normale hastigheten 6000 6 1000 Hz Tillatte oversamplinghastigheter er 6 6 , 6 5, 6 4, 6 3, 6 2 og 6 1 hvor utgangsprøven på et 6 1 oversampleforhold er 6000 Hz, eller 6 ganger den normale 1000 Hz En hastighet på 6 5 1 2, slik at utgangshastigheten vil være 1200 Hz. Teorien bak denne blokken finner du i kapittel 6 i følgende bok. polyphase filterbank decimatoren For eksempel for 6 kanaler med fs 6000 Hz, er normal hastighet 6000 6 1000 Hz Tillatte oversamplingsfrekvenser er 6 6, 6 5, 6 4, 6 3, 6 2 og 6 1 hvor utgangssamplehastigheten av et 6 1 oversampleforhold er 6000 Hz, eller 6 ganger den normale 1000 Hz. Resett filterbankens filterkraner med det nye prototypefilteret. pfbclocksyncccf double sps float loopbw floatvector kraner usignert int filterize 32 float initphase 0 float maxrateeviation 1 5 int osps 1 grpfbclocksyncccfsptr. Timing synkroniserer ved hjelp av polyphase filterbaner. Denne blokken utfører timingsynkronisering for PAM signaler ved å minimere derivatet av det filtrerte signalet som i sin tur maksimerer SNR og minimerer ISI. Denne tilnærmingen virker ved å sette opp to filterbaner. En filterbank inneholder signalets pulsdannende matchende filter, for eksempel et roten opphøyd cosinusfilter, hvor hver gren av filterbanken inneholder en annen fase av filteret. Den andre filterbanken inneholder derivater av filtre i den første filterbanken Tenk på dette i tidsdomene, inneholder den første filterbanken filtre som har en sinc-form til dem. Vi vil justere utgangssignalet som skal samples på nøyaktig toppen av sinc-formen. Derivat av sinc inneholder null på maksimumpunktet til sinc sinc 0 1, sinc 0 0 Videre er regionen rundt nullpunktet er relativt lineært. Vi benytter dette faktum til å generere feil signalet. Hvis signalet ut av derivatfiltrene er di n for ith-filteret, og utgangen av det samsvarende filteret er xi n, beregner vi feilen som en Re Re Im Im 2 0 Denne ligningen gjengir feilen i de reelle og imaginære delene Det er to grunner vi multipliserer med selve signalet. Først, hvis symbolet kan være positivt eller negativt, men vi vil at feilperioden alltid skal fortelle oss å gå i samme retning avhengig av hvilken side av nullpunktet vi er på Signaturet for xi n justerer feilbegrepet for å gjøre dette For det andre, størrelsen på xi n skalerer feilperioden, avhengig av symbolets amplitude, så større signaler gir oss en sterkere feilperiode fordi vi har større tillit til symbolets verdi. Ved hjelp av størrelsen på xi n i stedet for bare er tegnet spesielt bra for signaler med lav SNR. Feilsignalet, en, gir oss en verdi proporsjonal med hvordan langt unna nullpunktet vi a re i derivat-signalet Vi ønsker å kjøre denne verdien til null, så vi setter opp en andre ordens sløyfe. Vi har to variabler for denne sløyfen. dk er filternummeret i filterbanken vi er på, og drate er den hastigheten som vi reiser gjennom filter i jevn tilstand Det er på grunn av de naturlige klokkeforskjellene mellom senderen og mottakeren, representerer drate denne forskjellen og vil krysse filterfasestiene for å holde mottakeren låst. Tenk på dette som en andreords PLL, drate er den frekvens og dk er fasen Så vi oppdaterer drate og dk ved hjelp av standard loop-ligningene basert på to feilsignaler, dalpha og dbeta Vi har disse to verdiene satt på grunnlag av hverandre for et kritisk dempet system, så i blokkkonstruktoren, vi bare spør etter gevinst, som er dalpha mens dbeta er lik å få 2 4. Blokkens parametre er. Bygg polyphase filterbank timing synkroniserer. Tilbakestiller loop gain alpha. Returns loop gain beta. grpfbclocksyncccfsptr getchanneltaps selv jeg nt kanal floatvector. Returns kretsene av det matchede filteret for en bestemt kanal. Returnerer den nåværende klokke rate. grpfbclocksyncccfsptr getdampingfactor selvflytende. Returns loop dempningsfaktor. grpfbclocksyncccfsptr getdiffchanneltaps self int kanal floatvector. Returnerer kranene i derivatfilteret for en bestemt channel. grpfbclocksyncccfsptr getdifftaps self dummy5.Returnerer alle kranene i den avledede filter. grpfbclocksyncccfsptr getdifftapsasstring selvstrengen. Returnér derivatfilterkretsene som en formatert streng for printing. grpfbclocksyncccfsptr getloopbandwidth self float. Returns loopbåndbredden. Returnerer alle kranene av det matchede filteret. grpfbclocksyncccfsptr gettapsasstring selvstrengen. Returner kranene som en formatert streng for utskrift. Sett kretsløpet alpha. Set s kretsfilterets s alpha gain parameter. Denne verdien bør egentlig bare settes ved å justere loopbåndbredden og dempningsfaktoren . Sett loop gain beta. Set s loop filter s beta gain paramet er. Denne verdien bør egentlig bare settes ved å justere sløyfebåndbredden og dempningsfaktoren. Sett sløyfedempingsfaktoren. Sett sløyfefilteret s dempningsfaktor til Dempfaktoren skal være sqrt 2 2 0 for kritisk dempede systemer Sett det til noe annet bare hvis du vet hva du gjør Det må være et tall mellom 0 og 1. Når en ny dempningsfaktor er innstilt, beregnes gevinsten, alfa og beta av sløyfen ved å ringe til oppdateringsdata. Sett sløyfebåndbredden. Sett sløyfefilterets båndbredde til Dette bør være mellom 2 pi 200 og 2 pi 100 i rads samp. Det må også være et positivt tall. Når en ny dempningsfaktor er innstilt, beregnes gevinster, alfa og beta av sløyfen av en ring til updategains. Set maksimal avvik fra 0 drate can have. grpfbclocksyncccfsptr settaps selvflatvektor kraner dummy5 ourtaps std vector std allokering ourfilter. Resets filterbankens filterkraner med det nye prototypefilteret. pfbclocksyncfff double sps float få floatvector kraner usignert int filterize 32 float initphase 0 float maxrateeviation 1 5 grpfbclocksyncfffsptr. Timing synkroniserer ved hjelp av polyphase filterbaner. Denne blokken utfører timingsynkronisering for PAM signaler ved å minimere derivatet av det filtrerte signalet, som i sin tur maksimerer SNR og minimerer ISI. Denne tilnærmingen virker ved å sette opp to filterbaner. En filterbank inneholder signalets pulsformende filter som et roten opphøyd cosinusfilter, hvor hver gren av filterbanken inneholder en annen fase av filteret. Den andre filterbanken inneholder derivatene av filtre i den første filterbanken Tenker på dette i tidsdomenet, inneholder den første filterbanken filtre som har en sinkform til dem. Vi vil justere utgangssignalet som skal samples på nøyaktig toppen av sinc-formen. Derivatet av sync inneholder en null ved maksimalt punkt av sinc sinc 0 1, sinc 0 0 Videre er regionen rundt z ero-punktet er relativt lineært Vi benytter dette faktum til å generere feil-signalet. Hvis signalet ut av derivatfiltrene er di n for ith-filteret, og utgangen av det samsvarende filteret er xi n, beregner vi feilen som en Re Re Im Im 2 0 Denne ligningen gjengir feilen i de reelle og imaginære delene. Det er to grunner vi multipliserer med selve signalet. Først, om symbolet kan være positivt eller negativt, men vi vil at feilperioden alltid skal fortelle oss at gå i samme retning avhengig av hvilken side av nullpunktet vi er på Signaturet for xi n justerer feilbegrepet for å gjøre dette For det andre gir størrelsen på xi n feilbegrepet avhengig av symbolets amplitude, så større signaler gir oss en sterkere feilperiode fordi vi har større tillit til symbolets verdi. Ved hjelp av størrelsen på xi n i stedet for bare, er tegnet spesielt bra for signaler med lav SNR. Feilsignalet, en, gir oss en verdi proporsjonal med hvor langt unna fra nullpunktet er vi i der ivative signal Vi ønsker å kjøre denne verdien til null så vi setter opp en andre ordens sløyfe. Vi har to variabler for denne sløyfen. dk er filternummeret i filterbanken vi er på, og drate er den hastigheten som vi reiser gjennom filtre i steady state Det er på grunn av de naturlige klokkeforskjellene mellom senderen og mottakeren, representerer drate denne forskjellen og vil krysse filterfasestiene for å holde mottakeren låst. Tenk på dette som en andre rekkefølge PLL, drate er frekvensen og dk er fasen Så vi oppdaterer drate og dk ved hjelp av standardløksligningene basert på to feilsignaler, dalpha og dbeta. Vi har disse to verdiene satt på grunnlag av hverandre for et kritisk dempet system, så i blokkkonstruktoren ber vi bare om gevinst , som er dalpha mens dbeta er lik gevinst 2 4. Blokkens parametere er. Bygg polyphase filterbank timing synchronizer. grpfbclocksyncfffsptr channeltaps selv int kanal floatvector. Returns kraner av matchet filter. grpfbcloc ksyncfffsptr diffchanneltaps self int kanal floatvector. Returner kranene i derivative filter. Print alle filterbank kraner av derivat filter til screen. Print alle filterbank kraner til screen. Set gain verdi alpha for kontroll loop. Set gain value beta for the control loop. Set the maximum deviation from 0 drate can have. grpfbclocksyncfffsptr settaps self floatvector taps dummy5 ourtaps std vector std allocator ourfilter. Resets the filterbank s filter taps with the new prototype filter. pfbdecimatorccf unsigned int decim floatvector taps unsigned int channel grpfbdecimatorccfsptr. Polyphase filterbank bandpass decimator with grcomplex input, grcomplex output and float taps. This block takes in a signal stream and performs interger down - sampling decimation with a polyphase filterbank The first input is the integer specifying how much to decimate by The second input is a vector Python list of floating-point taps of the prototype filter The third input specifies the channel to extract By default, the zeroth channel is used, which is the baseband channel first Nyquist zone. The parameter specifies which channel to use since this class is capable of bandpass decimation Given a complex input stream at a sampling rate of and a decimation rate of the input frequency domain is split into channels that represent the Nyquist zones Using the polyphase filterbank, we can select any one of these channels to decimate. The output signal will be the basebanded and decimated signal from t hat channel This concept is very similar to the PFB channelizer see grpfbchannelizerccf where only a single channel is extracted at a time. The filter s taps should be based on the sampling rate before decimation. For example, using the GNU Radio s firdes utility to building filters, we build a low-pass filter with a sampling rate of a 3-dB bandwidth of and a transition bandwidth of We can also specify the out-of-band attenuation to use and the filter window function a Blackman-harris window in this case The first input is the gain of the filter, which we specify here as unity. The PFB decimator code takes the taps generated above and builds a set of filters The set contains number of filters and each filter contains number of taps Each tap from the filter prototype is sequentially inserted into the next filter When all of the input taps are used, the remaining filters in the filterbank are filled out with 0 s to make sure each filter has the same number of taps. The theory behind this blo ck can be found in Chapter 6 of the following book. Build the polyphase filterbank decimator. Resets the filterbank s filter taps with the new prototype filter. pfbinterpolatorccf unsigned int interp floatvector taps grpfbinterpolatorccfsptr. Polyphase filterbank interpolator with grcomplex input, grcomplex output and float taps. This block takes in a signal stream and performs interger up - sampling interpolation with a polyphase filterbank The first input is the integer specifying how much to interpolate by The second input is a vector Python list of floating-point taps of the prototype filter. The filter s taps should be based on the interpolation rate specified That is, the bandwidth specified is relative to the bandwidth after interpolation. For example, using the GNU Radio s firdes utility to building filters, we build a low-pass filter with a sampling rate of a 3-dB bandwidth of and a transition bandwidth of We can also specify the out-of-band attenuation to use, ATT, and the filter window function a Blackman-harris window in this case The first input is the gain, which is also specified as the interpolation rate so that the output levels ar e the same as the input this creates an overall increase in power. The PFB interpolator code takes the taps generated above and builds a set of filters The set contains number of filters and each filter contains number of taps Each tap from the filter prototype is sequentially inserted into the next filter When all of the input taps are used, the remaining filters in the filterbank are filled out with 0 s to make sure each filter has the same number of taps. The theory behind this block can be found in Chapter 7 1 of the following book. Build the polyphase filterbank interpolator. Print all of the filterbank taps to screen. Resets the filterbank s filter taps with the new prototype filter. GNU radio examples scripts fail with ImportError No module named gnu radio. jmroot Joshua Root. First some preliminaries. MAC OS X 10 7 5 Lion. Installation of Macports went great. sudo port install gnuradio went great. port installed command shows python27 and gnu radio installed and active. no gnuradio or gnuradio related files in python site-packages directories or anywhere in python directory trees including opt local usr users, System etc. opt local lib has lots of gnu dynlib BTW are the dynamic libraries only for compiling with C C, etc or do they provide modules for python interpreter. Here is the env. 26ment 1 Changed 4 ago by jmroot Joshua Root. Please remember to Cc the maintainer, and to preview and use WikiFormattingment 2 Changed 4 ago by michaelld Michael Dickens. What do the following returnment 3 description Changed 4 ago by mikem43190.First some preliminaries. MAC OS X 10 7 5 Lion. Installation of Macports went great. sudo port install gnuradio went great. port installed command shows python27 and gnu radio installed and active. no gnuradio or gnuradio related files in python site-packages directories or anywhere in python directory trees including opt local usr users, System etc. opt local lib has lots of gnu dynlib BTW are the dynamic libraries only for compiling with C C, etc or do they provide modules for python interpreter. Here is the envment 4 Changed 4 ago by mikem43190ment 11 Changed 4 ago by mikem43190.Besides the previous cannot import scipy when trying to get GRC to work gnu radio-companion I get no module named pygtk. Is there a README I m missing I hate to have multiple problems, especially as a beginner, wherein I m not setting env correctly For example I have seen reference to the DYLDLIBRARYPATH but after searching cannot tell if I should set it and to what. Here is the sudo port installed list currentlyment 12 Changed 4 ago by michaelld Michael Dickens. OK looks like 1 step forward I think there s a dependency or 2 missing I ll check it tonightment 13 Changed 4 ago by michaelld Michael Dickens. First, a few comments, for beginners or experts using MacPorts and or GNU Radio. Once installed by MacPorts, all of GNU Radio should just work without further setting your shell environment variables. In your shell environment, PYTHONPATH should point to the pythonX Y directory, which is generally inside of lib So, for example, the first entry of opt local lib should really be opt local lib python2 7 ditto for the rest. MacPorts Python 2 7 already sets its internal PYTHONPATH to include opt local lib python2 7 and so you don t need to include those i n your shell environment s PYTHONPATH And, really, you don t even need to set the PYTHONPATH at all if you re just using MacPorts provided Python You need it only for non-MacPorts provided installs. I - highly - recommend against using DYLDLIBRARYPATH or any other DYLD shell environment variables except for testing purposes e g make test in some projects, after building but before installing If you set the DYLDLIBRARYPATH in your shell environment, you are likely to mess up program execution somewhere down the line and it s - really - hard to debug these sorts of issuesment 14 Changed 4 ago by michaelld Michael Dickens. py - scipy is not a dependency of GNU Radio since it is used for runtime examples only I ll add it in the next checkin, which should be real soon now with the forthcoming 3 6 3 release In the mean time, you can install it yourself via sudo port install py27-scipyment 15 Changed 4 ago by michaelld Michael Dickens. From what you wrote, it sounds like gnuradio-companion is not e xecuting correctly, yes Can you attach the terminal output from trying to execute itment 16 Changed 4 ago by mikem43190.I can t find gnuradio-companion except for a configuration file No no gnuradio-companion, no no etc Of course entering grc or grc-companion in terminal Bash results in command not found Somehow I think the gunradio port is somehow skipping lots of stuff So since I don t have a list of the files that should be installed and where and I m new to GNU Radio and Python I have to operate on assumptions such as there should be an executable as mentioned above Being new I tried the sample scripts but since they all fail except those that work with generic python in mac with something or another it s a little harder. So to help us both figure out why I have deinstalled all ports and macports and reinstalled cleanly without changing anything I have attached files as follows. ls - Rl opt. python sys in python, print. python - v. sudo port installed. which python. Hope this helps us both I really don t understand what in my MAC OS environment would cause so much not to work. Thanks for all the help, Sincerely Michaelment 17 Changed 4 ago by michaelld Michael Dickens. I think that will solve your issuesment 18 Changed 4 ago by michaelld Michael Dickens. The Mac OS X terminal shell bash environment is just as complex as that for any other UNIX and or Linux Apple has added a few environment variables to assist in making use of Frameworks for debug purposes But, these same environment variables can really mess things up during normal use of Mac OS X The variables are different than those used in Linux, but the same concept exists there and is actually a little more awkward to use So, why do shells cause so much not to work Flexibility and debugging, I supposement 19 Changed 4 ago by mikem43190.Anbody trying to install GNURadio this thread might helpment 20 Changed 4 ago by michaelld Michael Dickens. Excellent You re welcome thanks for y our efforts and timely responses GNU Radio 3 6 3 was released yesterday I just updated this port in r101353 to include this new release as well as add a runtime dependency on py - scipy. TracTickets .
No comments:
Post a Comment