Eu fiz uma pergunta sobre estouro de pilha .
Estou tendo um pequeno problema, no entanto. Como sugerido por Paul RI estou espelhamento meus mais baixos caixas para os superiores compartimentos.n / 2
Eu tenho algumas perguntas no entanto.
- Estou assumindo que é ? Assim, para um pedido 10 IFFT, eu estaria espelhando os 512 compartimentos de frequência inferiores nos 512 principais? Isso também me produziria 1024 amostras reais no final?2 f f t ó r d e r
- Ao espelhar, isso significa que o compartimento 0 iria para o compartimento , o compartimento 1 para o compartimento n - 2 e assim por diante?
- Parece que estou recebendo alguma forma de reflexão em um quarto da minha frequência de amostragem? Isso significa que a metade superior da minha faixa de frequência está realmente aparecendo na metade inferior. Alguém tem alguma idéia do porquê?
- Alguém tem alguma idéia de por que estou obtendo um efeito de striping, onde recebo 512 amostras de uma magnitude e as próximas 512 de uma diferente? (Este "poderia" ser o local de origem do meu espelhamento)
Eu acho que é isso por enquanto. Qualquer ajuda seria extremamente útil !!
Edit: Dar-lhe uma imagem do reflexo será quase impossível o suficiente, pois é muito difícil de ver! Basicamente, estou amostrando a 22 kHz e obtendo nada além de "ruído" acima de 11 kHz. O que "deveria" (embora obviamente eu esteja fazendo algo errado) estar acima de 11 kHz parece refletir de 11 kHz a 0. É muito estranho.
Quanto à imagem das listras, elas podem ser vistas aqui
Cada faixa, acredito, tem 512 amostras de largura.
Respostas:
Falando sobre o seu objetivo original de converter um espectrograma em um sinal de áudio que pareça significativo, não há garantia de que o que você obter será agradável. Como foi apontado no Stack Overflow, o espectrograma não possui informações de fase; o método sugerido lá assume que a fase de cada compartimento do domínio da frequência é zero (portanto, a operação conjugada mostrada acima é supérflua). Embora o ouvido humano não seja terrivelmente sensível à distorção de fase no áudio, talvez você precise fazer outra coisa, dependendo exatamente do que espera alcançar.
fonte
O seu índice [0] é o componente DC e não deve ser espelhado. O ponto de reflexão deve ser (N / 2) +1
fonte
Digamos que você tenha uma sequência real de 1024 pontos. Uma FFT complexa transforma isso em 1024 números complexos. No entanto, X [0] (DC) e X [512] Nyuist são reais e X [1] .. X [511] são conjugados simétricos, portanto todo o espectro ainda pode ser representado com 1024 números (2 reais e 511 complexos). Digamos que você tenha um espectro de meio lado X [0] ... x [512] e queira criar a versão simétrica conjugada dele Y [0] ... Y [1023]. Faça o seguinte
Se você usa o Matlab, precisa adicionar "1" a todos os índices, pois o Matlab começa a contar em 1 (não em 0).
fonte
A reflexão é normal: é chamada de apelido ou dobragem de frequência, e acontece quando o sinal que você está amostrando excede o que é chamado de frequência Nyquist, que é metade da sua frequência de amostragem. Idealmente, você deseja uma frequência de amostragem de pelo menos duas vezes a frequência do sinal que está amostrando, exatamente por esse motivo.
fonte