FFT 프로필 소결

5309 단어
FFT 는 분 산 된 푸 립 엽 변환 의 빠 른 알고리즘 으로 하나의 신 호 를 주파수 영역 으로 변환 할 수 있다.어떤 신 호 는 시간 영역 에서 어떤 특징 을 알 아 보기 어렵 지만 주파수 영역 으로 바 뀌 면 특징 을 쉽게 알 수 있다.이것 이 바로 많은 신호 분석 이 FFT 변환 을 채택 한 원인 이다.또한 FFT 는 하나의 신호 의 스펙트럼 을 추출 할 수 있 는데 이것 은 스펙트럼 분석 에 도 자주 사용 된다. 많은 사람들 이 FFT 가 무엇 인지, 무엇 을 할 수 있 는 지, 어떻게 할 수 있 는 지 알 고 있 지만 FFT 이후 의 결과 가 무슨 뜻 인지, 몇 시 에 FFT 를 할 지 어떻게 결정 할 지 모른다.
    아 날로 그 신 호 는 ADC 샘플링 을 거 친 후에 디지털 신호 가 되 었 다.샘플링 의 정 리 는 샘플링 주파수 가 신호 주파수 의 두 배 보다 크 고 샘플링 으로 얻 은 디지털 신 호 는 FFT 변환 을 할 수 있다 는 것 을 알려 준다.N 개의 샘플링 포인트, FFT 를 거 친 후 N 개의 FFT 결 과 를 얻 을 수 있 습 니 다.FFT 연산 을 편리 하 게 하기 위해 서 는 보통 N 에서 2 의 정수 제곱 을 취한 다.
     샘플링 주파 수 는 Fs 이 고 신호 주파수 F 이 며 샘플링 포 인 트 는 N 이다.그럼 FFT 이후 결 과 는 N 점 의 복수 입 니 다.모든 점 은 하나의 주파수 점 에 대응 하고 있다.이 점 의 모드 값 은 바로 이 주파수 값 에서 의 폭 특성 이다.구체 적 으로 원시 신호 의 폭 과 어떤 관계 가 있 습 니까?원시 신호 의 피크 값 이 A 라 고 가정 하면 FFT 결과 의 모든 점 (첫 번 째 점 직류 분량 을 제외 하고) 의 모델 값 은 A 의 N / 2 배 이다.첫 번 째 포 인 트 는 직류 분량 이 고 그 모델 값 은 직류 분량 의 N 배 이다.각 점 의 위상 은 바로 이 주파수 에서 의 신호 위상 이다.첫 번 째 점 은 직류 분량 (즉 0Hz) 을 나타 내 고 마지막 점 N 의 다음 점 (실제로 이 점 은 존재 하지 않 는 다. 여 기 는 가설 한 N + 1 점 이 고 첫 번 째 점 을 반 으로 나 누고 나머지 반 은 마지막 으로 옮 기 는 것 으로 볼 수 있다) 은 샘플링 주파수 Fs 를 나타 내 는데 이 중간 은 N - 1 점 에 의 해 평균 N 등분 으로 나 뉘 어 각 점 의 주파수 가 순서대로 증가한다.예 를 들 어 특정한 점 n 이 나타 내 는 빈 도 는 Fn = (n - 1) * Fs / N 이다.
    위의 공식 을 통 해 알 수 있 듯 이 Fn 이 분별 할 수 있 는 주파 수 는 Fs / N 이 고, 샘플링 주파수 Fs 가 1024 Hz 이면 샘플링 포인트 가 1024 점 이면 1Hz 를 분별 할 수 있다.1024 Hz 의 샘플링 확률 은 샘플링 1024 시 로 딱 1 초 이다. 즉, 샘플링 1 초 동안 의 신호 와 FFT 를 하면 결 과 는 1Hz 로 분석 할 수 있 고, 2 초 동안 의 신 호 를 샘플링 하고 FFT 를 하면 결 과 는 0.5Hz 로 분석 할 수 있다.주파수 분 별 력 을 높이 려 면 샘플링 포인트, 즉 샘플링 시간 을 늘 려 야 한다.주파수 해상도 와 샘플링 시간 은 역수 관계 이다.
      FFT 이후 의 어떤 점 n 이 복수 a + bi 로 표시 한다 고 가정 하면 이 복수 의 모델 은 An = 근호 a * a + b * b 이 고 위상 은 Pn = atan 2 (b, a) 이다.이상 의 결과 에 따라 n 점 (n ≠ 1, 그리고 n < = N / 2) 에 대응 하 는 신호 표현 식 을 계산 할 수 있 습 니 다. An / (N / 2) * cos (2 * pi * Fn * t + Pn), 즉 2 * An / N * cos (2 * pi * Fn * t + Pn) 입 니 다.n = 1 점 의 신 호 는 직류 분량 이 고 폭 은 A1 / N 이다.FFT 결과 의 대칭 성 때문에 우 리 는 보통 전반부 의 결과, 즉 샘플링 주파수 의 절반 이하 의 결과 만 사용한다.하나의 실제 신호 로 설명 하면 우리 가 신호 가 있다 고 가정 하면 2V 의 직류 분량 을 포함 하고 주파 수 는 50Hz 이 며 위상 은 - 30 도 이 며 폭 은 3V 의 교류 신호 이 며 한 주파 수 는 75Hz 이 고 위상 은 90 도 이 며 폭 은 1.5V 의 교류 신호 이다.수학 표현 식 을 사용 하면 다음 과 같다.
                            S=2+3*cos(2*pi*50*t-pi*30/180)+1.5*cos(2*pi*75*t+pi*90/180)
     식 에서 cos 매개 변 수 는 라디안 이기 때문에 - 30 도와 90 도 는 각각 라디안 으로 환산 해 야 한다.우 리 는 256 Hz 의 샘플링 율 로 이 신 호 를 샘플링 하여 모두 256 점 을 샘플링 한다.우리 위의 분석 에 따 르 면 Fn = (n - 1) * Fs / N 은 두 점 사이 의 간격 이 바로 1Hz 이 고 n 번 째 점 의 빈 도 는 n - 1 이라는 것 을 알 수 있다.우리 의 신 호 는 3 개의 주파수 가 있다. 0Hz, 50Hz, 75Hz 는 각각 첫 번 째 점, 51 번 째 점, 76 번 째 점 에서 최고치 가 나타 나 고 다른 각 점 은 0 에 가 까 워 야 한다.실제 상황 은 어 떻 습 니까?
    FFT 그림 에서 볼 수 있 듯 이 1 시, 51 시, 76 시 부근 에서 비교적 큰 값 이 있다.우 리 는 각각 이 세 점 부근의 데 이 터 를 가지 고 와 서 자세히 보 았 다. 1 시: 512 + 0i 2 시: - 2.6195 E - 14 - 1.4162 E - 13i  3 시: - 2.8586E - 14 - 1.1898E - 13i 50 시: - 6.2076E - 13 - 2.1713E - 12i 51 시: 332.55 - 192 i 52 시: - 1.6707E - 12 - 1.5241E - 12i 75 시: - 2.2199E - 13 - 1.076E - 12i 76 시: 3.4315E - 12 + 192 i 77 시: - 3.0263E - 14 + 7.5609E - 13i    분명 한 것 은 1 시, 51 시, 76 시의 수치 가 비교적 크 고 그 부근의 점 수 는 모두 작 아서 0, 즉 그 주파수 점 에서 의 신호 폭 은 0 이 라 고 볼 수 있다.이어서 우 리 는 각 점 의 폭 치 를 계산한다.이 세 점 의 모델 값 을 각각 계산 한 결 과 는 다음 과 같다. 1 시: 512 51 시: 384 76 시: 192
    공식 에 따 르 면 직류 분량 은 512 / N = 512 / 256 = 2 로 계산 할 수 있다.50Hz 신호 의 폭 은 384 / (N / 2) = 384 / (256 / 2) = 3 이다.75Hz 신호 의 폭 은 192 / (N / 2) = 192 / (256 / 2) = 1.5 다.이 를 통 해 알 수 있 듯 이 스펙트럼 분석 에서 나 온 폭 이 정확 하 다.그리고 위상 정 보 를 계산 합 니 다.직류 신 호 는 위상 이 없 으 니 상관 할 필요 가 없다.50Hz 신호 의 위상 을 먼저 계산 하고 atan 2 (- 1992, 332.55) = - 0.5236, 결 과 는 라디안 이 고 각도 로 환산 하면 180 * (- 0.5236) / pi = - 3.0001 이다.75Hz 신호 의 위상 을 다시 계산 하면 atan 2 (192, 3.4315E - 12) = 1.5708 라디안 이 고 각도 로 환산 하면 180 * 1.5708 / pi = 90.0002 이다.그 만큼 위상 도 옳다.FFT 결과 와 위의 분석 에 따라 계산 하면 우 리 는 신호 표현 식 을 쓸 수 있 습 니 다. 이것 이 바로 우리 가 제공 하기 시작 한 신호 입 니 다.
