Recomendação para livro - Escrevendo código DSP em C

12

Estou procurando um bom livro, que simplesmente mostre como você realmente escreve um código em C, para executar todos os principais métodos DSP.

  1. FFT.
  2. Filtros passa-baixo e passa-alto.
  3. Autocorrelação.
  4. Processamento de ruído.

E todos os conceitos básicos do DSP, da teoria ao código real em C.

Por exemplo, eu tenho 1000 amostras, agora eu gostaria de calcular a FFT, remover ruídos e depois retornar ao eixo do tempo.

Existe algo de bom que cubra tudo isso?

Curnelious
fonte
1
Boa pergunta! Alterei uma tag para pedido de referência, porque parece ser o que você está solicitando.
Peter K.
2
O DFFT é um erro de digitação?
Gilles
Sim, não há DFFT apenas FFT
Brethlosze 7/17/17

Respostas:

13

Posso recomendar dois livros sobre o DSP para linguagem C.

Embree PM - Algoritmos de linguagem C para processamento de sinal digital

É antigo e você pode facilmente adquiri-lo em segunda mão por um preço razoável. Abrange praticamente todos os quatro tópicos que você descreveu.

O outro que eu recomendo é:

Malepati H. - Processamento de Mídia Digital: Algoritmos DSP Usando C

Abrange muito mais tópicos (incluindo algoritmos de correção de erros e algoritmos de processamento de imagem / vídeo). O bom disso é que são fornecidos sinais de teste para testar sua implementação.


Acabei de me lembrar que há outro livro em minha mesa que tem algum código C para DSP.

Press WH - Receitas Numéricas: A Arte da Computação Científica

Existem dois capítulos sobre a transformada de Fourier e suas aplicações.


Uma última sugestão - se você puder, use uma biblioteca C existente em vez de escrever suas próprias ferramentas. Não faz sentido reinventar a roda.

jojek
fonte
4
como qualquer outra habilidade, a invenção é melhor aprendida quando iniciada a partir de exemplos mais simples e praticada o suficiente. Portanto, é sempre benéfico inventar a roda não porque agrega um valor como uma realização, mas porque permite que o inventor construa a percepção necessária da natureza das invenções.
Fat32
3
Eu concordo totalmente com isso. No entanto, em 99% dos projetos que venho realizando, não houve tempo para reinventar a roda. Por outro lado, quando estou fazendo minhas próprias coisas em casa, em 99% dos casos estou reinventando a roda para aprender e melhorar as ferramentas atuais.
jojek
Na minha opinião, o uso de bibliotecas existentes é uma bagunça, não é que você as tenha todas em uma estrutura, você precisa depender de cada uma delas e, com o DSP, você sempre tem diferentes tipos de entradas, e as coisas são muito mais complicado então apenas uma caixa preta que faz isso e aquilo.
Curnelious 4/03/16
@ Event Event Embora você esteja certo até certo ponto (e para algumas bibliotecas), não posso concordar que todas as bibliotecas existentes sejam uma bagunça. E devemos admitir que todos os estamos usando. O ponto é mais sobre a filosofia do que sobre a realidade.
precisa
Uma grande vantagem do uso de bibliotecas conhecidas é que o usuário pode ter mais ou menos certeza de que o código é realmente revisado. Muitas vezes, pode haver alguns casos extremos que as pessoas não pensam que podem ser bastante problemáticos em algumas situações muito específicas. Não consigo pensar em exemplos de DSP agora, mas um exemplo muito ilustrativo de tipo geral de problema é tentar calcular o número de minutos de uma certa data no passado até agora. No início, pode parecer tão simples quanto obter apenas o número de dias, mas quando a hora do relógio e as alterações no calendário entram em jogo, fica muito complicado.
precisa saber é o seguinte
7

Eu recomendaria Introdução ao processamento de sinais por SJ Orfanidis. É um ótimo livro com uma boa mistura de teoria e prática e também possui exemplos de código em C e Matlab. Depois de resolvê-lo, você saberá o suficiente para continuar sozinho.

Matt L.
fonte
0

Embree PM - Algoritmos de linguagem C para processamento de sinal digital

foi útil no meu trabalho MSC na construção de filtros ... embora você possa criar os cabeçalhos com o codificador Matlab ... Eu só tive problemas com a implementação do fft dele, que estava com números complexos, e se trig, que é mais fácil de implementar na vida real .

Chika Worka - Aluna de doutorado
fonte
-1

Você pode procurar o código fonte das fontes openSAL e Octave das funções de processamento de sinal do Matlab (não C, mas útil). Foi o que eu fiz.

VK69UK
fonte
Este é um procedimento arriscado .... O código do Matlab inclui muitas funções aninhadas e é muito provável que termine a engenharia reversa do código ... Eu tentei isso no passado e não acho que um novato faça isso
Brethlosze