Tại sao chúng ta sử dụng cửa sổ trong miền thời gian thay vì FFT sửa đổi phổ và thay vì FFT nghịch đảo


16

Tôi nghĩ rằng DSP sẽ được thực hiện bằng cách sử dụng FFT các phần của tín hiệu, sửa đổi các mẫu phát sinh từ FFT (vì chúng đại diện cho phổ tín hiệu + nhiễu của chúng tôi) và loại bỏ bất kỳ tín hiệu không mong muốn nào và hơn là thực hiện FFT ngược để có thời gian đại diện miền của tín hiệu được lọc (hiện tại đã loại bỏ nhiễu). Tuy nhiên, điều này không được thực hiện, thay vào đó chúng tôi thực hiện tất cả các công việc trong miền thời gian bằng cách sử dụng các chức năng của cửa sổ. Tại sao?

Nếu chúng ta nhân hàm của cửa sổ trong miền thời gian hơn là chúng ta đang kết hợp đáp ứng tần số của hàm cửa sổ với phổ tín hiệu của chúng ta trong miền tần số, thì làm thế nào để giải quyết? Ý tôi là nếu chúng ta chỉ thực hiện tất cả công việc trong miền tần số bằng cách nhân tín hiệu của chúng tôi với đáp ứng tần số của bộ lọc, điều đó sẽ giống như lọc phải không? Nhưng ở đây chúng tôi làm tất cả những thứ trong miền thời gian thay vì sử dụng cửa sổ.

-> Hãy xem sự nhầm lẫn của tôi đến từ đâu. Đối với các bộ lọc tương tự, ví dụ như bộ lọc thông thấp, chúng ta có xung này giống như đáp ứng tần số. Khi chúng tôi lọc tín hiệu, chúng tôi sẽ nhân hiệu quả phổ của tín hiệu với xung như tần số đáp ứng của bộ lọc. Điều này sẽ giảm tất cả các tần số trong tín hiệu của chúng tôi trên mức giới hạn xuống 0. Đây là cách bộ lọc thông thấp hoạt động thực chất. Tại sao không làm điều tương tự với các bộ lọc kỹ thuật số là tốt?


Câu trả lời:


7

Cửa sổ làm giảm rò rỉ quang phổ.

Giả sử bạn bắt đầu với một . Giai đoạn rõ ràng là 2 π / ω 0 . sin(y)=cos(ω0t)2π/ω0

2π/ω[0,1.8π/ω0]ω=ω0

Mục đích của cửa sổ trong miền thời gian là để giảm tất cả các thành phần quang phổ giả tưởng này.


12

Cửa sổ được sử dụng vì các tính toán DFT hoạt động trên phần mở rộng định kỳ vô hạn của tín hiệu đầu vào. Do nhiều tín hiệu thực tế hoàn toàn không phải là định kỳ hoặc được lấy mẫu trong một khoảng thời gian khác với thời gian thực của chúng, điều này có thể tạo ra các thành phần tần số giả ở 'cạnh' nhân tạo giữa các khoảng lặp lại, được gọi là rò rỉ . Trước tiên, nhân tín hiệu miền thời gian với chức năng cửa sổ về 0 ở cả hai đầu, bạn tạo ra sự chuyển tiếp suôn sẻ giữa các khoảng lặp lại trong phần mở rộng định kỳ vô hạn, do đó giảm thiểu việc tạo ra các thành phần tần số nhân tạo này khi chúng ta sử dụng DFT.

Bài viết này cung cấp một cái nhìn sâu hơn về hiện tượng này, cũng như một số cái nhìn sâu sắc về tác động của các chức năng cửa sổ khác nhau.


11

Tôi nghĩ rằng bạn đang nhầm lẫn hai hoạt động khác nhau.

