Thursday, 28 September 2017

Gnuradio Moving_average_ff


Mån, 8 aug 2011 16 54 29 -0400. Tack för ditt svar Marcus Jag har jobbat med det här blocket, men tyvärr vill jag inte filtrera det spektrum som jag vill att varje spektrum ska vägas lika, jag vill beräkna Det aritmetiska medelvärdet för alla kraftspektra inom en minut tror jag att det finns 4000 per sekund så det betyder att jag vill medelå 240.000 spektra och returnera ett enda strömspektrum som är det genomsnitt som ska visas. Som för den kvarvarande i N-fildump , Jag ansåg det när jag kom över movingaverageff men det beräknar genomsnittet varje gång det tar emot ett nytt spektrum som är mycket slöseri i mitt fall, eftersom det beräknar genomsnittet 240.000 gånger mer än jag behöver. På måndag 8 augusti 2011 klockan 12 45 PM, Marcus D Leech adress dold skrev. Om 08 08 2011 12 31 skrev Prachi Parihar. Jag är ny på gnuradio och jag undrade om någon kunde peka mig i rätt riktning Jag m använder en usrp att läsa signaler I frekvensdomänen har jag kunnat göra denna framgång sfully använder vilka fftsinkc som används för att visa signalen. Vad jag vill göra istället för att visa signalen kontinuerligt är att visa medeltalet av signalets effektspektrum varje minut med alla de samlade samlarna i en minut. Jag kan inte hitta ett block som Tar helt enkelt boxcargenomsnittet av många spektra en gång per minut. Om jag inte kan hitta ett block för att göra det, försöker jag skriva en mig själv Om jag behöver det finns det ett starkt behov av att skriva detta block i C eller kan jag skriva Det i python. Thanks i förväg för din help. There sa logPowerFFT hier block i GRC som låter dig ställa in bildfrekvens och alpha värde, och det producerar en FLOAT vektor som är längden på FFT. You kan sedan ytterligare IIR filter dessa vektorer, och gör sedan en i N för att få dem att dumpa till en fil en gång per minut. fftfilterccc int decimation std vektor grcomplex std tilldelare grcomplex kranar int nthreads 1 grfftfiltercccsptr. Fast FFT filter med grcomplex ingång, grcomplex utgång och grcomplex taps. grfftfiltercccsptr settaps självstd vektor grcomplex std allokerare grcomplex kranar grfftfiltercccsptr kranar själv std vektor grcomplex, std allokerare grcomplex fftfilterfff int decimation floatvector kranar int nthreads 1 grfftfilterfffsptr. Fast FFT filter med float ingång, float utgång och float kranar. Filter-Delay Combination Block. Blocket tar en eller två float strömmen och matar ut en komplex ström Om bara en float ström matas in, den verkliga Utgången är en fördröjd version av denna ingång och den imaginära utgången är den filtrerade utgången. Om två floats är anslutna till ingången är den reala utgången den fördröjda versionen av den första ingången och den imaginära utgången är den filtrerade utsignalen. Fördröjningen i riktig väg står för gruppfördröjningen som införs av filtret i den imaginära sökvägen. Filterkranarna behöver b E beräknad innan du initierar det här blocket. firfilterccc int decimering std vektor grcomplex std allokerare grcomplex kranar grfilterfiltercccsptr. FIR filter med grcomplex ingång, grcomplex utmatning och grcomplex kranar. grfilterfiltercccsptr setaps självstd vektor grcomplex std allokerare grcomplex kranar grfifiltercccsptr kranar själv std vektor grcomplex, std allokerare grcomplex firfilterccf int decimation floatvector kranar grfirfilterccfsptr. FIR-filter med grcomplex ingång, grcomplex-utmatning och float-kranar. grfirfilterccfsptr inställningar självflatvektor kranar grfirfilterccfsptr kranar self floatvector firfilterfcc int decimering std vektor grcomplex std allokerare grcomplex kranar grfirfilterfccsptr. FIR filter med float ingång, grcomplex utmatning och grcomplex kranar. grfirfilterfccsptr setaps self std vektor grcomplex std tilldelare grcomplex kranar grfirfilterfccsptr kranar själv std vektor grcomplex, std allokering grcomplex firfilterfff int decimering floatvector kranar grfilterfilterfffsptr. FIR filter med float ingång, float utgång och float kranar. FIR filter med floa T input, short output och float taps. grfirfilterfsfsptr settaps self floatvector kranar grfirfilterfsfsptr kranar self floatvector firfilterscc int decimation std vektor grcomplex std allokerare grcomplex kranar grfirfiltersccsptr. FIR filter med kortingång, grcomplex utmatning och grcomplex kranar. grfirfiltersccsptr setaps själv std vektor grcomplex std allokerare grcomplex kranar grfirfiltersccsptr kranar själv std vektor grcomplex, std allokeraren grcomplex fractionalinterpolatorcc float phaseshift float interpratio grfractionalinterpolatorccsptr. Interpolating mmse filter med grcomplex ingång, grcomplex output. grfractionalinterpolatorccsptr interpratio själv float grfractionalinterpolatorccsptr mu själv float grfractionalinterpolatorccsptr setinterpratio själv float interpratio grfractionalinterpolatorccsptr setmu själv float mu fractionalinterpolatorff flyta phaseshift float interpratio grfractionalinterpolatorffsptr. Interpolering mmse filter med float ingång, float output. grfractionalinterpolatorffsptr jag nterpratio självflöde grävningsinterpolatorffsptr mu self float grfractionalinterpolatorffsptr setinterpratio self float interpratio grfractionalinterpolatorffsptr setmu self float mu freqxlatingfirfilterccc int decimering std vektor grcomplex std allokerare grcomplex kranar double centerfreq double samplingfreq grfreqxlatingfirfiltercccsptr. FIR filter kombinerat med frekvensöversättning med grcomplex ingång, grcomplex utgång och grcomplex kranar. Detta Klass kombinerar effektivt en frekvensomvandling som typiskt är nerekonvertering med ett FIR-filter, typiskt lågpass och decimering. Det är idealiskt lämpat för ett kanalvalsfilter och kan effektivt användas för att välja och avkoda en smalbandsignal utgående från bred bandbreddsingång. Använd en enda Input array för att producera en enda output array Ytterligare ingångar och eller utgångar ignoreras. Konstruera ett FIR-filter med de givna kranarna och en kompositfrekvenskonversion som skifter centerfreq ner till noll Hz Frekvensomvandlingen logiskt kommer Före filtreringsoperationen. grfreqxlatingfirfiltercccsptr setcenterfreq själv dubbelcentralfreq grfreqxlatingfirfiltercccsptr setaps självstd vektor grcomplex stdallokator grcomplex kranar freqxlatingfirfilterccf int decimering floatvector kranar double centerfreq dubbel samplingfreq grfreqxlatingfilter filterfilter kombinerat med frekvenskonversion med grcomplex ingång, grcomplex utmatning och float kranar. Denna klass effektivt kombinerar en frekvensomvandling som typiskt är nerekonvertering med ett FIR-filter, typiskt lågpass och decimering. Det är idealiskt lämpat för ett kanalvalsfilter och kan effektivt användas för att välja och avkoda en smalbandsignal utgående från bredbandsinmatning. Används en enda ingångsserie för att producera en enda utmatningsgrupp Ytterligare ingångar och / eller utgångar ignoreras. Konstruera ett FIR-filter med de givna kranarna och en kompositfrekvenskonversion som skiftar centerfreq ner till noll Hz. Frekvensomvandlingen kommer logiskt före filtreringsoperationen. Grfreqxlatingfirfilterccfsptr setcenterfreq self double centerfreq grfreqxlatingfirfilterccfsptr setaps självflatvektor kranar freqxlatingfirfilterfcc int decimering std vektor grcomplex std allokerare grcomplex kranar double centerfreq dubbel samplingfreq grfreqxlatingfirfilterfccsptr. FIR filter kombinerat med frekvenskonversion med float ingång, grcomplex utgång och grcomplex kranar. Denna klass kombinerar effektivt en frekvensöversättning typiskt Nedkonvertering med ett FIR-filter, typiskt lågpass och decimering. Det är idealiskt för ett kanalvalsfilter och kan effektivt användas för att välja och avkoda en smalbandsignal utgående från bred bandbreddstangent. Använd en enda ingångsserie för att producera en enda utgång Array Ytterligare ingångar och eller utgångar ignoreras. Konstruera ett FIR-filter med de givna kranarna och en kompositfrekvenskonversion som skifter centerfreq ner till noll Hz. Frekvensomvandlingen kommer logiskt före filtreringsoperationen. grfreqxlatingfirfilterfccsptr se tcenterfreq själv dubbel centerfreq grfreqxlatingfirfilterfccsptr setaps självstd vektor grcomplex std allokering grcomplex kranar freqxlatingfirfilterfcf int decimation floatvector kranar double centerfreq dubbel samplingfreq grfreqxlatingfirfilterfcfsptr. FIR filter kombinerat med frekvenskonversion med float ingång, grcomplex utgång och float kranar. Denna klass kombinerar effektivt en frekvensomräkning som typiskt är nere Omvandling med ett FIR-filter, typiskt lågpass och decimering. Det är idealiskt för ett kanalvalsfilter och kan effektivt användas för att välja och avkoda en smalbandsignal utgående från bredbandsinmatning. Används en enda ingångsarray för att producera en enda utmatningsgrupp Ytterligare inmatningar och eller utgångar ignoreras. Konstruera ett FIR-filter med de givna kranarna och en kompositfrekvensomvandling som skifter centerfreq ner till noll Hz. Frekvensomvandlingen kommer logiskt före filtreringsoperationen. grfreqxlatingfirfilterfcfsptr setcenterfreq self double centerfreq g rfreqxlatingfirfilterfcfsptr settaps self floatvector kranar freqxlatingfirfilterscc int decimation std vektor grcomplex std allokerare grcomplex kranar double centerfreq dubbel samplingfreq grfreqxlatingfirfiltersccsptr. FIR filter kombinerat med frekvenskonversion med kort ingång, grcomplex utmatning och grcomplex kranar. Denna klass kombinerar effektivt en frekvensomvandling som typiskt är nere konvertering med en FIR Filtrera typiskt lågpass och decimering Det är idealiskt för ett filter med kanalval och kan effektivt användas för att välja och avkoda en smalbandsignal utgående från bredbandsinmatning. Använd en enda inmatnings array för att producera en enda utgångs array Ytterligare ingångar och eller utgångar ignoreras. Konstruera ett FIR-filter med de givna kranarna och en kompositfrekvensomvandling som skifter centerfreq ner till noll Hz. Frekvensomvandlingen kommer logiskt före filtreringsoperationen. Grfreqxlatingfirfiltersccsptr setcenterfreq self double centerfreq grfreqxlatingfirfiltersccsptr set kranar själv std vektor grcomplex std tilldelare grcomplex kranar freqxlatingfirfilterscf int decimation floatvector kranar double centerfreq dubbel samplingfreq grfreqxlatingfirfilterscfsptr. FIR filter kombinerat med frekvenskonversion med kort ingång, grcomplex utgång och float kranar. Denna klass kombinerar effektivt en frekvensomvandling som typiskt ned omvandling med ett FIR filter typiskt lågpass och decimering Den är idealisk för ett kanalvalsfilter och kan effektivt användas för att välja och avkoda en smalbandsignal utgående från bred bandbreddsinmatning. Använd en enda ingångsserie för att producera ett enda utmatningsarray Ytterligare ingångar och eller utgångar ignoreras. Konstruera ett FIR-filter med de givna kranarna och en kompositfrekvensomvandling som skifter centerfreq ner till noll Hz. Frekvensomvandlingen kommer logiskt före filtreringsoperationen. grfreqxlatingfirfilterscfsptr setcenterfreq self double centerfreq grfreqxlatingfirfilterscfsptr settaps self floatvector taps hilbertfc unsigned int ntaps grhilbertfcsptr. real-utgången är inmatad korrekt fördröjd imaginär utgång är hilbertfiltrerad 90 graders fasskiftversion av ingången. iirfilterffd doublevector fftaps doublevector fbtaps griirfilterffdsptr. IIR filter med float ingång, float utgång och dubbla kranar. Detta filter använder Direct Form I implementering, där innehåller feed-forward kranar, och feedbacken. Inmatning och utdata uppfyller en skillnadslikvation av Form. yn - summan av nk sum bk x nk. med motsvarande rationella systemfunktion. Notera att vissa texter definierar systemfunktionen med en i nämnaren. Om du använder den konventionen måste du negata feedbackkranerna. griirfilterffdsptr settaps själv dubbelvektor fftaps dubbelvektor fbtaps interpfirfilterccc int interpolering std vektor grcomplex std allokerare grcomplex kranar grinterpfirfiltercccsptr. Interpolating FIR filter med grcomplex ingång, grcomplex utgång och grcomplex taps. grinterpfirfiltercccsptr setaps self std vektor grcomplex std allokerare grcomplex kranar interpfirfilterccf int interpolation floatvector kranar grinterpfirfilterccfsptr. Interpolating FIR-filter med grcom plexiga ingångar, grcomplex-utgångar och float-taps. grinterpfirfilterccfsptr setaps self floatvector-kranar interpfirfilterfcc int interpolering std vektor grcomplex std-tilldelare grcomplex kranar grinterpfirfilterfccsptr. Interpolating FIR-filter med float-ingång, grcomplex-utmatning och grcomplex-kranar. grinterpfirfilterfccsptr setaps självstd vektor grcomplex std-tilldelare grcomplex kranar interpfirfilterfff int interpolation floatvector kranar grinterpfirfilterfffsptr. Interpolating FIR filter med float ingång, float output och float kranar. grinterpfirfilterfffsptr settaps self floatvector kranar interpfirfilterfsf int interpolation floatvector kranar grinterpfirfilterfsfs. Interpolering FIR filter med float inmatning, kort utmatning och float kranar. grinterpfirfilterfsptr settaps self floatvector kranar interpfirfilterscc int interpolering std vektor grcomplex std allokering grcomplex kranar grinterpfirfiltersccsptr. Interpolating FIR filter med kortingång, grcomplex utmatning och grcomplex kranar. grinterpfirfiltersccs ptr settaps själv std vektor grcomplex std allokerare grcomplex kranar rationalresamplerbaseccc int interpolation int decimering std vektor grcomplex std allokerare grcomplex kranar grrationalresamplerbasecccsptr. Rational Resampling Polyphase FIR filter med grcomplex ingång, grcomplex utgång och grcomplex kranar. grrationalresamplerbasecccsptr setaps själv std vektor grcomplex std allokerare grcomplex kranar rationalresamplerbaseccf int interpolation int decimering floatvector kranar grrationalresamplerbaseccfsptr. Rational Resampling Polyphase FIR filter med grcomplex ingång, grcomplex utgång och float kranar. grrationalresamplerbaseccfsptr settaps self floatvector kranar rationalresamplerbasefcc int interpolation int decimation std vektor grcomplex std allokerare grcomplex kranar grrationalresamplerbasefccsptr. Rational Resampling Polyphase FIR filter med float ingång , grcomplex utdata och grcomplex taps. grrationalresamplerbasefccsptr setaps själv std vektor grcomplex std allokerare grcomplex kranar rationalres Amplerbasefff int interpolation int decimation floatvector kranar grrationalresamplerbasefffsptr. Rational Resampling Polyphase FIR filter med float ingång, float output och float kranar. grrationalresamplerbasefffsptr settaps self floatvector kranar rationalresamplerbasefsf int interpolation int decimation floatvector kranar grrationalresamplerbasefsfsptr. Rational Resampling Polyphase FIR filter med float ingång, korta utgång och float kranar. grrationalresamplerbasefsfsptr settaps self floatvector kranar rationalresamplerbasescc int interpolation int decimering std vektor grcomplex std allokerare grcomplex kranar grrationalresamplerbasesccsptr. Rational Resampling Polyphase FIR filter med kortingång, grcomplex utmatning och grcomplex kranar. grrationalresamplerbasesccsptr settaps self std vektor grcomplex std allokerare grcomplex kranar singlepoleiirfiltercc double alpha unsigned int vlen 1 grsinglepoleiirfilterccsptr. single pol IIR filter med komplex ingång, komplex output. The inmatning och utdata uppfyller en dif ferens ekvation för form. yn - 1-alfa y n-1 alfa x n. med motsvarande rationella systemfunktion. Notera att vissa texter definierar systemfunktionen med en i nämnaren. Om du använder den konventionen måste du negera återkopplingen tap. grsinglepoleiirfilterccsptr setaps själv dubbel alpha singlepoleiirfilterff dubbel alfa unsigned int vlen 1 grsinglepoleiirfilterffsptr. single pol IIR filter med float input, float output. Input och output uppfyller en skillnadslikvation för form. yn - 1-alpha y n - 1 alfa x n. med motsvarande rationella systemfunktion. Notera att vissa texter definierar systemfunktionen med en i nämnaren. Om du använder den här konventionen måste du negerera feedbacken. Tap. grsinglepoleiirfilterffsptr settaps själv dubbel alfa movingaveragecc int längd grcomplex skala int maxiter 4096 grmovingaverageccsptr. output är den rörliga summan av de sista N-proven, skalas av skalfaktorn. maxiter begränsar hur länge vi går utan att spola ackumulatorn Ator Detta är nödvändigt för att undvika numerisk instabilitet för float och complex. grmovingaverageccsptr längd självintegreringsgränsvärde självgränssnittskompatibilitetskrav självgromplexgrmovingaverageccsptr setlengthandscale self int längd grcomplex skala movingaverageff int längd float skala int maxiter 4096 grmovingaverageffsptr. output är den rörliga summan av de sista N-proven, skalad av skalfaktorn. maxiter begränsar hur länge vi går utan att spola ackumulatorn Detta är nödvändigt för att undvika numerisk instabilitet för float och complex. output är den rörliga summan av de sista N-proverna, skalas av skalfaktorn. maxiter begränsar hur länge vi går Utan att spola ackumulatorn Detta är nödvändigt för att undvika numerisk instabilitet för float och complex. output är den rörliga summan av de sista N-proverna, skalas av skalfaktorn. Maxgränser begränsar hur länge vi går utan att spola ackumulatorn Detta är nödvändigt för att undvika numerisk instabilitet för float och complex. grmovingaveragesssptr längd self int grmovingaveragesssptr skala Self short grmovingaveragesssptr setlengthandscale self int längd kort skala pfbarbresamplerccf float rate floatvector kranar unsigned int filtrera 32 grpfbarbresamplerccfsptr. Polyphase filterbank godtycklig resampler med grcomplex ingång, grcomplex utgång och float kranar. Detta block tar en signalström och utför godtycklig resampling Resampling rate kan vara Vilket reellt nummer resampling görs genom att konstruera filter var är interpolationshastigheten Vi beräknar då var. Utnyttjande och vi kan utföra rationell resampling var är ett rationellt tal nära ingångsnivå där vi har filter och vi cyklar genom dem som en polyphase filterbank för att få den godtyckliga hastigheten vill vi interpolera mellan två punkter. För varje värde ut tar vi en utgång från det aktuella filtret och det nästa filtret och interpolerar sedan linjärt mellan de två baserat på den reala resamplinghastigheten Vi vill. Den linjära interpoleringen ger oss bara en approximation till den verkliga s angiven ampelfel Felet är ett kvantiseringsfel mellan de två filtren som vi använde som våra interpoleringspunkter. I detta syfte bestämmer antalet använda filter kvantifieringsfel desto större desto mindre buller kan du designa för ett visst ljudgolv genom att ställa in filtret Storleksparametrar Storleken är standard för 32 filter, vilket är ungefär lika bra som de flesta implementationer behöver. Tricket med att designa detta filter är hur man specificerar kranarna i prototypfiltret. Liksom PFB-interpolatorn specificeras kranarna med hjälp av den interpolerade filterhastigheten I det här fallet är denna hastighet ingångsprovhastigheten multiplicerad med antalet filter i filterbanken, vilket också är interpolationshastigheten. Alla andra värden bör vara i förhållande till denna hastighet. Till exempel för en 32-filter godtycklig resampler och med användning av GNU Radio s använder verktyget för att bygga filtret, vi bygger ett lågpassfilter med en samplingsfrekvens på en 3-dB bandbredd och en övergångsbandbredd på Vi kan även ange det out-of-b och dämpning att använda och filterfönstret fungerar ett Blackman-harris-fönster i det här fallet. Den första ingången är förstärkningen av filtret, som vi specificerar här som interpolationshastighet. Teorin bakom det här blocket finns i kapitel 7 5 i Following book. Build polyphase filterbank arbitray resampler. Print alla filterbanken kranar till screen. grpfbarbresamplerccfsptr setrate self float rate pfbchannelizerccf osignerade int numchans floatvector kranar float oversamplerate 1 grpfbchannelizerccfsptr. Polyphase filterbank kanalizer med grcomplex ingång, grcomplex utgång och float kranar. Detta block tar in komplexa ingångar och kanaliserar den till kanaler med lika bandbredd. Var och en av de resulterande kanalerna decimeras till den nya hastigheten som är ingångs samplingsfrekvens dividerad med antalet kanaler. PFB kanaliserings-kod tar de ovanstående kranarna och bygger en uppsättning av filter Satsen innehåller antal filter och varje filter innehåller antal kranar. Varje kran från filterprototypen infogas i följd i nästa filter När alla inmatningskranar används, fylls de återstående filtren i filterbanken med 0 s för att se till att varje filter har samma antal kranar. Varje filter arbetar med GNSS-filterklasser av GNU Radio som tar ingångsströmmen vid och utför den inre produktberäkningen till var är antalet filterkranar För att effektivt hantera detta i GNU Radio-strukturen måste varje filteringång komma från sin egen ingångsström, så kanaliseraren måste förses med strömmar där ingångsströmmen har deinterleaved Detta görs lättast med grstreamtostreams-blocket. Produktionen produceras sedan som en vektor, där indexet i vektorn är nästa prov från th-kanalen. Detta hanteras lättast genom att skicka utmatningen till en Grvectortostreams blockerar för att hantera omvandlings - och överföringsströmmarna. Inmatnings - och utgångsformateringen görs med hjälp av en hierblock2 som heter pfbchannelizerccf. Detta kan ta in en enda ström och ut uts strömmar baserade på beteendet som beskrivs ovan. Filterets kranar bör baseras på insamlingsprovtagningshastigheten. Exempelvis använder vi GNU Radio s firdes verktyg till byggfilter, vi bygger ett lågpassfilter med en samplingsfrekvens på en 3 - dB-bandbredd och en övergångsbandbredd av Vi kan även ange omkopplingsdämpningen att använda och filterfönstret fungerar ett Blackman-harris-fönster i det här fallet. Den första ingången är förstärkningen av filtret, som vi specificerar här som enhet. Filterutgången kan också vara överskottsad. Överprovtagningsfrekvensen är förhållandet mellan den faktiska utsamlingsprovtagningshastigheten och den normala samplingsfrekvensen. Det måste vara rationellt relaterat till antalet kanaler som N i för I i 1, N, vilket ger en utmatningsfrekvens för fs N, fs där fs är ingångsprovhastigheten och N är antalet kanaler. Till exempel för 6 kanaler med fs 6000 Hz är normalhastigheten 6000 6 1000 Hz Tillåten översamplingshastigheter är 6 6 , 6 5, 6 4, 6 3, 6 2 och 6 1 där utgångsprovhastigheten på Ett 6 1 överskottsförhållande är 6000 Hz, eller 6 gånger den normala 1000 Hz A-hastigheten på 6 5 1 2, så utsignalen skulle vara 1200 Hz. Teorin bakom det här blocket finns i kapitel 6 i följande bok. polyphase filterbank decimatorn Till exempel för 6 kanaler med fs 6000 Hz är den normala hastigheten 6000 6 1000 Hz Tillåten översamplingshastigheter är 6 6, 6 5, 6 4, 6 3, 6 2 och 6 1 där utgångsprovhastigheten av ett 6 1 överskottsförhållande är 6000 Hz, eller 6 gånger den normala 1000 Hz. Reseterar filterbankens filterkranar med det nya prototypfiltret. Pfbclocksyncccf dubbla sps float loopbw floatvector kranar unsigned int filtrera 32 float initphase 0 float maximalavvikelse 1 5 int osps 1 grpfbclocksyncccfsptr. Timing synkroniserare med polyphase filterbanks. This block utför tidssynkronisering för PAM signaler genom att minimera derivatet av den filtrerade signalen, vilket i sin tur maximerar SNR och minimerar ISI. Detta tillvägagångssätt fungerar genom att inrätta två filterbanor en filterbank innehåller signalets pulsformande matchande filter, såsom ett roten upphöjt cosinusfilter, där varje gren av filterbanken innehåller en annan fas av filtret. Den andra filterbanken innehåller Filtrets derivat i den första filterbanken Tänk på detta i tidsdomänen. Den första filterbanken innehåller filter som har en sincform till dem. Vi vill justera utsignalen som ska samplas vid exakt toppen av sinc-formen. Derivat av sinc innehåller en noll vid sinc sinc 0c sin maximala punkt 0, sinc 0 0 Dessutom är regionen runt nollpunkten är relativt linjär. Vi använder detta faktum för att generera felsignalen. Om signalen ur derivatfiltret är di n för ith-filtret och utgången för det matchade filtret är xi n, beräknar vi felet som en Re Re Im Im 2 0 Denna ekvation medför felet i de reella och imaginära delarna Det finns två anledningar som vi multiplicerar med själva signalen. Först om symbolen kan vara positiv eller negativ, men vi vill att felperioden alltid ska berätta oss att gå i samma riktning beroende på vilken sida av nollpunkten vi är på. Tecknet xi n justerar felperioden för att göra detta för det andra. Storleken på xi n skalar felperioden beroende på symbolens amplitud, så större Signaler ger oss en starkare felperiod eftersom vi har större förtroende för det symbolvärdet. Med hjälp av storleken på xi n istället för bara är tecknet särskilt bra för signaler med låg SNR. Felsignalen, en, ger oss ett värde som är proportionellt mot hur långt ifrån nollpunkten vi a Re i den härledda signalen Vi vill köra detta värde till noll så vi sätter upp en andra ordningsslinga Vi har två variabler för denna slinga dk är filternumret i filterbanken vi är på och drate är den hastighet som vi reser genom filter i steady state Det är på grund av de naturliga klockskillnaderna mellan sändaren och mottagaren representerar drate den skillnaden och skulle passera filterfasvägarna för att hålla mottagaren låst. Tänk på detta som en andra ordningens PLL, drate är den frekvens och dk är fasen Så vi uppdaterar drate och dk med hjälp av standard-loop-ekvationerna baserade på två felsignaler, dalpha och dbeta Vi har dessa två värden inställda baserat på varandra för ett kritiskt dämpat system, så i blockkonstruktorn, vi bara Be om förstärkning, vilken är dalpha medan dbeta är lika med att få 2 4. Blockens parametrar är. Bygg polyphase filterbank timing synkroniseraren. Återställer lönökningen alfa. Återställer lössökningen beta. grpfbclocksyncccfsptr getchanneltaps self i Nt kanal floatvector. Returns kranen av matchade filtret för en viss kanal. Returnerar den nuvarande klockan rate. grpfbclocksyncccfsptr getdampingfactor self float. Returns slingdämpningsfaktorn. grpfbclocksyncccfsptr getdiffchanneltaps self int kanal floatvector. Returnerar kranarna i derivatfilteret för en viss Channel. grpfbclocksyncccfsptr getdifftaps self dummy5.Returnerar alla kranarna i det derivatfilter. grpfbclocksyncccfsptr getdifftapsasstring self strängen. Returnera filterkranarna som en formaterad sträng för printing. grpfbclocksyncccfsptr getloopbandwidth self float. Returns loopbandbredd. Återställer alla kranarna av Den matchade filter. grpfbclocksyncccfsptr gettapsasstring självsträngen. Återställ kranarna som en formaterad sträng för utskrift. Ställ kretsloppen alfa. Ställ in slingfiltrets s alfasförstärkningsparameter. Detta värde bör egentligen bara ställas in genom att justera slingbandsbredd och dämpningsfaktor. Ställ in slingans vinst beta. Ställ in slingfiltrets betavärdesparametern er. Detta värde bör egentligen bara ställas in genom att justera loopbandbredden och dämpningsfaktorn. Ställ in slingans dämpningsfaktor. Ställ in slingfiltrets s-dämpningsfaktor till Dämpningsfaktorn ska vara sqrt 2 2 0 för kritiskt dämpade system Ställ det på något annat bara om du vet vad du gör Det måste vara ett tal mellan 0 och 1. När en ny dämpningsfaktor är inställd, beräknas vinst, alfa och beta av slingan genom ett samtal till updategains. Set loopbandwidth. Set slingfiltrets bandbredd till Detta bör ligga mellan 2 pi 200 och 2 pi 100 i rads samp. Det måste också vara ett positivt tal. När en ny dämpningsfaktor är inställd, beräknas vinsterna, alfa och beta av slingan av en Ring till updategains. Set maximal avvikelse från 0 drate can have. grpfbclocksyncccfsptr setaps self floatvector kranar dummy5 ourtaps std vector std allokerar ourfilter. Resetar filterbankens filterkranar med det nya prototypfiltret. Pfbclocksyncfff double sps float få floatvector kranar unsigned int filtrera 32 float initphase 0 float maxrateeviation 1 5 grpfbclocksyncfffsptr. Timing synkroniserare med polyphase filterbanks. Detta block utför tidssynkronisering för PAM signaler genom att minimera derivatet av den filtrerade signalen, vilket i sin tur maximerar SNR och minimerar ISI. Detta tillvägagångssätt fungerar genom att inrätta två filterbanor. En filterbank innehåller signalets pulsformade matchade filter, såsom ett roten upphöjt cosinusfilter, där varje gren av filterbanken innehåller en annan fas av filtret. Den andra filterbanken innehåller derivaten av filter i den första filterbanken Tänk på detta i tidsdomänen innehåller den första filterbanken filter som har en sincform till dem Vi vill justera utsignalen som ska samplas på exakt toppen av sinc-formen. Derivaten av sinc innehåller en noll vid sininkoncentrationens maximala punkt 0 1, sinc 0 0 Dessutom är regionen kring z ero-punkten är relativt linjär Vi utnyttjar detta faktum för att generera felsignalen. Om signalen från derivatfiltret är di n för ith-filtret och utgången hos det matchade filtret är xi n, beräknar vi felet som en Re Re Im Im 2 0 Denna ekvation är ett medelvärde för felet i de reella och imaginära delarna. Det finns två anledningar som vi multiplicerar med själva signalen. Först om symbolen kan vara positiv eller negativ, men vi vill att felperioden alltid ska berätta för oss att gå i samma riktning beroende på vilken sida av nollpunkten vi är på. Tecknet xi n justerar felperioden för att göra det andra. Storleken på xi n vinklar felperioden beroende på symbolens amplitud, så större signaler ger Oss en starkare felperiod eftersom vi har mer förtroende för det symbolvärdet. Med hjälp av storleken på xi n istället för bara är tecknet särskilt bra för signaler med låg SNR. Felsignalen, en, ger oss ett värde som är proportionellt mot hur långt borta från nollpunkten är vi i Der ivative signal Vi vill köra detta värde till noll så vi sätter upp en andra ordningsslinga Vi har två variabler för denna slinga dk är filternumret i filterbanken vi är på och drate är den hastighet som vi reser genom filtren i steady state Det är på grund av de naturliga klockskillnaderna mellan sändaren och mottagaren representerar drate den skillnaden och skulle passera filterfasvägarna för att hålla mottagaren låst. Tänk på detta som en andra ordningens PLL, drate är frekvensen och dk är fasen Så vi uppdaterar drate och dk med hjälp av standard loop-ekvationerna baserade på två felsignaler, dalpha och dbeta Vi har dessa två värden som är baserade på varandra för ett kritiskt dämpat system, så i blockkonstruktorn begär vi bara vinst , Vilket är dalpha medan dbeta är lika med att vinna 2 4. Blockens parametrar är. Bygg polyphase filterbank timing synchronizer. grpfbclocksyncfffsptr channeleltaps self int kanal floatvector. Returnerar kranarna i matchade filter. grpfbcloc Ksyncfffsptr diffchanneltaps self int kanal floatvector. Returnerar kranarna i derivatfiltret. Tryck på alla filterbankens kranar i derivatfiltret till skärm. Skriv ut alla filterbankens kranar till skärmen. Ställ in förstärkningsvärdet alpha för styrslingan. Ställ in förstärkningen 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