DFT - Loại bỏ hiệu ứng cửa sổ trong miền phổ với tích chập


11

Tôi đã suy nghĩ về chủ đề cửa sổ DFT và một ý nghĩ xuất hiện trong đầu tôi. Một DFT sẽ mang lại phổ của tín hiệu bị chập với phổ của cửa sổ được sử dụng, do đó có một thùy chính và thùy bên.

Tôi hình dung có thể loại bỏ hiệu ứng cửa sổ trên phổ của tín hiệu bằng cách làm lại một lần nữa cả tín hiệu và cường độ phổ của cửa sổ, và nó thực sự hoạt động như bạn có thể thấy trên hình ảnh sau.

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

Còn lại là phổ gốc được tạo ra với một cửa sổ hanning. Bên phải là quang phổ được tạo bởi DFT của cửa sổ hanning. Trên cùng là bản thân Spectrum, dưới cùng là findpeakskết quả MATLAB .

Tôi chưa bao giờ đọc bất cứ điều gì liên quan đến kỹ thuật này, nhưng tôi khá chắc chắn rằng tôi đã không phát minh ra bất cứ điều gì ở đó. Vì vậy, tôi tự hỏi nếu có một lợi ích của việc xử lý này trên phổ hoặc nếu có một nhược điểm của nó mà tôi không thấy.

Từ những gì tôi thấy, điều này có thể giúp phát hiện cực đại như chúng ta có thể thấy trên hình ảnh trước đó. Ngoài ra, có vẻ như quang phổ bị biến dạng một chút như chúng ta có thể thấy trên 2 hình ảnh sau đây. :

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

Trong đó biểu đồ màu xanh là phổ và biểu đồ màu đỏ là phổ sau kết hợp.

  • Bất cứ suy nghĩ về điều này?
  • Có một vấn đề có thể phát sinh từ sự kết hợp sau FFT này không?
  • Bất kỳ giấy tờ nào đối xử với chủ đề?

BIÊN TẬP

Bạn có thể tìm thấy một tập lệnh ở đây sẽ tạo ra biểu đồ sau:

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


1
Bạn có thể cung cấp mã mà bạn đã sử dụng để vẽ các số liệu? Tôi giả định rằng độ mượt của hàm tích chập chỉ là vấn đề của độ phân giải. Bạn không thể hoàn tác cửa sổ bằng convolving thời gian chưa một nhiều hơn với cùng một cửa sổ (bạn thực sự sẽ cần phải de dây leo, đó là những gì câu trả lời rbj của đề cập đến). Hơn nữa, một cải tiến thực sự sẽ là độ phân giải tần số tăng, và / hoặc tăng cường triệt tiêu sidelobe, không có cái nào đạt được ở đây. Tìm các đỉnh "chính xác" tương đối dễ dàng cho cả hai chức năng.
Matt L.

Tôi chỉ chỉnh sửa bài viết của mình để thêm một ví dụ về mã.
Bến tàu-Yves Bài học

Câu trả lời:


1

Trên thực tế, có một nhược điểm đối với đề xuất của bạn: các tín hiệu bạn hiển thị đều được phân chia rất rõ ràng thành các thành phần tần số của chúng, nhưng nói chung, tín hiệu thực tế có xu hướng nhiễu hơn.

Tùy thuộc vào ứng dụng, bạn muốn giảm thiểu rò rỉ (thùy chính cao hơn / thùy bên nhỏ hơn có tần số tín hiệu trong phổ biến đổi) hoặc, như một ví dụ khác, thùy chính hẹp nhất có thể.

Trong các ô của bạn, có thể thấy rằng việc làm mịn quang phổ cường độ bằng một cửa sổ sẽ làm ngược lại với các điều này: các thùy chính trở nên rộng hơn và nhỏ hơn, trong khi các sản phẩm rò rỉ từ việc chuyển đổi mức tăng tín hiệu thời gian hữu hạn. Áp dụng cho các tín hiệu nhiễu, điều này sẽ mang lại một bất lợi đáng kể.

Tuy nhiên, đề xuất của bạn vẫn khá hữu ích để nhận dạng cao điểm!


1

