Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


RMN e Transformada de Fourier, Manuais, Projetos, Pesquisas de Química

artigo sobre rmn e transformada de fourier

Tipologia: Manuais, Projetos, Pesquisas

Antes de 2010

Compartilhado em 11/06/2010

Gisele
Gisele 🇧🇷

4.4

(56)

227 documentos

1 / 5

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
QUÍMICA NOVA, 23(3) (2000) 413
A TRANSFORMADA DE FOURIER EM BASIC
Mauricio Gomes Constantino* e Gil Valdo José da Silva#
Departamento de Química - Faculdade de Filosofia, Ciências e Letras de Ribeirão Preto - Universidade de São Paulo -
Av. Bandeirantes, 3900 - 14040-901 - Ribeirão Preto - SP
Recebido em 26/1/99; aceito em 27/4/99
THE FOURIER TRANSFORM (FFT) IN BASIC. In this paper we describe three computer pro-
grams in Basic language about the Fourier transform (FFT) which are available in the Internet
site http://artemis.ffclrp.usp.br/SoftwareE.htm (in English) or http://artemis.ffclrp.usp.br/
softwareP.htm (in Portuguese) since October 1998. Those are addresses to the Web Page of our
Laboratory of Organic Synthesis. The programs can be downloaded and used by anyone who is
interested on the subject. The texts, menus and captions in the programs are written in English.
Keywords: Fourier transform; FFT; Basic; NMR.
NOTA TÉCNICA
Este artigo apresenta três programas em linguagem Basic so-
bre a transformada de Fourier, que estão disponíveis no “site” da
Internet http://artemis.ffclrp.usp.br/softwareP.htm (em português)
ou http://artemis.ffclrp.usp.br/softwareE.htm (em inglês) (partes da
“Web Page” de nosso Laboratório de Síntese Orgânica) desde
outubro de 1998 para serem copiados e usados por quem se inte-
resse pelo assunto. Os textos dos programas estão escritos em
inglês para torná-los mais universalmente utilizáveis.
A transformada de Fourier é um processo matemático ex-
tensamente utilizado hoje em dia em espectrometria de RMN,
de IV, etc., na forma do engenhoso processo de cálculo digital
simplificado, desenvolvido por vários autores1, denominado
FFT (Fast Fourier Transform). A simplificação introduzida por
esse algoritmo reduz as operações necessárias de N2 multipli-
cações complexas para N log2 N multiplicações (N é o número
de pontos da função a ser transformada).
Essencialmente a transformada de Fourier consiste em, dada
uma quantidade h como função do tempo [h(t)], determinar a
correspondente quantidade H como função da freqüência [H(f)],
geralmente como um número complexo que também indica a
fase, e vice-versa: dada H(f), determinar h(t). Neste artigo
referimo-nos, naturalmente, a cálculo numérico, onde h(t) é
uma coleção de N números que indicam, por exemplo, a inten-
sidade em função do tempo de certa função periódica; a trans-
formada de Fourier correspondente será outra coleção de N
números que indicarão a intensidade de cada freqüência pre-
sente na função periódica original. Inversamente, se forem
conhecidas as intensidades das freqüências, a transformada
fornecerá a função h(t).
Um exemplo simples seria a voz de uma pessoa emitindo um
som determinado por, digamos, 1 segundo. A voz provoca uma
oscilação do ar, que pode ser captada por um microfone, con-
vertida em oscilação elétrica, e gravada. Um computador pode
“ler” essa oscilação como uma coleção de pontos (números) que
indicam a intensidade em função do tempo; a transformada de
Fourier, aplicada a esses “pontos”, fornecerá um “mapa” das
várias freqüências que compõem o som da voz, na forma de
uma função intensidade x freqüência. Se na função original o
tempo é em segundos, na transformada a freqüência será em Hz.
Algo semelhante ocorre, por exemplo, no espectrômetro de
RMN. O aparelho capta uma oscilação eletromagnética emitida
pelos núcleos dos átomos e grava essa oscilação como uma
coleção de números que indicam a intensidade em função do
tempo. A transformada de Fourier fornecerá um “mapa” das
freqüências que compõem a oscilação, mapa esse que chama-
mos de “espectro” de RMN.
Na literatura há muitos trabalhos que apresentam explica-
ções bem detalhadas sobre vários aspectos da transformada de
Fourier. Recomendamos em especial o livro Numerical
Recipes2, de onde foi retirada a rotina básica para elaboração
de nossos programas. Não nos estenderemos, portanto, em
maiores considerações sobre a transformada em si.
O principal objetivo de nossos programas é de natureza
pragmática. Pretendemos, com eles, dar um exemplo prático
de como elaborar certas rotinas para obter um efeito desejado,
sendo esses exemplos completos dentro de seus objetivos, sem
deixar pontas desatadas.
A linguagem Basic é a mais simples das linguagens de
programação, e pode ser aprendida com rapidez e facilidade. O
Visual Basic®3 desenvolvido pela Microsoft® é muito versátil
e incorpora inúmeras vantagens próprias de outras linguagens,
tornando-se em método ideal para elaboração de programas re-
lativamente pequenos, principalmente se desenvolvidos por pes-
soas cujo objetivo principal em pesquisa esteja voltado para
outros aspectos, sendo a programação uma ferramenta e não
um objetivo em si, como é o nosso caso. Decidimos experi-
mentar a elaboração de programas de FFT em Basic, e ficamos
surpresos com a qualidade dos resultados, em boa parte devi-
da, naturalmente, à grande rapidez e capacidade de memória
dos computadores usados hoje em dia.
Procuramos, dentro de limites razoáveis, explorar a grande
variedade de recursos do Visual Basic® nesses programas, para
ampliar sua utilidade como exemplos. Em um dos programas,
por exemplo, não dimensionamos variáveis na seção de Decla-
rações; todos os dados que pretendíamos usar em outras roti-
nas foram armazenados em Lists, Labels, etc. Nos outros pro-
gramas, ao contrário, fizemos extenso uso das variáveis
dimensionadas para serem usadas em várias rotinas diferentes,
sem recorrer a Lists. Muito variados, também, são os exemplos
de como fazer gráficos, como traçar escalas, fazer ampliações,
obter dados, movimentar os gráficos, etc. Atendendo a nossos
objetivos didáticos, evitamos repetir rotinas, procurando sem-
pre usar métodos alternativos para vários tipos de procedimen-
tos. Ao mesmo tempo, evitamos também a utilização de méto-
dos desnecessariamente complexos, optando sempre pelas so-
luções mais simples que nos ocorreram.
A seguir apresentamos sumariamente as características de
cada um dos três programas.
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe RMN e Transformada de Fourier e outras Manuais, Projetos, Pesquisas em PDF para Química, somente na Docsity!

