Tại sao chúng ta lại nói rằng bộ đệm không 0 không thực sự làm tăng độ phân giải tần số


12

Đây là một hình sin có tần số f = 236.4 Hz(dài 10 mili giây; nó có N=441các điểm ở tốc độ lấy mẫu fs=44100Hz) và DFT của nó, không có phần đệm :

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

Kết luận duy nhất chúng tôi có thể đưa ra bằng cách xem DFT là: "Tần số xấp xỉ 200Hz".

Đây là tín hiệu và DFT của nó, với phần đệm lớn :

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

Bây giờ chúng ta có thể đưa ra một kết luận chính xác hơn nhiều : "Bằng cách xem xét kỹ mức cực đại của phổ, tôi có thể ước tính tần số 236Hz" (Tôi phóng to và thấy mức tối đa là gần 236).

Câu hỏi của tôi là: tại sao chúng ta nói rằng "zero-padding không làm tăng độ phân giải" ? (Tôi đã thấy câu này rất thường xuyên, sau đó họ nói "nó chỉ thêm nội suy")

=> Với ví dụ của tôi, zero-padding giúp tôi tìm đúng tần số với độ phân giải chính xác hơn!


1
Một cách khác để suy nghĩ về câu hỏi rất cũ này: nếu bạn hoàn toàn không có cốt truyện theo chuỗi thời gian, mà chỉ có fft 'low-res' - bạn có thể chuyển đổi nó thành chuỗi thời gian, zero-pad và re -ft để có được 236Hz. Vì vậy, fft 'low-res' phải chứa tất cả các thông tin giống nhau của thông tin trơn tru.
Joshua R.

Câu trả lời:


19

Nghị quyết có một định nghĩa rất cụ thể trong bối cảnh này. Nó đề cập đến khả năng của bạn để giải quyết hai âm riêng biệt ở tần số gần đó. Bạn đã tăng tốc độ mẫu của ước tính phổ của mình, nhưng bạn chưa có khả năng phân biệt giữa hai âm có thể là, ví dụ, 236 Hz và 237 Hz. Thay vào đó, chúng sẽ "tan chảy" cùng nhau thành một đốm, bất kể bạn áp dụng bao nhiêu phần đệm.

Giải pháp để tăng độ phân giải là quan sát tín hiệu trong khoảng thời gian dài hơn, sau đó sử dụng DFT lớn hơn. Điều này sẽ dẫn đến các thùy chính có chiều rộng tỷ lệ nghịch với kích thước DFT, vì vậy nếu bạn quan sát đủ lâu, bạn thực sự có thể giải quyết các tần số của nhiều âm gần nhau.

-

Để xem điều này diễn ra như thế nào, đây là một biểu đồ FFT phóng to của việc thêm hai tín hiệu: hình sin ban đầu của bạn và một tín hiệu khác nhau về tần số từ 0 đến 100 Hz.

Chỉ đến phần cuối chênh lệch 100Hz của âm mưu (phía bên trái ở đây) mà bạn có thể phân biệt (giải quyết) cả hai.

Mã Scilab để tạo cốt truyện bên dưới.

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

f = 236.4;
d = 10;
N=441;
fs=44100;
extra_padding = 10000; 

t=[0:1/fs:(d/1000-1/fs)]
ff = [0:(N+extra_padding-1)]*fs/(N+extra_padding);

x = sin(2*%pi*f*t);

XX = [];

for delta_f = [0:100];
    y = sin(2*%pi*(f+delta_f)*t);
    FFTX = abs(fft([x+y zeros(1,extra_padding)]));
    XX = [XX; FFTX];
end

mtlb_axis([0 1300 0 500])

figure(1);
clf
[XXX,YYY] = meshgrid(ff,0:100);
mesh(XXX(1:100,[50:90]),YYY(1:100,[50:90]),XX(1:100,[50:90]))

cảm ơn ! ok vì vậy, phần đệm không giúp giải quyết hai âm riêng biệt ở tần số gần đó; tuy nhiên, trong ví dụ của tôi, nó có thể hữu ích để tìm đỉnh phổ và do đó tìm tần số âm của âm (ví dụ: cho mục đích theo dõi cao độ chính xác)
Basj

Tôi nghĩ rằng "không đệm không tăng độ phân giải" có nghĩa là "bạn không thể thực hiện theo dõi cao độ chính xác với sự trợ giúp của đệm không" (điều đó không đúng ở đây, ví dụ cho thấy có thể phát hiện chính xác một số độ cao)
Basj

Tôi nghĩ bạn hiểu chính xác. Không đệm có công dụng của nó, chẳng hạn như trong ước tính chính xác vị trí cực đại từ phổ thô. Nó không phải là một viên đạn bạc.
Jason R

