Em formação

Como transformar dados em um espectro de frequência?

Como transformar dados em um espectro de frequência?


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Recentemente, estudei um artigo intitulado "O que sua cadeira sabe sobre seu nível de estresse?

Ele pode ser baixado no link abaixo.

http://www.barnrich.ch/wiki/data/media/pub/2010_what_does_your_chair_know_about_your_stress_level.pdf

na página 210, a Fig.5 (figura 5) mencionou que

Espectros da norma do vetor CoP durante o experimento (estágios 3-7) para o mesmo sujeito usado na Fig. 4.

Como eles fizeram para transformar a Fig.4 em Fig.5? E o que os eixos xey significam na Fig.5?

Fig4

Fig5


No artigo citado, sua metodologia é explicada na seção Materiais e Métodos na p.209, onde diz:

A Fig. 4 mostra a norma do CoP durante o experimento [...] que são representados por picos na norma do CoP [...] Para caracterizar as propriedades de movimento do CoP, calculamos os espectros correspondentes ao longo das etapas do experimento […]. A Fig. 5 mostra os espectros da norma do CoP […].

Spectra, ou mais apropriadamente chamado espectro de frequência ou espectrogramas, são normalmente gerados por Transformação Rápida de Fourier (FFT). FFT essencialmente decompõe um sinal em uma coleção de ondas senoidais. o eixo x de um espectrograma (como a Fig. 5 do artigo) representa o frequência de cada onda senoidal, o eixo y a magnitude (amplitude ou mais apropriadamente o 'potência') de cada onda senoidal no espectro de frequência.


Sistema nervoso autónomo

Iwona Cygankiewicz, Wojciech Zareba, em Handbook of Clinical Neurology, 2013

Análise da variabilidade da frequência cardíaca no domínio da frequência

A análise espectral fornece informações sobre como a potência da HRV é distribuída em função da frequência. Esta análise é geralmente realizada com base em gravações de curto prazo (5 minutos) sob condições controladas. Os índices espectrais são avaliados na linha de base, bem como em um reflexo de uma série de manobras. No entanto, gravações de longo prazo também são freqüentemente usadas (Força-tarefa, 1996 Crawford et al., 1999 Lombardi, 2001). A análise espectral visa separar diferentes componentes de frequência de uma modulação de intervalos RR inteira (Fig. 31.2). A abordagem mais frequentemente usada para calcular índices espectrais é baseada na transformação rápida de Fourier (FFT). A potência total da variabilidade do intervalo RR é a variância total e corresponde à soma das quatro bandas espectrais, LF (baixa frequência), HF (alta frequência), VLF (muito baixa frequência) e ULF (Tabela 31.1). A análise espectral obtida de registros de curto prazo é caracterizada por três componentes principais: os componentes HF LF e VLF. Embora o tônus ​​vagal seja considerado um dos principais contribuintes para o componente de IC, a patogênese exata da FL não foi totalmente elucidada. Acredita-se que ela reflita a influência simpática e vagal e foi correlacionada com a sensibilidade do barorreflexo (La Rovere et al., 1998). Recentemente, Moak et al. (2007) documentaram que o poder de LF reflete a função barorreflexa mais do que a inervação simpática cardíaca. Neste estudo, a potência de LF não foi relacionada ao spillover de norepinefrina cardíaca, embora tenha mostrado correlação significativa com a sensibilidade do barorreflexo. Pacientes com BRS diminuído exibiram valores mais baixos de LF independentemente da inervação cardíaca. A falta de correlação entre LF e spillover de norepinefrina cardíaca foi posteriormente confirmada por Baumert et al. (2009) em um estudo com pacientes com depressão e transtorno do pânico. O equilíbrio simpático-vagal é frequentemente descrito pela relação BF / AF. Durante condições controladas de repouso, indivíduos saudáveis ​​mostram uma ligeira predominância de LF sobre HF, portanto, a relação LF / HF é geralmente entre 1 e 2. No entanto, à luz das associações acima mencionadas entre a sensibilidade barorreflexa e LF, a relação LF / HF representa um relação mútua entre a sensibilidade barorreflexa e a modulação parassimpática, em vez do chamado equilíbrio simpático-vagal.

Fig. 31.2. Uma análise espectral de amostra de um sujeito saudável (gravação de 5 minutos).

O poder VLF representa vários fatores que influenciam o coração, como termorregulação, o sistema renina-angiotensina e fatores endoteliais. Também é considerado como uma medida da atividade simpática. O componente espectral ULF representa oscilações muito baixas e pode refletir ritmos circadianos e neuroendócrinos. A potência dos componentes espectrais pode ser expressa em unidades absolutas (ms 2) e unidades normalizadas (un). As unidades normalizadas são obtidas da seguinte forma:

Gravações de cinco minutos em condições controladas são recomendadas para análise no domínio da frequência. Supõe-se que pelo menos 1 minuto de gravação é necessário para avaliar o componente de HF, enquanto 2 minutos são necessários para a análise de LF (Task Force, 1996 Crawford et al., 1999). A análise espectral também pode ser realizada em todo o período de 24 horas de segmentos de 5 minutos em média ao longo de todo o período de 24 horas, dando médias das modulações atribuíveis aos componentes LF e HF.

Foi documentado que os parâmetros de tempo e frequência estão fortemente correlacionados entre si. Embora os métodos no domínio do tempo sejam preferidos para a análise de registro de longo prazo, os métodos espectrais são preferidos para avaliar as respostas reflexas sob condições controladas. A maioria dos aparelhos Holter comerciais fornecem uma medição automática dos parâmetros da VFC, entretanto, deve-se enfatizar que, independentemente do método aplicado, a edição cuidadosa dos intervalos RR é necessária em cada caso. A metodologia de medição da VFC foi padronizada em um relatório especial da Força Tarefa do ESC / NASPE em 1996 e nas diretrizes do ACC / AHA para eletrocardiografia ambulatorial (Força Tarefa, 1996 Crawford et al., 1999).


Por que devo zerar um sinal antes de obter a transformada de Fourier?

O preenchimento de zero permite usar um FFT mais longo, o que produzirá um vetor de resultado FFT mais longo.

Um resultado de FFT mais longo tem mais bins de frequência com espaçamento de frequência mais próximo. Mas eles fornecerão essencialmente o mesmo resultado de uma interpolação Sinc de alta qualidade de um FFT menor não preenchido com zero dos dados originais.

Isso pode resultar em um espectro de aparência mais suave quando plotado sem interpolação adicional.

Embora esta interpolação não ajude a resolver ou a resolução de e / ou entre frequências adjacentes ou próximas, pode tornar mais fácil resolver visualmente o pico de uma única frequência isolada que não tem nenhum sinal adjacente significativo ou ruído no espectro . Estatisticamente, a densidade mais alta de bins de resultado FFT provavelmente tornará mais provável que o bin de magnitude de pico esteja mais próximo da frequência de uma sinusóide de frequência de entrada isolada aleatória e sem interpolação adicional (parabólica, et.al.).

Mas, essencialmente, o preenchimento de zero antes de um DFT / FFT é um método computacionalmente eficiente de interpolação de um grande número de pontos.

Preenchimento zero para correlação cruzada, autocorrelação ou filtragem de convolução é usado para não misturar resultados de convolução (devido à convolução circular). O resultado completo de uma convolução linear é mais longo do que qualquer um dos dois vetores de entrada. Se você não fornecer um local para colocar o fim desse resultado de convolução mais longo, a convolução rápida FFT irá apenas misturá-lo e fragmentar o resultado desejado. O preenchimento de zeros fornece um grupo de zeros para misturar o resultado mais longo. E é muito mais fácil desfazer a mistura de algo que só foi misturado / somado com um vetor de zeros.

Há algumas coisas a serem consideradas antes de decidir zerar o sinal no domínio do tempo. Você pode não precisar zerar o sinal!

