Tần số cắt của bộ lọc trung bình di động là gì?


18

Tôi cần thiết kế bộ lọc trung bình di động có tần số cắt là 7,8 Hz. Tôi đã sử dụng các bộ lọc trung bình di chuyển trước đây, nhưng theo như tôi biết, tham số duy nhất có thể được cung cấp là số điểm được tính trung bình ... Làm thế nào điều này có thể liên quan đến tần số cắt?

Nghịch đảo của 7,8 Hz là ~ 130 ms và tôi đang làm việc với dữ liệu được lấy mẫu ở 1000 Hz. Có phải điều này ngụ ý rằng tôi nên sử dụng kích thước cửa sổ bộ lọc trung bình di động là 130 mẫu, hoặc có điều gì khác mà tôi đang thiếu ở đây không?


Trước tiên bạn nên xác định hiểu biết của bạn về "cắt". Nếu đó là tần số cuối cùng ở trên (bên dưới) mà đáp ứng của bộ lọc bằng 0, thì câu trả lời sẽ là "không", vì hạt nhân của bộ lọc trung bình di động có hỗ trợ hữu hạn và các bước sóng hữu hạn chuyển thành hình ảnh nhiễu vô hạn.
mbaitoff

Bộ lọc trung bình di chuyển là bộ lọc được sử dụng trong miền thời gian để loại bỏ tiếng ồn được thêm vào và cũng nhằm mục đích làm mịn nhưng nếu bạn sử dụng cùng một bộ lọc trung bình di chuyển trong miền tần số để phân tách tần số thì hiệu suất sẽ kém nhất ...... vì vậy trong trường hợp đó, hãy sử dụng các bộ lọc miền tần số

Câu trả lời:


27

Bộ lọc trung bình di động (đôi khi được gọi thông thường là bộ lọc boxcar ) có đáp ứng xung hình chữ nhật:

h[n]=1Nk=0N1δ[nk]

Hoặc, được nêu khác nhau:

h[n]={1N,0n<N0,otherwise

Hãy nhớ rằng đáp ứng tần số của hệ thống thời gian rời rạc bằng với biến đổi Fourier thời gian rời rạc của đáp ứng xung của nó, chúng ta có thể tính toán như sau:

H(ω)=n=x[n]ejωn=1Nn=0N1ejωn

Để đơn giản hóa điều này, chúng ta có thể sử dụng công thức đã biết cho tổng các thuật ngữ đầu tiên của một chuỗi hình họcN :

n=0N1ejωn=1ejωN1ejω

Điều chúng tôi quan tâm nhất cho trường hợp của bạn là phản ứng cường độ của bộ lọc, . Sử dụng một vài thao tác đơn giản, chúng ta có thể có được điều đó ở dạng dễ hiểu hơn:|H(ω)|

H(ω)=1Nn=0N1ejωn=1N1ejωN1ejω=1NejωN/2ejω/2ejωN/2ejωN/2ejω/2ejω/2

Điều này có thể trông không dễ hiểu hơn. Tuy nhiên, do danh tính của Euler , hãy nhớ lại rằng:

sin(ω)=ejωejωj2

Do đó, chúng ta có thể viết như trên:

H(ω)=1NejωN/2ejω/2j2sin(ωN2)j2sin(ω2)=1NejωN/2ejω/2sin(ωN2)sin(ω2)

Như tôi đã nói trước đây, điều bạn thực sự quan tâm là mức độ đáp ứng tần số. Vì vậy, chúng ta có thể lấy cường độ của những điều trên để đơn giản hóa hơn nữa:

|H(ω)|=1N|sin(ωN2)sin(ω2)|

Lưu ý: Chúng tôi có thể loại bỏ các thuật ngữ theo cấp số nhân vì chúng không ảnh hưởng đến cường độ của kết quả; cho tất cả các giá trị của ω . Kể từ | x y | = | x | | y | đối với bất kỳ hai số phức hữu hạn xy , chúng ta có thể kết luận rằng sự hiện diện của các số mũ không ảnh hưởng đến đáp ứng cường độ tổng thể (thay vào đó, chúng ảnh hưởng đến phản ứng pha của hệ thống).|ejω|=1ω|xy|=|x||y|xy

Hàm kết quả bên trong dấu ngoặc độ là một dạng của hạt nhân Dirichlet . Đôi khi nó được gọi là chức năng chân thực định kỳ , bởi vì nó giống với chức năng chân thành phần nào về ngoại hình, nhưng thay vào đó là định kỳ.

Dù sao, vì định nghĩa về tần số cắt có phần chưa được xác định rõ (điểm -3 dB? -6 dB? Sidelobe null đầu tiên?), Bạn có thể sử dụng phương trình trên để giải bất cứ điều gì bạn cần. Cụ thể, bạn có thể làm như sau:

  1. Đặt đến giá trị tương ứng với đáp ứng bộ lọc mà bạn muốn ở tần số cắt.|H(ω)|

  2. ωω=2πffsfs

  3. N


Theo tính toán của tôi, đó là 'có'? Theo như tôi có thể nói, 130 mẫu dường như phù hợp với N với ω = 7,8, nhưng tôi không phải là nhà toán học.
CaptainProg

@CaptainProg: Chỉ bạn mới có thể nói chắc chắn; Tôi không chắc chắn những gì bạn muốn đáp ứng cường độ ở tần số cắt.
Jason R

1
Bạn có thể định nghĩa n và N là gì không? Một ví dụ với tần suất lấy mẫu nhất định cũng sẽ rất hữu ích. Điều này nghe có vẻ đơn giản, nhưng câu hỏi này là kết quả hàng đầu cho "tần số cắt trung bình di động", vì vậy tôi chắc chắn sẽ có nhiều người xem khác đã mất liên lạc với toán học đằng sau các bộ lọc.
FvD

@FvD n là chỉ số mẫu cho tín hiệu x[n], như thường được sử dụng cho các tín hiệu thời gian rời rạc. Nđược định nghĩa trong phương trình đầu tiên ở trên. Nếu tôi có cơ hội tôi có thể thêm một ví dụ, nhưng tôi nghi ngờ rằng bất kỳ ai đang chọn thiết kế bộ lọc để đáp ứng tần số cắt cụ thể đều có thể theo toán học.
Jason R

10

Nếu N là độ dài của đường trung bình, sau đó tần số cắt gần đúng Fco (có hiệu lực cho N> =2) ở tần số chuẩn hóa F= =f/fS Là:

Fco= =0,442947N2-1

Nghịch đảo của điều này là

N= =0,19202+Fco2Fco

Công thức này không chính xác đối với N lớn và có lỗi khoảng 2% cho N = 2 và dưới 0,5% cho N> = 4.

PS: Sau hai năm, cuối cùng thì đây cũng là cách tiếp cận. Kết quả dựa trên xấp xỉ phổ biên độ MA xung quanhf= =0 như một parabola (Dòng thứ 2) theo

MA(Ω)=Sin(ΩN/2)Sin(Ω/2)

MA(Ω)1+(124N224)Ω2

which can be made more exact near the zero crossing of MA(Ω)22 by multiplying Ω by a coefficient

α=0.95264

obtaining MA(Ω)1+0.907523(124N224)Ω2

The solution of MA(Ω)22=0 gives the results above, where 2πFco=Ωco.

All of the above relates to the -3dB cut off frequency, the subject of this post.

Sometimes though it is interesting to obtain an attenuation profile in stop-band which is comparable with that of a 1st order IIR Low Pass Filter (single pole LPF) with a given -3dB cut off frequency (such a LPF is also called leaky integrator, having a pole not exactly at DC but near to it).

relations between a MA filter (FIR, N-1 zeros) and a 1-pole IIR LPF

In fact both the MA and the 1st order IIR LPF have -20dB/decade slope in the stop band (one needs a larger N than the one used in the figure, N=32, to see this), but whereas MA has spectral nulls at F=k/N and a 1/f evelope, the IIR filter only has a 1/f profile.

HIIR=1Exp(Ωco)1Exp(Ωco)Exp(jΩ)

If one wants to obtain an MA filter with similar noise filtering capabilities as this IIR filter, and matches the 3dB cut off frequencies to be the same, upon comparing the two spectra, he would realize that the stop band ripple of the MA filter ends up ~3dB below that of the IIR filter.

In order to get the same stop-band ripple (i.e. same noise power attenuation) as the IIR filter the formulas can be modified as follows:

Fco,IIR=0.32N21

N=0.1024+Fco,IIR2Fco,IIR


I changed your formula to the latex format. Please double check and confirm both of them are correct. Thanks.
lennon310

I added a derivation of this approximation here dsp.stackexchange.com/a/28186/15347
Olli Niemitalo

2
As far as i remember i derived this formula with pragmatic concerns in mind, by means of numerical methods (either NSolve in Mathematica or something similar in Matlab), which should be asymptotically correct for large N. The number you gave is about 3% off, so i am not sure what to say.
Massimo

1
@Massimo we did a lot of work on this and other approximations in the other question. If you ever need more decimal places this is your magic number: 0.442946470689452340308369
Olli Niemitalo

1
I found back the Mathematica script where i calculated the cut off for several filters, including the MA one. The result was based on approximating the MA spectrum around f=0 as a parabola according to MA(Ω)=Sin(ΩN/2)/Sin(Ω/2) ; Omega=2πF; MA(F)N+1/6F2(NN3)π2 . And deriving the crossing with 1/2 from there.
Massimo
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.