Saturday 19 August 2017

Gnuradio Moving_average_ff


Gnuradio. gr: Filtros gnuradio. gr. Fftfilterccc (int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps. Int nthreads 1) rarr grfftfiltercccsptr Filtro Fast FFT com entrada grcomplex, saída grcomplex e torneiras grcomplex. Grfftfiltercccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfftfiltercccsptr. Taps (self) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Fftfilterfff (int dizimação. Torneiras do flutuador. Int nthreads 1) rarr grfftfilterfffsptr Filtro FFT rápido com entrada flutuante, saída flutuante e torneiras flutuantes. Bloco de combinação de atraso de filtragem. O bloco leva um ou dois fluxos flutuantes e produz um fluxo complexo. Se apenas um fluxo flutuante for inserido, a saída real é uma versão atrasada dessa entrada e a saída imaginária é a saída filtrada. Se dois flutuadores estiverem conectados à entrada, então a saída real é a versão atrasada da primeira entrada e a saída imaginária é a saída filtrada. O atraso no caminho real explica o atraso do grupo introduzido pelo filtro no caminho imaginário. As torneiras do filtro precisam ser calculadas antes de inicializar este bloco. Gnuradio. gr. Firfilterccc (int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grfirfiltercccsptr FIR filtro com entrada grcomplex, saída grcomplex e torneiras grcomplex. Grfirfiltercccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfirfiltercccsptr. Taps (self) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Firfilterccf (int decimation. Torneiras do flutuador) rarr grfirfilterccfsptr Filtro FIR com entrada grcomplex, saída grcomplex e torneiras flutuantes. Grfirfilterccfsptr. Settaps (torneiras de flutuador próprio) grfirfilterccfsptr. Taps (self) rarr floatvector gnuradio. gr. Firfilterfcc (int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grfirfilterfccsptr Filtro FIR com entrada de flutuador, saída grcomplex e torneiras grcomplex. Grfirfilterfccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfirfilterfccsptr. Taps (self) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Firfilterfff (tentação interna, torneiras de flutuador) rarr grfirfilterfffsptr Filtro FIR com entrada flutuante, saída flutuante e torneiras flutuantes. Filtro FIR com entrada flutuante, saída curta e torneiras flutuantes. Grfirfilterfsfsptr. Settaps (torneiras de flutuador próprio) grfirfilterfsfsptr. Taps (self) rarr floatvector gnuradio. gr. Firfilterscc (int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grfirfiltersccsptr Filtro FIR com entrada curta, saída grcomplex e torneiras grcomplex. Grfirfiltersccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) grfirfiltersccsptr. Taps (self) rarr std :: vectorlt (grcomplex, std :: allocatorlt (grcomplex) gt) gt gnuradio. gr. Fractionalinterpolatorcc (float phaseshift. Float interpratio) rarr grfractionalinterpolatorccsptr Interpolando o filtro mmse com entrada grcomplex, saída grcomplex. Grfractionalinterpolatorccsptr. Interpratio (self) rarr float grfractionalinterpolatorccsptr. Mu (self) rarr float grfractionalinterpolatorccsptr. Setinterpratio (auto-float interpratio) grfractionalinterpolatorccsptr. Setmu (self. Float mu) gnuradio. gr. Interpolação fraccional (fase flutuante, interpolação flutuante) rarr grfractionalinterpolatorffsptr Filtro mmse interpolado com entrada flutuante, saída flutuante. Grfractionalinterpolatorffsptr. Interpratio (self) rarr float grfractionalinterpolatorffsptr. Mu (self) rarr float grfractionalinterpolatorffsptr. Setinterpratio (self-float interpratio) grfractionalinterpolatorffsptr. Setmu (self. Float mu) gnuradio. gr. Freqxlatingfirfilterccc (int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt torneiras. Doublefreck. Double samplingfreq) rarr grfreqxlatingfirfiltercccsptr FIR filtro combinado com tradução de frequência com entrada grcomplex, saída grcomplex e torneiras grcomplex Esta classe de forma eficiente Combina uma tradução de frequência (tipicamente 8220down conversion8221) com um filtro FIR (tipicamente passe baixo) e decimation. É ideal para um filtro de seleção 8220channel8221 e pode ser usado eficientemente para selecionar e decimar um sinal de faixa estreita com entrada de largura de banda ampla. Usa uma única matriz de entrada para produzir uma matriz de saída única. Entradas e saídas adicionais são ignoradas. Construa um filtro FIR com as torneiras fornecidas e uma tradução de freqüência composta que mude o centrofreq para baixo para zero Hz. A tradução de freqüência vem logicamente antes da operação de filtragem. Grfreqxlatingfirfiltercccsptr. Setcenterfreq (self. Double centerfreq) grfreqxlatingfirfiltercccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Freqxlatingfirfilterccf (int dizimação. Torneiras de flutuador, double frequencyfref. Double frequencyfreq) rarr grfreqxlatingfirfilterccfsptr Filtro FIR combinado com conversão de freqüência com entrada grcomplex, saída grcomplex e torneiras flutuantes Esta classe combina eficientemente uma tradução de freqüência (normalmente conversão 8220down8221) com um filtro FIR (tipicamente baixo - pass) e decimação. É ideal para um filtro de seleção 8220channel8221 e pode ser usado eficientemente para selecionar e decimar um sinal de faixa estreita com entrada de largura de banda ampla. Usa uma única matriz de entrada para produzir uma matriz de saída única. Entradas e saídas adicionais são ignoradas. Construa um filtro FIR com as torneiras fornecidas e uma tradução de freqüência composta que mude o centrofreq para baixo para zero Hz. A tradução de freqüência vem logicamente antes da operação de filtragem. Grfreqxlatingfirfilterccfsptr. Setcenterfreq (self. Double centerfreq) grfreqxlatingfirfilterccfsptr. Settaps (torneiras de flutuador) gnuradio. gr. Freqxlatingfirfilterfcc (int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt torneiras. Doublefreck. Double samplingfreq) rarr grfreqxlatingfirfilterfccsptr FIR filtro combinado com tradução de freqüência com entrada flutuante, saída grcomplex e torneiras grcomplex Esta classe de forma eficiente Combina uma tradução de frequência (tipicamente 8220down conversion8221) com um filtro FIR (tipicamente passe baixo) e decimation. É ideal para um filtro de seleção 8220channel8221 e pode ser usado eficientemente para selecionar e decimar um sinal de faixa estreita com entrada de largura de banda ampla. Usa uma única matriz de entrada para produzir uma matriz de saída única. Entradas e saídas adicionais são ignoradas. Construa um filtro FIR com as torneiras fornecidas e uma tradução de freqüência composta que mude o centrofreq para baixo para zero Hz. A tradução de freqüência vem logicamente antes da operação de filtragem. Grfreqxlatingfirfilterfccsptr. Setcenterfreq (self. Double centerfreq) grfreqxlatingfirfilterfccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Freqxlatingfirfilterfcf (int dizimação) torneiras de flutuador doublefref. Double samplingfreq) rarr grfreqxlatingfirfilterfcfsptr Filtro FIR combinado com tradução de freqüência com entrada de flutuador, saída grcomplex e torneiras flutuantes Esta classe combina eficientemente uma tradução de freqüência (tipicamente conversão 8220down8221) com um filtro FIR (tipicamente baixo - pass) e decimação. É ideal para um filtro de seleção 8220channel8221 e pode ser usado eficientemente para selecionar e decimar um sinal de faixa estreita com entrada de largura de banda ampla. Usa uma única matriz de entrada para produzir uma matriz de saída única. Entradas e saídas adicionais são ignoradas. Construa um filtro FIR com as torneiras fornecidas e uma tradução de freqüência composta que mude o centrofreq para baixo para zero Hz. A tradução de freqüência vem logicamente antes da operação de filtragem. Grfreqxlatingfirfilterfcfsptr. Setcenterfreq (self. Double centerfreq) grfreqxlatingfirfilterfcfsptr. Settaps (torneiras de flutuador) gnuradio. gr. Freqxlatingfirfilterscc (int dizimação. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt torneiras. Doublefreck. Double samplingfreq) rarr grfreqxlatingfirfiltersccsptr filtro FIR combinado com tradução de freqüência com entrada curta, saída grcomplex e torneiras grcomplex Esta classe de forma eficiente Combina uma tradução de frequência (tipicamente 8220down conversion8221) com um filtro FIR (tipicamente passe baixo) e decimation. É ideal para um filtro de seleção 8220channel8221 e pode ser usado eficientemente para selecionar e decimar um sinal de faixa estreita com entrada de largura de banda ampla. Usa uma única matriz de entrada para produzir uma matriz de saída única. Entradas e saídas adicionais são ignoradas. Construa um filtro FIR com as torneiras fornecidas e uma tradução de freqüência composta que mude o centrofreq para baixo para zero Hz. A tradução de freqüência vem logicamente antes da operação de filtragem. Grfreqxlatingfirfiltersccsptr. Setcenterfreq (self. Double centerfreq) grfreqxlatingfirfiltersccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Freqxlatingfirfilterscf (int dizimação, torneiras flutuantes, duplo fatorfreckfreckfrofilterscfsptr) Filtro FIR combinado com tradução de freqüência com entrada curta, saída grcomplex e torneiras flutuantes Esta classe combina eficientemente uma tradução de freqüência (tipicamente conversão 8220down8221) com um filtro FIR (tipicamente baixo - pass) e decimação. É ideal para um filtro de seleção 8220channel8221 e pode ser usado eficientemente para selecionar e decimar um sinal de faixa estreita com entrada de largura de banda ampla. Usa uma única matriz de entrada para produzir uma matriz de saída única. Entradas e saídas adicionais são ignoradas. Construa um filtro FIR com as torneiras fornecidas e uma tradução de freqüência composta que mude o centrofreq para baixo para zero Hz. A tradução de freqüência vem logicamente antes da operação de filtragem. Grfreqxlatingfirfilterscfsptr. Setcenterfreq (self. Double centerfreq) grfreqxlatingfirfilterscfsptr. Settaps (torneiras de flutuador) gnuradio. gr. Hilbertfc (unsigned int ntaps) rarr grhilbertfcsptr saída real é entrada devidamente atrasada. A saída imaginária é filtrada por hilbert (versão de fase de 90 graus) da entrada. Gnuradio. gr. Filtro IIR com entrada de flutuador, saída de flutuador e torneiras duplas Este filtro usa a implementação Direct Form I, onde contém as torneiras de feed-forward e as de feedback. A entrada e a saída satisfazem uma equação de diferença da forma yn-sum ak yn-k soma bk xn-k com a função de sistema racional correspondente Observe que alguns textos definem a função do sistema com a no denominador. Se você estiver usando essa convenção, you8217ll precisa negar as batidas de feedback. Griirfilterffdsptr. Settaps (autovectorial fftaps. Doublevector fbtaps) gnuradio. gr. Interpfirfilterccc (int interpolação. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grinterpfirfiltercccsptr Interpolando o filtro FIR com entrada grcomplex, saída grcomplex e torneiras grcomplex. Grinterpfirfiltercccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Interpfirfilterccf (int interpolação. Torneiras do flutuador) rarr grinterpfirfilterccfsptr Interpolação do filtro FIR com entrada grcomplex, saída grcomplex e torneiras flutuantes. Grinterpfirfilterccfsptr. Settaps (torneiras de flutuador) gnuradio. gr. Interpfirfilterfcc (int interpolação. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grinterpfirfilterfccsptr Interpolando o filtro FIR com entrada flutuante, saída grcomplex e torneiras grcomplex. Grinterpfirfilterfccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Interpfirfilterfff (int interpolação. Torneiras de flutuador) rarr grinterpfirfilterfffsptr Interpolação de filtro FIR com entrada flutuante, saída flutuante e torneiras flutuantes. Grinterpfirfilterfffsptr. Settaps (torneiras de flutuador) gnuradio. gr. Interpfirfilterfsf (int interpolação. Torneiras do flutuador) rarr grinterpfirfilterfsfsptr Interpolando o filtro FIR com entrada de flutuador, saída curta e torneiras de flutuação. Grinterpfirfilterfsfsptr. Settaps (torneiras de flutuador) gnuradio. gr. Interpfirfilterscc (interpolação int. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grinterpfirfiltersccsptr Interpolando o filtro FIR com entrada curta, saída grcomplex e torneiras grcomplex. Grinterpfirfiltersccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Rational Resampling Filtro FIR Polyphase com entrada grcomplex, saída grcomplex e torneiras grcomplex. (P. Ex., RTD :: allocatorlt (grcomplex) gt) gt) rarr grrationalresamplerbasecplcbasecsptr. Grrationalresamplerbasecccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Rationalresamplerbaseccf (int interpolação. Int decimation. Torneiras flutuantes) rarr grrationalresamplerbaseccfsptr Rational Resampling Filtro FIR Polyphase com entrada grcomplex, saída grcomplex e torneiras flutuantes. Grrationalresamplerbaseccfsptr. Settaps (torneiras de flutuador) gnuradio. gr. Rationalresamplerbasefcc (int interpolation. Int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grrationalresamplerbasefccsptr Rational Resampling Polyphase FIR filtro com entrada flutuante, saída grcomplex e torneiras grcomplex. Grrationalresamplerbasefccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Rationalresamplerbasefff (int interpolação. Int decimation. Torneiras flutuantes) rarr grrationalresamplerbasefffsptr Rational Resampling Filtro FIR Polyphase com entrada flutuante, saída flutuante e torneiras flutuantes. Grumpalresamplerbasefffsptr. Settaps (torneiras de flutuador) gnuradio. gr. Rationalresamplerbasefsf (int interpolação. Int decimation. Flutuador de torções) rarr grrationalresamplerbasefsfsptr Rational Resampling Polyphase FIR filtro com entrada de flutuador, saída curta e flutuador de torneiras. Grrationalresamplerbasefsfsptr. Settaps (torneiras de flutuador) gnuradio. gr. Rationalresamplerbasescc (int interpolação. Int decimation. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) rarr grrationalresamplerbasesccsptr Rational Resampling Filtro FIR Polyphase com entrada curta, saída grcomplex e torneiras grcomplex. Grumpalbase de amostras de amostrasccsptr. Settaps (self. Std :: vectorlt (grcomplex. Std :: allocatorlt (grcomplex) gt) gt taps) gnuradio. gr. Singlepoleiirfiltercc (double alpha. Unsigned int vlen 1) rarr grsinglepoleiirfilterccsptr filtro single-pó IIR com entrada complexa, saída complexa A entrada e saída satisfazem uma equação de diferença da forma yn - (1-alfa) yn-1 alfa xn com o sistema racional correspondente Função Note que alguns textos definem a função do sistema com a no denominador. Se você estiver usando essa convenção, you8217ll precisa negar o toque de resposta. Grsinglepoleiirfilterccsptr. Settaps (self. Double alpha) gnuradio. gr. Singlepoleiirfilterff (double alpha, unsigned int vlen 1) rarr grsinglepoleiirfilterffsptr filtro de um pólo IIR com entrada flutuante, saída flutuante A entrada e saída satisfazem uma equação de diferença da forma yn - (1-alfa) yn-1 alfa xn com o sistema racional correspondente Função Note que alguns textos definem a função do sistema com a no denominador. Se você estiver usando essa convenção, you8217ll precisa negar o toque de resposta. Grsinglepoleiirfilterffsptr. Settaps (self. Double alpha) gnuradio. gr. Movingaveragecc (int length. grcomplex scale. Int maxiter 4096) rarr grmovingaverageccsptr output é a soma móvel das últimas N amostras, escaladas pelo fator de escala maxiter limites quanto tempo vamos sem descarga o acumulador Isso é necessário para evitar a instabilidade numérica para flutuador e complexo. Grmovingaverageccsptr. Comprimento (auto) rarr int grmovingaverageccsptr. Escala (auto) rarr grcomplex grmovingaverageccsptr. Setlengthandscale (tamanho de auto. Int. Escala grcomplex) gnuradio. gr. Mudança de tamanho (int comprimento, escala de flutuador, int maxiter 4096) rarr grmovingaverageffsptr saída é a soma móvel das últimas N amostras, escaladas pelo fator de escala maxiter limites quanto tempo nós vamos sem descarga o acumulador Isso é necessário para evitar a instabilidade numérica para flutuador e complexo. A saída é a soma móvel das últimas N amostras, escaladas pelo fator de escala máximas limites quanto tempo nós vamos sem limpar o acumulador Isso é necessário para evitar instabilidade numérica para flutuador e complexo. A saída é a soma móvel das últimas N amostras, escaladas pelo fator de escala máximas limites quanto tempo nós vamos sem limpar o acumulador Isso é necessário para evitar instabilidade numérica para flutuador e complexo. Grmovingaveragesssptr. Comprimento (auto) rarr int grmovingaveragesssptr. Escala (auto) rarr short grmovingaveragesssptr. Setlengthandscale (comprimento do auto. Int. Escala curta) gnuradio. gr. Pfbarbresamplerccf (taxa de flutuação, torneiras de flutuador, filtragem int não assinada 32) rarr grpfbarbresamplerccfsptr Ressalador arbitrário de filtro de polifase com entrada grcomplex, saída grcomplex e torneiras flutuantes. Este bloco leva um fluxo de sinal e executa uma reamostragem arbitrária. A taxa de remate pode ser qualquer número real. O reescalonamento é feito construindo filtros onde é a taxa de interpolação. Em seguida, calculamos onde. Usando e. Podemos realizar uma reamostragem racional onde é um número racional perto da taxa de entrada onde temos filtros e nós os atravessamos como um banco de filtros polifásico com um passo de tal forma. Para obter a taxa arbitrária, queremos interpolar entre dois pontos. Para cada valor, tiramos um resultado do filtro atual. E o próximo filtro e depois interpolam linearmente entre os dois com base na taxa de re-amostragem real que queremos. A interpolação linear apenas nos fornece uma aproximação da taxa de amostragem real especificada. O erro é um erro de quantificação entre os dois filtros que usamos como nossos pontos de interpolação. Para este fim, o número de filtros. Usado determina o erro de quantização maior. Menor o ruído. Você pode projetar para um piso de ruído especificado, definindo o tamanho do filtro (parâmetros). O tamanho padrão é 32 filtros, o que é tão bom quanto a maioria das implementações precisam. O truque com o design deste filtro é como especificar as torneiras do protótipo de filtro. Como o interpolador PFB, as torneiras são especificadas usando a taxa de filtro interpolada. Nesse caso, essa taxa é a taxa de amostragem de entrada multiplicada pelo número de filtros no banco de filtros, que também é a taxa de interpolação. Todos os outros valores devem ser relativos a essa taxa. Por exemplo, para um resamplificador arbitrário de 32 filtros e usando o utilitário GNU Radio8217s firdes para construir o filtro, criamos um filtro passa-baixa com uma taxa de amostragem de. Uma largura de banda de 3 dB e uma largura de banda de transição de. Também podemos especificar a atenuação fora de banda para usar. E a função da janela do filtro (uma janela Blackman-harris neste caso). A primeira entrada é o ganho do filtro, que especificamos aqui como a taxa de interpolação (). A teoria por trás desse bloco pode ser encontrada no capítulo 7.5 do seguinte livro. Construa o resamplificador de arbitramento de banco de filtros polifásico. Imprima todas as torneiras do banco de filtros na tela. Grpfbarbresamplerccfsptr. Setrate (self. Float rate) gnuradio. gr. Pfbchannelizerccf (unsigned int numchans. Torneiras de flutuador. Float oversamplerate 1) rarr grpfbchannelizerccfsptr Mecanizador de banco de filtros polifásico com entrada grcomplex, saída grcomplex e torneiras flutuantes. Este bloco possui entradas complexas e canaliza-lo para canais de largura de banda igual. Cada um dos canais resultantes é dizimado à nova taxa que é a taxa de amostragem de entrada dividida pelo número de canais. O código do canalizador PFB leva as torneiras geradas acima e cria um conjunto de filtros. O conjunto contém o número de filtros e cada filtro contém ceil (taps. size () decim) número de torneiras. Cada toque do protótipo do filtro é inserido seqüencialmente no próximo filtro. Quando todas as torneiras de entrada são usadas, os filtros restantes no banco de filtros são preenchidos com 08217s para garantir que cada filtro tenha o mesmo número de torneiras. Cada filtro opera usando as classes de filtro grfir do GNU Radio, que leva o fluxo de entrada e executa o cálculo interno do produto para onde é o número de torneiras de filtro. Para gerenciar eficientemente isso na estrutura de Rádio GNU, cada entrada de filtro deve ser proveniente de seu próprio fluxo de entrada. Portanto, o canalizador deve ser fornecido com fluxos onde o fluxo de entrada foi desintercalado. Isso é mais fácil de usar usando o bloco grstreamtostreams. A saída é então produzida como um vetor, onde o índice no vetor é a próxima amostra do canal th. Isso é mais facilmente manuseado enviando a saída para um bloco grvectortostreams para lidar com a conversão e a passagem de fluxos para fora. A formatação de entrada e saída é feita usando um hierblock2 chamado pfbchannelizerccf. Isso pode assumir um único fluxo e gerar fluxos com base no comportamento descrito acima. As torneiras do filtro8217s devem ser baseadas na taxa de amostragem de entrada. Por exemplo, usando o utilitário GNU Radio8217s firdes para a construção de filtros, nós criamos um filtro passa-baixa com uma taxa de amostragem de. Uma largura de banda de 3 dB e uma largura de banda de transição de. Também podemos especificar a atenuação fora de banda para usar. E a função da janela do filtro (uma janela Blackman-harris neste caso). A primeira entrada é o ganho do filtro, que especificamos aqui como unidade. A saída do filtro também pode ser ampliada. A taxa de amostragem excedente é a proporção da taxa de amostragem de saída real para a taxa de amostragem de saída normal. Deve ser racionalmente relacionado ao número de canais como N i para i em 1, N, o que dá uma taxa de saída de fs N, fs onde fs é a taxa de amostragem de entrada e N é o número de canais. Por exemplo, para 6 canais com fs 6000 Hz, a taxa normal é 6000 6 1000 Hz. As taxas de sobreaplicação permitidas são 6 6, 6 5, 6 4, 6 3, 6 2 e 6 1, onde a taxa de amostra de saída de uma proporção de sobreaplicação de 6 1 é de 6000 Hz, ou 6 vezes a 1000 Hz normal. Uma taxa de 6 5 1,2, de modo que a taxa de saída seria de 1200 Hz. A teoria por trás desse bloco pode ser encontrada no Capítulo 6 do seguinte livro. Construa o decimador do banco de filtros polifásico. Por exemplo, para 6 canais com fs 6000 Hz, a taxa normal é 6000 6 1000 Hz. As taxas de sobreaplicação permitidas são 6 6, 6 5, 6 4, 6 3, 6 2 e 6 1, onde a taxa de amostra de saída de uma proporção de sobreaplicação de 6 1 é de 6000 Hz, ou 6 vezes a 1000 Hz normal. Restaura as torneiras de filtro filterbank8217s com o novo protótipo de filtro gnuradio. gr. Pfbclocksyncccf (sps duplo. Flutuador loopbw. Torneiras de flutuador. Filtros de filtros não assinados 32. float initphase 0. float maxratedeviation 1.5. Int osps 1) rarr grpfbclocksyncccfsptr Sincronizador de tempo usando bancos de filtros polifásicos. Este bloco executa sincronização de tempo para sinais PAM, minimizando a derivada do sinal filtrado, que por sua vez maximiza o SNR e minimiza o ISI. Esta abordagem funciona configurando dois bancos de filtros. Um banco de filtros contém o filtro correspondente de moldagem de impulsos do sinal8217s (como um filtro de coseno subido por raiz), onde cada ramo do banco de filtros contém uma fase diferente do filtro. O segundo banco de filtros contém os derivados dos filtros no primeiro banco de filtros. Pensando nisso no domínio do tempo, o primeiro banco de filtros contém filtros que têm uma forma sinc. Queremos alinhar o sinal de saída a ser amostrado exatamente no pico da forma sinc. A derivada do sinc contém um zero no ponto máximo do sinc (sinc (0) 1, sinc (0) 8217 0). Além disso, a região ao redor do ponto zero é relativamente linear. Utilizamos esse fato para gerar o sinal de erro. Se o sinal dos filtros derivados for din para o i-ésimo filtro, e a saída do filtro correspondente é xin, calculamos o erro como: en (Re Re Im Im) 2.0 Esta equação projeta o erro nas partes reais e imaginárias . Há duas razões pelas quais nós multiplicamos pelo próprio sinal. Primeiro, se o símbolo puder ser positivo ou negativo, mas queremos que o termo de erro sempre nos diga para ir na mesma direção dependendo do lado do ponto zero em que estamos. O sinal de xin ajusta o termo de erro para fazer isso. Em segundo lugar, a magnitude de xin escala o termo de erro dependendo da amplitude do simbolo 8217, então os sinais maiores nos dão um termo de erro mais forte porque temos mais confiança nesse valor do símbolo8217s. Usar a magnitude de xin em vez de apenas o sinal é especialmente bom para sinais com baixo SNR. O sinal de erro, en, nos dá um valor proporcional ao quão longe do ponto zero, estamos no sinal derivado. Queremos direcionar esse valor para zero, então configuramos um loop de segunda ordem. Temos duas variáveis ​​para este loop. Dk é o número do filtro no banco de filtros em que estamos e drate é a taxa que passamos através dos filtros no estado estacionário. Ou seja, devido às diferenças naturais do relógio entre o transmissor e o receptor, drate representa essa diferença e atravessaria os caminhos da fase do filtro para manter o receptor bloqueado. Pensando nisso como PLL de segunda ordem, o drate é a freqüência e dk é a fase. Então, atualizamos drate e dk usando as equações de loop padrão com base em dois sinais de erro, dalpha e dbeta. Nós temos esses dois valores definidos um com o outro para um sistema criticamente amortecido, então, no construtor do bloco, nós apenas pedimos 8220gain, 8221 que é dalpha enquanto dbeta é igual a (gain2) 4. Os parâmetros do bloco8217s são: Construa a polifase Sincronizador de sincronização de filtro de banco. Retorna o gancho de loop alfa. Retorna o beta do loop gain. Grpfbclocksyncccfsptr. Getchanneltaps (self. Int channel) rarr floatvector Retorna as torneiras do filtro correspondente para um canal específico Retorna a taxa de clock atual. Grpfbclocksyncccfsptr. Getdampingfactor (self) rarr float Retorna o fator de amortecimento do loop. Grpfbclocksyncccfsptr. Getdiffchanneltaps (self. Int channel) rarr floatvector Retorna as torneiras no filtro derivado para um canal particular grpfbclocksyncccfsptr. Getdifftaps (self) rarr dummy5 Retorna todas as torneiras do filtro derivado grpfbclocksyncccfsptr. Getdifftapsasstring (self) rarr string Retorna as torneiras do filtro derivado como uma string formatada para imprimir grpfbclocksyncccfsptr. Getloopbandwidth (self) rarr float Retorna a largura de banda do loop. Retorna todas as torneiras do filtro correspondente grpfbclocksyncccfsptr. Gettapsasstring (self) rarr string Retorna as torneiras como uma string formatada para impressão Defina o gancho de loop alfa. Set8217s o parâmetro de ganho alpha filter8217s do loop. Esse valor realmente só deve ser configurado ajustando a largura de banda do loop e o fator de amortecimento. Defina o beta do loop gain. Set8217s o parâmetro de ganho Beta do filtro loop8217s. Esse valor realmente só deve ser configurado ajustando a largura de banda do loop e o fator de amortecimento. Defina o fator de amortecimento do loop. Defina o fator de amortecimento do loop filter8217s para. O fator de amortecimento deve ser sqrt (2) 2.0 para sistemas criticamente amortecidos. Ajuste-o para mais nada se você souber o que está fazendo. Deve ser um número entre 0 e 1. Quando um novo fator de amortecimento é definido, os ganhos, alfa e beta, do loop são recalculados por uma chamada para updategains (). Defina a largura de banda do loop. Defina a largura de banda do loop filter8217s para. Isso deve estar entre 2pi 200 e 2pi 100 (em sams rads). Também deve ser um número positivo. Quando um novo fator de amortecimento é definido, os ganhos, alfa e beta, do loop são recalculados por uma chamada para updategains (). Defina o desvio máximo de 0 drate pode ter grpfbclocksyncccfsptr. Settaps (torneiras de flutuador de auto. Dummy5 ourtaps. Std :: vectorlt (p. grfirccf. Std :: allocatorlt (p. grfirccf) gt) gt ourfilter) Restaura as torneiras de filtro filterbank8217s com o novo protótipo de filtro gnuradio. gr. Pfbclocksyncfff (sps duplo. Ganho de flutuador, torneiras do flutuador. Filtros de filtros não assinados 32. float initphase 0. Float maxratedeviation 1.5) rarr grpfbclocksyncfffsptr Sincronizador de tempo usando bancos de filtros polifásicos. Este bloco executa sincronização de tempo para sinais PAM, minimizando a derivada do sinal filtrado, que por sua vez maximiza o SNR e minimiza o ISI. Esta abordagem funciona configurando dois bancos de filtros. Um banco de filtros contém o filtro correspondente de moldagem de impulsos do sinal8217s (como um filtro de coseno subido por raiz), onde cada ramo do banco de filtros contém uma fase diferente do filtro. O segundo banco de filtros contém os derivados dos filtros no primeiro banco de filtros. Pensando nisso no domínio do tempo, o primeiro banco de filtros contém filtros que têm uma forma sinc. Queremos alinhar o sinal de saída a ser amostrado exatamente no pico da forma sinc. A derivada do sinc contém um zero no ponto máximo do sinc (sinc (0) 1, sinc (0) 8217 0). Além disso, a região ao redor do ponto zero é relativamente linear. Utilizamos esse fato para gerar o sinal de erro. Se o sinal dos filtros derivados for din para o i-ésimo filtro, e a saída do filtro correspondente é xin, calculamos o erro como: en (Re Re Im Im) 2.0 Esta equação projeta o erro nas partes reais e imaginárias . Há duas razões pelas quais nós multiplicamos pelo próprio sinal. Primeiro, se o símbolo puder ser positivo ou negativo, mas queremos que o termo de erro sempre nos diga para ir na mesma direção dependendo do lado do ponto zero em que estamos. O sinal de xin ajusta o termo de erro para fazer isso. Em segundo lugar, a magnitude de xin escala o termo de erro dependendo da amplitude do simbolo 8217, então os sinais maiores nos dão um termo de erro mais forte porque temos mais confiança nesse valor do símbolo8217s. Usar a magnitude de xin em vez de apenas o sinal é especialmente bom para sinais com baixo SNR. O sinal de erro, en, nos dá um valor proporcional ao quão longe do ponto zero, estamos no sinal derivado. Queremos direcionar esse valor para zero, então configuramos um loop de segunda ordem. Temos duas variáveis ​​para este loop. Dk é o número do filtro no banco de filtros em que estamos e drate é a taxa que passamos através dos filtros no estado estacionário. Ou seja, devido às diferenças naturais do relógio entre o transmissor e o receptor, drate representa essa diferença e atravessaria os caminhos da fase do filtro para manter o receptor bloqueado. Pensando nisso como PLL de segunda ordem, o drate é a freqüência e dk é a fase. Então, atualizamos drate e dk usando as equações de loop padrão com base em dois sinais de erro, dalpha e dbeta. Nós temos esses dois valores definidos um com o outro para um sistema criticamente amortecido, então, no construtor do bloco, nós apenas pedimos 8220gain, 8221 que é dalpha enquanto dbeta é igual a (gain2) 4. Os parâmetros do bloco8217s são: Construa a polifase filterbank timing synchronizer. grpfbclocksyncfffsptr. channeltaps ( self . int channel ) rarr floatvector Returns the taps of the matched filter grpfbclocksyncfffsptr. diffchanneltaps ( self . int channel ) rarr floatvector Returns the taps in the derivative filter Print all of the filterbank taps of the derivative filter to screen. Print all of the filterbank taps to screen. Set the gain value alpha for the control loop Set the gain value beta for the control loop Set the maximum deviation from 0 drate can have grpfbclocksyncfffsptr. settaps ( self . floatvector taps . dummy5 ourtaps . std::vectorlt(p. grfirfff . std::allocatorlt(p. grfirfff)gt)gt ourfilter ) Resets the filterbank8217s filter taps with the new prototype filter gnuradio. gr. pfbdecimatorccf ( unsigned int decim . floatvector taps . unsigned int channel ) rarr 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 that channel. This concept is very similar to the PFB channelizer (see grpfbchannelizerccf) where only a single channel is extracted at a time. The filter8217s taps should be based on the sampling rate before decimation. For example, using the GNU Radio8217s 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 ceil(taps. size() decim) 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 08217s to make sure each filter has the same number of taps. The theory behind this block can be found in Chapter 6 of the following book. Build the polyphase filterbank decimator. Resets the filterbank8217s filter taps with the new prototype filter gnuradio. gr. pfbinterpolatorccf ( unsigned int interp . floatvector taps ) rarr 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 filter8217s 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 Radio8217s 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 are 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 ceil(taps. size() interp) 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 08217s 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 filterbank8217s filter taps with the new prototype filterGNU 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 gnudynlib. BTW. are the dynamic libraries only for compiling with C C, etc or do they provide modules for python interpreter Here is the env: (6) (26) comment:1 Changed 4 ago by jmroot (Joshua Root) Please remember to Cc the maintainer, and to preview and use WikiFormatting. comment:2 Changed 4 ago by michaelld (Michael Dickens) What do the following return: comment: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 gnudynlib. BTW. are the dynamic libraries only for compiling with C C, etc or do they provide modules for python interpreter Here is the env: comment:4 Changed 4 ago by mikem43190 comment: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 Im missing. I hate to have multiple problems, especially as a beginner, wherein Im 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 currently: comment:12 Changed 4 ago by michaelld (Michael Dickens) OK looks like 1 step forward. I think theres a dependency or 2 missing Ill check it tonight. comment: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 opt local Library Frameworks Python. framework Versions 2.7 lib python2.7, so you dont need to include those in your shell environments PYTHONPATH. And, really, you dont even need to set the PYTHONPATH at all if youre 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 its - really - hard to debug these sorts of issues. comment: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 Ill 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-scipy. comment:15 Changed 4 ago by michaelld (Michael Dickens) From what you wrote, it sounds like gnuradio-companion is not executing correctly, yes Can you attach the terminal output from trying to execute it comment:16 Changed 4 ago by mikem43190 I cant find gnuradio-companion except for a configuration file. No. grc, no gnuradio-companion, no grc. py, no gnuradio-companion. pyc, 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 dont have a list of the files that should be installed and where and Im 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 its a little harder. Assim. 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: env. txt env gt env. txt opt-list. txt ls - Rl opt gt opt-list. txt python sys path. txt in python, print sys. path python-v. txt python - v gt python-v. txt sudo-installed. txt sudo port installed gtsudo-installed. txt which-python. txt which python gt which-python. txt Hope this helps us both. I really dont understand what in my MAC OS environment would cause so much not to work. Thanks for all the help, Sincerely Michael comment:17 Changed 4 ago by michaelld (Michael Dickens) I think that will solve your issues. comment: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 suppose. comment:19 Changed 4 ago by mikem43190 Anbody trying to install GNURadio. this thread might help comment:20 Changed 4 ago by michaelld (Michael Dickens) Excellent Youre welcome thanks for your 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