Dada uma resposta de frequência obtida com a FFT, eu gostaria de aplicar uma suavização de oitava de 1 / n. Qual filtro devo usar e como? Talvez alguém possa apontar para uma boa referência (um papel ou livro sobre o assunto).
Você está procurando um filtro rosado , que atenua a frequênciaf à amplitude 1 / f? Ou você realmente quer algo que atenua a frequênciaf à amplitude 1 / (lg2f)?
Wandering Logic
1
Não quero atenuar nenhuma frequência. Quero que os dados a ser alisada, com uma largura de banda variável, isto é, uma oitava, 1/3 de uma oitava, etc
Psirus
1
As respostas de frequência do alto-falante geralmente são suavizadas, para facilitar a interpretação do gráfico, mas ainda bastante precisas (suavização de 1/20 de oitava) ou suavização muito alta (1/3 de oitava), por exemplo, no marketing. Isto é o que eu li várias vezes, o que significa exatamente que estou tentando descobrir aqui.
Psirus 21/07
1
Portanto, sua pergunta não é sobre a alteração de um sinal, é sobre como mostrar graficamente a resposta de frequência de um dispositivo. Isso está certo?
22613 Jim Clay
1
Eu acho que este artigo contém informações valiosas. No entanto, infelizmente, não é gratuito. A abordagem fundamental também é descrita neste .
23616 apple_soup
Respostas:
8
Normalmente, "suavização" significa "substituir o valor atual pela média sobre os vizinhos". O mais comum é a suavização de energia, onde a suavização resulta na média de energia durante o intervalo de suavização e as informações da fase são perdidas. A suavização complexa também pode ser feita, mas é um negócio complicado por causa da quebra de fase.
Onde Wk(i)é uma função de janela adequada. No caso de, digamos, suavização da terceira oitava, isso pode ser derivado, pois a magnitude ao quadrado da função de transferência de uma banda de terceira oitava passa o filtro em torno da frequência k. Isso também significa que, para uma FFT de, digamos, 1024 pontos, é necessário projetar 1024 filtros passa-banda diferentes, de modo que é um bom trabalho.
As coisas podem ser simplificadas se a forma exata do filtro de suavização for flexível. A suavização retangular pode ser feita como
Estou tentando implementar isso no código C e tenho medo de me perder um pouco na notação. Estou tendo dificuldade para entender como, por exemplo, o somatório de i que funciona de a para b funciona? Qualquer assistência apreciada.
Andrew Smith
Dois polegares, mas infelizmente apenas um voto. Essa pergunta adicional pergunta como é feito um nivelamento complexo de 1 / n, incluindo os negócios complicados relacionados ao empacotamento de fase.
Respostas:
Normalmente, "suavização" significa "substituir o valor atual pela média sobre os vizinhos". O mais comum é a suavização de energia, onde a suavização resulta na média de energia durante o intervalo de suavização e as informações da fase são perdidas. A suavização complexa também pode ser feita, mas é um negócio complicado por causa da quebra de fase.
A suavização de energia pode ser expressa como
OndeWk(i) é uma função de janela adequada. No caso de, digamos, suavização da terceira oitava, isso pode ser derivado, pois a magnitude ao quadrado da função de transferência de uma banda de terceira oitava passa o filtro em torno da frequência k. Isso também significa que, para uma FFT de, digamos, 1024 pontos, é necessário projetar 1024 filtros passa-banda diferentes, de modo que é um bom trabalho.
As coisas podem ser simplificadas se a forma exata do filtro de suavização for flexível. A suavização retangular pode ser feita como
Onde
são simplesmente os índices das bordas da banda paranth oitava suavização.
Existem mais alguns métodos entre a janela arbitrária e a retangular em termos de complexidade.
fonte