Transformada rápida de Fourier: número de ciclos no enteros en la apertura FFT

15

Hay algunos excelentes hilos de discusión y respuestas en este sitio (eletronics.se) sobre la teoría de las transformadas de Fourier. Intenté implementar lo mismo en una herramienta de simulación (MS Excel :)).

Tengo algunos problemas de interpretación e implementación con respecto al mismo. Estoy tratando de analizar una forma de onda de voltaje de 50 Hz. Sin embargo, los datos a continuación son solo datos ficticios generados que intentan establecer un marco conceptual para la implementación en un procesador embebido de bajo costo integrado de 16 bits con capacidad de procesamiento y memoria limitada.


ETA (30 de mayo de 2012)

TL; versión DR:

Huelga decir en electrónica.se pero estoy usando un procesador embebido con limitación de potencia de procesamiento y memoria.

Aquí hay algunas preguntas que aún no tienen respuesta:

  1. ¿Cómo se realiza la ventana en las muestras que tengo sin aumentar significativamente la huella de memoria del algoritmo? Me gustaría que fueran una descripción básica paso a paso, ya que soy bastante nuevo en DSP.
  2. ¿Por qué las magnitudes se redujeron a la mitad cuando interpolé 41 muestras para obtener 32, pero permanecí tal como estaban (excepto por algo de ruido) cuando las interpolé para obtener 64?

Estoy declarando una recompensa por la pregunta con la esperanza de obtener algunas respuestas excelentes que sean procesables para un novato en DSP.


Experimento 1:

Entrada de dominio de tiempo

Generé una onda sinusoidal usando para generar 64 muestras. Luego agregué 30% de armónicos, 20% de armónicos, 15% de armónicos, 10% de armónicos y 20% de armónicos. Esto llevó a estas muestras:3 r d 5 t hpecado(2norteπ/ /64)3rre5 5th7 7th9 9th11th

0, 0.628226182, 0.939545557, 0.881049194, 0.678981464, 0.602991986, 0.719974543, 
0.873221372, 0.883883476, 0.749800373, 0.636575155, 0.685547957, 0.855268479, 
0.967780108, 0.904799909, 0.737695292, 0.65, 0.737695292, 0.904799909, 0.967780108, 
0.855268479, 0.685547957, 0.636575155, 0.749800373, 0.883883476, 0.873221372, 
0.719974543, 0.602991986, 0.678981464, 0.881049194, 0.939545557, 0.628226182, 0, 
-0.628226182, -0.939545557, -0.881049194, -0.678981464, -0.602991986, -0.719974543, 
-0.873221372, -0.883883476, -0.749800373, -0.636575155, -0.685547957, -0.855268479, 
-0.967780108, -0.904799909, -0.737695292, -0.65, -0.737695292, -0.904799909, 
-0.967780108, -0.855268479, -0.685547957, -0.636575155, -0.749800373, -0.883883476, 
-0.873221372, -0.719974543, -0.602991986, -0.678981464, -0.881049194, -0.939545557,
-0.628226182

Y esta forma de onda:

Dominio del tiempo Forma de onda 64 período de muestras 64

Tomé un DFT de estas muestras basado en un algoritmo Radix 2 y obtuve estos valores:

0, -32i, 0, -9.59999999999999i, 0, -6.4i, 0, -4.79999999999999i, 0, -3.20000000000001i,
0, -6.4i, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.4i, 0, 3.19999999999999i, 0, 4.8i, 0,
6.4i, 0, 9.60000000000001i, 0, 32i

Tomando los valores absolutos de los números complejos anteriores como la relación con el fundamental (segundo valor) e ignorando la información de fase (si existiera), obtuve las magnitudes de los componentes armónicos inyectados exactamente como se inyectaron.

Representación de dominio de frecuencia

ingrese la descripción de la imagen aquí

Hasta aquí todo bien.


Experimento 2:

Entrada de dominio de tiempo

Volví a generar una onda sinusoidal usando para generar 64 muestras. ¿Por qué 41? Porque en la implementación real, mis microcontroladores ADC toman muestras en un múltiplo del oscilador externo, y solo tengo unos pocos tipos de cristales disponibles. Luego agregué 30% de armónicos, 20% de armónicos, 15% de armónicos, 10% de armónicos y 20% de armónicos. Esto llevó a estas muestras:3 r d 5 t h 7 t h 9 t h 11 t hpecado(2norteπ/ /41)3rre5 5th7 7th9 9th11th

