Convolução 1D
Publicado por Rodrigo Vasconcelos de Barros 30/05/2009
[ Hits: 13.537 ]
Algorítimo para convolução de sinais 1D (vetores) em C++ (mas pode ser adaptado para C sem problemas).
Eu tentei deixá-lo bem genérico, por isso talvez algumas passagens não fiquem claras, mas se tiverem qualquer dúvida não deixem de perguntar.
Se encontrarem algum furo, por favor avisem!
#include <iostream> int *conv(int n,int m,int vet_maior,int vet_menor) // vetor a,vetor b,num de elementos dos dois m>n { int vet_a[n],vet_b[m],*vet_conv[n+m-1],aux[m+2*(n-1)]; for (int i=0;i<n+m-1;i++) { if (i<n) vet_a[i]=vet_menor[i]; if (i<m) vet_b[i]=vet_maior[i]; vet_conv[i]=0; } unsigned int x=0; //aux contadora for (int i=0;i<m+2*(n-1);i++) { if (i<n-1) aux[i]=0; //parte nula else { if (i<n+m-1) { aux[i]=vet_b[x]; //parte = vet_maior x++; } else aux[i]=0; //parte nula } } // convolucao for (int j=0;j<n+m-1;j++) { for (int k=0;k<n;k++) { vet_conv[j]+=vet_a[n-1-k]*aux[j+k]; } } // Imprime resultados (caso precise testar) std::cout << "Vetor A:" << std::endl; for (int i=0;i<n;i++){ std::cout << vet_a[i] << " "; } std::cout << std::endl; std::cout << "Vetor B:" << std::endl; for (int i=0;i<m;i++){ std::cout << vet_b[i] << " "; } std::cout << std::endl; std::cout << "Convolucao:" << std::endl; for (int i=0;i<n+m-1;i++){ std::cout << vet_conv[i] << " "; } return (vet_conv); }
Calculo de IMC escrito em linguagem C
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Visualizar a árvore de arquivos no terminal
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Melhorando a precisão de valores flutuantes em python[AJUDA] (11)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta