Hướng dẫn detect noise in audio python - phát hiện tiếng ồn trong trăn âm thanh

tải PDF

trừu tượng

Bất kỳ ứng dụng nào liên quan đến các phép đo nhạy cảm của thế giới vật lý bắt đầu với một chuỗi tín hiệu nhiễu chính xác, chính xác và thấp. Các thiết bị thu thập dữ liệu hiện đại, tích hợp cao thường có thể được kết nối trực tiếp với đầu ra cảm biến, thực hiện điều hòa tín hiệu tương tự, số hóa và lọc kỹ thuật số trên một thiết bị silicon duy nhất, đơn giản hóa rất nhiều thiết bị điện tử hệ thống. Tuy nhiên, một sự hiểu biết đầy đủ về các nguồn nhiễu của chuỗi tín hiệu và các bộ lọc giới hạn nhiễu vẫn được yêu cầu để trích xuất hiệu suất tối đa và gỡ lỗi các thiết bị hiện đại này.

Giới thiệu

Hướng dẫn này là sự tiếp nối của hướng dẫn kết nối bộ chuyển đổi.1,2 Nó sẽ tập trung vào nhiễu của các yếu tố chuỗi tín hiệu riêng lẻ, mô hình hóa chúng bằng python/scipy3 và ltspice®. Sau đó, nó sẽ xác minh kết quả bằng cách sử dụng Python để điều khiển dụng cụ thử nghiệm USB đa chức năng ADALM2000 thông qua Libm2K và khung đầu ra công nghiệp Linux® [IIO]. Tất cả các mã nguồn và thảo luận bổ sung có sẵn trong bài tập Lab Active Learning của bạn đồng hành.

Chuỗi tín hiệu chế độ hỗn hợp ở khắp mọi nơi. Nói một cách đơn giản, bất kỳ hệ thống nào biến đổi tín hiệu trong thế giới thực thành biểu diễn điện, sau đó được số hóa, có thể được phân loại là chuỗi tín hiệu chế độ hỗn hợp. Tại mọi điểm dọc theo chuỗi, tín hiệu bị suy giảm theo nhiều cách khác nhau thường có thể được đặc trưng là một dạng biến dạng hoặc nhiễu phụ gia. Khi ở miền kỹ thuật số, việc xử lý dữ liệu số hóa cũng không hoàn hảo, nhưng ít nhất, đối với tất cả các mục đích thực tế, miễn nhiễm với nhiều người phạm tội ảnh hưởng đến tín hiệu tương tự dung sai thành phần, độ trôi nhiệt độ, nhiễu từ các tín hiệu liền kề, hoặc các biến thể điện áp cung cấp.

Khi ngành công nghiệp tiếp tục đẩy các giới hạn vật lý, một điều chắc chắn: luôn có chỗ để cải thiện các thành phần tín hiệu tương tự và hỗn hợp cho thiết bị. Nếu một bộ chuyển đổi tương tự sang số [ADC] hoặc bộ chuyển đổi kỹ thuật số sang tương tự [DAC] xuất hiện trên thị trường thúc đẩy trạng thái của nghệ thuật về tốc độ, tiếng ồn, sức mạnh, độ chính xác hoặc giá cả, các nhà sản xuất sẽ vui vẻ áp dụng nó Đối với các vấn đề hiện có, sau đó yêu cầu cải thiện nhiều hơn. Tuy nhiên, để đạt được hệ thống mua lại tốt nhất cho ứng dụng của bạn, việc nhận thức được các thành phần giới hạn là cơ bản và chọn chúng theo đó.

Một chuỗi tín hiệu chế độ hỗn hợp chung

Hình 1 cho thấy một chuỗi tín hiệu chung điển hình của một ứng dụng thiết bị chính xác, với đầu vào vật lý và đầu ra kỹ thuật số. Có rất nhiều tài liệu tham khảo nền trên ADC có sẵn, 4 và hầu hết các độc giả sẽ có cảm giác rằng ADC lấy mẫu tín hiệu đầu vào tại một thời điểm nào đó [hoặc đo mức trung bình của tín hiệu trong một số thời gian quan sát] và tạo ra một biểu diễn số của tín hiệu đó Thường thì thường là một số nhị phân với một số giá trị giữa 0 và 2 [n - 1] trong đó n là số bit trong từ đầu ra.

Hình 1. Trong chuỗi tín hiệu chế độ hỗn hợp, một số hiện tượng vật lý như nhiệt độ, cường độ ánh sáng, pH, lực hoặc mô-men xoắn được chuyển đổi thành tham số điện [điện trở, dòng điện hoặc trực tiếp thành điện áp]. Tín hiệu này sau đó được khuếch đại, lọc thông thấp và được số hóa bởi ADC, có thể bao gồm lọc kỹ thuật số bên trong.

Nguồn tiếng ồn ADC

Mặc dù có một số nguồn nhiễu trong Hình 1, nhưng một nguồn thường bị bỏ qua hoặc quá mức, là số lượng bit trong đầu ra kỹ thuật số ADC. Trong lịch sử, số lượng bit của ADC được coi là nhân vật cuối cùng của công đức, trong đó một bộ chuyển đổi 16 bit được coi là tốt hơn 4 lần so với bộ chuyển đổi 14 bit.5 nhưng trong trường hợp bộ chuyển đổi hiện đại, có độ phân giải cao, số lượng bit có thể được bỏ qua một cách an toàn. Lưu ý một nguyên tắc chung của thiết kế chuỗi tín hiệu:

Tiếng ồn đầu vào của một giai đoạn phải thấp hơn một chút so với nhiễu đầu ra của giai đoạn trước.

