FFT 조리개에서 빠른 푸리에 변환-정수가 아닌 사이클 수


15

푸리에 변환 이론에 대한이 사이트 (eletronics.se) 에는 훌륭한 토론 스레드답변 이 있습니다. 시뮬레이션 도구 (MS Excel :)에서 동일하게 구현하려고했습니다.

나는 그것에 관한 몇 가지 해석 및 구현 문제가 있습니다. 50Hz의 전압 파형을 분석하려고합니다. 그러나, 아래의 데이터는 메모리에 구현하기위한 개념적 프레임 워크를 설정하고 16 비트 임베디드 저비용 프로세서를 처리하는 더미 데이터를 생성 한 것이다.


ETA (2012 년 5 월 30 일)

TL; DR 버전 :

electronics.se에 대해서는 언급하지 않았지만 메모리 및 처리 능력이 제한된 임베디드 프로세서를 사용하고 있습니다.

여기에 여전히 답이없는 몇 가지 질문이 있습니다.

  1. 알고리즘의 메모리 풋 프린트를 크게 늘리지 않으면 서 보유한 샘플에서 윈도 잉을 어떻게 수행합니까? DSP에 익숙하지 않기 때문에 이것들을 단계별 설명으로 기본 단계로 만들고 싶습니다.
  2. 32 개의 샘플을 추출하기 위해 41 개의 샘플을 보간 할 때 크기가 절반으로 줄었지만 64 개의 샘플을 보간 할 때 (소음 제외) 그대로 유지 된 이유는 무엇입니까?

나는 DSP의 초보자에게 실행 가능한 훌륭한 답변을 얻을 수 있기를 희망 하면서이 질문에 현상금을 선언하고 있습니다.


실험 1 :

시간 도메인 입력

을 사용하여 사인파 를 생성하여 64 개의 샘플을 생성했습니다. 그런 다음 30 % 고조파, 20 % 고조파, 15 % 고조파, 10 % 고조파 및 20 % 고조파를 추가했습니다. 이것은 다음 샘플로 이어졌습니다.(2π/64)아르 자형5h7h9h11h

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

Radix 2 알고리즘을 기반으로 이러한 샘플의 DFT를 가져 와서 다음 값을 얻었습니다.

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π/41)아르 자형5h7h9h11h

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 

그리고이 파형 :

여기에 이미지 설명을 입력하십시오

Radix 2 알고리즘을 기반으로 이러한 샘플의 DFT를 가져 와서 다음 값을 얻었습니다.

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

시간 도메인 입력 :

나는 이제 같은 파형을 취하고 그것을 0으로 채웠다. 즉, 모든 샘플을 41을 넘어서 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0

그리고 파형 :

여기에 이미지 설명을 입력하십시오

Radix 2 알고리즘을 기반으로 이러한 샘플의 DFT를 가져 와서 다음 값을 얻었습니다.

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

아르 자형5h7h9h11h

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 출력 그래프를 게시 할 수 있습니까? 큰 숫자 목록으로 출력에 대한 대략적인 아이디어를 얻는 것은 다소 어렵습니다.
가짜 이름

크기 (절대 값) 그래프를 원하십니까?

지금은 괜찮습니까?

나는 윈도 잉이없는 1주기 이상의 DFT와 같이 단기간 동안 윈도 잉이 잘 작동하지 않는다고 생각합니다. 원래 신호의 흔적이 없습니다.

1
현상금으로 무엇을 받고 있는지 잘 모르겠습니다. 나는 단지 몇 가지 흩어져있는 의견과 모호한 질문이있는 큰 줄거리를 보았습니다. DFT와 윈도 잉의 미묘함을 이해하려면 최소한 DSP에 대한 이론적 연구가 필요합니다. 나는 Lyons의 서적을 추천한다 . 둘째, 윈도우 구현에 대한 특정 질문은 무엇입니까? 간단한 기술이므로 제한된 시스템에서 구현하는 방법을 가장 잘 이해할 것입니다.
Jason R

답변:


12

창에 오신 것을 환영합니다. William G.와는 아무런 관련이 없습니다.

평균화를 사용하여 잡음의 오류를 묻는 무차별 강제력으로 작동하는 가장 쉬운 치료 방법은 경계 조건이 우세하지 않도록 많은 수의주기를 샘플링하는 것입니다.

나는 당신의 수치 결과를 보지 않았지만 :

두 번째와 세 번째 그래프를보십시오.
표시 한 파형은 분석중인 파형입니다.
첫 번째 예에는 2 개의 양의 반주기와 하나의 음의주기가 있습니다.
나는 그것이 3 차 고조파에서 매우 강하고 다른 홀수 고조파에서 그리고 아마도 훨씬 더 낮은 고조파에서도 합리적으로 기대할 것입니다. 그것은 직관적 인 추측입니다.
결과가 무엇이든, 변환은 그것이 무엇을보고 무엇을하는지 묘사하는 것입니다.