trung thành với chủ đề "loại bỏ hiệu ứng cửa sổ trong miền freq thông qua tích chập" (mặc dù OP có lẽ muốn đạt được điều gì khác hoặc tương tự), tôi cảm thấy thêm nhận xét của mình có kinh nghiệm cá nhân với chủ đề cụ thể này.

Thường thì tôi cần phải loại bỏ cửa sổ Hann trong miền tần số, làm việc trong khung STFT sử dụng các khung cửa sổ Hann làm mặc định, để thực hiện xử lý phổ nâng cao trong đó phổ đầu vào được dự kiến ​​là cửa sổ NON thay vào đó (ví dụ: tích chập lưu chồng chéo hoặc lọc).

Trong một từ: có bạn có thể. Mặc dù về mặt toán học loại bỏ một cửa sổ (theo miền thời gian hoặc tần số) ngụ ý việc tái tạo lại dữ liệu bị mất mãi mãi, trong thực tế, bạn có thể bị mất tối thiểu.

Chúng ta hãy lấy một cửa sổ Hann (cosin tăng). Công thức miền thời gian của nó là y = (1-cos (pi * x)) / 2 với x nằm trong khoảng từ 0 đến và loại trừ một thông qua khung. Biểu diễn miền tần số tương ứng của nó là bin0 = (0,5,0i), bin1 = (- 0,5,0i). Để loại bỏ ảnh hưởng của nó trong miền thời gian, bạn có thể chỉ cần chia tín hiệu cho chức năng cửa sổ nói trên. Để làm điều tương tự trong miền tần số, bạn chỉ cần kết hợp phổ không bị cửa sổ với phổ của đối ứng của hàm đã nói. Vì hàm này bằng 0 ở cả hai đầu (thực ra nó chỉ bằng 0 ở điểm đầu tiên, trừ khi có lỗi làm tròn), để tránh vô cực, bạn có thể chỉ cần trao đổi vô cực với giá trị lớn như 10000 hoặc hơn. Kết quả của sự tích chập như vậy là phổ không có cửa sổ. Bằng cách chuyển đổi nó trở lại miền thời gian,

Có lẽ bạn không thể loại bỏ một cửa sổ hình chữ nhật, bởi vì lượng dữ liệu bị mất bằng cách nhân các vùng lớn của tín hiệu bằng 0 là không thể phục hồi trên lý thuyết. Nhưng tôi nghĩ điều này phụ thuộc vào nội dung phổ. Ví dụ: nếu đó là phổ của một hình sin đơn giản, bằng cách loại bỏ mẫu cửa sổ hình chữ nhật bằng cách kết hợp với phổ của hàm có giá trị cao trong đó hình chữ nhật bằng 0 và một trong đó là một (ví dụ như đối ứng của nó), có lẽ bạn vẫn có thể thu được (về cơ bản) phổ của hình sin để tái tạo lại toàn bộ tín hiệu.


0

đó là một câu hỏi hay và một cái nhìn sâu sắc mà tôi khá chắc chắn rằng những người khác đã có. các de -convolution trong lĩnh vực tần số cũng giống như nhân trong miền thời gian và nếu bạn đang deconvolving ảnh hưởng của một cửa sổ Hann trong miền tần số, nó giống như phân chia của bạn bằng cách tác dụng của cửa sổ Hann trong miền thời gian. ở phần đuôi nơi cửa sổ Hann chuyển sang 0, có một số quá nhỏ để lo lắng.

thông thường hiệu ứng cửa sổ được để lại bởi vì nếu bạn chuyển đổi trở lại, bạn có thể muốn hiệu ứng của cửa sổ trong miền thời gian. hoặc nếu bạn không bao giờ chuyển đổi trở lại (đây là phân tích hoặc mô hình hóa alg chứ không phải alg sửa đổi) thì bạn chỉ quan tâm đến các tham số là thuộc tính của các đỉnh đó và bạn chỉ cần xử lý hiệu ứng đã biết của việc kết hợp với một mức đã biết kernel và điều đó có thể sửa đổi một tham số trích xuất theo cách xác định. sau đó bạn chỉ cần bù cho điều đó trong tham số trích xuất của bạn.

