चलती औसत फिल्टर की कट-ऑफ आवृत्ति क्या है?


18

मुझे एक चलती औसत फिल्टर डिजाइन करने की आवश्यकता है जिसमें 7.8 हर्ट्ज की कट-ऑफ आवृत्ति है। मैंने पहले मूविंग औसत फिल्टर का उपयोग किया है, लेकिन जहां तक ​​मुझे पता है, केवल एकमात्र पैरामीटर जिसे खिलाया जा सकता है, तो अंकों की संख्या औसत है ... यह एक कट-ऑफ आवृत्ति से कैसे संबंधित हो सकता है?

7.8 हर्ट्ज का उलटा ~ 130 मिसे है, और मैं 1000 हर्ट्ज पर सैंपल लिए गए डेटा के साथ काम कर रहा हूं। क्या इसका मतलब यह है कि मुझे 130 नमूनों की चलती औसत फिल्टर विंडो आकार का उपयोग करना चाहिए, या क्या कुछ और है जो मैं यहां याद कर रहा हूं?


आपको पहले "कट-ऑफ" की अपनी समझ को परिभाषित करना चाहिए। यदि यह ऊपर (नीचे) अंतिम आवृत्ति है, जो एक फिल्टर की प्रतिक्रिया शून्य है, तो इसका जवाब "कोई नहीं" होगा, क्योंकि एक चलती औसत फिल्टर के कर्नेल का एक सीमित समर्थन होता है, और परिमित तरंगिकाएं अनंत फूरियर छवियों में बदल जाती हैं।
mbaitoff

मूविंग एवरेज फिल्टर जोड़ा डोमेन में उपयोग किया जाने वाला शोर है जो शोर को हटाने के लिए और स्मूथिंग उद्देश्य के लिए भी है लेकिन यदि आप फ़्रीक्वेंसी सेपरेशन के लिए फ़्रीक्वेंसी डोमेन में एक ही मूविंग एवरेज फ़िल्टर का उपयोग करते हैं तो प्रदर्शन सबसे खराब होगा ...... तो उस स्थिति में आवृत्ति डोमेन फ़िल्टर

जवाबों:


27

मूविंग एवरेज फिल्टर (कभी-कभी बोलचाल की भाषा में बॉक्सर फिल्टर के रूप में जाना जाता है ) में एक आयताकार आवेग प्रतिक्रिया होती है:

[n]=1एनΣ=0एन-1δ[n-]

या, अलग तरह से कहा गया है:

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

यह याद रखना कि एक असतत-समय प्रणाली की आवृत्ति प्रतिक्रिया इसके आवेग प्रतिक्रिया के असतत-समय फूरियर रूपांतरण के बराबर है, हम इसकी गणना इस प्रकार कर सकते हैं:

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

इसे सरल बनाने के लिए, हम ज्यामितीय श्रृंखला के पहले शब्दों के योग केN लिए ज्ञात सूत्र का उपयोग कर सकते हैं :

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

हम आपके मामले के लिए सबसे अधिक रुचि रखते हैं फ़िल्टर की परिमाण प्रतिक्रिया है, । युगल सरल जोड़तोड़ का उपयोग करते हुए, हम इसे एक आसान से समझने वाले रूप में प्राप्त कर सकते हैं:|H(ω)|

एच(ω)=1एनΣn=0एन-1-जेωn=1एन1--जेωएन1--जेω=1एन-जेωएन/2-जेω/2जेωएन/2--जेωएन/2जेω/2--जेω/2

यह समझने में आसान नहीं लग सकता है। हालांकि, यूलर की पहचान के कारण , याद रखें कि:

पाप(ω)=जेω--जेωजे2

इसलिए, हम ऊपर लिख सकते हैं:

एच(ω)=1एन-जेωएन/2-जेω/2जे2पाप(ωएन2)जे2पाप(ω2)=1एन-जेωएन/2-जेω/2पाप(ωएन2)पाप(ω2)

जैसा कि मैंने पहले कहा था, जो आप वास्तव में चिंतित हैं वह आवृत्ति प्रतिक्रिया का परिमाण है। इसलिए, हम इसे और सरल बनाने के लिए ऊपर का परिमाण ले सकते हैं:

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

नोट: हम घातीय शब्दों को छोड़ने में सक्षम हैं क्योंकि वे परिणाम की भयावहता को प्रभावित नहीं करते हैं; के सभी मानों के लिए ω । चूंकि | x | = | x | | y | किसी भी दो परिमित जटिल संख्या x और y के लिए , हम यह निष्कर्ष निकाल सकते हैं कि घातीय शब्दों की उपस्थिति समग्र परिमाण प्रतिक्रिया को प्रभावित नहीं करती है (इसके बजाय, वे सिस्टम के चरण प्रतिक्रिया को प्रभावित करते हैं)।|ejω|=1ω|xy|=|x||y|xy

