Trung bình miền thời gian FFT so với trung bình bin tần số


12

Tôi có nhiều thử nghiệm về dữ liệu sinh lý. Tôi đang làm một phân tích dựa trên tần số để phân tích công suất (biên độ) trong các tần số quan tâm nhất định. Là trung bình nhiều thử nghiệm có độ dài bằng nhau và sau đó lấy một FFT của tín hiệu trung bình so với FFT tính toán cho mỗi thử nghiệm và sau đó lấy trung bình các thùng tần số giống nhau? Trong thực tế tôi thấy điều này không phải là trường hợp.

Cụ thể, tín hiệu tự nhiên có thành phần 1 / f mạnh và điều này được nhấn mạnh nếu tôi tính FFT của từng thử nghiệm riêng lẻ và sau đó lấy trung bình biên độ (phần thực) của mỗi ngăn tần số. Là hai tương đương? Có một cách đúng đắn để làm việc? hoặc theo những điều kiện nguyên tắc nào thì nên lựa chọn giữa trung bình miền thời gian so với trung bình bin tần số?

fft 

Câu trả lời:


8

Hãy để tôi làm rõ.

  • Biến đổi Fourier không đại diện cho biểu đồ của tín hiệu. Biến đổi Fourier là một biến đổi tuyến tính lấy tín hiệu từ miền thời gian (hàm phức tạp) sang miền tần số (một hàm phức tạp khác). Nó có một chức năng phức tạp để một chức năng phức tạp khác.
  • Biến đổi Fourier tuyến tính như poster ở trên chỉ ra.
  • Giai đoạn trong các mẫu của bạn có vấn đề như được chỉ ra ở trên. Nếu dữ liệu thử nghiệm thay đổi theo pha, thì bạn không muốn trung bình trước khi thực hiện chuyển đổi Fourier, nhưng bạn cũng không muốn trung bình sau khi chuyển đổi Fourier. Bạn muốn trung bình sau khi biến đổi và định mức Fourier. Tôi sẽ giải thích dưới đây chính xác những gì cần phải làm.

Vấn đề chính ở đây là câu hỏi được đặt ra sai. Đó không phải là "tôi nên thực hiện biến đổi Fourier trước khi lấy trung bình hoặc sau khi lấy trung bình". Bởi vì nó không tạo ra sự khác biệt do tính tuyến tính của biến đổi Fourier.

Câu hỏi chính xác là "tôi nên lấy biên độ của biến đổi Fourier trước khi lấy trung bình hoặc sau khi lấy trung bình". Đối với câu hỏi này, câu trả lời là trước.

Đây là những thông tin chi tiết.

Giả sử dữ liệu được lấy mẫu của bạn được thể hiện bằng các chuỗi:

d1=d1[n1],d1[n2],...d1[nN]

d2=d2[n1],d2[n2],...d2[nN]

d3=d3[n1],d3[n2],...d3[nN]

...

dM=dM[n1],dM[n2],...dM[nN]

trong đó là dữ liệu từ các thử nghiệm M và n 1 , . . . n N được lấy mẫu điểm thời gian, sau đó:d1,...dMn1,...nN

F1=j=1M|F{dj}||F{j=1Mdj}|=F2

Vì vậy, trong khi biến đổi là tuyến tính, | F | không phải.F|F|

dj[ni]i,jF{dj}|F{dj}|

Đối với những gì bạn nên làm, bạn nên thực hiện biến đổi Fourier của các thử nghiệm riêng lẻ (thông qua FFT), lấy biên độ của các thử nghiệm riêng lẻ và trung bình chúng cùng nhau.

1/f1/f

1/f1/f

1/f

1/f|F{x(t)}|=|1/f|x(t)

1/f

Một câu hỏi quan trọng, trung bình mua gì cho bạn? và quan trọng hơn là làm thế nào để giải thích kết quả? Điều chỉnh vào ngày mai để thảo luận sâu hơn: p


1
+1 Cảm ơn đã làm rõ. Tôi cảm thấy rằng tôi đã hiểu sai vấn đề tiềm ẩn đằng sau câu hỏi, và tôi nghĩ rằng điều này càng đi sâu vào trọng tâm của nó.
jstarr