cuối cùng, tùy thuộc vào những gì bạn đang làm, bạn có thể muốn xem xét sử dụng cửa sổ guassian để phân tích. có rất ít vấn đề sidelobe và trong các điều kiện tuyến tính (như bộ lọc), mỗi hình sin có cửa sổ giữ lại hình dạng cửa sổ khi được chuyển trở lại miền thời gian. cửa sổ đó có thể được hoàn tác và cửa sổ Hann được áp dụng sau khi chuyển đổi trở lại miền thời gian.


6
Về nguyên tắc tôi đồng ý với tuyên bố của bạn. Mặc dù, OP không nói về giải mã, nhưng kết hợp phổ thu được với phổ của cửa sổ hanning. (tức là về cơ bản là cửa sổ với cửa sổ hình vuông hanning)
Maximilian Matthé

1
không, OP đang nói về việc loại bỏ hiệu ứng, không nhân đôi hiệu ứng. phép chia giống như phép nhân với đối ứng. nó được nhân với một số như vậy mang lại cho bạn kết quả mà chúng ta gọi là thương số . được rằng convolving trong một miền cũng giống như nhân trong lĩnh vực khác, sau đó bước đầu thực giống như một cái gì đó đặc biệt convolving với xác định.
robert bristow-johnson

2
OP đang nói về việc loại bỏ các gợn sóng, bằng cách thực hiện tích chập phổ thu được với phổ của cửa sổ. Điều này mang lại sự nhân lên của tín hiệu với cửa sổ bình phương (một cửa sổ từ phép nhân ban đầu theo thời gian, cửa sổ thứ hai đến từ sự kết hợp theo tần số)
Maximilian Matthé

1
Không hẳn là chính xác lắm. Tôi thực hiện một phép tích hợp độ lớn của phổ mang lại kết quả khác với phép nhân của cửa sổ bình phương. Tôi không chắc chắn những gì nó đại diện cho toán học ... Tôi thấy nó là một mối tương quan chéo giữa cả hai cường độ phổ (vì phổ cửa sổ là đối xứng).
Bến tàu-Yves Bài học

0

Kỹ thuật bạn sử dụng để làm mịn phổ thường được sử dụng khi phân tích phổ và bạn không quan tâm đến các hiệu ứng trong miền thời gian (ví dụ: thực hiện phát hiện tín hiệu dựa trên tần số hoặc đo băng thông). Thậm chí không có yêu cầu rằng cửa sổ được sử dụng để làm mịn giống như cửa sổ được sử dụng trong miền thời gian. Một trong những lý do chính để sử dụng cửa sổ miền thời gian trước DFT là để giảm thiểu sự gián đoạn trong bọc xung quanh mà DFT giả định ở hai đầu của tín hiệu (DFT vốn là hình tròn). Mục đích của việc làm mịn trong miền tần số là để tạo điều kiện cho việc phân tích như phát hiện cực đại hoặc đo băng thông. Cửa sổ "tốt nhất" cho một người có thể không phải là cửa sổ "tốt nhất" cho người khác. Trong thực tế, tôi chưa bao giờ thấy DFT của một cửa sổ được sử dụng để làm mịn quang phổ.


Theo cách tôi hiểu, là tôi đang thực hiện một mối tương quan chéo với quang phổ, từ đó đạt được các đỉnh ở trung tâm của các thùy chính. Sử dụng các cửa sổ miền thời gian có vẻ như là các lựa chọn rõ ràng và tôi không hiểu tại sao tôi sẽ sử dụng mối tương quan chéo giữa cửa sổ boxcar để tìm vị trí của phổ cửa sổ hanning. Tại sao chúng ta muốn một cái gì đó khác ngoài cùng một cửa sổ?
Cầu tàu-Yves Bài học

Vâng, kết quả mà bạn mô tả là một tích chập với sự tự tương quan của cửa sổ, nhưng đó chỉ là kết hợp với một cửa sổ khác. Tự động tương quan sẽ dẫn đến một đỉnh cực kỳ chặt chẽ tại DC. Vì vậy, bạn đã kết hợp hiệu quả phổ tín hiệu với bộ lọc thông thấp rất chặt chẽ. Chính đáp ứng tần số của bộ lọc này sẽ mang lại cho bạn kết quả mà bạn nhìn thấy, chứ không phải thực tế đó là tự động tương quan. Thực tế đó là một sự tự tương quan là sự trùng hợp.
cassman
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.