Góc trung bình


7

Tôi đang làm việc trên một demod 802.11a hoạt động, phần lớn, nhưng có một lỗi gây ra lỗi không liên tục. Tôi chưa hoàn thành việc mô tả nó, nhưng có vẻ như vấn đề nằm ở khối cân bằng của tôi.

802.11a là tín hiệu OFDM và mỗi ký hiệu OFDM có 64 kênh phụ. Bốn trong số các kênh phụ đó là các phi công (dữ liệu đã biết), tại các kênh phụ 7, 21, -7 và -21. Tôi sử dụng các phi công để sửa cho bất kỳ phần bù sóng mang còn lại nào (hiển thị dưới dạng bù pha không đổi trong các phi công) và bù thời gian (hiển thị dưới dạng bù cho lớp lót - tức là độ lệch pha là 0 tại bin 0 và tăng dần khi nó tăng thêm từ thùng 0).

Tôi thực hiện tính trung bình đơn giản để phát hiện pha bù sóng mang và một số thao tác đơn giản trước khi lấy trung bình để phát hiện bù pha thời gian (ví dụ: nhân kênh -21 với -1, nhân kênh -7 với -3 và nhân kênh 7 với 3). Tôi cố tình bỏ đi một số chi tiết không cần thiết, nhưng hy vọng điều này mang lại ý chính cho những gì tôi đang làm.

Vấn đề của tôi là bản chất tròn của các góc có thể khiến trung bình hoạt động sai theo những cách thảm khốc cho các giá trị nhất định. Ví dụ, hãy tưởng tượng trung bình tưởng tượng45π45π. Thật dễ dàng để thấy đồ họa rằng câu trả lời nên là một trong haiπ hoặc là π, nhưng công thức tính trung bình tiêu chuẩn cho câu trả lời là 0, nghĩa đen ngược lại với câu trả lời đúng.

nhập mô tả hình ảnh ở đây

Cách thích hợp để góc trung bình là gì?

EDIT: Tôi sẽ thử và làm cho những gì tôi đang làm rõ ràng hơn một chút. Có hai "điều kiện lỗi" biểu hiện khác nhau ở đầu ra của FFT. Đầu tiên là bù sóng mang, biểu hiện dưới dạng bù pha không đổi.

nhập mô tả hình ảnh ở đây

Trong trường hợp này, tính trung bình các giá trị phi công cartesian hơn là góc, như John đề xuất, là một ý tưởng tốt. Cảm ơn bạn.

Điều kiện lỗi thứ hai là bù thời gian, biểu hiện như là bù pha tuyến tính. Độ lệch thời gian càng lớn, độ dốc của độ lệch pha càng lớn. Độ dốc cũng có thể âm, tùy thuộc vào việc người nhận ở phía trước hay phía sau nơi cần đến.

nhập mô tả hình ảnh ở đây