Như với bất kỳ chuỗi tín hiệu nào, một nguồn nhiễu trong ADC thường thống trị. Do đó, nếu một tín hiệu không có tiếng ồn áp dụng cho ADC N-bit:

  • Kết quả trong một mã đầu ra duy nhất hoặc hai mã đầu ra liền kề, sau đó tiếng ồn lượng tử hóa chiếm ưu thế. Tỷ lệ tín hiệu-nhiễu [SNR] có thể không lớn hơn [6.02 N + 1.76] db.6
  • Kết quả là phân phối Gaussian của nhiều mã đầu ra, sau đó nguồn nhiễu nhiệt chiếm ưu thế. SNR không lớn hơn:

where:

VIN [P-P] là tín hiệu đầu vào quy mô đầy đủ. σ là độ lệch chuẩn của các mã đầu ra theo đơn vị điện áp.
σ is the standard deviation of the output codes in units of voltage.

Các bộ chuyển đổi độ phân giải rất cao, chẳng hạn như AD7124-8, sẽ được sử dụng làm ví dụ trong thời gian ngắn, hiếm khi bị giới hạn bởi nhiễu lượng tử hóa; Tiếng ồn nhiệt chiếm ưu thế trong tất cả các cài đặt tăng/băng thông và đầu vào bị ngắn sẽ luôn tạo ra sự phân phối mã đầu ra khá Gaussian. Hình 2 cho thấy biểu đồ đầu vào nối đất của ADC ADC AD7124-8, Sigma-DeltA 24 bit, với bộ khuếch đại khuếch đại lập trình bên trong [PGA] được đặt thành 1 và 128, tương ứng.

Hình 2. Với mức tăng PGA là 1 [trái], 13 mã được biểu thị trong nhiễu đầu ra AD7124 và độ lệch chuẩn là khoảng 2,5 mã. Trong khi lượng tử hóa có thể nhìn thấy, nhiễu nhiệt có ý nghĩa hơn. Với mức tăng PGA là 128 [phải], 187 mã được biểu thị và tiếng ồn lượng tử hóa là không đáng kể. Cắt ngắn một hoặc hai bit ít có ý nghĩa nhất [nhiễu lượng tử hóa nhân đôi hoặc tăng gấp bốn lần] sẽ không dẫn đến mất thông tin.

Mô hình hóa và đo nhiễu ADC

Mô hình hóa nhiễu của ADC Limited Limited nhiệt là đơn giản. Nếu tiếng ồn là hành xử tốt, [Gaussian, như trong Hình 2] và không đổi trên khoảng đầu vào của ADC, thì nhiễu miền thời gian của ADC có thể được mô hình , như đã thấy trong Hình 3.

Hình 3. Mô hình hóa nhiễu Gaussian với Numpy.

Hình 4. ADALM2000 là một thiết bị thử nghiệm USB đa chức năng với hai đầu vào tương tự đa năng và hai đầu ra, với tốc độ mẫu lần lượt là 100 MSP và 150 MSP. Nó có thể được sử dụng như một nguồn tín hiệu đơn giản để đo băng thông nhiễu ADC và phản ứng bộ lọc. Một Raspberry Pi 4 chạy kernel với hỗ trợ trình điều khiển thiết bị AD7124 hoạt động như một cầu nối đơn giản giữa AD7124 và máy tính chủ.

Trình điều khiển thiết bị AD7124 thuộc Khung IIO tiêu chuẩn công nghiệp, có API phần mềm được thiết lập tốt [bao gồm cả ràng buộc Python]. Mã ứng dụng có thể chạy cục bộ [trên Raspberry Pi] hoặc trên máy từ xa thông qua kết nối mạng, nối tiếp hoặc USB. Hơn nữa, lớp trừu tượng Pyadi-II8 chăm sóc phần lớn thiết lập nồi hơi cần thiết để giao tiếp với các thiết bị IIO, đơn giản hóa rất nhiều giao diện phần mềm. Hình 5 minh họa cách mở kết nối với AD7124-8, định cấu hình nó, chụp một khối dữ liệu, sau đó đóng kết nối.

Hình 5. AD7124-8 Chụp dữ liệu cơ bản.

Với giao tiếp với AD7124-8 được thiết lập, một thử nghiệm cực kỳ đơn giản nhưng cực kỳ hữu ích có thể được thực hiện: đo nhiễu đầu vào trực tiếp. Chỉ cần rút ngắn đầu vào cho ADC và xem xét phân phối kết quả của mã ADC là một bước có giá trị trong việc mô tả thiết kế chuỗi tín hiệu. Chế độ đầu vào AD7124 được đặt thành đơn cực, do đó chỉ có các giá trị dương là hợp lệ; Mạch thử nghiệm được hiển thị trong Hình 6 đảm bảo rằng đầu vào luôn dương.

Hình 6. Một bộ chia điện trở được sử dụng để tạo ra độ lệch 1,25 mV trên đầu vào của AD7124-8, vượt qua điện áp bù tối đa 15 15 và đảm bảo rằng các bài đọc ADC luôn dương.

Hình 7 cho thấy hai phép đo 1024 điểm. Dấu vết thấp hơn [màu xanh] được thực hiện ngay sau khi áp dụng năng lượng ban đầu.

Hình 7. Hai lần chụp dữ liệu AD7124-8 được thực hiện với độ lệch 1,25 mV được áp dụng. Dấu vết thấp hơn cho thấy sự trôi dạt ban đầu sau khi tăng sức mạnh khi mạch nóng lên. Dấu vết phía trên cho thấy các bài đọc ổn định sau thời gian khởi động nửa giờ.

