Janela inicial do Xcos. |
Exemplo: usar um gerador de números aleatórios para contaminar uma onda senoidal e depois filtrar essa onda digitalmente usando um filtro FIR; mostrar o resultado graficamente. Os blocos necessários são:
- Random generator - real, "flag" = 1 (ruído branco), média nula, variância igual a 0,5 (parâmetro configuráveis dentro do bloco; paleta Fontes;
- Sinusoid generator - gerador senoidal, paleta Fontes;
- Bigsom_f - somador com duas entradas, paleta Operações Matemáticas;
- CMSCOPE e CSCOPE - para visualizar os sinais gerados, paleta Receptores;
- GAINBLK_f - ganho constante, paleta Operações Matemáticas;
- CLOCK_c (Activation clock) - responsável por gerar eventos de tempo, paleta Tratamento de eventos;
- DOLLAR_f - atraso de uma amostra (1/z, delay operator), paleta Sistema de tempo discreto.
O sistema somente com os geradores, um somador, o clock_c e um "scope" simples pode ser visto abaixo:
O sistema completo e interligado pode ser visto abaixo:
O filtro digital, composto pelo ganhos, somador e atrasos (1/z) podem ser agrupados em um único bloco (ou "superbloco"):
Para gerar o superbloco basta selecionar todos os elementos de interesse e apertar o botão direito do mouse, em seguida escolher a operação correspondente. Superbloco do filtro digital "por dentro":
Finalmente, o sinal mostrado pelo CMSCOPE pode ser visto abaixo:
Curva superior: sinal com ruído; curva abaixo: sinal filtrado. |
Obs 1: essa é uma postagem "exclusiva" aos estudantes que estão fazendo o curso de Scilab.
Obs 2: alguns itens podem diferir um pouco dependendo da versão, nesta postagem o Scilab Version usado foi 5.3.3.1311149487.
Professor, não teria uma forma de filtrar essa onda contaminada com ruído e ela ficar tal como ou beeeem parecida com a senóide original?
ResponderExcluir