1
Tôi chỉ thử một cái gì đó khác hơn là không đệm, nhưng có liên quan. Thay vì làm x(n)lâu hơn (với 0ở phần cuối), tôi tiếp tục x(n)có chiều dài N, nhưng sự thay đổi là ở đây: thay vì DFT(k) = \sum x(n) exp(-2*i*pi*n*k/N)cho k=0,1,...,N-1, tôi làm DFT2(k) = \sum x(n) exp(-2*i*pi*n*k/(10*N))cho k=0,1,...,10*N-1... Đây là giống như thêm nhiều thùng ( 10 Nthùng thay vì Nthùng tần số) nhưng vẫn giữ cùng x(n)chiều dài N. Bây giờ các thùng sẽ là 10hz, 20hz, ..., 100hz, 110hz, 120hz, ..... => Có giống như đệm không: không có độ phân giải bổ sung thực sự, mà chỉ có nội suy?
Basj

Việc thêm nhiều thùng (10N thay vì N): DFT2(k) = \sum x(n) exp(-2*i*pi*n*k/(10*N))cho k=0,1,...,10*N-1và giữ cùng x(n)độ dài có Ncho kết quả tương tự so với đệm không: không thực sự phân giải nhiều hơn, mà chỉ nội suy?
Basj

13

Thuật ngữ "độ phân giải" có nhiều nghĩa, có thể gây nhầm lẫn cho những người đang cố gắng giao tiếp khi sử dụng hai nghĩa khác nhau.

Theo nghĩa quang học, việc có thể phân giải hai điểm tách biệt rõ ràng gần đó (hoặc hai đỉnh liền kề trong phổ) thay vì một đốm mờ, không đệm sẽ không giúp ích gì. Đây là ý nghĩa rất có thể được sử dụng khi nói rằng không đệm không làm tăng độ phân giải.

Nếu yêu cầu của một người về độ phân giải yêu cầu nhúng (ví dụ giảm tối thiểu 3 dB) giữa các đỉnh phổ, thì độ phân giải sẽ còn thấp hơn khoảng cách giữa các thùng FFT, ví dụ, thậm chí không phải Fs / N, mà là 2X đến 3X, hoặc hơn, tùy thuộc vào cửa sổ được sử dụng. Yêu cầu yếu hơn về độ phân giải có thể chỉ là khoảng cách tần số của các vectơ cơ sở trực giao của DFT, ví dụ Fs / N.

Về mặt vẽ các điểm, vâng, phần đệm bằng 0 sẽ cho bạn nhiều điểm hơn trong cốt truyện, như ở độ phân giải DPI (điểm âm mưu trên mỗi inch). Điều đó có thể làm cho nó dễ dàng hơn để chọn ra extrema bằng nhãn cầu. Tuy nhiên, chúng là những điểm giống nhau mà bạn sẽ có được bằng cách thực hiện phép nội suy cốt truyện chất lượng rất cao (phép nội suy Sinc) mà không có bất kỳ phần đệm nào, vì vậy chúng thực sự không thêm thông tin nào mà không thể tính được nếu không có phần đệm bằng không.

Về mặt theo dõi cao độ, phép nội suy parabol hoặc phép nội suy (nội suy giữa các thùng kết quả FFT) của kết quả FFT không đệm có cửa sổ có thể mang lại cho bạn kết quả tốt như từ biểu đồ FFT không đệm có tính toán dài hơn. Do đó, phần đệm bằng 0 mang lại cho bạn kết quả theo dõi cao độ "tốt hơn" so với phần chọn đỉnh không đệm và không nội suy, nhưng thường kém hiệu quả hơn nhiều so với chỉ sử dụng phép nội suy.

Nếu bạn thêm nhiễu vào ví dụ của mình, nhưng ít hơn một chút so với tín hiệu, bạn sẽ thấy rằng đỉnh không đệm có thể không chính xác như đỉnh đệm khác không. Vì vậy, trong trường hợp tổng quát hơn, bạn có thể không tìm thấy tần số "đúng" với độ chính xác cao hơn trước. Không đệm chỉ nội suy kết quả không chính xác do nhiễu, đó là một lý do khác tại sao nó được cho là không tăng độ phân giải.


Chỉ cần nhớ: điều gì xảy ra nếu tôi có cùng một hình sin f=236.4 hztrong cùng một lần 10msnhưng với fs = 192khz thay vì 44.1khz: Độ phân giải tần số thực sẽ cao hơn sau đó?
Basj

Việc tăng tỷ lệ mẫu sẽ cung cấp cho bạn nhiều thùng tần số cao hơn, nhưng cùng một khoảng cách thùng DFT gần bất kỳ tần suất quan tâm thấp nào,
hotpaw2

1
Việc tăng tỷ lệ mẫu có làm cho sincđường cong giống như trong DFT hẹp hơn hay không? Nếu không, điều này ngụ ý rằng việc tăng tốc độ mẫu sẽ không thêm độ phân giải (theo nghĩa là khả năng phân giải tần số)
Basj

1/TT

Độ rộng của tần số Sinc có liên quan đến độ rộng của cửa sổ dữ liệu theo thời gian, không đệm hoặc thay đổi tốc độ mẫu không thực sự ảnh hưởng đến nó (khác với vấn đề lấy mẫu hoặc lượng tử hóa).
hotpaw2
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.