요약: 샘플링 빈 도 를 Fs 로 가정 하고 샘플링 포 인 트 는 N 이 며 FFT 를 한 후에 특정한 n (n 은 1 부터) 이 표시 하 는 빈 도 는 Fn = (n - 1) * Fs / N 이다.이 점 의 모드 값 을 N / 2 로 나 누 는 것 은 해당 주파수 에서 의 신호 폭 (직류 신호 에 대해 서 는 N 으로 나 누 는 것) 이다.이 점 의 위상 은 바로 주파수 아래 의 신호 에 대한 위상 이다.위상 계산 은 함수 atan 2 (b, a) 로 계산 할 수 있 습 니 다.atan 2 (b, a) 는 좌 표를 (a, b) 점 으로 구 하 는 각도 값 이 고 범 위 는 - pi 에서 pi 까지 입 니 다.xHz 까지 정확하게 하려 면 샘플링 길이 가 1 / x 초 인 신호 와 FFT 가 필요 하 다.주파수 해상 도 를 높이 려 면 샘플링 포 인 트 를 늘 려 야 한다. 이것 은 일부 실제 응용 에서 비 현실 적 이 고 비교적 짧 은 시간 안에 분석 을 완성 해 야 한다.이 문 제 를 해결 하 는 방법 은 주파수 세분 법 이 있다. 비교적 간단 한 방법 은 샘플링 이 비교적 짧 은 시간의 신 호 를 채취 한 다음 에 뒤에 일정한 수량의 0 을 보충 하여 그 길이 가 필요 한 포인트 에 이 르 도록 한 다음 에 FFT 를 하 는 것 이다. 이것 은 어느 정도 에 주파수 분 별 력 을 높 일 수 있다.
close all; %       
Adc=2; %      
A1=3; %  F1     
A2=1.5; %  F2     
F1=50; %  1  (Hz)
F2=75; %  2  (Hz)
Fs=256; %    (Hz)
P1=-30; %  1  ( )
P2=90; %    ( )
N=256; %    
t=[0:1/Fs:N/Fs]; %    

%  
S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);
%      
plot(S);
title('    ');

figure;
Y = fft(S,N); % FFT  
Ayy = (abs(Y)); %  
plot(Ayy(1:N)); %     FFT    
title('FFT   ');

figure;
Ayy=Ayy/(N/2); %        
Ayy(1)=Ayy(1)/2;
F=([1:N]-1)*Fs/N; %         
plot(F(1:N/2),Ayy(1:N/2)); %      FFT    
title('  -     ');

figure;
Pyy=[1:N/2];
for i="1:N/2"
Pyy(i)=phase(Y(i)); %    
Pyy(i)=Pyy(i)*180/pi; %     
end;
plot(F(1:N/2),Pyy(1:N/2)); %     
title('  -     ');

이것 을 보고 너 는 고조파 분석 을 알 게 되 었 다.

좋은 웹페이지 즐겨찾기