FFT가 (또는 고속 푸리에 변환) 실제로 인 알고리즘 의 연산에 대한 이산 푸리에 변환 또는 DFT. 전형적인 구현 은 데이터 포인트의 수 이 복합 정수라는 사실을 이용함으로써 종래의 DFT 계산에 비해 속도를 향상시킨다 . 은 소수 이기 때문에 여기서는 그렇지 않다 . (FFT가 이 소수 인 경우에는 FFT가 존재하지만 MATLAB에서 구현되거나 구현되지 않을 수있는 다른 공식을 사용합니다). 실제로 많은 사람들 이 FFT를 통해 DFT 계산 속도를 높이기 위해 을 또는 형식 으로 선택합니다
.N101NN2k4k
미러링이 발생하는 이유에 대한 질문으로 hotpaw2는 근본적으로 그 이유를 설명 했으므로 다음은 세부 사항을 채우는 내용입니다.
데이터 포인트 의 시퀀스 의 는 시퀀스 정의된다 여기서
, 여기서 . 그것은 명백 할 것이다 그 이며, 일반적으로 A의 복소 순서에도 하는 실수 순서. 하지만 언제x=(x[0],x[1],x[2],…,x[N−1])NX=(X[0],X[1],X[2],…,X[N−1])
X[m]=∑n=0N−1x[n](exp(−j2πmN))n,m=0,1,…,N−1
j=−1−−−√Xxx 는 실수 시퀀스이고 은 실수입니다. 또한 이
짝수 이면 이기 때문에
은 실수입니다. 그러나, 여부에 관계없이의 홀수, 심지어는 DFT 실제 값 시퀀스의
가
에르 미트 대칭 당신이 코멘트에 언급 된 것을 속성을. 우리는 모든
고정 ,
X[0]=∑n=0N−1x[n]exp ( − j π ) = − 1 X [ NNexp(−jπ)=−1X[N2]=∑n=0N−1x[n](exp(−j2πN/2N))n=∑n=0N−1x[n](−1)n
NXx m1≤m≤N−1,
따라서 , . 특별한 경우로, 이 짝수 일 때 선택 하면 이므로 초기 결론
X[m]X[N−m]=∑n=0N−1x[n](exp(−j2πmN))n=∑n=0N−1x[n](exp(−j2πN−mN))n=∑n=0N−1x[n](exp(−j2π+j2πmN))n=∑n=0N−1x[n](exp(j2πmN))n=(X[m])∗
1≤m≤N−1X[N−m]=(X[m])∗m=N/2NX[N/2]=(X[N/2])∗X[N/2]실수입니다. Hermitian 대칭 속성의 효과는
실제 값들의 시퀀스의 DFT 번째 빈은 가지고 동일한 크기 는 AS 번째 빈.m(N−m)
MATLABi 사람들은 MATLAB 배열의 수가 부터 시작한다는 사실을 설명하기 위해 이것을 번역해야 합니다.1
실제 데이터에 의존하여 직류의 값이 을 더한
약간 더 이상의 기간 주파수의 정현파의 Hz의가. 실제로, 당신이 얻는 것은
여기서 입니다. 따라서 샘플 중 첫 번째 샘플 과 마지막 샘플은 동일한 값을 갖습니다. 계산중인 DFT는 의해 주어집니다
과
사이의 불일치로 인해 DFT가 복잡해집니다. 값
x11
x[n]=1+sin(2π(0.01n)), 0≤n≤100
x[0]=x[100]=1101X[m]=∑n=0100(1+sin(2π(n100)))(exp(−j2πm101))n
100101X[m]위한 작게 나마 제로이다. 반면에, 당신은 배열 조정했다 가정 이 당신의 MATLAB 프로그램을 에서 샘플을 촬영 그래서 당신이하는 것을
그러면 DFT는
당신의 DFT가
정확히 (또는 적어도 반올림 오류 내에 있음) 임을 알 수 있으며
역 DFT는 대해 그것을 줄 것입니다 ,
2≤m≤99t
100t=0,0.01,0.02,…,0.99x[n]=1+sin(2π(0.01n)), 0≤n≤99.
X[m]=∑n=099(1+sin(2π(n100)))(exp(−j2πm100))n,
X=(100,−50j,0,0,…,0,50j)0≤n≤99x[n]=1100∑m=099X[m](exp(j2πn100))m=1100[100−50jexp(j2πn100)1+50j(exp(j2πn100))99]=1+12j[exp(j2πn100)−exp(j2π−n100)]=1+sin(2π(0.01n))
이것은 정확히 당신이 시작한 것입니다.