Bây giờ, vì nó là tuyến tính nghiêm ngặt (gốc đi qua 0), về mặt lý thuyết tôi có thể tính độ dốc từ chỉ một phi công. Trước tiên tôi sẽ tính toán bù pha sóng mang (tức là điều kiện lỗi # 1), trừ đi, rồi sử dụng bất kỳ trong số bốn để tính độ dốc. Điều đó sẽ tránh trung bình hoàn toàn. Vấn đề là tiếng ồn có thể làm cho các giá trị này nhảy xung quanh, vì vậy ước tính của tôi sẽ tốt hơn nhiều nếu tôi sử dụng cả bốn - do đó tính trung bình.

Hy vọng rằng hình ảnh trên cho thấy rõ rằng tôi không thể lấy các giá trị thí điểm và lấy trung bình chúng như hiện tại- Tôi phải sửa đổi chúng để biến chúng thành nhiễu + không đổi. Tôi làm điều này bằng cách nhân góc của phi công -21 với -1, phi công -7 với -3, phi công 7 với 3 và phi công 21 với 1. Do đó, chúng trở nên tương đương với phi công 21 và có thể được tính trung bình.

nhập mô tả hình ảnh ở đây

Tôi không biết một cách hay để nhân góc của vectơ với hằng số như "3" trong hệ thống cartesian, do đó, có vẻ như tôi sẽ phải chuyển đổi sang tọa độ cực, nhân các góc với -1, -3, 3 và 1 tương ứng, chuyển đổi trở lại tọa độ cartesian, trung bình các phi công, sau đó chuyển đổi trở lại cực để có được độ lệch pha. Trong khi điều này là có thể, tôi muốn tìm một giải pháp ít klunky hơn nếu có thể.


5
Tôi luôn luôn tính trung bình các số phức sau đó lấy góc của kết quả đó.
Giăng

1
Tôi cũng thích phương pháp của @ John. Trên thực tế, việc cộng các số phức tương ứng với phép cộng vector trong mặt phẳng phức tạo ra một gócπtrong ví dụ của bạn. Lấy góc của kết quả là đủ vì trung bình chỉ ảnh hưởng đến cường độ (trừ khi phạm vi số lượng giới hạn là một vấn đề)
Deve

@ John Đó là một điểm rất tốt, nhưng giống như trường hợp bù thời gian / pha mà tôi muốn nhân góc của các kênh "7" với 3 trước khi tính trung bình, tôi không thấy cách nào tốt để làm điều đó. Tôi đoán rằng tôi có thể chuyển đổi thành cực, nhân 3, chuyển đổi trở lại cartesian, trung bình, sau đó chuyển đổi trở lại cực, nhưng đó là klunky khủng khiếp.
Jim Clay

@JimClay: Tại sao bạn tính trung bình các giá trị với nhau? Điều đó không rõ ràng từ mô tả của bạn. Nói chung, bạn không nên kết hợp trung bình các giá trị với nhau trừ khi chúng thực sự mạch lạc; mặt khác, bạn nhận được sự can thiệp phá hoại mà bạn đã lưu ý. Tôi nghĩ một chút chi tiết sẽ giúp.
Jason R

Câu trả lời:


5

Như bạn đã chỉ ra trong chỉnh sửa của mình, tính trung bình các giá trị không phù hợp lắm cho loại vấn đề này. Một cách khác đơn giản là chỉ cần khớp một đường thẳng với bốn phép đo pha bằng cách sử dụng một bình phương tuyến tính nhỏ nhất phù hợp. Điều đó sẽ thực hiện tốt hơn so với cách tiếp cận điểm đơn.

Thay vào đó, một giải pháp tốt hơn có thể là lắp một hình sin cho bốn mẫu phức tạp. Điều này ngăn bạn trước tiên phải tính toán các góc pha của chúng, điều này có thể gây ra sự suy giảm hiệu suất ở SNR thấp.

Ngoài ra, để hoàn thành mục tiêu ban đầu của bạn là nhân số pha của một số phức với 3, bạn có thể làm như vậy bằng cách chỉ cần đưa mỗi số đến lũy thừa thứ ba:

arg(x3)=3arg(x)

Điều này rõ ràng cũng sẽ ảnh hưởng đến cường độ của từng mẫu, nhưng nếu bạn chỉ quan tâm đến pha, bạn thường có thể làm việc xung quanh đó. Tuy nhiên, bằng cách này, bạn sẽ giới hạn phạm vi thời gian bù mà công cụ ước tính của bạn sẽ hoạt động. Nhân pha của số phức với 3 sẽ giới thiệu một2π/3 sự mơ hồ pha trong đầu ra (nghĩa là bạn sẽ không thể phát hiện sự thay đổi trong pha của 2π/3). Điều này tương tự với sự mơ hồ pha contant mà bạn thường thấy trong các hệ thống đồng bộ hóa PSK (như vòng lặp Costas).


3

Cách thông thường để tiếp cận định hướng là chuyển sang cách tiếp cận vectơ (phức tạp).

Ví dụ: nếu các quan sát của bạn là định kỳ với thời gian P sau đó là trung bình của N quan sát, α^(n) có thể được tìm thấy theo phương trình (1) của liên kết trên:

μ^P=P2π[arg(n=0N1ej2πα^(n)/P)]2π
mà quy mô α^ được định kỳ qua 2π, thực hiện tổng hợp vectơ đơn vị, lấy đối số (góc) của tổng phức và cuối cùng chuyển sang [0,P).

Một cách tiếp cận tương tự có thể được sử dụng để thu được "phương sai mẫu tròn".


0

Tôi sẽ thay đổi tên miền từ [π:+π) đến [0:2π) và đối phó với mọi thứ modulo 2π. Sau đó, bạn không cần phải đối phó với các góc độ tiêu cực.

Hoặc như John đã đề cập, sử dụng các số phức cho mọi thứ mà bạn cần một góc thực tế.


2
Vấn đề là chỉ cần thay đổi nơi xảy ra sự cố, nó sẽ không thoát khỏi vấn đề. Ví dụ, hãy tưởng tượng một góc của0.1 và góc của 2π0.1. "Trung bình" sẽ làπ, đó là, tất nhiên, câu trả lời sai.
Jim Clay

Uh, đúng vậy. Bạn cần thực hiện một cách tiếp cận dựa trên góc phần tư như cách tính hàm atan2 và với cùng lý do gián đoạn tại±π (hoặc là 0/2π). Điều đó sẽ không cho vay chính nó để thực hiện trung bình.
Ryan Johnson

0

Đây là một cách nhanh chóng tôi đã sử dụng trong quá khứ để tìm một "góc trung bình". Đó là một chút lộn xộn và sử dụng nhiều số ma thuật hơn tôi muốn, nhưng ít nhất nó nhanh chóng và hiệu quả và không có thất bại thảm hại mà tính trung bình số học đơn giản mang lại.

// median_average: find the "average angle" from some set of angles.
// pick A and B "well separated" from each other and from 0 --
// perhaps A =~= 2pi/3 and B =~= 4pi/3
average0 = (average{ (angles .- 0) mod 2pi } + 0) mod 2pi
averageA = (average{ (angles .- A) mod 2pi } + A) mod 2pi
averageB = (average{ (angles .- B) mod 2pi } + B) mod 2pi
average = median ( average0, averageA, averageB )

Tôi thường lưu trữ các góc trong đại diện như "brad" , do đó thao tác "mod 2pi" là "bitand MASK" nhanh chóng.

Tôi có một bằng chứng rằng trung vị của 3 trung bình trung bình luôn cho trung bình "chính xác" cho bất kỳ 2 góc nào cách nhau dưới 2pi / 3; trung vị của 5 trung bình trung bình luôn cho trung bình "chính xác" cho bất kỳ 2 góc nào cách nhau dưới 4pi / 5, v.v.

Bất cứ khi nào thuật toán "trung bình" này tính trung bình 2 góc với nhau "không quá xa nhau", nhiều nhất là 1 trong 3 trung bình đơn giản trung gian cho giá trị sai lầm thảm khốc (nhiều nhất là 2 trong số 5 trung bình trung bình). (Như bạn đã đề cập, giá trị "Average0" là hoàn toàn sai khi cố gắng trung bình 0,1 và 2pi-0,1). Sau đó, trung vị cuối cùng () ném ra giá trị "sai" (nếu có) và trả về một trong 2 trung bình đúng.

.


0

Để tính toán trung bình các góc, bạn có thể sử dụng số liệu thống kê vòng tròn như được định nghĩa trong Mardia KV, Jupp PE (2009, Directional Statistics, Vol. 494 Hoboken, NJ: Wiley) và như được sử dụng trong bài báo này, Eq. 10 :

Ý tưởng đằng sau phương trình 10 là để tính giá trị trung bình của đại lượng tròn, trước tiên, vị trí và hướng cần phải được chuyển thành một góc, sau đó được chiếu vào vòng tròn đơn vị 2D nơi tính trung bình số học. Sau đó, góc mà vị trí trung bình hình thành được chuyển đổi từ góc sang không gian. Đối với các vị trí, điều này có dạng:

xprednet(t)= =1+12πhồ quang2(ΣTôiNexcpTôi(t)(tội(2πxTôi-π)),ΣTôiNexcpTôi(t)(cos(2πxTôi-π)))

trong bối cảnh của bạn, bạn có N biện pháp θTôi với xác suất pTôi, Trung bình θ bằng:

θ= =hồ quang2(ΣTôiNpTôi(tội(2πθTôi-π)),ΣTôiNpTôi(cos(2πθTôi-π)))

Phải, về cơ bản giống như cách tôi đã đề xuất ... mặc dù θphương trình bạn có là sai; Tôi tin rằng1+ là không cần thiết, cũng không phải là 12π. Chỉnh sửa để phù hợp với những gì tôi nghĩ là chính xác. YMMV.
Peter K.
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.