Швидке перетворення Фур'є - не ціле число циклів у діафрагмі FFT


15

Є кілька відмінного обговорення теми і відповіді на цьому сайті (eletronics.se) по теорії перетворень Фур'є. Я спробував реалізувати те саме в інструменті моделювання (MS Excel :)).

У мене є кілька питань інтерпретації та імплементації стосовно того ж. Я намагаюся проаналізувати форму хвилі напруги 50 Гц. Однак наведені нижче дані - це лише генеровані фіктивні дані, що намагаються створити концептуальні рамки для реалізації в пам'яті aa та обробці потужності, обмеженій 16-бітовим вбудованим процесором з низькими витратами.


ETA (30 травня 2012 р.)

Версія TL; DR:

Само собою зрозуміло, що це стосується electronics.se, але я використовую вбудований процесор з обмеженою потужністю для обробки пам'яті.

Тут є кілька питань, на які все ще не відповідають:

  1. Як виконується віконна робота щодо зразків, які я маю, без істотного збільшення сліду пам'яті алгоритму? Я хотів би, щоб вони були основним покроковим описом, оскільки я досить новачок у DSP.
  2. Чому величини зменшилися вдвічі, коли я інтерполював 41 пробу, щоб отримати 32, але залишився таким, яким вони були (за винятком деякого шуму), коли я інтерполював їх, щоб отримати 64?

Я декларую нагороду за запитання з надією, що я отримаю відмінні відповіді, які можуть послухати початківця в DSP.


Експеримент 1:

Введення часового домену

Я створив синусоїду за допомогою для отримання 64 зразків. Потім я додав 30% 3 R d гармоніки, 20% 5 т ч гармоніки, 15% 7 т ч гармоніки, 10% 9 т ч гармоніки, і 20% 11 т ч гармонік. Це призвело до таких зразків:гріх(2нπ/64)3rг5тгод7тгод9тгод11тгод

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

І ця хвиля:

Хвильова область часу 64 зразків період 64

Я взяв DFT цих зразків на основі алгоритму Radix 2 і отримав ці значення:

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

Взявши абсолютні значення вищевказаних комплексних чисел як відношення до основного (2-е значення) та ігноруючи фазову інформацію (якщо така була), я отримав величини введених гармонічних компонентів точно такі, як введені.

Представлення частотних доменів

введіть тут опис зображення

Все йде нормально.


Експеримент 2:

Введення часового домену

гріх(2нπ/41)3rг5тгод7тгод9тгод11тгод

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 

І ця хвиля:

введіть тут опис зображення

Я взяв DFT цих зразків на основі алгоритму Radix 2 і отримав ці значення:

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

Представлення частотних доменів

введіть тут опис зображення

Величини вищевказаних комплексних чисел не виявляють нічого, що я можу зробити висновок про введені значення у часовій області.


Експеримент 3

Введення часового домену:

Тепер я взяв ту саму форму хвилі і з нульовим накладом її, тобто встановив усі зразки понад 41 до нуля. Отже, наступне введення часової області:

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

І форма хвилі:

введіть тут опис зображення

Я взяв DFT цих зразків на основі алгоритму Radix 2 і отримав ці значення:

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 

Представлення частотних доменів

введіть тут опис зображення

Знову ж таки, величини наведених вище комплексних чисел не виявляють нічого, що я можу зробити висновком до введених значень у часовій області.


ETA Оскільки відповіді тут вказували мені на вікно, я зробив ще один експеримент і отримав такі результати після багатьох помилкових стартів.

Дослід 4

Представлення часової області

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

Виглядає як:

введіть тут опис зображення

Віконні коефіцієнти Хеммінга

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

Погляньте так

введіть тут опис зображення

Їх продукт (чи це був би простий продукт?)

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

Виглядає як:

введіть тут опис зображення

Представлення частотних доменів

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

Виглядайте так:

введіть тут опис зображення

Це справжні результати? Тому що я все ще, здається, нікуди не потрапляю!


Я зробив ще два експерименти і, здається, відчутно близький до запланованих результатів, але це рішення має відчуття зламу для мене.

Експеримент 5

3rг5тгод7тгод9тгод11тгод

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.

Я зробив лінійну інтерполяцію і отримав 64 зразки з тієї ж. Вони виглядали наступним чином:

введіть тут опис зображення

Представлення частотної області порівняно з потрібним ідеальним висновком (Перший експеримент) є таким:

введіть тут опис зображення

Я позбавив другу половину пробного простору, коли компоненти згортаються після межі Найквіста. На частотах, що цікавлять, є невелике ослаблення, але в усьому спектрі додається рівень шуму. Пояснення?


Експеримент 6

Те саме, що експеримент 5 , але 32 інтерпольовані зразки.

введіть тут опис зображення

Порівняння частоти домену:

введіть тут опис зображення

Коефіцієнти правильні, але величини вдвічі зменшуються! Чому?


Тож я можу зробити висновок, і я можу помилитися (я сподіваюся, що це так), що якщо кількість зразків за повний період сигналу не є потужністю 2, то FFT того ж не виявляє нічого без якоїсь операції , що ухиляється від мене на даний момент.

Оскільки у мене дуже мало контролюють частоту вибірки, які варіанти для мене відкриті, щоб повернути значення, які я вводив у часову область?


Замість того, щоб розмістити великий великий список чисел, чи можете ви розмістити графік результату DFT? Досить важко отримати грубе уявлення про результат як просто великий список чисел.
Підроблена назва

Чи хотіли б ви графік величин (Абсолютні значення)?