Có thể là do một số yếu tố, các yếu tố tham chiếu bên trong làm nóng lên, các điện trở bên ngoài nóng lên [và do đó trôi dạt], hoặc cặp nhiệt điện ký sinh, trong đó các kim loại hơi khác nhau sẽ tạo ra một điện áp với sự hiện diện của độ dốc nhiệt. Tiếng ồn đo được sau khi khởi động là khoảng 565 NV RMS, ngang bằng với đặc tả nhiễu của bảng dữ liệu.

Thể hiện nhiễu ADC làm mật độ

Nguyên tắc chung của thiết kế chuỗi tín hiệu tương tự [rằng nhiễu đầu vào của một giai đoạn phải thấp hơn một chút so với nhiễu đầu ra của giai đoạn trước] là một tính toán dễ dàng nếu tất cả các yếu tố bao gồm thông số kỹ thuật mật độ nhiễu như hầu hết các cảm biến được chỉ định tốt và gần như tất cả Bộ khuếch đại làm.

Không giống như bộ khuếch đại và cảm biến, các bảng dữ liệu ADC thường không bao gồm đặc tả mật độ nhiễu. Việc thể hiện nhiễu ADC ADC dưới dạng mật độ cho phép nó được so sánh trực tiếp với nhiễu ở đầu ra của phần tử cuối cùng trong chuỗi tín hiệu tương tự, có thể là giai đoạn trình điều khiển ADC, giai đoạn tăng hoặc chính cảm biến.

Một tiếng ồn bên trong ADC sẽ nhất thiết sẽ xuất hiện ở đâu đó giữa DC và một nửa tỷ lệ mẫu. Lý tưởng nhất là tiếng ồn này bằng phẳng, hoặc ít nhất là hình dạng dự đoán. Trên thực tế, do tổng số ADC ADC được trải ra trên băng thông đã biết, nó có thể được chuyển đổi thành mật độ nhiễu có thể được so sánh trực tiếp với các yếu tố khác trong chuỗi tín hiệu. Bộ chuyển đổi chính xác thường có tổng nhiễu được đưa ra trực tiếp, tính bằng volt rms:

Trong đó ERMS là tổng số tiếng ồn RMS, được tính từ độ lệch chuẩn của biểu đồ đầu vào nối đất của mã.

Các bộ chuyển đổi tốc độ cao hơn được kiểm tra và đặc trưng với tín hiệu hình sin thường sẽ có đặc điểm kỹ thuật SNR. Nếu được cung cấp, tổng nhiễu RMS có thể được tính là:

trong đó ADCP-P là phạm vi đầu vào từ cực đại đến đỉnh của ADC.

Mật độ nhiễu tương đương sau đó có thể được tính toán:

trong đó FS là tỷ lệ mẫu ADC trong các mẫu/giây.

Tổng nhiễu từ Hình 7 sau khi khởi động là 565 NV với tốc độ dữ liệu là 128 SP. Mật độ nhiễu xấp xỉ:

ADC hiện có thể được đưa trực tiếp vào phân tích nhiễu chuỗi tín hiệu, dẫn đến hướng dẫn để tối ưu hóa mức tăng của chuỗi tín hiệu:

  • Tăng mức tăng chỉ đến điểm mà mật độ nhiễu của giai đoạn cuối trước ADC cao hơn một chút so với ADC, sau đó dừng lại. Don Tiết bận tâm làm tăng mức tăng chuỗi tín hiệu nữa mà bạn chỉ cần khuếch đại nhiễu và giảm phạm vi đầu vào cho phép.

Điều này chạy ngược lại với sự khôn ngoan thông thường của việc điền vào phạm vi đầu vào của ADC. Có thể có một lợi ích khi sử dụng nhiều phạm vi đầu vào của ADC nếu có các bước hoặc sự không liên tục trong chức năng chuyển nhượng của ADC, nhưng đối với các ADC được cư xử tốt [hầu hết các ADC Sigma-Delta và Thanh ghi gần đúng liên tiếp có độ phân giải cao [SAR] hiện đại, có độ phân giải cao [SAR] có độ phân giải cao [SAR] ADC], tối ưu hóa bằng tiếng ồn là cách tiếp cận ưa thích.

Đo lường đáp ứng bộ lọc ADC

AD7124-8 là Sigma-Delta ADC, trong đó một bộ điều biến tạo ra tốc độ mẫu cao, nhưng nhiễu [độ phân giải thấp], biểu thị của đầu vào tương tự. Dữ liệu ồn ào này sau đó được lọc bởi bộ lọc kỹ thuật số bên trong, tạo ra tốc độ thấp hơn, đầu ra nhiễu thấp hơn. Loại bộ lọc thay đổi từ ADC đến ADC, tùy thuộc vào ứng dụng kết thúc dự định. AD7124-8 là mục đích chung, được nhắm mục tiêu vào các ứng dụng chính xác. Như vậy, phản hồi bộ lọc kỹ thuật số và tốc độ dữ liệu đầu ra có thể cấu hình cao. Mặc dù phản hồi của bộ lọc được xác định rõ trong bảng dữ liệu, nhưng có những lúc người ta có thể muốn đo tác động của bộ lọc đối với một tín hiệu nhất định. Khối mã phản hồi bộ lọc AD7124-8 [xem Hình 9] đo phản hồi của bộ lọc bằng cách áp dụng sóng hình sin vào đầu vào ADC và phân tích đầu ra. Phương pháp này có thể dễ dàng điều chỉnh để đo các dạng sóng khác Các đường đi bộ và các sự kiện vật lý mô phỏng. ADALM2000 được kết nối với mạch AD7124-8 như trong Hình 8.

Hình 8. Một trình tạo dạng sóng ADALM2000 được sử dụng để tạo ra một phạm vi tần số sóng hình sin, cho phép đáp ứng bộ lọc của AD7124-8 được đo trực tiếp. Trong khi tập lệnh đặt biên độ sóng hình sin và bù ở mức an toàn, điện trở 1 kΩ bảo vệ AD7124-8 trong trường hợp trục trặc. .