A TRANSFORMADA DE FOURIER EM BASIC

*Mauricio Gomes Constantino ^ e Gil Valdo José da Silva # Departamento de Química - Faculdade de Filosofia, Ciências e Letras de Ribeirão Preto - Universidade de São Paulo - Av. Bandeirantes, 3900 - 14040-901 - Ribeirão Preto - SP

Recebido em 26/1/99; aceito em 27/4/

THE FOURIER TRANSFORM (FFT) IN BASIC. In this paper we describe three computer pro- grams in Basic language about the Fourier transform (FFT) which are available in the Internet site http://artemis.ffclrp.usp.br/SoftwareE.htm (in English) or http://artemis.ffclrp.usp.br/ softwareP.htm (in Portuguese) since October 1998. Those are addresses to the Web Page of our Laboratory of Organic Synthesis. The programs can be downloaded and used by anyone who is interested on the subject. The texts, menus and captions in the programs are written in English.

Keywords: Fourier transform; FFT; Basic; NMR.

NOTA TÉCNICA

Este artigo apresenta três programas em linguagem Basic so- bre a transformada de Fourier, que estão disponíveis no “site” da Internet http://artemis.ffclrp.usp.br/softwareP.htm (em português) ou http://artemis.ffclrp.usp.br/softwareE.htm (em inglês) (partes da “Web Page” de nosso Laboratório de Síntese Orgânica) desde outubro de 1998 para serem copiados e usados por quem se inte- resse pelo assunto. Os textos dos programas estão escritos em inglês para torná-los mais universalmente utilizáveis. A transformada de Fourier é um processo matemático ex- tensamente utilizado hoje em dia em espectrometria de RMN, de IV, etc., na forma do engenhoso processo de cálculo digital simplificado, desenvolvido por vários autores 1 , denominado FFT (Fast Fourier Transform). A simplificação introduzida por esse algoritmo reduz as operações necessárias de N 2 multipli- cações complexas para N log 2 N multiplicações (N é o número de pontos da função a ser transformada). Essencialmente a transformada de Fourier consiste em, dada uma quantidade h como função do tempo [ h(t) ], determinar a correspondente quantidade H como função da freqüência [ H(f) ], geralmente como um número complexo que também indica a fase, e vice-versa: dada H(f) , determinar h(t). Neste artigo referimo-nos, naturalmente, a cálculo numérico, onde h(t) é uma coleção de N números que indicam, por exemplo, a inten- sidade em função do tempo de certa função periódica; a trans- formada de Fourier correspondente será outra coleção de N números que indicarão a intensidade de cada freqüência pre- sente na função periódica original. Inversamente, se forem conhecidas as intensidades das freqüências, a transformada fornecerá a função h(t). Um exemplo simples seria a voz de uma pessoa emitindo um som determinado por, digamos, 1 segundo. A voz provoca uma oscilação do ar, que pode ser captada por um microfone, con- vertida em oscilação elétrica, e gravada. Um computador pode “ler” essa oscilação como uma coleção de pontos (números) que indicam a intensidade em função do tempo; a transformada de Fourier, aplicada a esses “pontos”, fornecerá um “mapa” das várias freqüências que compõem o som da voz, na forma de uma função intensidade x freqüência. Se na função original o tempo é em segundos, na transformada a freqüência será em Hz. Algo semelhante ocorre, por exemplo, no espectrômetro de RMN. O aparelho capta uma oscilação eletromagnética emitida pelos núcleos dos átomos e grava essa oscilação como uma