1) Aumente os dados do domínio do tempo (não preenchimento de zero) para obter melhor resolução no domínio da frequência.

2) Aumente o número de pontos FFT além do comprimento do sinal no domínio do tempo (preenchimento zero) se você gostaria de ver uma melhor definição dos compartimentos FFT, embora isso não compre uma resolução mais verdadeira. Você também pode usar o pad para obter uma potência de 2 pontos FFT.

3) Ao mexer nos pontos FFT (no ponto anterior), certifique-se de que seus pontos de frequência terminem onde você deseja. O espaçamento dos pontos é $ f_s / N $, onde $ f_s $ é a frequência de amostragem e $ N $ é o número de pontos FFT.

Existem algumas figuras interessantes que ilustram esses pontos em http://www.bitweenie.com/listings/fft-zero-padding/

Uma última coisa a ser mencionada: se você zerar o sinal no domínio do tempo e quiser usar uma função de janelamento, certifique-se de colocar o sinal em janela antes de zerar. Se você aplicar a função de janela após o preenchimento de zero, não realizará o que a janela deve realizar. Mais especificamente, você ainda terá uma transição abrupta do sinal para zero em vez de uma transição suave para zero.

Em geral, o preenchimento de zero antes do DFT é equivalente à interpolação, ou amostragem com mais frequência, no domínio transformado.

Aqui está uma visualização rápida de como funciona o oposto. Se você amostrar um sinal de banda limitada no tempo a uma taxa mais alta, obterá um espectro mais "comprimido", ou seja, um espectro com mais zeros em ambas as extremidades. Em outras palavras, você pode obter mais amostras no tempo simplesmente preenchendo com zeros a frequência após o DFT'ing, e então IDFT'ing o resultado zerado.

O mesmo efeito ocorre ao contrário quando o preenchimento de zero ocorre no tempo. Isso tudo porque a reconstrução perfeita do sinal é possível, desde que o sinal seja limitado em banda e amostrado pelo menos na taxa de Nyquist.

O termo 'resolução' depende de como você o define. Para mim, significa quão bem os dois pontos adjacentes de observação no tempo ou frequência podem ser discriminados de forma confiável (estatisticamente). Neste caso, a resolução realmente depende do tamanho do DFT devido ao vazamento espectral. Ou seja, quanto menor o tamanho da janela, mais borrado ou borrado o sinal transformado e vice-versa. É diferente da frequência com que você faz a amostragem ou do que chamo de 'definição'. Por exemplo, você pode ter uma imagem muito borrada amostrada em alta taxa (alta definição), mas ainda assim não pode obter mais informações do que amostragem em uma taxa mais baixa. Portanto, em resumo, o preenchimento de zero não melhora a resolução de forma alguma, pois você não obtém mais informações do que antes.

Se alguém tiver algum interesse no espectro da função de janela usada para isolar a amostra no domínio do tempo, então o preenchimento com zeros IRÁ aumentar a resolução de frequência da função de janela.

Se o sinal de tempo for $ x (t) w (t) $, onde $ w (t) $ é a função de janela, então o espectro geral é $ X (f) * W (f) $, onde $ * $ indica convolução.

