MATLAB으로 구현한 FFT의 Cosine wave 프로그램
본 자료는 2페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
해당 자료는 2페이지 까지만 미리보기를 제공합니다.
2페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

MATLAB으로 구현한 FFT의 Cosine wave 프로그램에 대한 보고서 자료입니다.

목차

1. Window 함수조사

2. 윈도우 함수 길이 N=512,256,128,64,32,16일 경우

3. 440Hz와 500Hz와의 합성

본문내용

XmagdB5 = 20*log10(abs(x5));
%Plotting
nw = n(1:N); %n(1:N)
f = [0: N-1] * Fs/N;
title('cosine wave');
plot(f(1:N/2), XmagdB(1:N/2), f(1:N/2), XmagdB1(1:N/2), f(1:N/2), XmagdB2(1:N/2), f(1:N/2), XmagdB3(1:N/2), f(1:N/2), XmagdB4(1:N/2), f(1:N/2), XmagdB4(1:N/2));
xlabel('frequency[Hz]');
ylabel('[dB]');
* Result *
n= 512인 경우 n= 256인 경우
n= 128인 경우 n= 64인 경우
n= 32인 경우 n= 16인 경우
# 440Hz와 500Hz와의 합성
* Program *
Fs = 2000;
f = 440;
f1 = 500;
dur = 1; %duration[sec]
n = [0: 1/Fs: dur];
x = cos(2*pi*f*n);
x1 = cos(2*pi*f1*n);
%FFT
N = 32;
xw = x(1:N).*hamming(N)';
xw1 = x1(1:N).*hamming(N)';
x = fft(xw,N); %fft(xw)
x1 = fft(xw1,N);
XmagdB = 20*log10(abs(x));
XmagdB1 = 20*log10(abs(x1));
%plotting
nw = n(1:N); %n(1:N)
f = [0: N-1] * Fs/N;
plot(f(1:N/2), XmagdB(1:N/2), f(1:N/2), XmagdB1(1:N/2));
xlabel('frequency[Hz]');
ylabel('[dB]');
* Result *
Fs=11025, N=512 Fs=11025, N=32 Fs=2000, N=32
# Conclusion
Cosine wave의 출력결과 뒷부분을 붙이기 위해 교수님 강의 자료를 참고해 실행시켜 보았습니다. 일반적으로 길이가 긴 연속적인 신호를 처리하기 위하여 블록(프레임)단위로 나누어서 처리합니다. 블록으로 나눌 때 보통 윈도우를 씌우는데 rectangular, Hamming, Hanning 윈도우가 자주 사용됩니다.
이번 Report를 통해서 윈도우 함수를 사용하는 이유는 신호 복원할 경우 블럭의 양끝에서의 신호의 불연속을 막거나 주파수 스펙트럼의 왜곡을 막기 위한 것 이라는 것을 알게 됐습니다. 그래서 음성신호처리 에서는 Hamming 윈도우가 side lobe의 attenuation이 크고 main lobe의 폭도 어느 정도 좁아서 자주 사용된다는 것도 알았습니다.
전체 샘플링 주파수를 데이터의 수 N으로 나누게 되므로 N이 크면 클수록, 주파수 영역에서의 분해능은 증가하기 하게 됩니다.
이 경우 데이터의 크기가 커지면 계산해야 할 분량이 증가하므로 속도가 느려지게 됩니다. 따라서 실제로 FFT를 적용할 때에는 분해능과 속도 사이의 적절한 합의점을 찾는 것이 중요하다는 것을 알고, 합의점을 찾아 프로그램을 구현해 보았습니다.

키워드

MATLAB,   FFT,   Cosine wave,   cosine,   코사인,   wave
  • 가격1,000
  • 페이지수7페이지
  • 등록일2006.12.11
  • 저작시기2006.4
  • 파일형식한글(hwp)
  • 자료번호#382065
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니