두 번째 예제는 표현하기가 매우 어려우며 많은 고주파수 구성 요소가 필요합니다. 1/3 + ve, 1/3 -ve 및 1/3 0입니다. 서로 반대 위상을 상쇄하는 것에 대해 거의 동일한 고주파수 조건없이 완전히 제로 오른손 출력을 얻는 방법을 말하는 것은 어렵습니다.

그래서

DFT 또는 FFT는 그것이 보는 것을 알려줍니다. 관심 신호의 적분 파형을 공급하거나 종점을 특별히 고려해야합니다. 후자의 작업에 전념하는 전체 artform이 있습니다. 윈도 잉, 코사인 상승, 해밍 윈도우 (및 그 이상)와 같은 용어는 여행을 시작합니다.

Wikipedia- 창가 Cooley Hann Lanczos 해밍 블랙맨 카이저 Nutttall와 많은 친구 :-)

아마 유용한

내쇼날 인스트루먼트 다시 여기

DFT 스펙트럼 분석


세 번째 파형의 세 번째 1/3은 여기에서 강제로 제로로 설정되었으며 구현 중 펌웨어에서 설정되었습니다.

5
신호의 일부를 0으로 설정하면 더 짧은 사각형으로 데이터가 사각형으로 표시되고 더 넓은 Sinc 함수로 결과가 나옵니다.
hotpaw2

@VaibhavGarg-0은 스프레드 시트 및 그래프에 있습니다. 그래서 나는 그들이 당신의 분석에 있다고 가정했습니다. 그렇다면 일반적인 의견이 적용됩니다. 그렇지 않은 경우 표시되는 내용을 변경해야합니다.

@RussellMcMahon Yup- 동의합니다.

정수의 기간을 윈도 잉하면 sinc의 널 (null)이 고조파 간격에 맞춰 져서, 윈도 스펙트럼이 전개 될 때 고조파 간 누출을 방지합니다. 다음 은 실험 2 및 3에 대한 1024 포인트 DFT (제로 패딩으로 보간)입니다 (예 : 64 포인트 직사각형 창 대 41 포인트 직사각형 창). 이상적인 값은 파란색 점으로 표시됩니다. 실험 2는 스펙트럼 누출 (특히 짝수 고조파에서 0이어야 함)을 보여 주지만 실험 3은 고조파에서 정확합니다.
Eryk Sun

7

FFT 결과는 실제로 원래 주입 된 주파수에 대한 모든 것을 보여줍니다. 그러나 주입 된 주파수가 FFT 조리개 길이에서 정확히 주기적이지 않기 때문에이 비 주기적 관련 윈도우로 인해 주파수가 Sinc 파형으로 변환 된 다음 다시 샘플링되었습니다. 원래 주파수를 되돌리려면 FFT의 길이에 따라 디볼 루션, 보간 및 리 스케일이 필요할 수 있습니다.


3 단계를 설명해 주시겠습니까? 원한다면 샘플을 가지고 엑셀 파일을 보낼 수 있습니다.

6

이것은 완전한 답변이 아니며, 그것이 받아 들여질 것으로 기대하지는 않지만이 답변에는 상당한 교육적 가치가 있다고 생각합니다.

따라서 전체 파형 기간의 샘플 수가 2의 거듭 제곱이 아닌 경우 동일한 FFT가 어떤 종류의 조작 없이도 아무것도 나타내지 않는다고 생각할 수 있습니다. , 그것은 지금 나를 피하고있다.

당신은 대부분 옳습니다. FFT는 z 평면에서 단위 원을 따라 주파수 샘플의 대칭을 활용합니다.

일반 단위 서클

위와 같이 샘플 수가 2의 거듭 제곱 인 경우 실제 축과 가상 축 모두에서 대칭을 볼 수 있습니다. 기본적으로 FFT는이 대칭을 사용하여 샘플을 단위 원의 1 사분면 (또는이 대칭의 세부 사항을 잘 모름)으로 축소합니다. 이는 FFT가 전체 주파수 범위에 비해 적은 수의 계산 만 수행해야 함을 의미합니다.

제로 패딩으로 수행 할 수있는 작업은 0을 추가하여 2 개 샘플의 더 높은 검정력을 생성하여 FFT의 해상도를 높이는 것입니다. 대칭은 여전히 ​​존재합니다. 이제 더 많은 샘플이 단위 원 안에 채워져 있습니다.

따라서 2의 거듭 제곱이 없으면 덜 견고한 FFT는 제로 패드가 아니며 출력에서 ​​앨리어싱이 발생할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.