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.