0, 0.853079823, 0.857877516, 0.603896038, 0.762429734, 0.896260999, 0.695656841, 
0.676188057, 0.928419527, 0.897723205, 0.664562475, 0.765676034, 0.968738879, 
0.802820512, 0.632264626, 0.814329015, 0.875637458, 0.639141079, 0.696479632, 
0.954031849, 0.50925641, -0.50925641, -0.954031849, -0.696479632, -0.639141079, 
-0.875637458, -0.814329015, -0.632264626, -0.802820512, -0.968738879, -0.765676034, 
-0.664562475, -0.897723205, -0.928419527, -0.676188057, -0.695656841, -0.896260999, 
-0.762429734, -0.603896038, -0.857877516, -0.853079823, -6.87889E-15, 0.853079823, 
0.857877516, 0.603896038, 0.762429734, 0.896260999, 0.695656841, 0.676188057, 
0.928419527, 0.897723205, 0.664562475, 0.765676034, 0.968738879, 0.802820512, 
0.632264626, 0.814329015, 0.875637458, 0.639141079, 0.696479632, 0.954031849, 
0.50925641, -0.50925641, -0.954031849 

Y esta forma de onda:

ingrese la descripción de la imagen aquí

Tomé un DFT de estas muestras basado en un algoritmo Radix 2 y obtuve estos valores:

14.03118145099, 22.8331789450432+2.81923657448236i, -17.9313890484703-4.4853739490832i, 
-2.54294462900052-0.971245447370764i, 1.74202662319821+0.944780377248239i, 
-7.2622766435314-5.09627264287862i, -1.5480700475686-1.37872970296476i, 
-0.136588568631116-0.126111953353714i, -3.99554928315394-5.93646306363598i, 
-0.840633449276516-1.60987487366169i, -0.373838501691708-0.955596009389976i, 
-1.326751987645-5.7574455633693i, -0.168983464443025-1.34797078005724i, 
-9.49818315071085E-003-1.20377723286595i, 0.571706242298176-4.14055455367115i,  
0.192891008647316-0.865793520825366i, 0.457088076063747-1.22893647561869i, 
3.15565897700047-5.67394957744733i, -0.573520124828716+0.682717512668197i, 
-0.20041207669728+0.127925509089274i, -7.95516670999013E-002-1.22174958722397E-002i, 
-1.57510358481328E-002-6.44533006507588E-002i, 2.50067192003906E-002-8.46645685508359E-
002i, 5.3665806842526E-002-9.01867018999554E-002i, 7.49143167927897E-002-
8.80550417489663E-002i, 9.11355142202819E-002-8.16075816185574E-002i, 
0.103685444073525-7.25978085593222E-002i, 0.11339684328631-6.20147712757682E-002i, 
0.120807189654211-5.04466357453455E-002i, 0.126272708495893-3.82586162066316E-002i, 
0.130029552904267-2.56872914345987E-002i, 0.132228055573542-1.28943815159261E-002i, 
0.1329519244939, 0.132228055573544+1.28943815159441E-002i, 
0.130029552904267+2.56872914345769E-002i, 0.126272708495892+3.82586162066264E-002i, 
0.12080718965421+5.04466357453468E-002i, 0.113396843286315+6.20147712757588E-002i, 
0.103685444073529+7.25978085593135E-002i, 9.11355142202805E-002+8.16075816185583E-002i, 
7.4914316792795E-002+8.80550417489592E-002i, 5.36658068425271E-002+9.01867018999563E-
002i, 2.50067192003947E-002+8.46645685508275E-002i, -1.57510358481296E-
002+6.44533006507526E-002i, -7.95516670999005E-002+1.22174958722402E-002i, 
-0.20041207669728-0.127925509089278i, -0.573520124828709-0.682717512668206i, 
3.15565897700049+5.67394957744733i, 0.45708807606375+1.22893647561869i, 
0.192891008647318+0.865793520825373i, 0.571706242298199+4.14055455367114i, 
-9.49818315070294E-003+1.20377723286595i, -0.168983464443023+1.34797078005724i, 
-1.32675198764498+5.75744556336931i, -0.373838501691692+0.955596009389972i, 
-0.840633449276515+1.6098748736617i, -3.99554928315393+5.93646306363599i, 
-0.136588568631125+0.126111953353722i, -1.54807004756858+1.37872970296476i, 
-7.26227664353139+5.09627264287866i, 1.7420266231982-0.944780377248243i, 
-2.54294462900053+0.971245447370785i, -17.9313890484703+4.48537394908326i, 
22.8331789450432-2.81923657448243i