Khối mã phản hồi bộ lọc AD7124-8 [xem Hình 9] sẽ đặt trình tạo dạng sóng Adalm2000, để tạo sóng hình sin ở 10 Hz, thu 1024 điểm dữ liệu, tính giá trị RMS, sau đó nối kết quả vào danh sách. Send_SineWave và Capture_Data là các hàm tiện ích gửi sóng hình sin đến Adalm2000 và nhận một khối dữ liệu từ AD7124, tương ứng.2 Sau đó, nó sẽ bước qua tần số lên đến 120 Hz, sau đó vẽ kết quả như trong Hình 10.

Hình 9. Chương trình khối phản hồi bộ lọc cho ADALM2000.

Hình 10. Một phép đo phản hồi của bộ lọc AD7124 trong 64 SPS, chế độ SINC4 cho thấy dải chuyền của bộ lọc, thùy đầu tiên và hai null đầu tiên.

Mặc dù đo các giá trị suy giảm cao đòi hỏi một bộ tạo tín hiệu biến dạng yên tĩnh và thấp hơn, phản ứng của một vài thùy chính đầu tiên là rõ ràng với thiết lập này.

Mô hình các bộ lọc ADC

Khả năng đo phản hồi bộ lọc ADC là một công cụ thực tế để xác minh băng ghế dự bị. Tuy nhiên, để mô phỏng đầy đủ chuỗi tín hiệu, một mô hình của bộ lọc là cần thiết. Đây không phải là cung cấp rõ ràng cho nhiều bộ chuyển đổi [bao gồm AD7124-8], nhưng một mô hình khả thi có thể được thiết kế ngược từ thông tin được cung cấp trong bảng dữ liệu.

Lưu ý rằng những gì sau đây chỉ là một mô hình của các bộ lọc AD7124-8; Nó không phải là một đại diện chính xác một chút. Tham khảo bảng dữ liệu AD7124-8 cho tất cả các tham số được bảo đảm.

Tất cả các bộ lọc AD7124 đều có các phản ứng tần số là sự kết hợp của các hàm SINC khác nhau [với đáp ứng tần số tỷ lệ thuận với [sin {f}/f] n]. Các bộ lọc này khá dễ dàng để xây dựng, và để thiết kế đảo ngược khi các null được biết đến.

Hình 11 cho thấy các bộ lọc Notch AD7124-8 10 Hz. Các kết hợp khác nhau của các bộ lọc SINC3 và SINC4 bậc cao cũng có sẵn.

Hình 11. Bộ lọc Notch AD7124-8 10 Hz có phản ứng cường độ SINC1; Phản ứng xung của bộ lọc chỉ đơn giản là một mẫu trung bình không có trọng số [hình chữ nhật] trong khoảng thời gian 100 ms.

Bộ lọc từ chối đồng thời 50 Hz/60 Hz được hiển thị trong Hình 12 là một ví dụ không cần thiết. Bộ lọc này nhằm từ chối mạnh mẽ tiếng ồn từ các đường dây điện AC, là 50 Hz [như ở châu Âu] hoặc 60 Hz [như ở Hoa Kỳ].

Hình 12. Phản hồi bộ lọc từ chối AD7124-8 50 Hz/60 Hz là sự kết hợp của bộ lọc 50 Hz, SINC3 và bộ lọc SINC1 60 Hz.

Bộ lọc chân thành bậc cao hơn có thể được tạo ra bằng cách kết hợp các bộ lọc SINC1. Ví dụ, kết hợp hai bộ lọc sinc1 [với phản ứng xung hình chữ nhật theo thời gian] sẽ dẫn đến phản ứng xung tam giác và đáp ứng tần số sinc2 tương ứng. Khối mã bộ lọc AD7124 [xem Hình 13] tạo ra bộ lọc SINC3 với null ở 50 Hz, sau đó thêm bộ lọc thứ tư với null ở 60 Hz.

Hình 13. Ví dụ về mã AD7124-8 cho bộ lọc SINC 50 Hz/60 Hz.

Các hình dạng xung [miền thời gian] kết quả của các bộ lọc được hiển thị trong Hình 14. Các giá trị hệ số bộ lọc [TAP] được chuẩn hóa cho mức tăng Unity [0 dB] ở tần số 0.

Hình 14. Liên tục kết hợp các phản ứng xung hình chữ nhật tạo ra các phản ứng xung giống như Gaussian.

Và cuối cùng, đáp ứng tần số có thể được tính toán bằng hàm freqz Numpy, như được thấy trong Hình 16. Phản hồi được hiển thị trong Hình 15.

Hình 15. Kết hợp bộ lọc Notch SINC3, 50 Hz với bộ lọc SINC1, 60 Hz tạo ra phản ứng tổng hợp từ chối mạnh cả 50 Hz và 60 Hz.

Hình 16. Ví dụ về mã AD7124-8 cho bộ lọc Notch SINC3 50 Hz với bộ lọc SINC 60 Hz.

Kháng là vô ích: giới hạn cảm biến cơ bản