Зараз це добре?

Я думаю, що віконце не працює добре протягом лише одного періоду, як і DFT протягом 1 періоду без вікон. Немає сліду від вашого оригінального сигналу.

1
Я не впевнений, до чого ви стикаєтеся з щедротою. Я просто бачу велику купу сюжетів з деякими розкиданими коментарями та невиразними питаннями. Розуміння тонкощів DFT та створення вікон вимагає хоча б певного теоретичного дослідження в DSP. Я б рекомендував вступну книгу Ліона . По-друге, яке ваше конкретне питання щодо впровадження вікон? Це проста техніка, і ви найкраще зрозумієте, як її реалізувати у своїй обмеженій системі.
Джейсон R

Відповіді:


12

Ласкаво просимо до вікон. Нічого спільного з Вільямом Г.

Найпростіший спосіб лікування, який працює грубою силою, закопуючи помилки в шумі, використовуючи усереднення, - це відбирати велику кількість циклів, щоб граничні умови не переважали.

Я не переглядав ваші числові результати, але:

Подивіться на свій другий та третій графіки.
Відображені вами форми хвиль - це сигнали, що аналізуються.
Перший приклад має 2 позитивних півциклу та один негативний.
Я б очікував, що він буде дуже сильним у 3-й гармоніці та розумно, як і в інших непарних гармоніках, і, мабуть, із значно нижчими парними. Це інтуїтивна здогадка.
Який би результат не був, трансформація (зроблена належним чином) описує те, що воно бачить і що ви бачите.

Я б очікував, що другий приклад буде надзвичайно важко представити добре і знадобиться велика кількість високочастотних компонентів. Це 1/3 + ve, 1/3 -ve і 1/3 zero. Це важко сказати, як ви могли легко отримати абсолютно нульовий правий вивід без великої кількості майже рівних високочастотних термінів приблизно протилежної фази, скасовуючи один одного.

ТАК

DFT або FFT повідомляє, що бачить. Потрібно подати на нього цілісні форми сигналу, що цікавить, або спеціально врахувати кінцеві точки. Існує ціла художня форма, присвячена останньому завданню. Такі терміни, як віконце, піднятий косинус, забивання вікна (та багато іншого) почнуть вас у дорогу.

Вікіпедія - вікно Кулі Ханна Ланцоса Хеммінга Блекмена Кайзера Натталла та багатьох друзів :-)

Напевно, корисно

Національні інструменти і знову тут

Аналіз спектру DFT


Третя третина третьої форми сигналу була встановлена ​​на нуль примусово - у програмі excel тут та в прошивці під час впровадження.

5
Примушення частини сигналу до нуля буде просто прямокутним вікном даних з укороченим прямокутником, який просто перекрутить результат з ширшою функцією Sinc.
hotpaw2

@VaibhavGarg - 0 в таблиці та на вашому графіку. Тож я припустив, що вони є у вашому аналізі. Якщо так, то застосовуються загальні коментарі. Якщо ні, то вам потрібно змінити те, що ви показуєте.

@RussellMcMahon Yup- я згоден.

Вікно на ціле число періодів вирівнює нулі sinc до гармонічного інтервалу, що запобігає витоку між гармоніками, коли віконний спектр згорнувся. Ось 1024-кратний DFT (інтерпольований з нульовою підкладкою) для експериментів 2 та 3 (тобто 64-бальне прямокутне вікно проти 41-бальне прямокутне вікно). Ідеальні значення зображені у вигляді синіх крапок. Експеримент 2 показує спектральний витік (особливо при рівних гармоніках, які повинні бути нульовими), але експеримент 3 є правильним для гармонік.
Ерик Вс

7

Результати FFT насправді розкривають все про оригінальні введені частоти. Але оскільки введені частоти не були точно періодичними по довжині діафрагми FFT, частоти були перетворені у форми сигналів Sinc завдяки цьому неперіодичному вікні, а потім повторно відібрані. Щоб повернути початкові частоти, можливо, вам знадобиться відключити, інтерполювати та змінити масштаб залежно від довжини FFT.


Чи можете ви проілюструєте 3 кроки? Я можу надіслати вам файл excel з оригінальними зразками, з якими можна грати, якщо хочете.

6

Це не є повною відповіддю будь-якими способами, і я не очікую, що вона буде прийнята, але я також вважаю, що в цій відповіді є значна навчальна цінність.

Тож я можу зробити висновок, і я можу помилитися (я сподіваюся, що це так), що якщо кількість зразків за повний період сигналу не є потужністю 2, то FFT того ж не виявляє нічого без якоїсь операції , що ухиляється від мене на даний момент.

Ви здебільшого праві. FFT використовує симетричність частотних зразків уздовж одиничного кола в площині z:

Родове одиничне коло

Якщо ваша кількість зразків дорівнює 2, як показано вище, ви можете бачити симетрію як по реальній осі, так і по уявній осі. По суті, те, що робить FFT, - це використовувати цю симетрію для згортання зразків на 1 квадрант (або менше? Не впевнені в деталях цієї симетрії) одиничного кола. Це означає, що FFT повинен виконати лише невелику кількість обчислень відносно всього діапазону частот.

Що можна зробити з нульовим набиванням - збільшити роздільну здатність FFT, додавши нулі для отримання більшої потужності в 2 зразки. Симетрія все ще є, зараз вже більше зразків, упакованих у коло одиниць.

Тож якщо у вас немає потужності 2, менш надійний FFT не стане нульовим майданчиком для вас, і ви можете зіткнутися зі споживачем у своєму виході.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.