atan2 - tính arctangent của y/x

Thứ 4, 02/07/2025

::

AM
Đầu tư chứng khoán khoa học trên nền tảng phân tích dữ liệu và thống kê
atan2 - tính arctangent của y/x
22/05/2023 05:19 PM 892 Lượt xem

    atan2 - tính arctangent của y/x

    CÚ PHÁP

    atan2( y, x )

    TRẢ VỀ

    SỐ hoặc MẢNG

    CHỨC NĂNG

    atan2 trả về giá trị arctangent của y/x. Nếu x là 0, atan2 trả về 0. Nếu cả hai tham số của atan2 đều là 0, hàm trả về 0. atan2 trả về một giá trị trong khoảng từ -PI đến +PI radian, sử dụng dấu của cả hai tham số để xác định góc phần tư của giá trị trả về.

    VÍ DỤ    

    ffc = FFT(data,Len);
    for( i = 0; i < Len - 1; i = i + 2 )
    {
       amp[ i ] = amp[ i + 1 ] = sqrt(ffc[ i ]^ 2  +  ffc[ i + 1 ]^2);  
       phase[ i ] = phase[ i + 1 ] = atan2( ffc[ i + 1], ffc[ i ] );
    }

    Đoạn code trên thực hiện phép biến đổi Fourier nhanh (Fast Fourier Transform - FFT) trên dữ liệu đầu vào `data` có độ dài `Len`. Kết quả sau khi thực hiện FFT được lưu trong mảng `ffc`.

    Sau đó, vòng lặp `for` duyệt qua từng phần tử trong mảng `ffc` với bước nhảy là 2 (`i = i + 2`). Trong vòng lặp, các giá trị trong mảng `amp` và `phase` được tính toán.

    - Công thức tính giá trị `amp[i]` và `amp[i+1]` là: `sqrt(ffc[i]^2 + ffc[i+1]^2)`, tức là lấy căn bậc hai của tổng bình phương của hai phần tử liên tiếp trong mảng `ffc`.
    - Công thức tính giá trị `phase[i]` và `phase[i+1]` là: `atan2(ffc[i+1], ffc[i])`, tức là tính giá trị atan2 của hai phần tử liên tiếp trong mảng `ffc`.

    Kết quả cuối cùng là mảng `amp` chứa các giá trị biên độ của phổ tần số, và mảng `phase` chứa các giá trị pha tương ứng.

     

    Đọc thêm

    Thu gọn

    Bài viết khác:
    Zalo
    Hotline