Tất cả các cảm biến, cho dù hoàn hảo đến mức nào, có một số giá trị đầu vào tối đa [và đầu ra tối đa tương ứng, có thể là một điện áp, dòng điện, điện trở hoặc thậm chí là vị trí quay số Nếu đầu vào hoàn toàn tĩnh lặng. Tại một số điểm, một cảm biến có đầu ra điện sẽ bao gồm một phần tử có điện trở hữu hạn [hay nói chung hơn, trở kháng] được biểu thị bằng RSensor trong Hình 17. Điều này thể hiện một giới hạn nhiễu cơ bản không thể cải thiện được khi điều này [RMS] Volt của tiếng ồn, ở mức tối thiểu:

where:

EN [RMS] là tổng số tiếng ồn.

K là hằng số Boltzmann [1.38E-23 J/K].

T là nhiệt độ tuyệt đối điện trở [Kelvin].

F2 và F1 là giới hạn trên và dưới của dải tần số.

Bình thường hóa băng thông thành 1 Hz biểu thị mật độ nhiễu, tính bằng V/Hz.Hz.

Hình 17. Các cảm biến thường bao gồm bộ đệm bên trong để đơn giản hóa kết nối với các mạch hạ nguồn. Trong khi trở kháng đầu ra thấp [thường đến 0], nhiễu từ các phần tử cảm biến trở kháng cao được đệm cùng với tín hiệu.

Bình thường hóa băng thông thành 1 Hz biểu thị mật độ nhiễu, tính bằng V/Hz.Hz.

Bảng dữ liệu cảm biến có thể chỉ định trở kháng đầu ra thấp [thường là gần 0], nhưng đây có thể là một giai đoạn đệm, giúp giảm bớt giao tiếp với các mạch hạ nguồn nhưng không loại bỏ nhiễu do trở kháng sớm hơn trong chuỗi tín hiệu.

Có rất nhiều giới hạn cảm biến khác, cơ chế, hóa học, quang học trực tiếp với các giới hạn lý thuyết của riêng họ và các hiệu ứng của chúng có thể được mô hình hóa và bù cho sau này. Nhưng tiếng ồn là một điều không hoàn hảo không thể

Nguồn tiếng ồn trong phòng thí nghiệm

Một trình tạo tiếng ồn được hiệu chỉnh có chức năng như một cảm biến tồi tệ nhất thế giới, mô phỏng tiếng ồn của một cảm biến mà không thực sự cảm nhận được bất cứ điều gì. Một trình tạo như vậy cho phép một chuỗi tín hiệu phản ứng với tiếng ồn được đo trực tiếp. Mạch được hiển thị trong Hình 18 sử dụng điện trở 1 MΩ dưới dạng nguồn nhiễu 127 NV/√Hz [ở nhiệt độ phòng] với độ chính xác và băng thông. Mặc dù độ chính xác chỉ ổn, phương pháp này có lợi thế:Hz [at room temperature] noise source with “okay“ accuracy and bandwidth. While the accuracy is only okay, this method has advantages:

  • Nó dựa trên các nguyên tắc đầu tiên, vì vậy theo một nghĩa nào đó có thể hoạt động như một tiêu chuẩn không được hiệu chỉnh.
  • Nó thực sự là ngẫu nhiên, không có mẫu lặp lại.

OP482 & NBSP; là bộ khuếch đại dòng điện cực sai với nhiễu dòng điện thấp tương ứng và nhiễu điện áp đủ thấp đến mức nhiễu do trở kháng đầu vào 1 MΩ chiếm ưu thế. Được cấu hình với mức tăng 2121, nhiễu đầu ra là 269 PhaV/√Hz.Hz.

Hình 18. Một điện trở 1 MΩ đóng vai trò là nguồn nhiễu có thể dự đoán được, sau đó được khuếch đại đến mức có thể sử dụng bằng bộ khuếch đại hoạt động nhiễu thấp.

Nguồn tiếng ồn đã được xác minh bằng thiết bị USB ADALM2000, sử dụng máy phân tích phổ GUI Scopy, được hiển thị trong Hình 19.9

Hình 19. Đầu ra của máy phát nhiễu phòng thí nghiệm dựa trên điện trở có băng thông có thể sử dụng khoảng 10 kHz.

Trong các cài đặt phân tích được hiển thị, sàn nhiễu ADALM2000 là 40 PhaV/√Hz, thấp hơn so với 269 VAV/Hz của nguồn nhiễu.Hz, well below the 269 µV/√Hz of the noise source.

Mặc dù Scopy rất hữu ích cho các phép đo đơn lẻ, trực quan, chức năng có thể được nhân rộng dễ dàng với hàm biểu đồ SCIPY. Dữ liệu thô được thu thập từ ADALM2000 bằng cách sử dụng các liên kết LibM2K10 và Python, được xử lý tối thiểu để loại bỏ nội dung DC [nếu không sẽ rò rỉ vào các thùng tần số thấp] và chia tỷ lệ thành NV/√Hz. Phương pháp này, được hiển thị trong Hình 20, có thể được áp dụng cho bất kỳ mô -đun thu thập dữ liệu nào, miễn là tốc độ mẫu được cố định và đã biết, và dữ liệu có thể được định dạng thành một vectơ của điện áp.Hz. This method, shown in Figure 20, can be applied to any data acquisition module, so long as the sample rate is fixed and known, and data can be formatted as a vector of voltages.

Hình 20. Mã đo nguồn nhiễu Python cho ADALM2000.

Bây giờ chúng tôi được trang bị một nguồn tiếng ồn đã biết và một phương pháp để đo nguồn nói, cả hai đều có thể được sử dụng để xác nhận chuỗi tín hiệu.

Chuỗi tín hiệu mô hình trong ltspice

LTSPice® là một trình mô phỏng mạch analog có mục đích chung miễn phí, có thể được áp dụng cho thiết kế chuỗi tín hiệu. Nó có thể thực hiện phân tích thoáng qua, phân tích miền tần số [quét AC] và phân tích nhiễu, kết quả có thể được xuất và kết hợp thành các mô hình tín hiệu hỗn hợp sử dụng Python.

Hình 21 cho thấy một mô phỏng nhiễu của bộ tạo nhiễu tương tự, với sự đồng ý chặt chẽ với kết quả thử nghiệm. Một amp op với các thuộc tính tương tự với OP482 đã được sử dụng để mô phỏng. & NBSP;

Hình 21. Một mô phỏng LTSPice của nguồn nhiễu trong phòng thí nghiệm cho thấy gần như băng thông có thể sử dụng giống như mạch đo.

Hình 22 Tiếng ồn mạch khá tầm thường đối với mô hình, cho rằng nó không đổi đối với một số băng thông [trong đó tín hiệu quan tâm sẽ nằm], trên đó nó lăn ra với phản hồi thông thấp thứ nhất. Trường hợp kỹ thuật này có ích là mô hình các sàn nhiễu không phải là do lọc tương tự bậc cao hơn hoặc các yếu tố hoạt động. Ví dụ kinh điển là Núi Tiếng ồn thường tồn tại trong các bộ khuếch đại tự động như LTC2057, như đã thấy trong Hình 23.

Hình 22. Mật độ nhiễu LTC2057 phẳng ở tần số thấp, với cực đại ở mức 50 kHz [một nửa tần số 100 kHz của bộ tạo dao động bên trong].

Hình 23. LTSPice được sử dụng để mô phỏng nhiễu đầu ra của LTC2057 trong mức tăng không chuyển đổi cấu hình +10. LTSPice cung cấp các công cụ đơn giản để tích hợp nhiễu, nhưng kết quả của bất kỳ mô phỏng nào cũng có thể được xuất và nhập vào Python để phân tích thêm.

Nhập dữ liệu tiếng ồn LTSPice để phân tích miền tần số trong Python là vấn đề thiết lập lệnh mô phỏng sao cho tần số chính xác trong vectơ phân tích được mô phỏng. Trong trường hợp này, mô phỏng nhiễu được thiết lập với tần số tối đa là 2,048 MHz và độ phân giải 62,5 Hz, tương ứng với vùng Nyquist đầu tiên với tốc độ mẫu là 4.096 MSP. Hình 23 cho thấy mô phỏng & nbsp; của LTC2057 trong mức tăng không chuyển số 10, đầu ra mô phỏng và định dạng dữ liệu được xuất.

Để xác định tác động của một dải nhiễu nhất định đối với tín hiệu [tỷ lệ tín hiệu trên nhiễu], nhiễu là hình vuông gốc được tích hợp trên băng thông quan tâm. Trong LTSPice, các tham số được vẽ có thể được tích hợp bằng cách đặt giới hạn cốt truyện, sau đó nhấp vào nhãn kiểm soát. Tổng nhiễu trên toàn bộ mô phỏng 2.048 MHz là 32 RM RM. Một chức năng để thực hiện hoạt động này trong Python được hiển thị trong Hình 24.

Hình 24. Mã Python để thực hiện hình vuông gốc.

Đọc trong dữ liệu tiếng ồn đã xuất và chuyển đến hàm tích hợp_psd dẫn đến tổng số tiếng ồn là 3.21951E-05, rất gần với tính toán của LTSPice.

Tạo nhiễu kiểm tra

Mở rộng chức năng của bộ tạo nhiễu tương tự thuần túy, rất hữu ích để có thể tạo ra không chỉ phẳng mà còn là cấu hình tiếng ồn tùy ý của các dải nhiễu, tiếng ồn hồng hoặc núi tiếng ồn mô phỏng đạt đỉnh trong một số bộ khuếch đại. Chuỗi thời gian được tạo từ khối mã nửa phổ trong Hình 25 bắt đầu bằng mật độ phổ nhiễu mong muốn [có thể được tạo bằng tay hoặc lấy từ mô phỏng LTSPice] và tốc độ mẫu của chuỗi thời gian, sau đó tạo ra chuỗi thời gian của Giá trị điện áp có thể được gửi đến DAC.

Hình 25. Mã Python để tạo hồ sơ tiếng ồn tùy ý.

Hàm này có thể được xác minh bằng cách kiểm soát một ADALM2000 thông qua tập lệnh LibM2K, sau đó xác minh cấu hình nhiễu với ADALM2000 thứ hai và máy phân tích phổ trong GUI Scopy. Chuỗi thời gian nhiễu đẩy vào đoạn mã ADALM2000 [xem Hình 26] tạo ra bốn dải nhiễu 1 mV/√Hz trên đầu ra ADALM2000 W2 [với sóng hình sin trên W1, cho chức năng kiểm tra kép].Hz noise on the ADALM2000 W2 output [with a sine wave on W1, for double-checking functionality].

Hình 26. Xác minh tiếng ồn tùy ý với ADALM2000.

Hình 27 cho thấy bốn dải nhiễu 1 mV/Hz được tạo bởi một adalm2000. Vectơ đầu vào dài 8192 điểm với tốc độ mẫu 75 ksps, cho băng thông 9,1 Hz mỗi điểm. Mỗi ban nhạc là 512 điểm, hoặc rộng 4687 Hz. Việc tung ra trên ~ 20 kHz là sự kết thúc của DAC. Nếu DAC có khả năng tỷ lệ mẫu cao hơn, dữ liệu chuỗi thời gian có thể được lấy mẫu và lọc bởi bộ lọc nội suy.11Hz noise being generated by one ADALM2000. The input vector is 8192 points long at a sample rate of 75 kSPS, for a bandwidth of 9.1 Hz per point. Each band is 512 points, or 4687 Hz wide. The roll-off above ~20 kHz is the sinc roll-off of the DAC. If the DAC is capable of a higher sample rate, the time series data can be upsampled and filtered by an interpolating filter.11

Hình 27. Máy phân tích phổ SCOPY được sử dụng để xác minh bộ tạo nhiễu tùy ý. Các rãnh sâu giữa các dải nhiễu để hiển thị sàn nhiễu của máy phân tích, cho thấy một cấu hình nhiễu tùy ý có thể được tạo chính xác.

Trình tạo nhiễu này có thể được sử dụng cùng với bộ tạo tương tự tinh khiết để xác minh các thuộc tính từ chối của chuỗi tín hiệu.

Mô hình hóa và xác minh băng thông tiếng ồn ADC

Nguồn tiếng ồn bên ngoài và các âm giả trên FS/2 sẽ gấp lại [bí danh] vào vùng DC đến FS/2 và một bộ chuyển đổi có thể nhạy cảm với nhiễu vượt xa FS/2. Hãy xem xét LTC2378-20, có tốc độ mẫu là 1 MSP và băng thông đầu vào DB 3 dB là 34 MHz. Mặc dù hiệu suất có thể không phải là tốt nhất ở tần số cao như vậy, bộ chuyển đổi này sẽ số hóa hơn 68 vùng nhiễu Nyquist và gấp chúng lại trên đầu tín hiệu của bạn. Điều này minh họa tầm quan trọng của các bộ lọc antialiasing đối với các ADC băng rộng. Bộ chuyển đổi cho các ứng dụng chính xác thường là Sigma-Delta [như AD7124-8] hoặc Kiến trúc SAR quá mức, trong đó băng thông đầu vào bị giới hạn bởi thiết kế

Nó thường rất hữu ích khi nghĩ về băng thông nhiễu tương đương [ENBW] của bộ lọc, bao gồm cả bộ lọc tích hợp ADC. ENBW là băng thông của bộ lọc tường gạch băng thông phẳng phẳng cho phép vượt qua cùng một lượng nhiễu với bộ lọc không truyền. Một ví dụ phổ biến là ENBW của bộ lọc RC bậc nhất, đó là:

Trong đó FC là tần số cắt của bộ lọc. Nếu nhiễu băng rộng, từ DC DC đến ánh sáng ban ngày, thì được áp dụng cho đầu vào của cả bộ lọc thông thấp 1 kHz, thứ nhất và bộ lọc thông thấp bằng gạch 1,57 kHz, tổng công suất nhiễu ở đầu ra sẽ là tương tự.

Khối mã ví dụ ENBW trong Hình 28 chấp nhận phản hồi cường độ bộ lọc và trả về băng thông nhiễu hiệu quả. Một bộ lọc đơn phản ứng cường độ của bộ lọc được tính toán và sử dụng để xác minh mối quan hệ ENBW = FC × π/2.

Hình 28. Ví dụ mã Python để tính toán băng thông nhiễu hiệu quả.

Hàm này có thể được sử dụng để tính toán ENBW của phản hồi bộ lọc tùy ý, bao gồm cả các bộ lọc bên trong AD7124. Đáp ứng tần số của bộ lọc AD7124 SINC4, tốc độ mẫu 128 SPS có thể được tính bằng một phương pháp tương tự như ví dụ bộ lọc từ chối 50 Hz/60 Hz trước đó. Hàm Arb_ANBW trả về một ENBW khoảng 31 Hz.

Trình tạo tiếng ồn ADALM2000 có thể được sử dụng để xác thực kết quả này. Đặt bộ tạo nhiễu kiểm tra để tạo ra một dải 1000 VAV/Hz sẽ dẫn đến tổng nhiễu khoảng 5,69 mV RMS và kết quả đo được là khoảng 5,1 mV RMS tổng nhiễu. Việc thu thập tín hiệu đầu vào ADC được vẽ bên cạnh dữ liệu đầu ra ADC, trong Hình 29. Lưu ý nhiễu cực đại từ cực đại là 426 mV, trong khi nhiễu cực đại ADC là khoảng 26 mV. Mặc dù mức cao 10 như vậy, một cách đơn giản để sử dụng Python để phân tích nhiễu trong chuỗi tín hiệu chế độ hỗn hợp, mức độ nhiễu [hy vọng] không thực tế trong chuỗi tín hiệu chính xác thực tế, bài tập này chứng minh rằng bộ lọc bên trong của ADC có thể được dựa vào để hoạt động như giới hạn băng thông chính và do đó làm giảm nhiễu, trong chuỗi tín hiệu.Hz should result in a total noise of about 5.69 mV rms, and measured results are approximately 5.1 mV rms total noise. The oscilloscope capture of the ADC input signal is plotted next to the ADC output data, in Figure 29. Note the measured peak-to-peak noise of 426 mV, while the ADC peak-to-peak noise is about 26 mV. While such a high 10 A Simple Way to Use Python for Analysis of Noise in Mixed-Mode Signal Chains noise level is [hopefully] unrealistic in an actual precision signal chain, this exercise demonstrates that the ADC’s internal filter can be relied on to act as the primary bandwidth limiting, and hence noise reducing, element in a signal chain.

Hình 29. Một dải nhiễu 1 mV/√Hz được điều khiển vào đầu vào AD7124-8. Một sự giảm tiếng ồn là rõ ràng; Tiếng ồn từ cực đại từ cực đại từ đầu đến cực đại tại đầu vào ADC dẫn đến nhiễu từ cực đại từ cực đại khoảng 25 mV ở đầu ra ADC. Tổng số đầu ra tổng số đầu ra 5,1 mV gần với RMS 5,69 mV dự đoán, với mật độ nhiễu 1 MV/Hz và 31 Hz ENBW của bộ lọc ADC.Hz noise band is driven into the AD7124-8 input. A qualitative reduction in noise is apparent; 426 mV peak-to-peak noise at the ADC input results in approximately 25 mV peak-to-peak noise at the ADC output. The 5.1 mV rms total output noise is close to the predicted 5.69 mV rms, given the 1 mV/√Hz noise density and 31 Hz ENBW of the ADC’s filter.

Sự kết luận

Tiếng ồn là một yếu tố hạn chế trong bất kỳ chuỗi tín hiệu nào; Khi tiếng ồn làm ô nhiễm tín hiệu, thông tin bị mất. Trước khi xây dựng một hệ thống thu thập tín hiệu, các yêu cầu ứng dụng phải được hiểu, các thành phần được chọn phù hợp và mạch nguyên mẫu được thử nghiệm. Hướng dẫn này cung cấp một tập hợp các phương pháp mô hình chính xác và đo cảm biến và nhiễu chuỗi tín hiệu có thể được sử dụng trong quá trình thiết kế và thử nghiệm.

Các kỹ thuật chi tiết trong hướng dẫn này, cá nhân, không có gì mới. Tuy nhiên, để đạt được một hệ thống đầy đủ, có giá trị để có một bộ sưu tập các kỹ thuật cơ bản, dễ thực hiện và chi phí thấp để cho phép mô hình hóa và xác minh chuỗi tín hiệu. Mặc dù các nhà sản xuất tiếp tục cung cấp các bộ phận với hiệu suất tăng lên, nhưng sẽ luôn có một giới hạn nhất định mà người ta phải nhận thức được. Các kỹ thuật này không chỉ có thể được sử dụng để xác nhận các bộ phận trước khi xây dựng chuỗi tín hiệu chế độ hỗn hợp, mà còn để xác định các lỗi thiết kế trong một chuỗi hiện có.

Người giới thiệu

1 & nbsp; Hướng dẫn kết nối bộ chuyển đổi. Thiết bị tương tự Wiki, tháng 1 năm 2021.

2 & nbsp; Kho lưu trữ công cụ giáo dục thiết bị tương tự. Zenodo, tháng 7 năm 2021.

3 & nbsp; Pauli Virtanen, Ralf Gommers, et al. SCIPY 1.0: Các thuật toán cơ bản cho điện toán khoa học trong Python. Phương pháp tự nhiên, 17 [3], tháng 2 năm 2020.

4 & nbsp; Steven W. Smith. Hướng dẫn của nhà khoa học & kỹ sư về xử lý tín hiệu số. Xuất bản kỹ thuật California, 1999.

5 & ​​nbsp; người đàn ông. MT MT-229: Tiếng ồn lượng tử hóa: Một dẫn xuất mở rộng của phương trình, SNR = 6.02 N + 1.76. Thiết bị tương tự, Inc., tháng 8 năm 2012.

6 & nbsp; Walt Kester. MT MT-001: Đưa bí ẩn ra khỏi công thức khét tiếng, ‘SNR = 6.02N + 1.76dB, và lý do tại sao bạn nên quan tâm. Thiết bị tương tự, Inc., 2009.

7 & nbsp; Charles R. Harris, K. Jarrod Millman, et al. Lập trình Array Array với Numpy. Thiên nhiên, 585, tháng 9 năm 2020.

8 & NBSP; Thiết bị tương tự Wiki, tháng 5 năm 2021.

9 & nbsp; Scopy Scopy. Thiết bị tương tự Wiki, tháng 2 năm 2021.

10 & nbsp; “Libm2k là gì?” Thiết bị tương tự Wiki, tháng 10 năm 2021.

11 & nbsp; Walt Kester. MT MT-017: Nội suy MT-017. Thiết bị tương tự, Inc., 2009.

Sự nhìn nhận

  • Jesper Steensgaard, người đã kích hoạt/buộc một sự thay đổi mô hình trong suy nghĩ về thiết kế chuỗi tín hiệu, bắt đầu với LTC2378-20.
  • Travis Collins, kiến ​​trúc sư của Pyadi-II [trong số nhiều thứ khác].
  • Adrian Suciu, quản lý nhóm phần mềm và là người đóng góp cho LibM2K.

Thuộc tính

Bài viết này lần đầu tiên xuất hiện trong quá trình tố tụng của máy tính khoa học năm 2021 với hội nghị Python dưới tiêu đề sử dụng Python để phân tích và xác minh chuỗi tín hiệu chế độ hỗn hợp. Doi: 10.25080/Majora-1B6FD038-001.

Tác giả

Mark Thoren

Mark Thoren là một kỹ sư thiết kế/kiến trúc hệ thống cho các thiết bị tương tự. Anh ấy có bằng B.S. Trong kỹ thuật nông nghiệp/cơ khí và một M.S. trong Kỹ thuật điện, cả từ Đại học Maine. Mark cố gắng giữ một băng ghế trong phòng thí nghiệm được dự trữ tốt với các thiết bị thu được ở trạng thái bị hỏng và mang lại cuộc sống.

Cristina șuteu

Cristina șuteu đã tham gia nhóm phát triển hệ thống thiết bị analog vào năm 2019 với tư cách là một kỹ sư ứng dụng hệ thống. Trong thời gian làm việc với ADI, cô đã đóng góp cho các cải tiến phần mềm, có vai trò khác nhau trong các ấn phẩm và đào tạo kỹ thuật, và cung cấp tài liệu giáo dục cho chương trình Đại học ADI, bao gồm một loạt video cho Adalm2000. Cristina có bằng Cử nhân Kỹ thuật Điện từ Đại học Kỹ thuật Cluj-Napoca, Romania, và một bậc thầy về xử lý tín hiệu và hình ảnh, từ Đại học Kỹ thuật Cluj-Napoca phối hợp với Đại học Bordeaux, Pháp.

Bài Viết Liên Quan

Chủ Đề