Cửa sổ trong miền thời gian được giải thích bởi @sam, vì vậy tôi sẽ không lặp lại điều đó. Nhưng cửa sổ không được thực hiện để thực hiện lọc. Lọc bằng cách nhân FFT của tín hiệu với đáp ứng tần số bộ lọc là hoàn toàn hợp lý trong nhiều tình huống và thực sự được thực hiện. Cách khác để lọc là tích chập miền thời gian (khác với cửa sổ). Điều này có lợi thế riêng của nó, chẳng hạn như hoạt động trên tín hiệu trong 'thời gian thực' vì nó được đo mà không cần chờ toàn bộ vật được lưu trữ sau đó chuyển đổi.

Vì vậy, với câu hỏi của bạn 'Tại sao không làm điều tương tự với các bộ lọc kỹ thuật số?', Câu trả lời chỉ đơn giản là 'chúng tôi làm, khi nó phù hợp.'


Tôi cũng có ấn tượng, rằng tích chập và cửa sổ bị lẫn lộn trong câu hỏi. Tốt bạn chỉ ra nó!
Deve

11

Đã có một số câu trả lời tốt cho câu hỏi này. Tuy nhiên, tôi cảm thấy rằng một điểm quan trọng chưa được làm rõ hoàn toàn. Một phần của câu hỏi là tại sao chúng ta không nhân FFT của tín hiệu với đáp ứng bộ lọc mong muốn. Ví dụ: nếu chúng ta muốn lọc tín hiệu thấp, chúng ta có thể đơn giản bằng không tất cả các thành phần tần số cao hơn tần số cắt mong muốn. Trên thực tế đây là một ứng dụng đơn giản của phương pháp lấy mẫu tần số nổi tiếng để thiết kế các bộ lọc FIR. Vấn đề là chúng ta chỉ có thể bằng không các thành phần tần số rời rạc được tính toán bởi FFT. Chúng tôi không kiểm soát được những gì xảy ra ở giữa các tần số riêng biệt này. Nó chỉ ra rằng một phiên bản lọc đơn giản như vậy sẽ chỉ làm suy giảm băng tần kém (bất kể độ dài FFT). Nếu bạn có quyền truy cập vào MATLAB hoặc quãng tám, nó '

x=2*rand(1024,1)-1;
X=fft(x);
Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter
y=real(ifft(Y)); % real() just to remove numerical errors
Y=fft(y,4096);
plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50])

6

Nếu bạn không sử dụng cửa sổ không phải hình chữ nhật, thì kết quả FFT sẽ được kết hợp với biến đổi của cửa sổ hình chữ nhật mặc định (một định kỳ định kỳ) trước khi thực hiện bất kỳ lọc miền tần số nào. ví dụ: bạn sẽ có hai bộ lọc được áp dụng, một trong số đó có thể bạn không muốn.

Bằng cách cửa sổ trong miền thời gian, trước khi lọc FFT và miền tần số, bạn thay thế bất kỳ bộ lọc nào (được gọi là "rò rỉ") được thực hiện bằng cửa sổ hình chữ nhật, và do đó không có thêm một phép chập lọc không mong muốn.

Một cách khác để làm điều này là sử dụng các phương thức lưu chồng chéo hoặc thêm chồng lên các cửa sổ liên tiếp, trong đó các hiệu ứng của một cửa sổ hình chữ nhật bị hủy bởi các hiệu ứng tương tự từ các cửa sổ liền kề.


5

Cửa sổ trong miền thời gian vì

  • chúng tôi có thể đảm bảo số 0 ở các cạnh của cửa sổ
  • các chức năng cửa sổ có một biểu thức phân tích đẹp trong miền không gian
  • nhiều chức năng cửa sổ có phổ hình kỳ lạ khó có thể ước chừng
  • chỉ cần một số lượng mẫu hữu hạn (cửa sổ có thể được thực hiện như luồng tín hiệu trong)

ví dụ từ wikipedia

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

Phần cứng bị cắt đi về 0 của các hàm cửa sổ có nghĩa là trong miền phổ chúng có các thùy bên đi về 0 rất chậm. Nếu chúng ta thoát khỏi ràng buộc này, chúng ta có thể có các hàm nhỏ gọn trong cả hai miền không gian và phổ, như bộ lọc Gaussian. Điều này có nghĩa là bạn có thể lọc qua miền phổ nhưng điều đó đòi hỏi phải biết toàn bộ tín hiệu.

