Có ứng dụng thực tế nào để thực hiện biến đổi Fourier kép không? Biến đổi hoặc biến đổi Fourier ngược trên đầu vào miền thời gian?


11

Trong toán học, bạn có thể lấy đạo hàm kép hoặc tích phân kép của hàm. Có nhiều trường hợp thực hiện mô hình đạo hàm kép một tình huống thực tế trong thực tế, như tìm gia tốc của vật thể.

Do biến đổi Fourier lấy tín hiệu thực hoặc phức tạp làm đầu vào và tạo ra tín hiệu phức tạp làm đầu ra, nên không có gì ngăn bạn lấy đầu ra đó và áp dụng biến đổi Fourier lần thứ hai ... Có cách sử dụng thực tế nào để thực hiện không điều này? Liệu nó có giúp mô hình hóa một số tình huống thực tế phức tạp?

Với cùng một logic, không có gì có thể ngăn bạn thực hiện biến đổi Fourier ngược của tín hiệu đầu vào miền thời gian ban đầu của bạn ... điều này có bao giờ hữu ích không? Tại sao hay tại sao không?

Câu trả lời:


8

"Có ứng dụng thực tế nào không?" Chắc chắn là có, ít nhất là để kiểm tra mã và các lỗi bị ràng buộc.

"Về lý thuyết, lý thuyết và thực hành phù hợp. Trong thực tế, họ không." Vì vậy, về mặt toán học, không, như Matt đã trả lời. Bởi vì (như đã trả lời), (tối đa là một hệ số tỷ lệ tiềm năng). Tuy nhiên, nó có thể hữu ích về mặt tính toán, bởi vì phương trình trên thường được thực hiện thông qua biến đổi Fourier rời rạc và hình đại diện nhanh của nó, FFT.F(F(x(t)))=x(t)

Một lý do đầu tiên xuất phát từ ý chí kiểm tra việc triển khai Fourier, cho dù được mã hóa bởi bạn, ai đó hoặc từ thư viện, có làm những gì cần làm trên dữ liệu của bạn không. Thứ tự mẫu, hệ số tỷ lệ, giới hạn về loại đầu vào (độ thực, độ sâu bit) hoặc độ dài là nguồn gây ra lỗi tiếp theo tiềm năng cho việc triển khai Fourier như FFT. Vì vậy, khi kiểm tra độ tỉnh táo, luôn luôn tốt để kiểm tra xem các phiên bản đã triển khai có kế thừa hay không, ít nhất là xấp xỉ các thuộc tính lý thuyết. Như bạn sẽ thấy, như Machupicchu thể hiện, bạn không phục hồi chính xác một đầu vào thực sự bị đảo ngược: thông thường, phần tưởng tượng không chính xác bằng 0 và phần thực là những gì được mong đợi, nhưng trong một lỗi tương đối nhỏ, do tính toán không hoàn hảo của máy tính (dấu phẩy động) trong phạm vi dung sai phụ thuộc vào máy. Điều này được hiển thị trên hình ảnh sau đây. FFT được áp dụng hai lần trên tín hiệu 32 mẫu ngẫu nhiên và được lật. Như bạn có thể thấy, lỗi là nhỏ, sử dụng phao chính xác kép.

dữ liệu, FFT lật đôi của nó và lỗi

Nếu lỗi không tương đối nhỏ, thì có thể có lỗi trong mã bạn sử dụng.

Thứ hai liên quan đến khối lượng dữ liệu khổng lồ hoặc số lượng lớn các tính toán FFT lặp, như với chụp cắt lớp. Ở đó, các lỗi tương đối nhỏ trước đây có thể tích lũy và lan truyền, và thậm chí gây ra sự phân kỳ tính toán hoặc lỗi một số chi tiết ở đây . Điều này được hiển thị trên hình ảnh sau đây. Đối với tín hiệu không quá dài ( mẫu), chúng tôi thực hiện các lần lặp sau: trong đó biểu thị FFT. Con số hiển thị là mẫu phụ. Và chúng tôi tính toán sai số tối đatại mỗi lần lặp.x01e6

xk+1=Re(f(f(f(f(xk)))))
fmax|xkx0|

dữ liệu, FFT bốn lần của nó và các lỗi tối đa trong các lần lặp

Như bạn có thể thấy, thứ tự cường độ của lỗi đã thay đổi, do kích thước của tín hiệu. Thêm vào đó, lỗi tối đa tăng đều đặn. Sau lần lặp, nó vẫn đủ nhỏ. Nhưng bạn có thể đoán rằng, với khối lập phương và hàng triệu lần lặp, lỗi này có thể trở nên không đáng kể.10001000×1000×1000

