Thay đổi tín hiệu theo một phần của mẫu


9

Tôi có một tín hiệu với thời gian mẫu là 0,5 micro giây và tôi muốn thay đổi tín hiệu này bằng một phần nhỏ thời gian mẫu, giả sử là 3 nano giây.

Tôi đã đọc một vài tài nguyên trực tuyến về lọc độ trễ phân đoạn và về việc sử dụng FFT và IFFT để thực hiện độ trễ như vậy. Ai đó có thể chỉ cho tôi một số lý thuyết về điều này hoặc cho tôi một ý tưởng về cách thực hiện nó.

Để dịch chuyển tín hiệu thường xuyên cho các mẫu số nguyên, tôi đã thực hiện điều này bằng cách dịch chuyển tín hiệu theo số lượng mẫu cần thiết và thêm số không ở đầu. Cách tiếp cận này có đúng không?

Câu trả lời:


13

Có một bài viết tổng quan tốt xuất hiện vào năm 1996 trên Tạp chí Xử lý tín hiệu IEEE: Chia tách độ trễ đơn vị: các công cụ để thiết kế bộ lọc độ trễ phân đoạn . Điều thú vị ở đây là cũng có sẵn một tập hợp các tệp Matlab có liên quan . Những thói quen này sẽ cho phép bạn thiết kế một hệ thống như vậy.

Đối với việc dịch chuyển theo số lượng mẫu nguyên, những gì bạn đã làm rõ ràng là chính xác.


Tôi chỉ đọc lướt qua tờ giấy vì vậy tôi không chắc là nó có rõ ràng trong đó không, nhưng độ trễ phân đoạn có liên quan đến đạo hàm phân đoạn, trong đó khái quát hóa đạo hàm thứ n theo thứ tự tùy ý.
soultrane

2

Bên cạnh việc thực hiện các giải pháp loại fft, bạn cũng có thể sử dụng phép nội suy, loại nội suy cụ thể phù hợp sẽ dựa trên nhu cầu của bạn trong khóa học! Nội suy tuyến tính đã hoạt động tốt với tôi trong quá khứ với các hiệu ứng mặt bích, nhưng số dặm của bạn có thể thay đổi.

Nội suy Lagrange cũng có thể đáng để xem xét btw, nếu nội suy tuyến tính không đủ tốt. http://blog.demofox.org/2015/07/08/lagrange-interpolation/


Hermite có thể tốt hơn Lagrange, nhưng nếu bạn có quyền truy cập MATLAB (hoặc chương trình thiết kế bộ lọc FIR), bạn có thể thiết kế cho mình một bộ nội suy "ngân hàng bộ lọc polyphase" trong đó bạn có các bộ hệ số cho nhiều loại khác nhau, cách đều nhau, độ trễ phân đoạn. chọn hai độ trễ phân đoạn rời rạc gần nhất với độ trễ phân đoạn đã cho của bạn và nội suy tuyến tính giữa chúng.
robert bristow-johnson

0

Điều này có thể được thực hiện bằng cách sử dụng chức năng 'delayseq' trong MATLAB. Chức năng này có thể dịch chuyển tín hiệu trong các mẫu phân đoạn. Bạn có thể viết số lượng mẫu bạn muốn thay đổi hoặc về thời gian, số lượng độ trễ bạn muốn. Nhưng điều quan trọng cần lưu ý là tín hiệu trễ có cùng độ dài với tín hiệu gốc, vì vậy nếu bạn không muốn cắt tín hiệu, trước tiên hãy sử dụng phần đệm bằng 0 và sau đó trì hoãn. https://in.mathworks.com/help/phasing/ref/delayseq.html

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.