Nếu bạn đã có toàn bộ tín hiệu thì một phương án khác sẽ là sử dụng sóng con


2

Tôi đã có cùng một câu hỏi.

Tích chập là tổng tích phân / tích lũy của tín hiệu miền thời gian nhân với cửa sổ. Điều này không nên bị nhầm lẫn với tín hiệu miền thời gian "cửa sổ".

Sự kết thúc của này bài viết đã giúp tôi rất nhiều.

Về cơ bản nó nói rằng các tín hiệu thực là hữu hạn và đột ngột cắt đứt một tín hiệu thực dẫn đến rất nhiều tần số / tạo tác không mong muốn trong miền tần số.

Để tránh / giảm thiểu các tạo phẩm này, bạn có thể sử dụng hàm cửa sổ trơn tru (ví dụ hình chuông) sao cho mẫu của bạn bắt đầu và kết thúc bằng 0, thay vì kết thúc đột ngột với một số giá trị vô hướng khác.

Cắt mịn

Mẫu cửa sổ ở trên sẽ có ít tạo tác trong miền tần số hơn mẫu thô bên dưới.

Cắt đột ngột


1

Có hai loại rộng được liên kết với FFT và chúng là 1) một cách hiệu quả để thực hiện bộ lọc FIR và 2) Phân tích quang phổ.

Đối với Lọc FIR, người ta không lo lắng về các cửa sổ và không sử dụng chúng, trừ khi cửa sổ tương ứng với bộ lọc, nhưng đó không phải là điều phổ biến. Rò rỉ không phải là một mối quan tâm.

Phân tích quang phổ là nơi người ta sử dụng các cửa sổ. Đây là nơi bạn nhìn vào một cảm biến được gắn vào một cỗ máy công nghiệp lớn và cố gắng tìm hiểu xem nếu ở sâu trong ruột của nó, một ổ trục bị hỏng. Vòng bi kêu ré lên khi chúng thất bại nhưng tiếng ồn chúng có thể thường thấp hơn nhiều so với các âm thanh khác mà máy đang tạo ra. Đây là nơi rò rỉ và tính trung bình đến. Với các âm mạnh, rò rỉ sẽ tràn ra tín hiệu yếu mà chúng ta đang tìm kiếm một vài thùng. Nó cải thiện độ nhạy của Phân tích quang phổ đối với các tín hiệu yếu khi có tín hiệu mạnh. Có một hiệu ứng tương tự khi tiếng ồn nền bị dốc. Thông tin chúng tôi tìm kiếm là trong miền tần số. Đây là vấn đề tương tự trong RADAR, và SONAR và Địa vật lý. Thấy tín hiệu yếu là mục tiêu.


1

Cần có cửa sổ trong miền thời gian để tránh một tần số không chính xác trên thùng tần số để trải ra trên toàn bộ phổ. Có lẽ trang này giúp: http://www.sm5bsz.com/slfft/slfft.htm Linrad (dự án 20 tuổi của tôi) sử dụng FFT có cửa sổ, sau đó áp dụng bộ lọc trong miền tần số (tạo ra số 0 mà chúng tôi không muốn.) Áp dụng một cửa sổ - không đột ngột chuyển từ 1 đến trọng số 0 trên các thùng tần số. Sau đó áp dụng FFT ngược - nhưng bây giờ trên số điểm nhỏ hơn nhiều. Không cần bao gồm tất cả các thùng tần số mà chúng tôi biết là bằng không !! Là một resulr, chúng ta có một hàm thời gian với kích thước nhỏ hơn nhiều - có nghĩa là với tỷ lệ lấy mẫu thấp hơn nhiều. Thủ tục thực hiện lọc và decimation trong một bước duy nhất. Điều này rất hiệu quả trong trường hợp một người muốn lọc ra nhiều kênh cùng một lúc. Trang chủ linrad ở đây: http://www.sm5bsz.com/linuxdsp/linrad.htm

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.