Loại bỏ nhiễu kỹ thuật số trong phần mềm


7

Tôi có một thiết kế mong đợi một sóng vuông cấp độ TTL từ một máy thu sóng vô tuyến được đưa vào một vi điều khiển. Có một số nhiễu mức TTL vì không có mã hóa được thực hiện ở đầu truyền. Tôi đã tự hỏi nếu có ai có bất kỳ gợi ý về cách bạn có thể giảm tiếng ồn trong phần mềm? (Tôi hiểu có một số giải pháp phần cứng, nhưng tôi quan tâm nhiều hơn đến việc học) Tôi không tìm kiếm ai để giải quyết vấn đề của mình cho tôi, chỉ cho một số lời khuyên.

Tên / bài viết / chủ đề sẽ là tuyệt vời!


1
Khi bạn nói 'nhiễu mức độ TTL', bạn có nghĩa là tín hiệu ở ngoài vùng cấm TTL, nó chỉ phát ra bất ngờ? Nếu vậy, nó là gai cô lập, hoặc giống như chuyển đổi bị trả lại? Hoặc là tín hiệu dành thời gian lang thang trong khoảng từ 0,8 đến 2,4? Giải pháp sẽ phụ thuộc vào loại tiếng ồn.
JustJeff

Tôi đang nói về các xung đột bị cô lập từ 0-5V và trở lại xảy ra ngẫu nhiên nhưng có khả năng khá thường xuyên (lên tới 25% tín hiệu)
giật

Vì vậy, bạn đang mong đợi một sóng vuông thuần túy, nhưng cũng có những sự cố trong tín hiệu có thời lượng ngắn hơn nhiều so với thời gian dự kiến ​​của sóng vuông?
endolith

đúng vậy
jeremy

Câu trả lời:


8

Từ nhận xét mới nhất của bạn, tôi sẽ đề xuất quá mức đầu vào. Ghi lại một số mẫu liên tiếp, và sau đó đầu ra của bạn phải là phần lớn các mẫu được ghi.

Ví dụ, giả sử bạn ghi lại 10 mẫu. Nếu bạn nhận được mức tăng nhiễu, chỉ một hoặc hai trong số các mẫu sẽ bị hỏng, trong khi phần lớn trong số chúng là giá trị chính xác. Nếu bạn nhận được dữ liệu thực tế, thì cuối cùng số 1 sẽ nhiều hơn số 0 và đầu ra sẽ thay đổi.


6

Có nhiều cách để làm việc với tiếng ồn trong phần mềm và chúng ngày càng trở nên hiệu quả hơn để thực hiện trong phần mềm thay vì phần cứng, giảm chi phí hệ thống.

Thay vì cố gắng tự giải thích nó, tôi sẽ chuyển bạn cho Jack Ganssle , một nhà tư vấn hệ thống nhúng mà tôi đã phát triển từ việc đọc các bài báo của.

Anh ấy có một danh sách các bài báo của anh ấy trên mạng, cái đầu tiên tôi muốn bạn nói về tiếng ồn tương tự trong các hệ thống nhúng . Bài viết thứ hai tôi phải liên kết với bạn là về việc sử dụng phần mềm để giảm tiếng ồn trong hệ thống của bạn .

Tôi cũng sẽ đề xuất bài viết của ông trong việc làm mịn các đầu vào kỹ thuật sốhệ thống tự hiệu chỉnh . Sau khi dành thời gian làm việc với các hệ thống nhúng, tôi khó có thể lấy một số thông tin này từ lỗi của mình, nhưng tôi thực sự thích đọc cách suy nghĩ của anh ấy. Hệ thống tự hiệu chỉnh rất rõ ràng đối với tôi, nhưng cách anh ấy đề xuất về nó rất có giá trị đối với tôi. Bạn có thể không cần thông tin, nhưng bài viết của anh ấy đã giúp tôi.


5

Tôi đã tìm thấy Xử lý tín hiệu số và Vi điều khiển của Grover và Deller là cuốn sách duy nhất về các bộ lọc mà tôi có thể hiểu. Thật không may, thật khó để tìm thấy giá rẻ.