Representación del dominio de frecuencia

ingrese la descripción de la imagen aquí

Las magnitudes de los números complejos anteriores no revelan nada que pueda inferir a los valores inyectados en el dominio del tiempo.


Experimento 3

Entrada de dominio de tiempo:

Ahora tomé la misma forma de onda y la rellené con cero, es decir, puse todas las muestras más allá de 41 a cero. Entonces, la siguiente es la entrada del dominio de tiempo:

0, 0.853079823, 0.857877516, 0.603896038, 0.762429734, 0.896260999, 0.695656841,  
0.676188057, 0.928419527, 0.897723205, 0.664562475, 0.765676034, 0.968738879, 
0.802820512, 0.632264626, 0.814329015, 0.875637458, 0.639141079, 0.696479632, 
0.954031849, 0.50925641, -0.50925641, -0.954031849, -0.696479632, -0.639141079, 
-0.875637458, -0.814329015, -0.632264626, -0.802820512, -0.968738879, -0.765676034, 
-0.664562475, -0.897723205, -0.928419527, -0.676188057, -0.695656841, -0.896260999, 
-0.762429734, -0.603896038, -0.857877516, -0.853079823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

Y la forma de onda:

ingrese la descripción de la imagen aquí

Tomé un DFT de estas muestras basado en un algoritmo Radix 2 y obtuve estos valores:

0, 20.0329458083285-9.47487772467906i, -10.5723252177717-8.67648307596821i, 
-8.88751906208901E-002+0.354809649783859i, 3.59322342970171-0.714736578926027i, 
-3.28379151210465-4.42768029850565i, -0.232297876050463+0.434598758428557i, 
1.68672762980862+8.28636148716246E-002i, -1.54927040705738-3.7402696285012i, 
-0.551413356435698+0.608390885175318i, 0.616809338622588+0.187107067289195i, 
-0.458965526924983-3.09409425549091i, -0.966784216252588+0.645984560777537i, 
7.03082277241579E-003+4.21411299459407E-003i, 0.196179960454289-1.99184856512683i, 
-0.919089774378072+0.328855579674163i, 0.222736292145887+0.222736292145884i, 
1.23799833509466-3.45997355924453i, -3.29198268057418+0.324231994037239i, 
-0.495840326552116-0.827259606915814i, -0.434268223171498+0.649928325340974i, 
-1.13740282784196-0.168717771696843i, -8.50255402020411E-002-0.280291642522456i, 
-0.495871287837938+0.449431537929797i, -0.705190861543966-0.292099618913078i, 
-1.8498657760867E-003-3.76548829156425E-002i, -0.56327531746565+0.301076929791613i, 
-0.445444858519027-0.330364422654705i, -2.53084763487132E-002+0.12723430263342i, 
-0.608135034699087+0.152329896227613i, -0.254967975468-0.31067937701979i, 
-0.114451748984804+0.241987891739128i, -0.623647028694518, -0.114451748984793-
0.241987891739111i, -0.254967975467992+0.310679377019776i, -0.608135034699088-
0.152329896227612i, -2.53084763487126E-002-0.127234302633416i, 
-0.445444858519022+0.330364422654704i, -0.563275317465649-0.301076929791616i, 
-1.84986577609081E-003+3.76548829156447E-002i, -0.705190861543962+0.292099618913075i, 
-0.495871287837939-0.449431537929793i, -8.50255402020378E-002+0.280291642522452i, 
-1.13740282784196+0.168717771696845i, -0.434268223171501-0.649928325340972i, 
-0.495840326552115+0.827259606915815i, -3.29198268057417-0.324231994037237i, 
1.23799833509466+3.45997355924453i, 0.222736292145887-0.222736292145884i, 
-0.919089774378077-0.328855579674149i, 0.1961799604543+1.99184856512683i, 
7.03082277241257E-003-4.21411299459534E-003i, -0.966784216252593-0.645984560777534i, 
-0.458965526924974+3.09409425549092i, 0.616809338622592-0.187107067289204i, 
-0.551413356435713-0.608390885175314i, -1.54927040705737+3.74026962850121i, 
1.68672762980861-8.28636148716247E-002i, -0.232297876050455-0.434598758428559i, 
-3.28379151210465+4.42768029850566i, 3.59322342970171+0.714736578926018i, 
-8.88751906209093E-002-0.354809649783852i, -10.5723252177717+8.67648307596825i, 
20.0329458083285+9.47487772467899i 

