Conjugado complexo e IFFT


8

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 / 2n/2n/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 rn2fftOrder
  • Ao espelhar, isso significa que o compartimento 0 iria para o compartimento , o compartimento 1 para o compartimento n - 2 e assim por diante?n1n2
  • 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.


Não sei ao certo o que exatamente você quer dizer com: 1) alguma forma de reflexão em fs / 4 e 2) efeito de striping ... Você poderia fornecer uma figura mostrando seu gráfico de espectrograma / fft apontando o que você quer dizer com estes ? Posso assumir o que você quer dizer, mas isso não seria muito útil.
Lorem Ipsum

Estou com o yoda por não entender sua descrição, mas o bin de espelhamento 0 a n-1 definitivamente parece incorreto. O compartimento 0 representa DC e não deve ser espelhado em nenhum lugar. Se n for par, o compartimento n / 2 também precisará de tratamento especial. Além disso, eu recomendaria não chamar um IFFT de 1024 pontos como IFFT de ordem 10, pois essa terminologia tem mais probabilidade de confundir do que de ajudar.
Dilip Sarwate

@yoda: Atualizado.
Goz

@Dilip Sarwate: Desculpas, é muito difícil de descrever e ainda mais difícil de ver.
Goz

@Goz quais são os eixos?
Lorem Ipsum

Respostas:


4

N

X[k]=X[Nk],k=1,2,,N21

kX[0]N20(N1)πNπ(N1)2πN2ππ2πN

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.


3

O seu índice [0] é o componente DC e não deve ser espelhado. O ponto de reflexão deve ser (N / 2) +1


1

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

Y[0] = X[0], Y[1] = X[1] .... Y[512] = X[512];
Y[513] = conjugate(X[511]), Y[514] = conjugate(X[510]) ... Y[1023] = conjugate(X[1])

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).


0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.