quinta-feira, 2 de agosto de 2012

Scilab: usando o "xcos"

Janela inicial do Xcos.
O Scilab possui um ambiente de edição gráfico (GUI) que usa blocos prontos para simulação - Xcos. Esse ambiente não é tão completo quanto o Simulink do Matlab, mas com ele é possível desenvolver algumas ideias interessantes. Esse ambiente gráfico é chamado no console do Scilab digitando-se simplesmente "xcos". Nesta postagem mostramos um exemplo simples que combina alguns dos blocos disponíveis.

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.

Um comentário:

  1. 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