Representación de dominio de frecuencia

ingrese la descripción de la imagen aquí

Una vez más, las magnitudes de los números complejos anteriores no revelan nada que pueda inferir a los valores inyectados en el dominio del tiempo.


ETA Debido a que las respuestas aquí me indicaron a la ventana, hice otro experimento y obtuve los siguientes resultados después de muchos inicios falsos.

Experimento 4

Representación del dominio del tiempo

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.853079823, 0.857877516, 0.603896038,
0.762429734, 0.896260999, 0.695656841, 0.676188057, 0.928419527, 0.897723205, 
0.664562475, 0.765676034, 0.968738879, 0.802820512, 0.632264626, 0.814329015, 
0.875637458, 0.639141079, 0.696479632, 0.954031849, 0.50925641, -0.50925641, 
-0.954031849, -0.696479632, -0.639141079, -0.875637458, -0.814329015, -0.632264626, 
-0.802820512, -0.968738879, -0.765676034, -0.664562475, -0.897723205, -0.928419527, 
-0.676188057, -0.695656841, -0.896260999, -0.762429734, -0.603896038, -0.857877516, 
-0.853079823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

Parece:

ingrese la descripción de la imagen aquí

Coeficientes de ventana de Hamming

0.08, 0.082285843, 0.089120656, 0.100436509, 0.116120943, 0.136018076, 0.159930164, 
0.187619556, 0.218811064, 0.253194691, 0.290428719, 0.330143098, 0.371943129, 
0.415413385, 0.460121838, 0.505624157, 0.551468118, 0.597198104, 0.64235963, 
0.686503859, 0.729192067, 0.77, 0.808522089, 0.844375485, 0.877203861, 0.906680953, 
0.932513806, 0.954445679, 0.972258606, 0.985775552, 0.99486218, 0.999428184, 
0.999428184, 0.99486218, 0.985775552, 0.972258606, 0.954445679, 0.932513806, 
0.906680953, 0.877203861, 0.844375485, 0.808522089, 0.77, 0.729192067, 0.686503859, 
0.64235963, 0.597198104, 0.551468118, 0.505624157, 0.460121838, 0.415413385, 
0.371943129, 0.330143098, 0.290428719, 0.253194691, 0.218811064, 0.187619556, 
0.159930164, 0.136018076, 0.116120943, 0.100436509, 0.089120656, 0.082285843, 0.080.08, 
0.082285843, 0.089120656, 0.100436509, 0.116120943, 0.136018076, 0.159930164, 
0.187619556, 0.218811064, 0.253194691, 0.290428719, 0.330143098, 0.371943129, 
0.415413385, 0.460121838, 0.505624157, 0.551468118, 0.597198104, 0.64235963, 
0.686503859, 0.729192067, 0.77, 0.808522089, 0.844375485, 0.877203861, 0.906680953, 
0.932513806, 0.954445679, 0.972258606, 0.985775552, 0.99486218, 0.999428184, 
0.999428184, 0.99486218, 0.985775552, 0.972258606, 0.954445679, 0.932513806, 
0.906680953, 0.877203861, 0.844375485, 0.808522089, 0.77, 0.729192067, 0.686503859, 
0.64235963, 0.597198104, 0.551468118, 0.505624157, 0.460121838, 0.415413385, 
0.371943129, 0.330143098, 0.290428719, 0.253194691, 0.218811064, 0.187619556, 
0.159930164, 0.136018076, 0.116120943, 0.100436509, 0.089120656, 0.082285843, 0.08