2

Đầu tiên, FFT là một thuật toán. Biến đổi được gọi là Biến đổi Fourier! Nó đại diện cho biểu đồ của các tín hiệu. Trong trường hợp riêng biệt, việc đọc cao trong các miền tần số có nghĩa là rất nhiều năng lượng ở tần số đó.

Bạn không nên trung bình dữ liệu trước FFT vì thông tin pha sẽ gây ra thay đổi đáng kể trong dữ liệu.

Hãy tưởng tượng 2 mẫu mỗi mẫu bao gồm một cosin tinh khiết. Trong thế giới thực, bạn sẽ không bao giờ chụp được cosin này tại cùng một điểm bắt đầu. Một cosin sẽ được chuyển đổi tương đối sang khác (hoặc cả hai đều có các dịch chuyển khác nhau có liên quan đến sự khởi đầu. Về mặt toán học, điều này nói rằng y1 = cos (wt-A) y2 = cos (wt-B) trong đó A & B đang dịch chuyển. Hai điều tốt hơn hiển thị là cùng một điều. Với một phép toán nhỏ, tôi có thể chọn các giá trị này sao cho y2-y1 = 0. Trung bình của 0 là 0 và hoàn toàn không phải là điều bạn muốn. Đây là vấn đề về pha.

Nếu mục tiêu của bạn là tìm phổ trung bình bạn nên trung bình trên các phổ, đừng lấy trung bình các tín hiệu!


Cảm ơn vì điều đó. Chắc chắn có một mối lo ngại rằng nếu có nhiễu chỉ với độ lệch pha đúng từ thử nghiệm đến thử nghiệm thì nó sẽ hủy bỏ tất cả hoặc tín hiệu ở tần số quan tâm. Tôi vẫn không rõ lý do tại sao 1 / f được nhấn mạnh bằng cách lấy trung bình tần số thay vì trung bình miền thời gian theo sau là FFT.

@ user1487551 Thành phần 1 / f mạnh có nghĩa là gì? Biến đổi Fourier ngược của 1 / f là chức năng ký hiệu và có thể gợi ý rằng dữ liệu của bạn bao gồm một khối lớn khi hệ thống ổn định. Bạn có thể nên hiển thị một âm mưu hoặc một số dữ liệu.
Mikhail

1
Lưu ý rằng bạn có thể thực hiện tính trung bình theo thời gian nếu bạn có tham chiếu pha mà bạn có thể đồng bộ hóa việc thu thập dữ liệu và điều này có thể rất hiệu quả trong việc giảm mức nhiễu, nhưng nếu không thì đúng là bạn cần phải lấy trung bình trong miền tần số.
Paul R

2

Trừ khi tôi hoàn toàn không có cơ sở hoặc hiểu sai câu hỏi của bạn, câu trả lời là : Theo tuyến tính của DFT, tính trung bình các tín hiệu theo thời gian và sau đó lấy DFT trung bình tương đương với trung bình các DFT của tín hiệu.

Để hiển thị điều này, hãy xác định một số biến:

  • xn[]thn
  • Xk[]thk

1LΣ= =0Lxn[]

Σn= =0N-11LΣLxn[]e-Tôi2πkn/N

Chuyển đổi thứ tự của các tổng kết, chúng ta có thể viết

1LΣ= =0LΣn= =0N-1xn[]e-Tôi2πkn/N,

nhưng điều này giống như

1LΣ= =0LXk[tôi]

tương tự như tính trung bình các DFT của mỗi bộ ba. Đây là những gì chúng tôi muốn thể hiện.


Để trung bình trong miền thời gian, bạn cần một số loại tham chiếu pha mà bạn có thể đồng bộ hóa. Khi điều này khả dụng mặc dù đôi khi bạn có thể nhận được kết quả tốt hơn so với việc lấy trung bình trong miền tần số, chủ yếu là do giảm hiệu ứng lượng tử hóa, v.v.
Paul R
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.