fft matlab 예제

이 예제에서는 스펙트럼 분석을 위한 FFT 함수의 사용을 보여 주며, FFT의 일반적인 사용은 시끄러운 시간 도메인 신호에 묻혀 신호의 주파수 구성 요소를 찾는 것입니다. 위의 예에서 10으로 사이클의 수를 준 때, 그것은 더 높은 진폭을 가지고 스펙트럼을 주고있다. 사이클의 수는 단지 시각화 매개 변수이기 때문에 이것은 나에게 너무 이상한 것 같다 그 스펙트럼의 모양을 우연히해서는 안된다. 과학 응용 분야에서 신호는 종종 임의 노이즈로 손상되어 주파수 구성 요소를 위장합니다. 푸리에 변환은 임의노이즈를 처리하고 주파수를 표시할 수 있습니다. 예를 들어, 원래 신호, x. P.S에 가우시안 노이즈를 주입하여 새로운 신호, xnoise를 생성 : 나는이 웹 사이트에 설명 된 방법을 따라 시도; 여기 내 matlab 코드입니다!!!! u=로드(`u10.tsv`); 타우 = 0.000000099; Matlab에서 사이파를 생성하기 위해 첫 번째 단계는 사네파의 주파수 (f)를 수정하는 것입니다. 예를 들어 최소 및 최대 진폭이 (-1V) 및 (+1V)인 (f=10 Hz) 사위파를 생성하려고 합니다. 이제 시네파의 빈도를 결정했으니, 다음 단계는 샘플링 속도를 결정하는 것입니다.

Matlab은 모든 것을 디지털로 처리하는 소프트웨어입니다. 부드러운 사네 파를 생성 / 플롯하기 위해, 샘플링 속도는 적어도 두 번 주파수 (f)인 규정 된 최소 필수 샘플링 속도보다 훨씬 높은해야합니다 – 나이퀴스트 섀넌 정리에 따라. (30)의 오버샘플링 계수가 여기에 선택됩니다 – 이것은 매끄러운 연속적인 사위파를 플로팅하는 것입니다(요구 사항이 아닌 경우 오버샘플링 계수를 원하는 수준으로 줄임). 따라서 샘플링 속도는 (f_s=30 30 300 Hz)가 됩니다. 사위파에 대해 위상 시프트가 필요한 경우, 너무 지정합니다. fft 함수를 사용하여 신호를 주파수 도메인으로 변환하려면 먼저 원래 신호 길이에서 2의 다음 전력인 새 입력 길이를 식별합니다. 이것은 fft의 성능을 향상시키기 위해 후행 영점으로 신호 X를 채점합니다. 4의 분산제로 평균 백색 잡음이 없는 신호를 손상시입니다. 이는 나이퀴스트 주파수를 포함하여 DC에서부터 범위내의 y의 주파수 함량을 나타낸다. (신호는 강한 피크를 생성합니다.) 먼저 일부 데이터를 만듭니다. 1000Hz에서 샘플링된 데이터를 고려하십시오.

1밀리초 의 단계에서 t=0에서 t=.25까지 실행되는 데이터에 대한 시간 축을 형성하여 시작하십시오. 그런 다음 50 Hz 및 120 Hz에서 사네 파를 포함하는 신호 x를 형성합니다. FFT는 (N)-포인트 DFT의 숫자 계산일 뿐이므로 결과를 플로팅하는 방법에는 여러 가지가 있습니다. 여기서 정규화된 주파수 축에 샘플링 속도에 곱한 값만 곱합니다. 아래 플롯에서 FFT의 절대 값이 (10Hz) 및 (-10Hz)에서 피크임을 확인할 수 있습니다. 따라서 생성 된 정현파의 주파수는 (10 Hz)입니다. (10Hz) 및 (-10Hz)의 피크 값 옆에 있는 작은 측면 로브는 스펙트럼 누설로 인한 것입니다. 아시다시피 주파수 영역에서는 값이 양수 및 음수 주파수 축을 모두 차지합니다. 양수 값과 음수 값을 모두 가진 주파수 축에서 DFT 값을 플로팅하려면 샘플 인덱스 (0)의 DFT 값이 배열의 중간에 가운데에 있어야 합니다.

이 작업은 Matlab에서 (FFTshift) 함수를 사용하여 수행됩니다.