Se sua função de janela for um retângulo simples (uma extração de algum conjunto de valores de $ x (t) $. Então $ X (f) $ é a função de sincronização. Portanto, por exemplo, se Nfft é o mesmo que a largura do seu retângulo, e você tinha uma sinusóide precisamente em uma das frequências do compartimento, então as amostras da função de sincronização que apareceriam centradas naquele compartimento caem exatamente nos cruzamentos de zero fora do pico, e você não vê a forma da sincronização no espectro. Se você agora zero pad seus dados indo para o FFT, você verá algumas amostras em lugares diferentes dos cruzamentos de pico e zero, revelando a forma da função de sincronização no espectro resultante. Então, para que serve o preenchimento de zeros? Certamente é de uso educacional ao revelar a natureza da transformação discreta de sinais em janela, que é o caso usual. Em um sentido prático, pode ser útil em qualquer caso em que você esteja interessado na forma espectral de um envelope isolado flutuando em uma onda portadora.

Pode haver diferentes razões para isso, dependendo de quaisquer processos realizados antes e depois da transformada de Fourier. O motivo mais comum é alcançar uma resolução de frequência maior em qualquer transformação resultante. Isso quer dizer que, quanto maior o número de amostras usadas em sua transformação, mais estreita será a largura de bin no espectro de potência resultante. Lembre-se: binwidth = sample_frequency / transform_size (freqüentemente chamado de tamanho da janela). Você pode imaginar a partir disso que, à medida que aumenta o tamanho da transformação, a largura de bin reduz (= melhor resolução de frequência). O preenchimento de zero é uma forma de aumentar o tamanho da transformação sem introduzir novas informações no sinal.

Então, por que não pegar uma transformação maior sem preenchimento de zero? Isso não teria o mesmo efeito? Boa pergunta. Em muitos casos, você pode querer analisar um fluxo de dados no domínio do tempo, para o qual pode estar usando uma transformação de Fourier de curto tempo (stft). Isso envolve tomar uma transformação a cada N amostras de acordo com a resolução de tempo necessária para caracterizar as mudanças no espectro de frequência. Aqui está o problema. Uma janela muito grande e você perderá a resolução de tempo, uma janela muito pequena e você perderá a resolução de freqüência. A solução então é pegar pequenas janelas de domínio de tempo dando a você uma boa resolução de tempo e, em seguida, colocá-las em zero para dar a você uma boa resolução de frequência. Espero que seja útil para você


Introdução

A análise de sinais de eletroencefalografia (EEG) é uma das principais ferramentas metodológicas para a compreensão de como a atividade elétrica do cérebro suporta as funções cognitivas [1]. Um dos principais motivos da importância do EEG é a notável resolução temporal. Além disso, o procedimento de mensuração do EEG na superfície do couro cabeludo é não invasivo e de baixo custo, o que o torna excelente tanto para a prática clínica quanto para estudos de cognição.

A literatura extensa apóia a possibilidade de investigar as funções cognitivas, como a memória episódica, por meio de registros de atividades neurais [2–4]. Na psicologia cognitiva, os potenciais relacionados a eventos são indicadores de processos cognitivos. Para as respostas transitórias que não são especificamente bloqueadas no tempo, as imagens de frequência de tempo (TF) de sinais de EEG se tornaram uma das técnicas mais populares da pesquisa de hoje. As imagens TF são freqüentemente usadas para extrair os recursos para alimentar um classificador de rede neural, e a maioria dos métodos TF são baseados na transformada de Fourier de curto tempo (espectrograma) e na transformada wavelet (escalograma). A qualidade da representação TF é crucial para a extração de características robustas e relevantes [1, 5–7], levando à demanda por estimadores espectrais de alto desempenho. A transformada wavelet, usando a wavelet Morlet, é o método TF mais popular hoje [8-11].

Recentemente, tem sido argumentado que as ondas senoidais e as wavelets do espectrograma e do escalograma devem ser substituídas por formas de onda fisiologicamente definidas que podem ser relacionadas a um modelo físico baseado em indivíduos [12, 13]. Com técnicas mais sofisticadas e aplicações avançadas, o aumento da adaptação individual dos métodos torna-se ainda mais crítico. Consideramos um modelo estocástico de base individual para os sinais, baseado na definição de processos estacionários localmente (LSPs), introduzida por Silverman em [14]. LSPs são caracterizados por uma função de covariância que é a modulação no tempo de uma função de covariância estacionária comum.

O kernel ótimo para a estimativa do espectro de Wigner-Ville (WVS) para uma determinada classe de LSPs é obtido em [15]. Com base neste resultado, derivamos o WVS ótimo do erro quadrático médio (MSE) para a covariância de nosso modelo. O uso de um kernel de frequência de tempo adequado oferece uma abordagem valiosa para resolver o problema fundamental na análise de frequência de tempo estocástica, que é a estimativa de um espectro de frequência de tempo confiável a partir de apenas algumas realizações de um processo estocástico. A derivação dos kernels tempo-frequência ótimos de modelos estocásticos tem sido um campo de pesquisa de interesse em processamento de sinal por um longo tempo [16, 17]. Uma implementação eficiente é baseada em um espectrograma multitaper ótimo equivalente [18-20]. Os kernels são dependentes de parâmetros e, graças ao método de inferência HAnkel-Toeplitz Separation (HATS) introduzido em [21], podemos estimar o WVS ótimo de MSE a partir dos dados medidos. A derivação dos multitapers correspondentes para o kernel é de grande interesse na comunidade de processamento de sinais, pois suas principais vantagens incluem a eficiência computacional das propriedades espectrais e o uso em tempo real.

Em um estudo de simulação, comparamos o WVS ideal de MSE com representações de TF de última geração. Alguns resultados preliminares são apresentados em um artigo de conferência anterior [22]. Aqui, estendemos o estudo incluindo o estimador clássico do WVS e da transformada wavelet entre as representações TF comparadas. Uma vez que a transformada wavelet é uma das representações mais populares utilizadas para a classificação do sinal de EEG, sua inclusão entre os métodos de última geração considerados na comparação é especialmente relevante para avaliar as vantagens oferecidas pela abordagem proposta. Além disso, estendemos a comparação quantitativa em termos de MSE com a avaliação da precisão da classificação de sinais simulados com base nas características de TF extraídas com os diferentes métodos. A configuração controlada de um estudo de simulação permite avaliar como a qualidade da estimativa TF afeta a precisão da classificação de classes de sinais indistinguíveis no domínio do tempo, mas com espectros TF distintos. O classificador implementado é uma rede neural perceptron multicamadas, que foi usada anteriormente para a classificação de sinais de EEG com base em recursos de TF, por exemplo, [5, 23, 24]. O exemplo de dados reais considerado consiste em três categorias de sinais de EEG medidos durante uma tarefa de codificação de memória [8, 25, 26].

O artigo está estruturado da seguinte forma. Na Seção 2, apresentamos as diferentes representações de TF, o modelo de LSPs usado tanto no estudo de simulação quanto no estudo de caso de dados reais, a expressão para o WVS ótimo de MSE e a rede neural usada para classificação. Os resultados para os estudos de simulação e para o caso de dados reais são apresentados na Seção 3. Na Seção 3.1, o desempenho do estimador espectral derivado é avaliado em termos de MSE, enquanto na Seção 3.2, o desempenho é avaliado como precisão de classificação em um estudo simulado. Na Seção 3.3, apresentamos os resultados da classificação dos sinais de EEG coletados em um estudo sobre codificação e recuperação da memória humana. Comentários finais e orientações para pesquisas futuras são fornecidos na Seção 4.


Bandas de frequência

Algum tempo atrás, houve notícias sobre o ‘o homem mais feliz da terra ', um monge tibetano cujo cérebro produziu ondas gama nunca antes relatadas na neurociência. Foi demonstrado que a meditação tem um efeito na atividade da banda gama (3), associada a uma função cognitiva superior ... Mas como realmente interpretamos essas bandas de frequência?

Abaixo você encontrará uma breve introdução às diferentes bandas de frequência e seu significado em vários processos mentais.

Alpha Waves

Se você está familiarizado com a pesquisa de assimetria pré-frontal com base nas descobertas de Davidson (4), então provavelmente já ouviu falar sobre o banda de frequência alfa, geralmente na faixa de 7-12 Hz. Para recapitular brevemente, a potência alfa é considerada inversamente relacionada à ativação cortical e o aumento da atividade no córtex pré-frontal esquerdo está associado a motivação de abordagem. Embora também tenha sido interpretado como um indicador de respostas emocionais positivamente valiosas, as evidências mostram que não é totalmente correto. Ou seja, estados emocionais como raiva e ciúmes são valenciados negativamente, mas também desencadeiam uma ativação hemisférica esquerda relativamente mais forte (5).

A suposição subjacente à pesquisa de assimetria de EEG é que as ondas alfa simplesmente indicam o estado ocioso do cérebro. No entanto, muitos autores afirmam que esta suposição é simplificado demais, pois não reflete o conhecimento atual do papel funcional das oscilações alfa ou da diferenciação das redes pré-frontais (6).

As oscilações alfa têm demonstrado desempenhar um papel fundamental na inibição de processamento não essencial, que por sua vez facilita o desempenho da tarefa (7). Além disso, as ondas alfa estão intimamente relacionadas com a passagem da consciência perceptual e do controle da atenção (6). Assim, eles poderiam ser considerados como um índice de processamento de cima para baixo, representando um mecanismo para aumentando a relação sinal-ruído (8).

Ondas Delta

Delta oscilações têm a menor faixa de frequência (& lt4Hz) e estão envolvidas em processos motivacionais (9). Demonstrou-se que a potência do delta EEG se correlaciona positivamente com a amplitude do componente P300 em estudos de ERP, que é comumente associado a processos no sistema de recompensa por dopamina. Indica que os estados associados à necessidade de satisfazer a necessidades biológicas básicas pode ser associado ao aumento da atividade delta. De fato, há evidências tanto de crianças quanto de populações adultas de que os comportamentos associados ao desejo irrestrito por objetos recompensadores biologicamente relevantes são acompanhados por uma atividade de ondas lentas aumentada (9).

Ondas Theta

Theta oscilações (4-7 Hz) são frequentemente ligadas a memória e regulação emocional. Uma série de estudos tem mostrado o envolvimento das oscilações teta na codificação de informações durante movimentos exploratórios e navegação espacial (9). Além disso, também foi demonstrado que a discriminação entre imagens de imagens positivas ou negativas valência emocional está associado à atividade teta sincronizada precoce (10) e que os participantes que têm respostas de condutância cutânea baixa vs. alta diferem em termos de mudanças de potência na banda teta (11). Da mesma forma que o delta, as oscilações teta também estão relacionadas ao componente P300 ERP e desempenham um papel na detecção de saliência, confirmando a estreita ligação entre os processos motivacionais e emocionais (9).

O que é digno de nota é que, embora alfa seja a frequência dominante em humanos adultos, theta domina no EEG de mamíferos não humanos e delta no reptiliano EEG. Esses achados podem indicar que o comportamento dos répteis é impulsionado principalmente por impulsos motivacionais, enquanto o comportamento dos mamíferos não humanos depende mais das reações emocionais e do aprendizado emocional (9).

Em relação ao papel de alfa oscilações no EEG humano, pode-se inferir que o desenvolvimento de funções cerebrais superiores depende fortemente de mecanismos inibitórios ou outras funções associadas às oscilações alfa, como memória de trabalho e representação mental de objetos e eventos (9). Deve-se acrescentar que, à medida que as crianças amadurecem, a porcentagem e a potência das ondas lentas em seus cérebros diminuem, ao passo que a potência alfa aumenta maciçamente com a idade (12). Então, sim, alfa é mais do que apenas o estado ocioso do cérebro.

Ondas beta

A banda beta (12-30 Hz) é mais comumente estudada em relação ao comportamento sensório-motor, e sabe-se que a potência da banda beta diminui durante a preparação e execução de movimentos voluntários, e estoura após o término do ato (13). Mas há mais do que isso - o cérebro responde da mesma maneira quando um observa ou imagina o movimento. Mesmo quando não é acompanhada por qualquer atividade muscular, a reversão mental de um ato motor envolve em grande medida a mesmas áreas corticais que são ativados durante o movimento real (14). É assim que se torna possível controlar uma mão robótica usando mera imaginação.

Embora esteja fortemente estabelecido que a atividade da banda alfa desempenha um papel importante no comportamento atento, o papel da banda beta tem merecido muito menos atenção. No entanto, estudos têm mostrado que a atividade da banda beta também serve como um transportador para ativação atencional (15) - facilita o estado de alerta ou excitação que nos permite perceber os estímulos - mesmo quando apresentados de forma muito breve (16).

Ondas Gama

Gama banda (30-50 Hz ou superior) está associada à construção de representação de objeto. Implica a ligação de partes separadas do mesmo objeto por meio de processos ascendentes e a ativação, recuperação ou ensaio de uma representação interna por meio de processos descendentes (17). Como o poder na banda gama aumenta durante tarefas complexas e que exigem atenção, a atividade gama induzida é muitas vezes interpretada como o substrato neural de processos cognitivos (ibid.).

Sabe-se que diferentes propriedades de objetos ou eventos são codificados e processados ​​em diferentes partes do cérebro, e pode ser graças às oscilações gama que percebemos representações coerentes. Por exemplo, foi demonstrado que a atividade gama desempenha um papel na ligação entre características espacialmente distintas de objetos visuais e reflete associações entre palavras e seus significados. Também tem sido relacionado à integração dos processos sensoriais e motores durante o movimento (17).

Como mencionado anteriormente, meditação induz a sincronização na atividade da banda gama (3), que por sua vez tem sido associada à ligação de diferentes aspectos da percepção em um conceito coerente e unitário (17). Talvez isso também explique o estado alterado de consciência relatado por meditadores regulares.


Como transformar dados em um espectro de frequência? - psicologia

Esta foi a primeira página da web que escrevi sobre Wavelets. Dessa semente cresceram outras páginas da web que discutem uma variedade de tópicos relacionados a wavelets. Para obter um "índice", consulte Wavelets e processamento de sinais. Esta página da web aplica a transformação wavelet a uma série temporal composta de preços de fechamento do mercado de ações. As páginas da web posteriores expandem este trabalho em uma variedade de áreas (por exemplo, compressão, análise espectral e previsão).

Quando comecei, pensei que implementaria a wavelet Haar e que alguns de meus colegas poderiam considerá-la útil. Eu não esperava que o processamento de sinais fosse um tópico tão interessante. Tampouco entendi que muitas áreas diferentes da ciência da computação, matemática e finanças quantitativas seriam afetadas por wavelets. Continuei achando que "uma coisa leva a outra", tornando difícil encontrar um ponto de parada lógico. Esse caminho errante de descoberta de minha parte também explica o crescimento um tanto orgânico dessas páginas da web. Tentei domar esse crescimento e organizá-lo, mas temo que ainda reflita o fato de que não sabia para onde estava indo quando comecei.

O código Java publicado junto com esta página da web reflete o primeiro trabalho que fiz em wavelets. Mais sofisticados, algoritmos baseados em esquemas de levantamento, implementados em Java, podem ser encontrados em outras páginas da web. O código do esquema de levantamento wavelet, publicado em outras páginas da web, é mais simples e fácil de entender. O esquema de levantamento de wavelet também fornece uma estrutura elegante e poderosa para implementar uma variedade de algoritmos de wavelet.

Ao implementar algoritmos de pacote wavelet, mudei de Java para C ++. O algoritmo de pacote wavelet que usei é mais simples e elegante usando os recursos de sobrecarga de operador do C ++. C ++ também suporta estruturas de dados genéricas (modelos), o que me permitiu implementar uma hierarquia de classes genérica para wavelets. Este código inclui vários algoritmos wavelet diferentes, incluindo Haar, interpolação linear e Daubechies D4.

Como os algoritmos wavelet, a modelagem financeira feita aqui representa um trabalho muito inicial. Quando comecei a trabalhar nessas páginas da web, não tinha experiência com modelagem de séries temporais financeiras. O trabalho descrito nesta página da web levou a experimentos mais intensivos com filtros wavelet em modelos financeiros, nos quais continuo trabalhando. Nesta página da web, utilizo os preços de fechamento do mercado de ações. Na modelagem financeira geralmente se usa retornos, já que o que você está tentando prever é o retorno futuro.

Fiquei interessado em wavelets por acidente. Eu estava trabalhando em um software envolvido com séries temporais financeiras (por exemplo, preço de abertura e fechamento de ações), então suponho que foi um acidente esperando para acontecer. Eu estava lendo a edição de fevereiro de 2001 da revista WIRED quando vi o gráfico abaixo. Todo mês a WIRED executa várias visualizações gráficas de dados financeiros e esta foi uma delas.

Se os preços das ações de fato levarem em consideração todas as informações conhecíveis, um gráfico de preços compostos deve prosseguir de forma ordenada, à medida que novas informações empurram o valor percebido contra a atração das tendências estabelecidas. A análise wavelet, amplamente utilizada em comunicações para separar o sinal (movimento padronizado) do ruído (atividade aleatória), sugere o contrário.

Esta imagem mostra os resultados da execução de uma transformada de Haar - a fórmula wavelet fundamental - no fechamento diário do Dow e NASDQ desde 1993. As montanhas azuis constituem o sinal. Os picos vermelhos embutidos representam ruído, dos quais a linha amarela segue uma média móvel de 50 dias.

O ruído, que pode ser considerado ignorância do investidor, aumentou junto com o valor de ambos os índices. Mas enquanto o ruído no Dow Jones cresceu 500% em média, o ruído do NASDAQ aumentou 3.000%, ultrapassando em muito o crescimento espetacular de 500% do NASDAQ durante o mesmo período. A maior parte desse aumento ocorreu desde 1997, com um aumento extraordinário desde janeiro de 2000. Talvez tenha havido um glich no ano 2000, afinal - um que descarrilou não os sistemas operacionais e CPUs, mas -> - a psicologia do investidor. - Clem Chambers ([email protected]).

Gráfico e citação da Revista WIRED, fevereiro de 2001, página 176

Eu sou um platônico. Acredito que, em abstrato, existe a verdade, mas que nunca poderemos realmente alcançá-la. Só podemos chegar a uma aproximação ou sombra da verdade. A ciência moderna expressa isso como incerteza de Heisenberg.

Uma visão platônica de uma série temporal financeira é que existe uma série temporal "verdadeira" que é obscurecida até certo ponto pelo ruído. Por exemplo, um preço de fechamento ou uma série temporal de compra / venda de uma ação se move com base na oferta e na demanda por ações. No caso de uma série temporal de compra / venda, a curva de oferta / demanda será circundada pelo ruído criado pela chegada de ordem aleatória. Se, de alguma forma, o ruído pudesse ser filtrado, veríamos a "verdadeira" curva de oferta / demanda. O software que usa essas informações pode ser capaz de fazer um trabalho melhor, porque não seria confundido por movimentos falsos criados pelo ruído.

O gráfico WIRED acima sugere que a análise de wavelet pode ser usada para filtrar uma série de tempo financeira para remover o ruído associado. Claro que há uma vasta área que não é abordada pela citação WIRED. O que, por exemplo, constitui ruído? O que são wavelets e wavelets de Haar? Por que as wavelets são úteis na análise de séries temporais financeiras? Quando vi este gráfico, não sabia as respostas para nenhuma dessas perguntas.

A análise fornecida no breve parágrafo WIRED também é superficial. O ruído na série temporal aumenta com o volume de negociação. Para afirmar que o ruído aumentou, o ruído deve ser normalizado para o volume de negociação.

Que viagem longa e estranha tem sido

Ler é uma coisa perigosa. Ele pode lançá-lo em direções estranhas. Mudei-me da Califórnia para Santa Fé, Novo México, porque li um livro. Aquele gráfico da revista WIRED me lançou em um caminho que passei muitos meses seguindo. Como toda aventura, não tenho certeza se teria embarcado nesta se soubesse quão longa e, às vezes, difícil seria a jornada.

Anos atrás, quando ele foi lançado, comprei uma cópia do livro O mundo de acordo com wavelets por Barbara Hubbard, com base em uma resenha que li na revista Ciência. O livro ficou na minha estante sem ser lido até que eu vi o gráfico WIRED.

Wavelets têm sido uma espécie de moda passageira, uma palavra da moda que as pessoas usam. Barbara Hubbard começou a escrever O mundo de acordo com wavelets quando a moda das wavelets estava começando a pegar fogo. Ela fornece uma história interessante de como as wavelets se desenvolveram nos mundos da matemática e da engenharia. Ela também faz uma tentativa corajosa de fornecer uma explicação do que é a técnica wavelet. Ms. Hubbard is a science writer, not a mathematician, but she mastered a fair amount of basic calculus and signal processing theory (which I admire her for). When she wrote The World According to Wavelets there were few books on wavelets and no introductory material. Although I admire Barbara Hubbard's heroic effort, I had only a surface understanding of wavelets after reading The World According to Wavelets.

There is a vast literature on wavelets and their applications. From the point of view of a software engineer (with only a year of college calculus), the problem with the wavelet literature is that it has largely been written by mathematicians, either for other mathematicians or for students in mathematics. I'm not a member of either group, so perhaps my problem is that I don't have a fluent grasp of the language of mathematics. I certianly feel this when ever I read journal articles on wavelets. However, I have tried to concentrate on books and articles that are explicitly introductory and tutorial. Even these have proven to be difficult.

The first chapter of the book Wavelets Made Easy by Yves Nievergelt starts out with an explaination of Haar wavelets (these are the wavelets used to generate the graph published in WIRED). This chapter has numerous examples and I was able to understand and implement Haar wavelets from this material (links to my Java code for Haar wavelets can be found below). A later chapter discusses the Daubechies wavelet transform. Unfortunately, this chapter of Wavelets Made Easy does not seem to be as good as the material on Haar wavelets. There appear to be a number of errors in this chapter and implementing the algorithm described by Nievergelt does not result in a correct wavelet transform. Among other things, the wavelet coefficients for the Daubechies wavelets seem to be wrong. My web page on the Daubechies wavelet transform can be found here. The book Ripples in Mathematics (see the references at the end of the web page) is a better reference.

The wavelet technique for analyzing a signal or time series

There is a vast literature on wavelets. This includes thousands of journal articles and many books. The books on wavelets range from relatively introductory works like Nievergelt's Wavelets Made Easy (which is still not light reading) to books that are accessable only to graduate students in mathematics. There is also a great deal of wavelet material on the Web. This includes a number of tutorials (see Web based reference, below).

Given the vast literature on wavelets, there is no need for yet another tutorial. But it might be worth while to summarize my view of wavelets as they are applied to 1-D signals or time series (an image is 2-D data). A time series is simply a sample of a signal or a record of something, like temperature, water level or market data (like equity close price).

Wavelets allow a time series to be viewed in multiple resolutions. Each resolution reflects a different frequency. The wavelet technique takes averages and differences of a signal, breaking the signal down into spectrum. All the wavelet algorithms that I'm familiar with work on time series a power of two values (e.g., 64, 128, 256. ). Each step of the wavelet transform produces two sets of values: a set of averages and a set of differences (the differences are referred to as wavelet coefficients). Each step produces a set of averages and coefficients that is half the size of the input data. For example, if the time series contains 256 elements, the first step will produce 128 averages and 128 coefficients. The averages then become the input for the next step (e.g., 128 averages resulting in a new set of 64 averages and 64 coefficients). This continues until one average and one coefficient (e.g., 2 0 ) is calculated.

The average and difference of the time series is made across a window of values. Most wavelet algorithms calculate each new average and difference by shifting this window over the input data. For example, if the input time series contains 256 values, the window will be shifted by two elements, 128 times, in calculating the averages and differences. The next step of the calculation uses the previous set of averages, also shifting the window by two elements. This has the effect of averaging across a four element window. Logically, the window increases by a factor of two each time.

In the wavelet literature this tree structured recursive algorithm is referred to as a pyramidal algorithm.

The power of two coefficient (difference) spectrum generated by a wavelet calculation reflect change in the time series at various resolutions. The first coefficient band generated reflects the highest frequency changes. Each later band reflects changes at lower and lower frequencies.

There are an infinite number of wavelet basis functions. The more complex functions (like the Daubechies wavelets) produce overlapping averages and differences that provide a better average than the Haar wavelet at lower resolutions. However, these algorithms are more complicated.

The Language of Wavelets

Every field of specialty develops its own sub-language. This is certainly true of wavelets. I've listed a few definitions here which, if I had understood their meaning would have helped me in my wanderings through the wavelet literature.

A function that results in a set of high frequency differences, or wavelet coefficients. In lifting scheme terms the wavelet calculates the difference between a prediction and an actual value.

If we have a data sample seu, si+1, si+2. the Haar wavelet equations is

Onde ceu is the wavelet coefficient.

The wavelet Lifting Scheme uses a slightly different expression for the Haar wavelet:

The scaling function produces a smoother version of the data set, which is half the size of the input data set. Wavelet algorithms are recursive and the smoothed data becomes the input for the next step of the wavelet transform. The Haar wavelet scaling function is

Onde umaeu is a smoothed value.

The Haar transform preserves the average in the smoothed values. This is not true of all wavelet transforms.

In digital signal processing (DSP) terms, the wavelet function is a high pass filter. A high pass filter allows the high frequency components of a signal through while suppressing the low frequency components. For example, the differences that are captured by the Haar wavelet function represent high frequency change between an odd and an even value.

In digital signal processing (DSP) terms, the scaling function is a low pass filter. A low pass filter suppresses the high frequency components of a signal and allows the low frequency components through. The Haar scaling function calculates the average of an even and an odd element, which results in a smoother, low pass signal.

Orthogonal (or Orthonormal) Transform

The definition of orthonormal (a.k.a. orthogonal) tranforms in Wavelet Methods for Time Series Analysis by Percival and Walden, Cambridge University Press, 2000, Chaper 3, section 3.1, is one of the best I've seen. I've quoted this below:

In terms of wavelet transforms this means that the original time series can be exactly reconstructed from the time series average and coefficients generated by an orthogonal (orthonormal) wavelet transform.

This is also referred to as "de-noising". Signal estimation algorithms attempt to characterize portions of the time series and remove those that fall into a particular model of noise.

Applying Wavelets and Java Source Code

These Web pages publish some heavily documented Java source code for the Haar wavelet transform. Books like Wavelets Made Easy explain some of the mathematics behind the wavelet transform. I have found, however, that the implemation of this code can be at least as difficult as understanding the wavelet equations. For example, the in-place Haar wavelet transform produces wavelet coefficients in a butterfly pattern in the original data array. The Java source published here includes code to reorder the butterfly into coefficient spectrums which are more useful when it comes to analyzing the data. Although this code is not large, it took me most of a Saturday to implement the code to reorder the butterfly data pattern.

The wavelet Lifting Scheme, developed by Wim Sweldens and others provides a simpler way to look as many wavelet algorithms. I started to work on Lifting Scheme wavelet implementations after I had written this web page and developed the software. The Haar wavelet code is much simpler when expressed in the lifting scheme. See my web page The Wavelet Lifting Scheme.

The link to the Java source download Web page is below.

Financial Time Series

There are a variety of wavelet analysis algorithms. Different wavelet algorithms are appplied depending on the nature of the data analyzed. The Haar wavelet, which is used here is very fast and works well for the financial time series (e.g., the close price for a stock). Financial time series are non-stationary (to use a signal processing term). This means that even within a window, financial time series cannot be described well by a combination of sin and cos terms. Nor are financial time series cyclical in a predictable fashion (unless you believe in Elliot waves). Financial time series lend themselves to Haar wavelet analysis since graphs of financial time series tend to jagged, without a lot of smooth detail. For example, the graph below shows the daily close price for Applied Materials over a period of about two years.

Daily close price for Applied Materials (symbol: AMAT), 12/18/97 to 12/30/99.

The Haar wavelet algorithms I have implemented work on data that consists of samples that are a power of two. In this case there are 512 samples.

Why Haar Wavelets?

There are a wide variety of popular wavelet algorithms, including Daubechies wavelets, Mexican Hat wavelets and Morlet wavelets. These wavelet algorithms have the advantage of better resolution for smoothly changing time series. But they have the disadvantage of being more expensive to calculate than the Haar wavelets. The higer resolution provided by these wavlets is not worth the cost for financial time series, which are characterized by jagged transitions.

Haar Wavelets

The Haar wavelet algorithms published here are applied to time series where the number of samples is a power of two (e.g., 2, 4, 8, 16, 32, 64. ) The Haar wavelet uses a rectangular window to sample the time series. The first pass over the time series uses a window width of two. The window width is doubled at each step until the window encompasses the entire time series.

Each pass over the time series generates a new time series and a set of coefficients. The new time series is the average of the previous time series over the sampling window. The coefficients represent the average change in the sample window. For example, if we have a time series consisting of the values v0, v1, . vn, a new time series, with half as many points is calculated by averaging the points in the window. If it is the first pass over the time series, the window width will be two, so two points will be averaged:

The 3-D surface below graphs nine wavelet spectrums generated from the 512 point AMAT close price time series. The x-axis shows the sample number, the y-axis shows the average value at that point and the z-axis shows log2 of the window width.

The wavelet coefficients are calcalculated along with the new average time series values. The coefficients represent the average change over the window. If the windows width is two this would be:

The graph below shows the coefficient spectrums. As before the z-axis represents the log2 of the window width. The y-axis represents the time series change over the window width. Somewhat counter intutitively, the negative values mean that the time series is moving upward Positive values mean the the time series is going down, since veu is greater than vi+1. Note that the high frequency coefficient spectrum (log2(windowWidth) = 1) reflects the noisiest part of the time series. Here the change between values fluctuates around zero.

Plot of the Haar coefficient spectrum. The surface plots the highest frequency spectrum in the front and the lowest frequency spectrum in the back. Note that the highest frequency spectrum contains most of the noise.

Filtering Spectrum

The wavelet transform allows some or all of a given spectrum to be removed by setting the coefficients to zero. The signal can then be rebuilt using the inverse wavelet transform. Plots of the AMAT close price time series with various spectrum filtered out are shown here.

Noise Filters

Each spectrum that makes up a time series can be examined independently. A noise filter can be applied to each spectrum removing the coefficients that are classified as noise by setting the coefficients to zero.

This web page shows a histogram analysis of the three highest frequency spectrum of the AMAT close price. The result of a filter that removes the points that fall within a gaussian curve in each spectrum is also shown. The gaussian curve has a mean and standard deviation of the coefficients in that spectrum.

Another way to remove noise is to use thresholding. My web page outlining one thresholding algorithm can be found here .

Wavelets vs. Simple Filters

How do Haar wavelet filters compare to simple filters, like windowed mean and median filters? A plot of the AMAT time series, filtered with a median filter (which in this case is virtually identical to a mean filter) is shown here here . These filters can be compared to the spectrum filters (where a given wavelet coefficient spectrum is filered out) here. .

Whether a wavelet filter is better than a windowed mean filter depends on the application. The wavelet filter allows specific parts of the spectrum to be filtered. For example, the entire high frequency spectrum can be removed. Or selected parts of the spectrum can be removed, as is done with the gaussian noise filter. The power of Haar wavelet filters is that they can be efficiently calculated and they provide a lot of flexibility. They can potentially leave more detail in the time series, compared to the mean or median filter. To the extent that this detail is useful for an application, the wavelet filter is a better choice.

Limitations of the Haar Wavelet Transform

The Haar wavelet transform has a number of advantages:

  • It is conceptually simple.
  • It is fast.
  • It is memory efficient, since it can be calculated in place without a temporary array.
  • It is exactly reversible without the edge effects that are a problem with other wavelet trasforms.

The Haar transform also has limitations, which can be a problem for some applications.

In generating each set of averages for the next level and each set of coefficients, the Haar transform performs an average and difference on a pair of values. Then the algorithm shifts over by two values and calculates another average and difference on the next pair.

The high frequency coefficient spectrum should reflect all high frequency changes. The Haar window is only two elements wide. If a big change takes place from an even value to an odd value, the change will not be reflected in the high frequency coefficients.

For example, in the 64 element time series graphed below, there is a large drop between elements 16 and 17, and elements 44 and 45.

Since these are high frequency changes, we might expect to see them reflected in the high frequency coefficients. However, in the case of the Haar wavelet transform the high frequency coefficients miss these changes, since they are on even to odd elements.

The surface below shows three coefficient spectrum: 32, 16 and 8 (where the 32 element coefficient spectrum is the highest frequency). The high frequency spectrum is plotted on the leading edge of the surface. the lowest frequency spectrum (8) is the far edge of the surface.

Note that both large magnitude changes are missing from the high frequency spectrum (32). The first change is picked up in the next spectrum (16) and the second change is picked up in the last spectrum in the graph (8).

Many other wavelet algorithms, like the Daubechies wavelet algorithm, use overlapping windows, so the high frequency spectrum reflects all changes in the time series. Like the Haar algorithm, Daubechies shifts by two elements at each step. However, the average and difference are calculated over four elements, so there are no "holes".

The graph below shows the high frequency coefficient spectrum calculated from the same 64 element time series, but with the Daubechies D4 wavelet algorithm. Because of the overlapping averages and differences the change is reflected in this spectrum.

The 32, 16 and 8 coefficient spectrums, calculated with the Daubechies D4 wavelet algorithm, are shown below as a surface. Note that the change in the time series is reflected in all three coefficient spectrum.

Wavelets and Parallelism

Wavelet algorithms are naturally parallel. For example, if enough processing elements exist, the wavelet transform for a particular spectrum can be calculated in one step by assigning a processor for every two points. The parallelism in the wavelet algorithm makes it attractive for hardware implementation.

Java Source Code Download

The Web page for downloading the Haar wavelet source code can be found here . This Java code is extensively documented and this web page includes a link to the Javadoc generated documentation.

A simpler version of the Haar wavelet algorithm can be found via my web page The Wavelet Lifting Scheme.

Recursos

The plots above are generated with gnuplot for Windows NT. See my web page of Gnuplot links here. I am only marginally statisified with gnuplot. The software is easy to use and the Windows NT version comes with a nice GUI and a nice help system. However, when it comes to 3-D plots, the software leaves some things to be desired. The hidden line removal consumes vast amounts of virtual memory. When I tried to plot one of the coefficients surfaces with the x and z axes switched, it ran out of memory on a Windows NT system with 256K of virtual memory. Also, the surface would be much easier to understand if it could be colored with a spectrum. If you know of a better 3D plotting package that runs on Windows NT, please drop me a note.

I have also had a hard time getting gnuplot to generate 2-D plots with multiple lines that have different colors. I have succeeded in doing this only when the data for each line was in a separate file, which can be awkward.

I was sent the reference to Root by a physicist, Costas A. Root is a data analysis framework that is targeted at the massive amounts of data generated by high energy physics experiments at CERN and elsewhere.

Although Root leans heavily toward physics, it looks to me like Root would be useful in other areas. Some of the statistical techniques that are used to analyze results in experimental physics is also used in quantitive finance, for example.

Root has different goals than gnuPlot. It is targeted at a much more challenging data analysis enviroment (terabytes of data). But it has a large learning curve and I'm skeptical if it can be easily used by those who do not have a sophisticated command of C++. In contrast gnuPlot is a simple plotting environment. So my search for a better plotting environment continues. I know that such environments are supported by Matlab and Mathematics, but these packages are too expensive for my limited software budget.

Referências

Livros

Ripples in Mathematics: the Discrete Wavelet Transform by Jensen and la Cour-Harbo, 2001

So far this is the best book I've found on wavelets. I read this book after I had spent months reading many of the references that follow, so I'm not sure how easy this book would be for someone with no previous exposure to wavelets. But I have yet to find any "easy" reference. Ripples in Mathematics covers Lifting Scheme wavelets which are easier to implement and understand. The book is written at a relatively introductory level and is aimed at engineers. The authors provide implementations for a number of wavelet algorithms. Ripples also covers the problem of applying wavelet algorithms like Daubechies D4 to finite data sets (e.g., they cover some solutions for the edge problems encountered for Daubechies wavelets).

Wavelets and Filter Banks by Gilbert Strang and Truong Nguyen, Wellesley Cambridge Pr, 1996

A colleague recommend this book, although he could not load it to me since it is packed away in a box. Sadly this book is hard to find. I bought my copy via abebooks.com, used, from a book dealer in Australia. While I was waiting for the book I read a few of Gilbert Strang's journal articles. Gilbert Strang is one of the best writers I've encountered in mathematics. I have only just started working through this book, but it looks like an excellent, although mathematical, book on wavelets.

Wavelets Made Easy by Yves Nievergelt, Birkhauser, 1999

This books has two excellent chapters on Haar wavelets (Chapter 1 covers 1-D Haar wavelets and Chapter 2 covers 2-D wavelets). At least in his coverage of Haar wavelts, Prof. Nievergelt writes clearly and includes plenty of examples. The coverage of Haar wavelets uses only basic mathematics (e.g., algebra).

Following the chapter on Haar wavelets there is a chapter on Daubechies wavelets. Daubechies wavelets are derived from a general class of wavelet transforms, which includes Haar wavelets. Daubechies wavelets are better for smoothly changing time series, but are probably overkill for financial time series. Como Wavelets Made Easy progresses, it gets less easy. Following the chapter on Daubechies wavelets is a discussion of Fourier transforms. The later chapters delve into the mathematics behind wavelets. Prof. Nievergelt pretty much left me behind at the chapter on Fourier transforms. For an approachable discussion of Fourier transforms, see Understanding Digital Signal Processing by Richard G. Lyons (below).

Como Wavelets Made Easy progresses, it becomes less and less useful for wavelet algorithm implementation. In fact, while the mathematics Nievergelt uses to describe Daubechies wavelets is correct, the algorithm he describes to implement the Daubechies transform and inverse transform seems to be wrong.

Wavelets Made Easy does not live up to the "easy" part of its title. Given this and the apparent errors in the Daubechies coverage, I am sorry to say that I can't recommend this book. Save your money and buy a copy of Ripples in Mathematics.

Discovering Wavelets by Edward Aboufadel and Steven Schlicker

At 125 pages, this is one of the most expensive wavelet books I've purchased, on a per page basis. It sells on Amazon for $64.95 US. I bought it used for $42.50.

Se Discovering Wavelets provided a short, clear description of wavelets, the length would be a virtue, not a fault. Sadly this is not the case. Discovering Wavelets seems to be a book written for college students who have completed calculus and linear algebra. The book is heavy on theorms (which are incompletely explained) and very sort on useful explaination. I found the description of wavelets unnecessarily obscure. For example, Haar wavelets are described in terms of linear algebra. They can be much more simply described in terms of sums, differences and the so called pyramidal algorithm.

Enquanto Discovering Wavelets covers some important material, its coverage is so obscure and cursory that I found the book useless. The book resembles a set of lecture notes and is of little use without the lecture (for their student's sake I hope that Aboufadel and Schlicker are better teachers than writers). This is a book that I wish I had not purchased.

Wavelet Methods for Time Series Analysis by Donald B. Percival and Andrew T. Walden, Cambridge University Press, 2000

I'm not a mathematician and I don't play one on television. So this book is heavy going for me. Never the less, this is a good book. For someone with a better mathematical background this might be an excellent book. The authors provide a clear discussion of wavelets and a variety of time series analsysis techniques. Unlike some mathematicians, Percival and Walden actually coded up the wavelet algorithms and understand the difficulties of implementation. They compare various wavelet families for various applications and chose the simplest one (Haar) in some cases.

One of the great benifits of Wavelet Methods for Time Series Analysis is that it provides a clear summary of a great deal of the recent research. But Percival and Walden put the research in an applied context. For example Donoho and Johnstone published an equation for wavelet noise reduction. I have been unable to find all of their papers on the Web and I have never understood how to calculate some of the terms in the equation in practice. I found this definition in Wavelet Methods.

The World According to Wavelets: The Story of a Mathematical Technique in the Making by Barbara Burke Hubbard, A.K. Peters, 1996

This book provides an interesting history of the development of wavelets. This includes sketches of many of the people involved in pioneering the application and mathematical theory behind wavelets. Although Ms. Hubbard makes a heroic effort, I found the explaination of wavelets difficult to follow.

The Cartoon Guide To Statistics by Larry Gonic and Woollcott Smith, Harper Collins

I work with a number of mathematicians, so it's a bit embarrassing to have this book on my disk. I never took statistics. In college everyone I knew who took statistics didn't like it. Since it was not required for my major (as calculus was), I did not take statistics. I've come to understand how useful statistics is. I wanted to filter out Gaussian noise, so I needed to understand normal curves. Although the title is a bit embarrassing, The Cartoon Guide to Statistics provided a very rapid and readable introduction to statistics.

Understanding Digital Signal Processing by Richard G. Lyons.

This book is fantastic. Perhaps the best introductory book ever written on digital signal processing. It is a book on signal processing for software engineers like myself with tepid mathematical backgrounds. It provides the best coverage I've ever seen on DFTs and FFTs. In fact, this book has inspired me to try FFTs on financial time series (an interesting experiment, but wavelets produce better results and Fourier transforms on non-stationary time series).

Web based references

My web page on the wavelet Lifting Scheme. The Haar wavelet algorithm expressed using the wavelet Lifting Scheme is considerably simpler than the algorithm referenced above. The Lifting Scheme also allows Haar wavelet to be extended into a wavelet algorithms that have perfect reconstruction and have better multiscale resolution than Haar wavelets.

Emil Mikulic has published a simple explaination of the Haar transform, for both 1-D and 2-D data. For those who find my explaination obscure, this might be a good resource.

The Wavelet Tutorial: The Engineer's Ultimate Guide to Wavelet Analysis, by Robi Polikar.

The "ultimate guide" to wavelet analysis has yet to be written, at least for my purposes. But Prof. Polikar's Wavelet Tutorial is excellent. When it comes to explaining Wavelets and Fourier transforms, this is one of the best overviews I've seen. Prof. Polikar put a great deal of work into this tutorial and I am greateful for his effort. However, there was not sufficient detail in this tutorial to allow me to create my own wavelet and inverse wavelet tranform software.

This Web page (which is also available in PDF) provides a nice overview of the theory behind wavelets. But as with Robi Polikar's web page, its a big step from this material to a software implementation. Whether this Web page is "really friendly" depends on who your friends are. If you friends are calculus and taylor series, then this paper is for you. After working my way through a good part of Wavelets Made Easy this paper filled in some hole for me. But I would not have understood it if I had read it before Wavelets Made Easy.

Wim Sweldens, who has published a lot of material on the Web (he is the editor of Wavelet Digest) and elsewhere on Wavelets is a member of this group. An interesting site with lots of great links to other web resources.

Win Sweldens and Ingrid Daubechies invented a new wavelet technique known as the lifting scheme. Gabriel Fernandez has published an excellent bibliography on the lifting scheme wavelets which can be found here. This bibliography has a pointer to Wim Sweldens' and Peter Schroder's lifting scheme tutorial Building Your Own Wavelets at Home.

Clemens Valens has written a tutorial on the fast lifting wavelet transform. This is a rather mathematically oriented tutorial. For many, Wim Sweldens' paper Building Your Ownh Wavlets at Home may be easier to under stand (although I still found this paper heavy going).

Gabriel Fernandez has developed LiftPack. The LiftPack Home Page publishes the LiftPack software. The bibliography is a sub-page of the LiftPack Home page.

Wavelets in Computer Graphis

One of the papers referenced in Gabriel Fernandez's lifting scheme bibliography is Wim Sweldens and Peter Schroder's paper Building Your Own Wavelets at Home. This is part of a course on Wavelets in Computer Graphics given at SigGraph 1994, 1995 and 1996. The sigGraph course coverd an amazing amount of material. Building Your Own Wavelets at Home was apparently covered in a morning. There are a lot of mathematically gifted people in computer graphics. But even for these people, this looks like tough going for a morning. I've spent hours reading and rereading this tutorial before I understood it enough to implement the polynomial interpolation wavelets that it discusses.

D. Donoho De-Noising By Soft-Thresholding, IEEE Trans. on Information Theory, Vol 41, No. 3, pp. 613-627, 1995.

CalTech Multi-Resolution Modeling Group Publications

The Wavelets in Computer Graphics page, referenced above, is one of the links from the CalTech Multi-resolution Modeling Group Publications web page. The wavelet publications referenced on this page concentrate on wavelet applications for computer graphics.

This is yet another "introductory" tutorial by a mathematician. It gives a feeling for what you can do with wavelets, but there is not enough detail to understand the details of implementing wavelet code.

Amara Graps' web page provides some good basic introductory material on wavelets and some excellent links to other Web resources. There is also a link to the author's (Amara) IEEE Computational Sciences and Engineering article on wavelets.

Wave++ from Ryerson Polytechnic University Computational Signals Analysis Group

Wave++ is a C++ class library for wavelet and signal analysis. This library is provided in source form. I have not examined it in detail yet.

Wavelet and signal processing algorithms are usually fairly simple (they consist of a relatively small amount of code). My experience has been that the implementation of the algorithms is not as time consuming as understanding the algorithms and how they can be applied. Since one of the best ways to understand the algorithms is to implement and apply them, I'm not sure how much leverage Wave++ provides unless you already understand wavelet algorithms.

Wavelet Compression Arrives by Peter Dyson, Seybold Reports, April 1998.

This is an increasingly dated discussion on wavelet compression products, especially for images. The description of the compression products strengths and weaknesses is good, but the description of wavelets is poor.

Prof. Zbigniew R. Struzik of Centrum voor Wiskunde en Informatica in the Netherlands has done some very interesting work with wavelets in a variety of areas, including data mining in finance. This web page has a link to Prof. Struzik's publications (at the bottom of the Web page). Prof. Struzik's work also shows some interesting connections between fractals and wavelets.

Disclaimer

This web page was written on nights and weekends, using my computer resources. This Web page does not necessarily reflect the views of my employer (at the time this web page was written). Nothing published here should be interpreted as a reflection on any techniques used by my employer (at that time).


New technology may double radio frequency data capacity

A team of Columbia Engineering researchers has invented a technology -- full-duplex radio integrated circuits (ICs) -- that can be implemented in nanoscale CMOS to enable simultaneous transmission and reception at the same frequency in a wireless radio. Up to now, this has been thought to be impossible: transmitters and receivers either work at different times or at the same time but at different frequencies. The Columbia team, led by Electrical Engineering Associate Professor Harish Krishnaswamy, is the first to demonstrate an IC that can accomplish this. The researchers presented their work at the International Solid-State Circuits Conference (ISSCC) in San Francisco on February 25.

"This is a game-changer," says Krishnaswamy. "By leveraging our new technology, networks can effectively double the frequency spectrum resources available for devices like smartphones and tablets."

In the era of Big Data, the current frequency spectrum crisis is one of the biggest challenges researchers are grappling with and it is clear that today's wireless networks will not be able to support tomorrow's data deluge. Today's standards, such as 4G/LTE, already support 40 different frequency bands, and there is no space left at radio frequencies for future expansion. At the same time, the grand challenge of the next-generation 5G network is to increase the data capacity by 1,000 times.

So the ability to have a transmitter and receiver re-use the same frequency has the potential to immediately double the data capacity of today's networks. Krishnaswamy notes that other research groups and startup companies have demonstrated the theoretical feasibility of simultaneous transmission and reception at the same frequency, but no one has yet been able to build tiny nanoscale ICs with this capability.

"Our work is the first to demonstrate an IC that can receive and transmit simultaneously," he says. "Doing this in an IC is critical if we are to have widespread impact and bring this functionality to handheld devices such as cellular handsets, mobile devices such as tablets for WiFi, and in cellular and WiFi base stations to support full duplex communications."

The biggest challenge the team faced with full duplex was canceling the transmitter's echo. Imagine that you are trying to listen to someone whisper from far away while at the same time someone else is yelling while standing next to you. If you can cancel the echo of the person yelling, you can hear the other person whispering.

"If everyone could do this, everyone could talk and listen at the same time, and conversations would take half the amount of time and resources as they take right now," explains Jin Zhou, Krishnaswamy's PhD student and the paper's lead author. "Transmitter echo or 'self-interference' cancellation has been a fundamental challenge, especially when performed in a tiny nanoscale IC, and we have found a way to solve that challenge."

Krishnaswamy and Zhou plan next to test a number of full-duplex nodes to understand what the gains are at the network level. "We are working closely with Electrical Engineering Associate Professor Gil Zussman's group, who are network theory experts here at Columbia Engineering," Krishnaswamy adds. "It will be very exciting if we are indeed able to deliver the promised performance gains."


Stages of Change Model

One of the best-known approaches to change is the Stages of Change or Transtheoretical Model, introduced in the late 1970s by researchers James Prochaska and Carlo DiClemente. They were studying ways to help people quit smoking.   The Stages of Change model has been found to be an effective aid in understanding how people go through a change in behavior.

In this model, change occurs gradually and relapses are an inevitable part of the process. People are often unwilling or resistant to change during the early stages, but they eventually develop a proactive and committed approach to changing a behavior. This model demonstrates that change is rarely easy. It often requires a gradual progression of small steps toward a goal.


Golden Mean and the Universe

It’s believed that the 432Hz frequency response is mathematically consistent with the patterns of the universe. 432Hz is said to vibrate with the golden mean PHI of the universe and unify light, time, space, matter, gravity, and magnetism with biology, the DNA code, and consciousness.

Resonating our atoms and DNA with nature leaves us with an even deeper connection to nature and the world around us. The number 432 is also significant as it is reflected in the ration of the sun, Earth and moon as well as the precession of the equinoxes, the Egyptian Great Pyramid Stonehenge, Sri Yanta and other sacred sites.


How to analyze audio input/spectrum correctly

I am quite new to Java and Signal Processing, but I was assigned a project dealing in audio processing. My topic given to me is a game that has a component of analyzing a song (any given song) and outputs data depending on the frequency currently being played (real time). ie: as the song plays, it outputs the current frequency (every second it outputs the current frequency).

I have been told on stackoverflow to use FFT. they say "just do a FFT" but that means nothing to me? HOW do you do an FFT? I have read tutorials, and basically understand what it is, but have no clue on how to implement it as in:

  • what is the data type of the audio file most suitable for such processing?
  • what exactly is the input of the FFT
  • how do I interpret the results

Can anybody suggest a simple to follow walk through/tutorial on how to process an audio signal? Additionally, if anybody knows a good implementation of FFT for Java, I would appreciate the suggestions.


Assista o vídeo: stanowisko pomiarowe widmo czestotliwosci (Julho 2022).


Comentários:

  1. Shaktisida

    Post muito bom e útil.I myself recently searched the Internet for this topic and all discussions related to it.

  2. Renfred

    Disse em confiança, minha opinião é evidente. Eu aconselho você a tentar pesquisar no google.com

  3. Avshalom

    É uma boa ideia.

  4. Somerton

    você está absolutamente certo

  5. Evian

    Muito certo! Acho uma excelente ideia.



Escreve uma mensagem