Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como executar processamento de sinais no Raspberry Pi

O processamento de sinais é uma área fundamental na engenharia elétrica e na ciência da computação, com aplicações que vão desde a análise de áudio até a comunicação digital. O Raspberry Pi, um microcomputador de baixo custo e altamente versátil, é uma plataforma ideal para projetos de processamento de sinais devido à sua capacidade de executar software sofisticado e interagir com hardware externo.

Neste artigo, vamos explorar como você pode usar o Raspberry Pi para realizar tarefas básicas de processamento de sinais. Vamos focar em exemplos práticos que utilizam a biblioteca Python numpy para manipulação de sinais e matplotlib para visualização. O uso do Python torna o desenvolvimento mais acessível e a grande quantidade de bibliotecas disponíveis facilita a implementação de algoritmos complexos.

Exemplos:

  1. Instalação das Bibliotecas Necessárias: Primeiro, precisamos instalar as bibliotecas necessárias. Abra o terminal no seu Raspberry Pi e execute os seguintes comandos:

    sudo apt-get update
    sudo apt-get install python3-pip
    pip3 install numpy matplotlib
  2. Gerar e Visualizar um Sinal Senoidal: Vamos começar gerando um sinal senoidal simples e visualizando-o. Crie um arquivo Python chamado sine_wave.py e adicione o seguinte código:

    import numpy as np
    import matplotlib.pyplot as plt
    
    # Parâmetros do sinal
    freq = 5  # Frequência em Hz
    sampling_rate = 500  # Taxa de amostragem em Hz
    duration = 1  # Duração em segundos
    
    # Criação do vetor de tempo
    t = np.linspace(0, duration, int(sampling_rate * duration), endpoint=False)
    
    # Gerar o sinal senoidal
    signal = np.sin(2 * np.pi * freq * t)
    
    # Plotar o sinal
    plt.plot(t, signal)
    plt.xlabel('Tempo [s]')
    plt.ylabel('Amplitude')
    plt.title('Sinal Senoidal')
    plt.show()

    Execute o script no terminal com o comando:

    python3 sine_wave.py
  3. Filtragem de Sinais: Agora, vamos adicionar ruído ao nosso sinal e aplicar um filtro passa-baixa para removê-lo. Adicione o seguinte código ao seu script sine_wave.py:

    from scipy.signal import butter, lfilter
    
    # Função para criar um filtro passa-baixa
    def butter_lowpass(cutoff, fs, order=5):
       nyq = 0.5 * fs
       normal_cutoff = cutoff / nyq
       b, a = butter(order, normal_cutoff, btype='low', analog=False)
       return b, a
    
    # Função para aplicar o filtro
    def lowpass_filter(data, cutoff, fs, order=5):
       b, a = butter_lowpass(cutoff, fs, order=order)
       y = lfilter(b, a, data)
       return y
    
    # Adicionar ruído ao sinal
    noise = np.random.normal(0, 0.5, signal.shape)
    noisy_signal = signal + noise
    
    # Aplicar o filtro passa-baixa
    cutoff = 7  # Frequência de corte em Hz
    filtered_signal = lowpass_filter(noisy_signal, cutoff, sampling_rate)
    
    # Plotar o sinal original, ruidoso e filtrado
    plt.figure(figsize=(10, 6))
    plt.subplot(3, 1, 1)
    plt.plot(t, signal)
    plt.title('Sinal Original')
    plt.subplot(3, 1, 2)
    plt.plot(t, noisy_signal)
    plt.title('Sinal com Ruído')
    plt.subplot(3, 1, 3)
    plt.plot(t, filtered_signal)
    plt.title('Sinal Filtrado')
    plt.xlabel('Tempo [s]')
    plt.tight_layout()
    plt.show()

    Execute novamente o script:

    python3 sine_wave.py

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.