Hướng dẫn phase shift in python - chuyển pha trong python
Bạn đã không thực hiện một sự thay đổi pha. Những gì bạn đã làm là thêm một vector 6000, giả sử p, với giá trị không đổi p (i) = j π thành v, fft của v. Hãy viết ṽ = V + P. Do tính tuyến tính của FFT (và của IFFT), những gì bạn đã gọi là & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Tất nhiên, ở đâu, p = ifft (p) là sự khác biệt ____10 - bây giờ, hãy kiểm tra xem P ...
Như bạn có thể thấy, bạn đã sửa đổi 1 bằng cách thêm một thành phần thực của ṽ về cơ bản là tiếng ồn bằng số trong tính toán của IFFT (do đó không có thay đổi trong cốt truyện, điều đó mang lại cho bạn phần thực của back_again ) và một sự đột biến tưởng tượng duy nhất, nó Chiều cao không có gì đáng ngạc nhiên bằng π, với t = 0.imaginary spike, its
height unsurprisingly equal to π, for t=0.Biến đổi của một hằng số là một tăng đột biến ở ω = 0, chất chống biến dạng của hằng số (trong miền tần số) là tăng đột biến ở t = 0. Mặt khác, nếu bạn nhân mỗi thuật ngữ FFT với một hằng số, bạn cũng nhân tín hiệu miền thời gian với cùng một hằng số (hãy nhớ, FFT và IFFT là tuyến tính). Để làm những gì bạn muốn, bạn phải nhớ rằng một sự thay đổi trong miền thời gian chỉ là sự chập (tròn) của tín hiệu (định kỳ) với tăng đột biến theo thời gian, vì vậy bạn phải nhân FFT của tín hiệu với FFT của sự thay đổi tăng đột biến. Vì biến đổi Fourier của phân phối dirac (T-A) là exp (-iΩa), bạn phải nhân mỗi thuật ngữ FFT của tín hiệu với một thuật ngữ phụ thuộc tần số, exp (-iΩa) = cos (Ωa) -i · sin (Ωa) (Lưu ý: Tất nhiên mỗi một trong số các thuật ngữ nhân này có biên độ đơn vị). Một ví dụ Một số sơ bộ
Một chức năng để tính toán FT riêng biệt của phân phối DIRAC tập trung vào 3 trong một khoảng thời gian 4
Hãy vẽ một tín hiệu và tín hiệu thay đổi
Bây giờ tính toán FFT của Spike chính xác (lưu ý rằng π/4 = (4π)/16), FFT của tín hiệu đã thay đổi, IFFT của FFT của S.S. Và cuối cùng vạch ra kết quả của chúng tôi Kỹ thuật đơn giản nhất trong trường hợp của bạn là chỉ cần tính toán tương quan $ r $ của tín hiệu có nghĩa sóng.$r$ of de-meaned signals, then get the phase difference as $\phi=\arccos(r/\pi)$ if the signals are harmonic, i.e. single frequency sine waves. Một cách khác để làm điều này là với chức năng tương quan chéo. Ý tưởng là tính toán mối tương quan giữa một tín hiệu và tín hiệu thứ hai bị trễ. Khi số độ trễ gần nhất với sự thay đổi pha, bạn sẽ nhận được mối tương quan tối đa. Ưu điểm của kỹ thuật này là nó không phụ thuộc vào hình dạng tín hiệu của bạn, trong khi phương pháp đầu tiên là tốt nhất cho các tín hiệu điều hòa. Phương pháp tương quanTại sao điều này nên làm việc cho bạn? Ở tần số lấy mẫu là 500 MHz, bạn có ít nhất 36 điểm mỗi sóng tín hiệu 13,56 MHz của mình. Với 20000 mẫu cung cấp cho bạn hàng trăm sóng đầy đủ được đo, điều đó có nghĩa là trung bình của tín hiệu sẽ rất gần với các phương tiện và sóng một phần ở đầu và cuối mẫu của bạn sẽ không quan trọng. Do đó, sau khi khử các tín hiệu, mối tương quan chỉ đơn giản là sôi lên với phương trình sau: $$ r \ xấp xỉ \ frac {\ int_0^{2 \ pi} sin (x) sin (x+\ Phi)} {2 \ pi} sin (x)^2} = \ cos (\ Phi) $$$$r\approx\frac{\int_0^{2\pi}sin(x)sin(x+\phi)}{\int_0^{2\pi}sin(x)^2}=\cos(\phi)$$ Dưới đây là một đoạn mã Python để chứng minh cách thức hoạt động của tỷ lệ nhiễu/tín hiệu 10%. Nhập NUMPY dưới dạng toán học nhập khẩu NP
Output:
Phương pháp tương quan chéoĐây là một đoạn mã để chứng minh làm thế nào nó có thể hoạt động.
Output:
PCACâu trả lời ban đầu của tôi với PCA, nhưng nó phức tạp hơn. Bạn có thể chạy PCA trên các tín hiệu được tiêu chuẩn hóa, sau đó tỷ lệ các phương sai được giải thích sẽ chứa thông tin về sự khác biệt pha của các tín hiệu. |