Xử lý lỗi và đánh giá hành vi của nó qua các lần lặp có thể giúp phát hiện các hành vi đó và giảm sau đó bằng cách ngưỡng hoặc làm tròn thích hợp.

Thông tin thêm:


1
Tôi thực sự thích câu trả lời này và tôi đã đánh dấu nó là câu trả lời được chấp nhận nhưng tôi nghĩ rằng những gì hầu hết những người đến với câu hỏi này sẽ tìm kiếm là thông tin lý thuyết mà Matt cung cấp trong liên kết. +1 mặc dù cho một câu trả lời tuyệt vời.
tjwrona1992

1
Tôi thực sự đánh giá cao bình luận của bạn. Tuy nhiên tôi đã cập nhật câu trả lời với các số liệu thích hợp, để chỉ ra rằng các lỗi trong việc triển khai Fourier rời rạc.
Laurent Duval

17

Không, thực hiện chuyển đổi Fourier hai lần tương đương với đảo ngược thời gian (hoặc đảo ngược bất kỳ thứ nguyên nào bạn đang ở). Bạn chỉ nhận được lần một hằng số phụ thuộc vào loại tỷ lệ bạn sử dụng cho biến đổi Fourier.x(t)

Biến đổi Fourier ngược được áp dụng cho tín hiệu miền thời gian chỉ cung cấp phổ với tần số đảo ngược. Hãy xem câu trả lời này để biết thêm chi tiết.


4
Bạn chỉ cần đệ quy tâm trí của tôi.
tjwrona1992

Tôi có minh họa những gì Matt. L nói nhưng trong 2D với mã của tôi? tức là chúng ta nhận được f (-x, -y).
Machupicchu

@Machupicchu, vâng có vẻ đúng.
tjwrona1992

haha sau đó bạn có thể chọn câu trả lời của tôi cho quảng cáo hàng đầu ^^ (anh ấy có 53K đại diện vì vậy nó không phải là bất kỳ khác biệt nào cho anh ấy haha)
Machupicchu

Ngay sau khi tôi nói rằng tôi nhận ra rằng có lẽ có nhiều cách dễ dàng hơn một biến đổi Fourier kép để đảo ngược tín hiệu haha
tjwrona1992

16

Trong khi lấy biến đổi Fourier trực tiếp hai lần liên tiếp chỉ mang đến cho bạn một tầm thường thời gian đảo ngược điều đó sẽ rẻ hơn rất nhiều để thực hiện mà không cần FT, có công cụ hữu ích có thể được thực hiện bằng cách lấy một biến đổi Fourier, áp dụng một số hoạt động khác, và sau đó một lần nữa Fourier biến đổi kết quả của điều đó. Ví dụ nổi tiếng nhất là tự tương quan , là một dạng tích chập của tín hiệu với chính nó. Và kết quả là O ( n 2 ) nếu được triển khai một cách ngây thơ, nhưng chỉ O ( n · log n) khi đi đường vòng qua biến đổi Fourier. Vì vậy, tự động tương quan thường được thực hiện bằng cách tạo tín hiệu FT, lấy bình phương tuyệt đối và IFT-ing trở lại miền thời gian.


2
Ngoài ra, có cepstrum , biến đổi Fourier ngược của logarit của biến đổi Fourier. Nó có thể được sử dụng để phát hiện các tín hiệu định kỳ.
Olli Niemitalo

11

Biến đổi 2D Fourier (2D DFT) được sử dụng trong xử lý hình ảnh do hình ảnh có thể được xem là tín hiệu 2D. Ví dụ: đối với ảnh thang độ xám , , điều đó có nghĩa là tại tọa độ và ảnh có giá trị cường độ z. Nhìn vào điều này ví dụ:II(x,y)=zxy

https://ch.mathworks.com/help/matlab/ref/fft2.html

Thử đi:

x=imread('cameraman.tif');
X=fft2(fft2(x));
imagesc(abs(X));

và so sánh với:

x=imread('cameraman.tif');
X= ifft2(fft2(x));
imagesc(abs(X));

đúng hơn Tôi đã áp dụng fft2 cho lần, không phải lần thứ hai. Tôi nghĩ điều này minh họa những gì @Matt L. đã nói:

"lấy biến đổi Fourier hai lần tương đương với đảo ngược thời gian",

bạn có thể thấy hình ảnh bị đảo ngược do âm -i tưởng tượng thay vì tích cực trong ifft ().

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

Tôi cũng đã làm điều đó cho tín hiệu 1D (ví dụ: tạm thời):

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