Se parece a esto

ingrese la descripción de la imagen aquí

Su producto (¿Sería solo un producto simple?)

0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.354380777, 0.394728179, 0.305344425, 
0.420455691, 0.53524537, 0.446861871, 0.464205711, 0.676996154, 0.691246868, 
0.537313441, 0.646518073, 0.849781485, 0.727902068, 0.589595493, 0.77723281, 
0.851346054, 0.63004965, 0.692901245, 0.953486318, 0.508965209, -0.506639943, 
-0.940461272, -0.677158316, -0.610025441, -0.816544018, -0.738336608, -0.554624971, 
-0.67788196, -0.783246782, -0.589570546, -0.484593685, -0.616290445, -0.596379223, 
-0.403818226, -0.383632569, -0.453171212, -0.350810571, -0.250866497, -0.319081647, 
-0.281638415, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

Parece:

ingrese la descripción de la imagen aquí

Representación de dominio de frecuencia

1.01978454171002, -1.04956742046721-14.885596686908i, 
0.729587297164687+12.4883097743251i, -0.393281811348907-4.24261013057826i, 
0.761581725234628+3.2398820477072i, -0.876737136684714-3.79393194973719i, 
0.480276094694696+1.88418789653125i, -0.735142602781246-1.8175563772351i, 
1.02811278581892+2.5331069394699i, -0.584707361656586-1.41705783059227i, 
0.642189640425863+1.09157435002371i, -1.08027274688044-1.77950446999262i, 
0.690373934734768+1.16057125940753i, -0.45786262480057-0.586349217392973i, 
0.837117486838485+0.985681387258948i, -0.684335876271999-0.810862267851556i, 
0.930190039748881+0.842491953501215i, -2.11497450796919-1.82531206712061i, 
1.77660184883125+1.59539043421572i, -8.20687157856373E-003-0.123202767234891i, 
-0.280149317662962-0.244195928734504i, -0.313777442633104-0.174757927010731i, 
-5.83069102281942E-002+1.54514819958589E-002i, 0.211135948552966+0.12606544182717i, 
0.227409826380236+7.86489707052085E-002i, 2.49029866186928E-003-3.26908578232317E-002i, 
-0.204885728671642-7.60371335974082E-002i, -0.174609549526536-2.58285031988847E-002i, 
4.55943100777029E-002+3.62216126377679E-002i, 0.205437067084294+3.66474457853982E-002i, 
0.130866115437055-7.39089659931302E-003i, -8.90307098969982E-002-2.75195665163235E-
002i, -0.206016142964952, -8.90307098969848E-002+2.75195665163199E-002i, 
0.130866115437044+7.39089659931835E-003i, 0.205437067084297-3.66474457854036E-002i, 
4.55943100777004E-002-3.62216126377661E-002i, -0.174609549526531+2.58285031988801E-
002i, -0.204885728671643+7.60371335974132E-002i, 2.49029866187001E-
003+3.26908578232264E-002i, 0.227409826380234-7.86489707052067E-002i, 0.21113594855297-
0.126065441827174i, -5.83069102281978E-002-1.54514819958551E-002i, 
-0.313777442633101+0.174757927010727i, -0.280149317662962+0.244195928734507i, 
-8.20687157856043E-003+0.123202767234886i, 1.77660184883125-1.59539043421572i, 
-2.11497450796919+1.82531206712061i, 0.930190039748879-0.842491953501215i, 
-0.684335876271989+0.810862267851559i, 0.837117486838478-0.985681387258952i, 
-0.457862624800567+0.586349217392971i, 0.690373934734765-1.16057125940753i, 
-1.08027274688043+1.77950446999263i, 0.642189640425861-1.09157435002371i, 
-0.584707361656583+1.41705783059227i, 1.02811278581891-2.5331069394699i, 
-0.735142602781236+1.81755637723511i, 0.480276094694689-1.88418789653125i, 
-0.876737136684699+3.79393194973719i, 0.76158172523462-3.2398820477072i, 
-0.393281811348889+4.24261013057827i, 0.729587297164646-12.4883097743252i, 
-1.04956742046715+14.885596686908i

