Thông báo

Collapse
No announcement yet.

FFT trong MATLAB

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • FFT trong MATLAB

    Em dùng hàm fft của MATLAB để phân tích phổ tín hiệu, nhưng kết quả lại thấy kỳ kỳ. Mong các bác giúp giùm em tìm lỗi sai.
    N = 4000; % number of points
    fs = 10000; % sample rate
    t = (0 : N-1)/fs;
    y = 1.5*cos(2*pi*750*t) + 2.3*cos(2*pi*1000*t);

    h = fft(y);
    freq = fs/N*(0:N/2);
    plot(freq, 2/N * abs(h(1:N/2+1)));
    xlabel('Hz');
    xlim([0 2000]);

    Kết quả ra thế này:


    Nhìn hình, ta thấy tín hiệu y gồm 2 thành phần: thành phần 750Hz biên độ 750, và thành phần 1000Hz biên độ 2.3
    --> chính xác với hàm y(t) thành lập ở hàng 4! Nhưng...

    Theo lý thuyết, khi chọn số điểm tính = 2^m (m nguyên) thì FFT sẽ chạy nhanh hơn. Em chọn N = 2^12 = 4096, không hiểu sao kết quả lại như thế này.



    Không biết em sai hay... fft của MATLAB sai ? Mong các bác chỉ giùm chỗ sai.
    Phen này ông quyết buôn băng dính,
    Vừa bán vừa hm... hm... cũng đắt hàng.

Về tác giả

Collapse

taolao Tìm hiểu thêm về taolao

Bài viết mới nhất

Collapse

Đang tải...
X