coleção de números que indicam a intensidade em função do tempo. A transformada de Fourier fornecerá um “mapa” das freqüências que compõem a oscilação, mapa esse que chama- mos de “espectro” de RMN. Na literatura há muitos trabalhos que apresentam explica- ções bem detalhadas sobre vários aspectos da transformada de Fourier. Recomendamos em especial o livro Numerical Recipes 2 , de onde foi retirada a rotina básica para elaboração de nossos programas. Não nos estenderemos, portanto, em maiores considerações sobre a transformada em si. O principal objetivo de nossos programas é de natureza pragmática. Pretendemos, com eles, dar um exemplo prático de como elaborar certas rotinas para obter um efeito desejado, sendo esses exemplos completos dentro de seus objetivos, sem deixar pontas desatadas. A linguagem Basic é a mais simples das linguagens de programação, e pode ser aprendida com rapidez e facilidade. O Visual Basic ® 3 desenvolvido pela Microsoft ® é muito versátil e incorpora inúmeras vantagens próprias de outras linguagens, tornando-se em método ideal para elaboração de programas re- lativamente pequenos, principalmente se desenvolvidos por pes- soas cujo objetivo principal em pesquisa esteja voltado para outros aspectos, sendo a programação uma ferramenta e não um objetivo em si, como é o nosso caso. Decidimos experi- mentar a elaboração de programas de FFT em Basic, e ficamos surpresos com a qualidade dos resultados, em boa parte devi- da, naturalmente, à grande rapidez e capacidade de memória dos computadores usados hoje em dia. Procuramos, dentro de limites razoáveis, explorar a grande variedade de recursos do Visual Basic ® nesses programas, para ampliar sua utilidade como exemplos. Em um dos programas, por exemplo, não dimensionamos variáveis na seção de Decla- rações; todos os dados que pretendíamos usar em outras roti- nas foram armazenados em Lists , Labels , etc. Nos outros pro- gramas, ao contrário, fizemos extenso uso das variáveis dimensionadas para serem usadas em várias rotinas diferentes, sem recorrer a Lists. Muito variados, também, são os exemplos de como fazer gráficos, como traçar escalas, fazer ampliações, obter dados, movimentar os gráficos, etc. Atendendo a nossos objetivos didáticos, evitamos repetir rotinas, procurando sem- pre usar métodos alternativos para vários tipos de procedimen- tos. Ao mesmo tempo, evitamos também a utilização de méto- dos desnecessariamente complexos, optando sempre pelas so- luções mais simples que nos ocorreram. A seguir apresentamos sumariamente as características de cada um dos três programas.

(^) e-mail: [email protected]

FFT SpecMusEV