Tôi biết có một thứ giống như biến đổi 2D Fourier, nhưng điều đó không giống với việc lấy tín hiệu đầu vào và chạy nó thông qua thuật toán, sau đó lấy đầu ra của lần chạy đó và chạy lại.
tjwrona1992

1
Biến đổi Fourier có thể tách rời.
Machupicchu

Câu hỏi của tôi cũng sẽ áp dụng cho một biến đổi Fourier 2D. Về lý thuyết, bạn có thể lấy tín hiệu đầu vào 2D, áp dụng biến đổi Fourier 2D, sau đó lấy tín hiệu đầu ra 2D và sử dụng nó làm đầu vào và áp dụng lại biến đổi Fourier 2D.
tjwrona1992

hãy tìm trong Matlab những gì xảy ra nếu bạn làm như sau: Tôi đã cập nhật câu trả lời của mình
Machupicchu

1
Tôi sẽ đề nghị bạn sử dụng phần thực thay vì giá trị tuyệt đối
Laurent Duval

6

Để trả lời câu hỏi thứ hai, trong truyền thông kỹ thuật số có một kỹ thuật được sử dụng trong điện thoại di động ngay bây giờ mà làm cho sử dụng tốt của việc áp dụng IFFT để một tín hiệu trong miền thời gian. OFDM áp dụng IFFT cho chuỗi dữ liệu trong miền thời gian tại máy phát, sau đó đảo ngược dữ liệu đó với FFT tại máy thu. Mặc dù tài liệu thích sử dụng IFFT-> FFT, nhưng nó thực sự không có gì khác biệt cái nào đến trước.

sơ đồ truyền phát OFDM

Lợi ích chính ở đây liên quan nhiều đến câu trả lời của leftaroundabout. Có một loại biến dạng được gọi là phai đa đường , và điện thoại di động trong khu vực đô thị dày đặc phải đối phó với rất nhiều. Chúng tôi muốn mô hình hóa đa phai như một tổ hợp với các hệ số chưa biết. Bởi vì chuỗi các sự kiện trông giống như IFFT-> Truyền-> Áp dụng đa đường-> Nhận-> FFT, fading đa đường sẽ đi qua FFT và trở thành phép nhân theo điểm đơn giản với các giá trị không xác định. Các giá trị này dễ dự đoán và khắc phục hơn rất nhiều so với các hệ số tích chập.

Hiệu ứng này cũng làm cho tín hiệu trở nên linh hoạt hơn đối với đa luồng / fading có thể lấy ra (hoặc "null") toàn bộ kênh tần số. Bài viết này mô tả như thế nào

Sự lan truyền đa luồng như vậy có thể tạo ra các giá trị quang phổ sâu trong dải tần số của tín hiệu vô tuyến thu được do sự giao thoa triệt tiêu của hai bản sao tín hiệu đến ở các thời điểm hơi khác nhau. Một null trong OFDM có thể lấy ra một hoặc nhiều sóng mang con. Không có giá trị tương tự trong QAM sóng mang đơn có thể giảm một loạt các ký hiệu liền kề liên tiếp, tùy thuộc vào mẫu dữ liệu cụ thể tại thời điểm đó. Trong trường hợp cực đoan, mất tín hiệu thu được thậm chí có thể. Sau đó, nó sẽ xuống sức mạnh của FEC để khôi phục chuỗi dữ liệu ban đầu.


Wow điều này là vô cùng thú vị! Cảm ơn! :)
tjwrona1992

1

Thông tin này được cung cấp bởi người dùng "Birdwes", nhưng anh ta không có đủ danh tiếng để tự đăng nó nên tôi sẽ đăng nó ở đây cho anh ta vì nó có vẻ phù hợp và hữu ích.

"Tôi không có đủ điểm trong diễn đàn này để thêm nhận xét, vì vậy tôi đang thực hiện ở đây: hãy xem mã nguồn của Accord.Math Hilbert Transform và bạn sẽ thấy tại sao đây có thể là một lựa chọn khả thi: https: //github.com/primaryobjects/Accord.NET/blob/master/Source/Accord.Math/Transforms/HilbertTransform.cs

Sử dụng thực tế bao gồm xây dựng các máy phát SSB, hoặc gần như bất kỳ kế hoạch điều chế nào. Tra cứu điều chế IQ và bạn sẽ thấy tại sao độ lệch pha -90 độ có liên quan. Một sản phẩm của các nguyên tắc lượng giác. ví dụ: https://user.eng.umd.edu/~tretter/commlab/c6713slides/ch7.pdf

Biến đổi Hilbert sử dụng một bước giữa giữa các FFT để loại bỏ các thành phần tiêu cực. Bạn cũng có thể lạm dụng nó để lọc ra các tần số khác. "

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.