Se parece a esto:

ingrese la descripción de la imagen aquí

¿Son estos resultados válidos? ¡Porque todavía no parece que llegue a ningún lado!


Hice dos experimentos más y parezco estar tentadoramente cerca de los resultados previstos, pero la solución tiene la sensación de un truco para mí.

Experimento 5

3rre5 5th7 7th9 9th11th

0, 0.853079823, 0.857877516, 0.603896038, 0.762429734, 0.896260999, 0.695656841, 
0.676188057, 0.928419527, 0.897723205, 0.664562475, 0.765676034, 0.968738879, 
0.802820512, 0.632264626, 0.814329015, 0.875637458, 0.639141079, 0.696479632, 
0.954031849, 0.50925641, -0.50925641, -0.954031849, -0.696479632, -0.639141079, 
-0.875637458, -0.814329015, -0.632264626, -0.802820512, -0.968738879, -0.765676034, 
-0.664562475, -0.897723205, -0.928419527, -0.676188057, -0.695656841, -0.896260999, 
-0.762429734, -0.603896038, -0.857877516, -0.853079823.

Hice una interpolación lineal y obtuve 64 muestras de la misma. Se veían así:

ingrese la descripción de la imagen aquí

La representación del dominio de frecuencia en comparación con la salida ideal deseada (primer experimento) es la siguiente:

ingrese la descripción de la imagen aquí

He eliminado la segunda mitad del espacio muestral a medida que los componentes se pliegan después del límite de Nyquist. Hay una pequeña atenuación en las frecuencias de interés, pero se agrega un ruido de fondo en todo el espectro. Explicaciones?


Experimento 6

Igual que el Experimento 5 , pero 32 muestras interpoladas.

ingrese la descripción de la imagen aquí

Comparación del dominio de frecuencia:

ingrese la descripción de la imagen aquí

¡Las proporciones son correctas pero las magnitudes se reducen a la mitad! ¿Por qué?


Entonces puedo inferir, y puedo estar equivocado (espero que lo esté), que si el número de muestras en un período de forma de onda completa no es una potencia de 2, la FFT de la misma no revela nada sin algún tipo de operación , eso me elude en este momento.

Dado que tengo muy poco control sobre la frecuencia de muestreo, ¿cuáles son las opciones que tengo abiertas para recuperar los valores que inyecté en el dominio del tiempo?

Vaibhav Garg
fuente
En lugar de publicar una gran lista de números, ¿puede publicar un gráfico de la salida DFT? Es bastante difícil tener una idea aproximada de la salida como una gran lista de números.
Nombre falso
¿Desea una gráfica de las magnitudes (valores absolutos)?
¿Eso está bien ahora?
Creo que las ventanas no funcionan bien en un solo período, al igual que el DFT durante 1 período sin ventanas. No hay rastro de su señal original.
1
No estoy seguro de a qué te refieres con la recompensa. Solo veo una gran pila de tramas con algunos comentarios dispersos y preguntas vagas. Comprender las sutilezas del DFT y la ventana requerirá al menos algún estudio teórico en DSP. Recomendaría el libro introductorio de Lyons . En segundo lugar, ¿cuál es su pregunta específica sobre la implementación de la ventana? Es una técnica simple, y entendería mejor cómo implementarla en su sistema restringido.
Jason R

Respuestas:

12

Bienvenido a la ventana. Nada que ver con William G.

La cura más fácil que funciona mediante la fuerza bruta al enterrar los errores en el ruido mediante el uso del promedio es muestrear una gran cantidad de ciclos para que las condiciones de contorno no predominen.

No he visto sus resultados numéricos, pero:

Mira tu segunda y tercera gráfica.
Las formas de onda que mostró son las formas de onda que se están analizando.
El primer ejemplo tiene 2 semiciclos positivos y uno negativo.
Espero que sea muy fuerte en el 3er armónico y razonablemente en otros armónicos impares y probablemente con pares más bajos. Esa es una estimación intuitiva.
Cualquiera sea el resultado, la transformación se describe (correctamente) y describe lo que ve y lo que ve.