Este programa, inicialmente, gera dados correspondentes a várias funções periódicas, desde simples sen x, cos x, onda quadrada e onda triangular, até funções múltiplas que são o resultado da soma de até 10 funções sen x (^) n ou cos x (^) n. Os “dados” referidos acima correspondem ao valor da função especificada para 1024 pontos, distribuídos uniformemente ao longo de uma “janela” arbitrária de 1 segundo; é traçado um gráfico desses pontos, permitindo a “visualização” da função periódica. Em seguida esses dados são submetidos ao cálculo da transformada de Fourier, e o resultado é mostrado em outro gráfico, que pode ser (lembrando que o resultado é uma co- leção de números complexos) do módulo ou vetor r, somente da parte imaginária, somente da parte real, ou parte real e imaginária simultaneamente. Usando esse último gráfico, por exemplo, fica muito fácil ver que (com fase φ = 0) a função sen x produz resultado somente na parte imaginária, enquanto a função cos x apresenta resultado somente na parte real; al- terando os valores das fases na função original, pode-se ver facilmente a alteração correspondente de intensidade nas par- tes real e imaginária. A Figura 1 mostra a tela inicial apresentada pelo programa, onde já se pode ver como a transformada de Fourier determi- nou corretamente as freqüências presentes na função múltipla original, definida pela fórmula

f(t) = an × Sen(2 π vntn ) n

v n = bn × ( n o^ de ciclos )

e pelos parâmetros visíveis na parte esquerda da tela. As am- plitudes correspondentes a cada freqüência são também facil- mente avaliadas (correspondendo ao parâmetro “a” da tabela). Naturalmente, os parâmetros podem ser alterados à vontade para produzir uma enorme variedade de resultados.

dados de um arquivo *.raw (que pode ser obtido a partir de um arquivo *.wav qualquer através dos programas que acompanham os kits multimedia) e calcular a correspondente transformada de Fourier. A Figura 2 mostra o resultado do cálculo realizado com o acorde inicial de “Moonlight Serenade”, de Glenn Miller: as pequenas linhas verticais mostram as harmônicas de um instru- mento que está tocando “si bemol”, e o cursor (linha vertical grande) foi colocado próximo à freqüência que corresponde à nota principal da melodia, mostrando que ela é um “dó” (C5). O teclado musical desenhado sob o gráfico foi construído de ma- neira a corresponder às freqüências corretamente, permitindo fácil identificação da nota musical.

Figura 1. Tela inicial do programa FFT SpecMusEV.

A Figura 1 permite que o leitor possa ter uma idéia de ou- tros aspectos do programa: é possível fazer expansões do grá- fico, visualizar harmônicas, ver um gráfico da FFT com escala logarítmica, realizar o cálculo inverso (isto é, partindo dos dados da transformada, recalcular os dados da função original: o resultado é fornecido como gráficos e como uma tabela con- tendo os dados originais e os recalculados), etc. Um aspecto bem diferente, porém, é que o programa pode ler

Figura 2. Transformada de Fourier de um arquivo *.raw pelo progra- ma FFT SpecMusEV.

Devido ao método usado para armazenar dados em Lists , esse programa está limitado em seus cálculos a 16384 pontos. Há, naturalmente, outras limitações, mas o leitor poderá veri- ficar que o programa é muito útil para sua finalidade didática. É possível também imprimir gráficos e gerar “bitmaps” da transformada de Fourier.

FFT SpecEV

Este programa mostra como a transformada de Fourier pode ser utilizada para processar os dados obtidos de um espectrô- metro de ressonância magnética nuclear, transformando a cur- va “fid” obtida do espectrômetro em um espectro de RMN. Infelizmente as características das curvas “fid” e o formato dos arquivos são diferentes para diferentes espectrômetros; um pro- grama que pudesse ler e manipular os dados de vários tipos de espectrômetros seria de complexidade maior do que nossos ob- jetivos e disponibilidades permitem, de forma que julgamos mais apropriado escrever o programa para ler arquivos apenas do espectrômetro Bruker ®. Um arquivo “fid” lido com este programa é apresentado como gráficos das partes real e imaginária separadamente. Veja a Figura 3, que mostra o gráfico do arquivo “fid” correspon- dente ao espectro de 1 H RMN do óxido de isoforona:

estilo militar de um instrumento de metal (provavelmente um trompete em fá ou em mi – o leitor certamente perdoará nossa ignorância musical, que não nos permite resolver essa dúvida); uma única nota (a primeira) está selecionada nesse gráfico, e a Figura 8 mostra a transformada correspondente a esse som. O leitor, possivelmente, ficará surpreso com a grande riqueza de harmônicos desses instrumentos de metal. Na Figura 8 o cursor (longa linha vertical) foi colocado próximo à freqüência funda- mental (correspondente ao som que se ouve), mostrando que a nota executada é um “mi” (mi4 ou E4), e as pequenas linhas verticais mostram as harmônicas dessa freqüência.

O leitor pode facilmente perceber a versatilidade do progra- ma para análises de sons musicais. Deve-se notar que o teclado apresentado aqui é ativo, podendo emitir sons de vários instru- mentos selecionáveis pelo menu correspondente.

CONCLUSÃO

Os programas apresentados dão um exemplo bem completo e variado de como utilizar a transformada de Fourier para diferen- tes finalidades. Como estão escritos em Basic, o leitor tem aces- so a todas as rotinas livremente, podendo compreender, adaptar, aperfeiçoar, modificar ou mesmo copiar as rotinas para usá-las em outros programas. Uns poucos comentários escritos dentro das próprias rotinas podem auxiliar a compreensão. Mesmo quem não se interesse pelo assunto principal (a transformada de Fourier) pode aproveitar os programas para aprender ou enri- quecer seus conhecimentos de Basic para fazer gráficos, ler ar- quivos, etc. Um grande número de pesquisadores acha que pro- gramação de computadores é assunto demasiado complexo, e fica à mercê dos programadores profissionais que são extraordi- nariamente competentes mas nem sempre compreendem (ou conhecem, ou valorizam) os problemas específicos de todos os pesquisadores. Esperamos com este trabalho estar também con- tribuindo para encorajar pesquisadores a desenvolverem seu pró- prios programas, mesmo que pequenos, para resolverem proble- mas específicos com maior eficiência e rapidez.

AGRADECIMENTOS

Os autores agradecem à FAPESP e ao CNPq pelo apoio financeiro, e ao Prof. Dr. Léo Degrève por valiosas sugestões.

REFERÊNCIAS E NOTAS

  1. Como observado na referência 2, pg. 391, o algoritmo para FFT tornou-se conhecido nos anos 60 através do trabalho de J. W. Cooley, J. W. Tukey e R. L. Garwin, mas outros autores já haviam desenvolvido o sistema muitos anos antes, como é o caso de Danielson e Lanczos (1942).
  2. Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; Vetterling, W. T.; Numerical Recipes , Cambridge University Press, Cambridge, 1986.

Figura 7. Gráfico de um arquivo *.wav apresentado pelo programa FFT MusEV, mostrando uma parte já selecionada e pronta para ser submetida à transformada de Fourier.

Figura 8. Gráfico da transformada de Fourier da parte selecionada na Figura 7, mostrando as freqüências harmônicas, pelo programa FFT MusEV

Na Figura 9 é mostrado o gráfico da transformada de Fourier correspondente à terceira nota do “Chorinho Didático n o^ 6” de Altamiro Carrilho, de gravação executada pelo próprio compo- sitor; trata-se de uma única nota musical (C6, segundo a par- titura) executada apenas pela flauta. É bem visível o contraste entre as Figuras 8 e 9; o som da flauta é muito mais “puro”, apresentando apenas pequena quantidade de harmônicos. Na Figura 9 o cursor foi colocado exatamente sobre a freqüência de C6, mostrando que nessa gravação foi utilizado um padrão de afinação diferente do usado no programa (A4 em 440 Hz);

Figura 9. Gráfico similar ao da Figura 8, correspondendo agora a um som de flauta, pelo programa FFT MusEV.

de fato, a nota executada pela flauta encontra-se aproximada- mente a meio caminho entre C6 e C#6.

  1. O Visual Basic é fornecido ao usuário em várias ver- sões mais ou menos completas. Utilizamos a versão Visual Basic 5.0 “Professional”; se o leitor utilizar uma versão menos completa poderá sentir falta de al- guns recursos. 4. Westler, W. M.; Abildgaard, F.; DMX Digital Filters and Non-Bruker Offline Processing III , July 16, 1996. Texto proveniente da University of Wisconsin , localizado atra- vés da Internet, pelo “site” http://www.nmrfam.wisc.edu/ Personnel/milo.html