http://www.google.com/books?id=GzVmQgAACAAJ


1
Tôi sẽ xem nếu tôi có thể nhận được một bản sao bàn, các đánh giá có vẻ tốt!
Kortuk

Không liên quan lắm đến câu hỏi ban đầu IMHO. OTOH bạn có thể muốn thử dspguide.com . Nó có sẵn dưới dạng tải xuống PDF miễn phí nhưng tôi tự hào sở hữu một bản sao. Nó thực sự tuyệt vời cho việc học DSP.
jpc

4

Phần mềm của bạn có thăm dò ý kiến ​​đầu vào này không, hoặc bạn có sử dụng sơ đồ ngắt để xử lý nó không?

Nếu bạn đang bỏ phiếu, có lẽ bạn đã đọc đầu vào với tốc độ cao hơn nhiều so với những thay đổi dự kiến ​​trong tín hiệu. Nếu tiếng ồn được phân tách tốt, các tần số rất cao, thì chúng sẽ trông giống như các mẫu bị cô lập của cực 'sai'. Bạn có thể giảm thiểu điều này bằng cách giữ các mẫu N gần đây nhất và quyết định đọc đầu vào vì phần lớn phân cực chiếm đa số. Tức là, nếu N = 5, thì nếu bạn có 3, 4 hoặc 5 '1' bit, đầu vào của bạn là '1'; nếu bạn có các bit 0, 1 hoặc 2 '1', đầu vào của bạn là '0'. Đây thực sự chỉ là một loại bộ lọc thông thấp trong phần mềm.

Nếu bạn đang sử dụng đầu vào để kích hoạt ngắt khi thay đổi (cả hai cạnh), bạn có thể có thói quen ngắt (ISR) khởi động bộ hẹn giờ để gây gián đoạn thứ hai một thời gian ngắn sau đó, nhưng lâu hơn thời gian tăng nhiễu. Thay vì có ISR chân đầu vào tích lũy trực tiếp các bit tín hiệu, bạn có bộ định thời ISR ​​làm điều đó. Ví dụ: nếu tín hiệu ở mức thấp và tăng đột biến, cạnh tăng sẽ khởi động bộ hẹn giờ, nhưng trước khi bộ đếm thời gian hết hạn, cạnh rơi của bộ tăng tốc đặt lại, vì vậy khi ngắt hẹn giờ cuối cùng cũng tắt, bạn Đang nhìn vào tín hiệu, không phải tiếng ồn. Mặt khác, tín hiệu sẽ khởi động bộ hẹn giờ chỉ một lần và bộ đếm thời gian ISR sẽ có thể lấy mức tín hiệu mới.

Trong hai trường hợp này, Polled vs Interrupt, cá nhân tôi muốn sử dụng phương pháp thăm dò ý kiến, các ngắt b / c (1) phức tạp hơn và (2) một cặp gai được đặt theo bệnh lý vẫn có thể cung cấp cho bạn đầu vào sai.


0

Có lẽ "tiếng ồn" là một vấn đề gây ra do thiếu mã hóa. Máy phát và máy thu đơn giản yêu cầu NRZ - Mã Manchester thường được sử dụng.


Tôi chắc chắn rằng các máy phát này không sử dụng bất kỳ cơ chế mã hóa nào và tôi không thể sửa đổi máy phát, do đó, vấn đề của tôi.
jeremy

Bạn cần thêm mã hóa, sau đó, nếu NRZ là bắt buộc.
Leon Heller

2
Thật không may, tôi không thể thêm hoặc thay đổi bất cứ điều gì ở đầu truyền vì vậy không có cách nào để thêm mã hóa
jeremy

Bạn mã hóa dữ liệu trước khi nhập dữ liệu vào máy phát.
Leon Heller

Anh ấy xác định rằng anh ấy không thể thay đổi cách truyền được thực hiện, tôi nghĩ rằng ngụ ý Penjuin không thể thay đổi dữ liệu được gửi đến nó.
Kortuk
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.