Esperaría que el segundo ejemplo sería inmensamente difícil de representar bien y necesitaría una gran cantidad de componentes de alta frecuencia. Es 1/3 + ve, 1/3 -ve y 1/3 cero. Es fácil decir cómo obtendrías fácilmente la salida a la derecha totalmente cero sin una gran cantidad de términos de alta frecuencia casi iguales de aproximadamente la fase opuesta cancelándose entre sí.

ENTONCES

El DFT o FFT dice lo que ve. Necesita alimentarlo con formas de onda integrales de la señal de interés o tener especial en cuenta los puntos finales. Hay toda una forma de arte dedicada a la última tarea. Términos como ventanas, coseno elevado, ventana hamming (y muchos más) comenzarán su viaje.

Wikipedia: ventanas Cooley Hann Lanczos Hamming Blackman Kaiser Nutttall y muchos amigos :-)

Probablemente útil

National Instruments y nuevamente aquí

Análisis de espectro DFT


fuente
El tercer tercio de la tercera forma de onda se ha establecido en cero forzosamente en Excel aquí y en firmware durante la implementación.
55
Forzar parte de la señal a cero solo hará una ventana rectangular de los datos con un rectángulo más corto, lo que convolucionará el resultado con una función Sinc más amplia.
hotpaw2
@VaibhavGarg: los 0 están en la hoja de cálculo y en su gráfico. Así que supuse que están en tu análisis. Si es así, se aplican los comentarios generales. Si no, entonces necesitas cambiar lo que muestras.
@RussellMcMahon Sí, estoy de acuerdo.
Las ventanas de un número entero de períodos alinean los nulos del sinc con el espacio armónico, lo que evita fugas entre los armónicos cuando el espectro de la ventana está enrevesado. Aquí hay un DFT de 1024 puntos (interpolado con relleno cero) para los experimentos 2 y 3 (es decir, ventana rectangular de 64 puntos frente a ventana rectangular de 41 puntos). Los valores ideales se trazan como puntos azules. El experimento 2 muestra la fuga espectral (especialmente en los armónicos pares que deberían ser cero), pero el experimento 3 es correcto en los armónicos.
Eryk dom
7

Los resultados de FFT realmente revelan todo sobre las frecuencias inyectadas originales. Pero debido a que las frecuencias inyectadas no eran exactamente periódicas en la longitud de apertura FFT, las frecuencias se han enredado en formas de onda Sinc debido a esta ventana no relacionada con el periódico, y luego se volvieron a muestrear. Para recuperar las frecuencias originales, es posible que deba desconvolucionar, interpolar y reescalar según la longitud de la FFT.

hotpaw2
fuente
¿Podría por favor ilustrar los 3 pasos? Puedo enviarle el archivo de Excel con las muestras originales para jugar si lo desea.
6

Esta no es una respuesta completa de ninguna manera, y no espero que sea aceptada, pero también creo que hay un valor educativo significativo en esta respuesta.

Entonces puedo inferir, y puedo estar equivocado (espero que lo esté), que si el número de muestras en un período de forma de onda completa no es una potencia de 2, la FFT de la misma no revela nada sin algún tipo de operación , eso me elude en este momento.

En su mayoría tienes razón. El FFT aprovecha la simetría de las muestras de frecuencia a lo largo del círculo unitario en el plano z:

Círculo de unidad genérica

Si su número de muestras es una potencia de 2, como se muestra arriba, puede ver la simetría a través del eje real y el eje imaginario. Esencialmente, lo que hace la FFT es usar esta simetría para colapsar las muestras en 1 cuadrante (o menos, no estoy seguro de los detalles de esta simetría) del círculo unitario. Esto significa que la FFT solo tiene que hacer un pequeño número de cálculos, en relación con todo el rango de frecuencia.

Lo que puede hacer con relleno cero es aumentar la resolución de la FFT agregando ceros para producir una mayor potencia de 2 muestras. La simetría sigue ahí, solo hay más muestras empaquetadas en el círculo unitario ahora.

Entonces, si NO tiene una potencia de 2, los FFT menos robustos no harán cero para usted, y puede encontrar alias en su salida.

kevlar1818
fuente