परिमाण कोष्ठक के अंदर परिणामी कार्य एक डरिकलेट कर्नेल का एक रूप है । इसे कभी-कभी एक आवधिक sinc फ़ंक्शन कहा जाता है , क्योंकि यह sinc फ़ंक्शन जैसा दिखता है कुछ हद तक , लेकिन इसके बजाय आवधिक है।

वैसे भी, चूंकि कटऑफ़ फ़्रीक्वेंसी की परिभाषा कुछ हद तक अंडरस्क्रिफ़ाइड है (-3 डीबी पॉइंट? -6 डीबी बात? पहले साइडबेल नल?), आप जो भी ज़रूरत है उसे हल करने के लिए उपरोक्त समीकरण का उपयोग कर सकते हैं। विशेष रूप से, आप निम्न कार्य कर सकते हैं:

  1. सेट करें |H(ω)|फ़िल्टर प्रतिक्रिया के अनुरूप मूल्य जो आप कटऑफ़ आवृत्ति पर चाहते हैं।

  2. सेट कटऑफ आवृत्ति के बराबर। असतत समय डोमेन के लिए एक सतत समय आवृत्ति को मैप करने के लिए, तो याद रखें कि ω = 2 π ω , जहाँfsआपकी नमूना दर है।ω=2πffsfs

  3. Find the value of N that gives you the best agreement between the left and right hand sides of the equation. That should be the length of your moving average.


By my reckoning, that's a 'yes'? As far as I can tell, 130 samples seems to fit N with ω = 7.8, but I'm no mathematician.
CaptainProg

@CaptainProg: Only you can say for sure; I'm not sure what you wanted the magnitude response to be at the cutoff frequency.
Jason R

1
Could you define what n and N are? An example with a given sampling frequency would also be very helpful. This may sound simple, but this question is the top result for "moving average cutoff frequency", so I am sure there will be many other viewers who have fallen out of touch with the math behind filters.
FvD

@FvD n is the sample index for the signal x[n], as is typically used for discrete-time signals. N is defined in the first equation above. If I get a chance I can add an example, but I suspect that anyone who is choosing to design a filter to meet a particular cutoff frequency can follow the math.
Jason R

10

If N is the length of the moving average, then an approximate cut-off frequency Fco (valid for N>=2) in normalized frequency F=f/fs is:

Fco=0.442947N21

The inverse of this is

N=0.196202+Fco2Fco

This formula is asymptotically correct for large N, and has about 2% error for N=2, and less than 0.5% for N>=4.

P.S.: After two years, here finally what was the approach followed. The result was based on approximating the MA amplitude spectrum around f=0 as a parabola (2nd order Series) according to

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).

एक एमए फिल्टर (एफआईआर, एन -1 शून्य) और एक 1-पोल 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


मैंने आपके सूत्र को लेटेक्स प्रारूप में बदल दिया है। कृपया दो बार जांच और पुष्टि करें कि दोनों सही हैं। धन्यवाद।
lennon310

मैंने इस सन्निकटन की एक व्युत्पत्ति यहाँ dsp.stackexchange.com/a/28186/15347
Olli Niemitalo

2
जहाँ तक मुझे याद है मैंने इस सूत्र को मन में व्यावहारिक चिंताओं के साथ व्युत्पन्न किया है, संख्यात्मक तरीकों के माध्यम से (या तो गणित में NSolve या Matlab में कुछ इसी तरह), जो आपके द्वारा दिए गए बड़े N के लिए asymptotically सही होना चाहिए। , तो मुझे यकीन नहीं है कि क्या कहना है।
मासिमो

1
@ मास्सिमो हमने दूसरे प्रश्न में इस और अन्य सन्निकटन पर बहुत काम किया। यदि आपको कभी भी अधिक दशमलव स्थानों की आवश्यकता है तो यह आपका जादू नंबर है: 0.442946470689452340308369
ओली निमितालो

1
मुझे मैथमैटिक स्क्रिप्ट वापस मिल गई जहां मैंने एमए एक सहित कई फिल्टर के लिए कट ऑफ की गणना की। परिणाम f = 0 के आसपास एमए स्पेक्ट्रम को अनुमान के आधार पर एक परवलय के रूप में आधारित था (Ω)=एसमैंn(Ω*एन/2)/एसमैंn(Ω/2) ; हेजी=2*π*एफ; (एफ)एन+1/6*एफ2*(एन-एन3)*π2। और के साथ पार पाने1/2वहां से।
मासिमो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.