Was ist die ideale FIR-Länge bei einer bestimmten Pulslänge?

7

Ich versuche herauszufinden, wie die 'ideale' FIR-Filterlänge sein sollte, angesichts der Pulslänge einer Sinuskurve mit Fenster im Rauschen, die ich filtern möchte .Tp

Als Parameter für einen FIR-Filter, den ich entwerfe, habe ich:

  1. Fc=15 kHz , Die Mittenfrequenz. (Dies ist die Trägerfrequenz des Signals). Ich weiß das.

  2. Da dies eine BPF-FIR ist, gebe ich das Durchlassband als bis . Dies liegt daran, dass die Bandbreite der Sinuskurve mit FensternFc1TpFc+1Tp2Tp

  3. Der letzte Parameter, von dem ich nicht genau weiß, wie er spezifiziert werden soll, ist die Länge dieser FIR ... hier bin ich verloren. Was ist hier die ideale Länge (falls vorhanden?) ... Sollte es nur die Länge des Impulses sein (natürlich in Samples), wodurch es so etwas wie ein angepasster Filter wird? Bedeutet dies, dass ich keine weiteren Gewinne bei der Erhöhung der Filterlänge habe?


Als weiteren Kontext suche ich diese "ideale" Länge, falls sie existieren sollte, weil ich versuche, so viel Rauschen wie möglich herauszufiltern, aber auch mein Bestes zu geben, um die scharfen Transienten beizubehalten. Dies hat mich zu der Frage veranlasst, ob es eine ideale Filterlänge gibt, von der aus ich beginnen kann. In der folgenden Darstellung habe ich beispielsweise eine verrauschte Version meines Signals mit Filtern der Länge 11 (rot) bzw. 171 (schwarz) gefiltert . Sie sind unten gezeigt:

Geben Sie hier die Bildbeschreibung ein

Wie Sie sehen können, ist das schwarze Ergebnis zwar "glatter", aber Sie können sehen, dass es auch in Bezug auf seine Transienten "verschmierter" ist. Im Gegensatz dazu behält das Rot immer noch etwas Rauschen bei, aber Transienten sind nicht so betroffen.

Das folgende Diagramm zeigt die Spektren der obigen Filter:

Geben Sie hier die Bildbeschreibung ein

TLDR: Gibt es also eine "ideale" Länge für FIR-Filter, insofern, als eine weitere Erhöhung der Filterlänge Ihnen keine Rauschimmunität mehr verschafft , aber Ihre Transienten möglicherweise sogar noch mehr als nötig verschmiert?

BEARBEITEN:

Ich habe zwei neue Bilder hinzugefügt. Der erste hat einen Filter der Länge 11 (rot), einen Filter der Länge 171 (schwarz) und einen Filter der Länge 901 (blau). Das dicke Blau ist das Spektrum der Daten.

Geben Sie hier die Bildbeschreibung ein

Hier sind die entsprechenden Ergebnisse für den Filter der Länge 11 (rot) und den neuen Filter der Länge 901 (schwarz).

Geben Sie hier die Bildbeschreibung ein

Spacey
quelle
Ich vermute, dass das Problem mit dem Schwarzfilter darin besteht, dass die Bandbreite größer ist als Sie denken. Die Bandbreite des Signals selbst kann , aber wenn Sie es bei den Abtastwerten 100 und 150 abrupt abschneiden, multiplizieren Sie es mit einem Rechteck, das es mit einem Sinc faltet, wodurch das Signal erweitert wird Bandbreite. Erstellen Sie einen Filter mit einem Durchlassbereich, der die gesamte Bandbreite verarbeiten kann. 2Tp
Jim Clay
1
Für den AWGN-Kanal ist das optimale Filter das angepasste Filter. Die Tatsache, dass der interessierende Puls eine Sinuskurve mit Fenster ist, ändert nichts wirklich. Wenn Sie jedoch die Frequenz des Impulses nicht genau kennen, kann der angepasste Filterprozess unter einem Wellenverlust leiden, da der Filter nicht perfekt auf das interessierende Signal zentriert ist.
Jason R
@JasonR Ich habe den Luxus, meine Pulsmittenfrequenz in dieser Anwendung genau zu kennen. Bedeutet dies, dass der optimale Filter in diesem Fall (AWGN) ein Filter sein sollte, der die gleiche Länge wie der betreffende Impuls hat?
Spacey
Dies bedeutet, dass der optimale Filter der angepasste Filter ist, der Probe für Probe dem gesuchten Impuls entspricht.
Jason R
@ JimClay Ich habe den Beitrag aktualisiert, um Ihnen einen weiteren Filter mit einer engeren Bandbreite zu zeigen, aber mit einer Länge von 901 ... Ich glaube nicht, dass er mir mehr kauft ...
Spacey

Antworten:

2

Ich wandle einige meiner Kommentare von oben in diese Antwort um:

Wenn Sie versuchen, das Vorhandensein einer Impulsform auf dem AWGN-Kanal zu erfassen , verwendet der optimale Detektor einen Filter, der an die Impulsform angepasst ist (treffend als angepasster Filter bezeichnet ). Dies maximiert das Signal-Rausch-Verhältnis (SNR) am Ausgang des Filters und liefert somit die beste Erkennungsstatistik. Dieser Ansatz entspricht einer gleitenden Kreuzkorrelation der Pulsform mit dem beobachteten Signal, die mathematisch wie folgt ausgedrückt wird:p(t)p(t)

d(t)=x(t)p(t)

where x(t) is the observed signal and d(t) is the resulting detection statistic.

The main problem, therefore, consists of selection of an appropriate threshold that can be used to determine where the pulses of interest occur in x(t). Specifically, one would indicate a detection when d(t)>T, where T is a threshold used to balance between two opposing performance metrics: probability of detection Pd and probability of false alarm Pfa. Here is a link to a previous answer where I talk about the tradeoff a bit more. Target values for these metrics would be chosen according to the requirements for your specific application.

For this case, we can come up with general expressions for Pd and Pfa pretty easily:

  • Probability of false alarm: A "false alarm" indicates a case where the detector reports the presence of the target pulse p(t) when it is in fact not present. Since we've defined the channel to be AWGN, that means that for a false alarm, the input signal x(t) is a white Gaussian noise (WGN) process. Without loss of generality, we will assume that noise to be zero-mean with variance σ2.

    To determine Pfa, we are concerned with what the signal at the output of the matched filter looks like. Recall that d(t) is defined as:

    d(t)=x(t)p(t)=x(τ)p(tτ)dτ

    Assuming that x(t) is a white Gaussian noise process with variance σ2, it can be shown that d(t) will also be Gaussian, with a variance equal to:

    σd2=σ2|p(t)|2dt

    That is, the variance at the output of the matched filter is just scaled by the total energy of the pulse waveform p(t). The detection statistic d(t) is then just a Gaussian process with variance σd2. The probability of a false alarm at any given time t is equal to the probability that the detection statistic exceeds the threshold T. Using the properties of the Gaussian distribution, we can write this as:

    Pfa=P(d(t)>T | no signal present)=1Fd(T)=Q(Tσd)

    where Fd(d) is the cumulative distribution function (CDF) of the Gaussian distribution and Q(x) is the Q-function.

  • Probability of detection: This case differs from the false-alarm case in that the signal of interest is present. Specifically, we examine the situation where the matched filter is perfectly aligned with the pulse of interest. The same noise component that we analyzed previously is present, but the autocorrelation of the desired pulse shape gives it a non-zero mean. This mean is equal to the total energy of the pulse waveform:

    E(d(t))=|p(t)|2dt

    The probability of detection, therefore, is the probability that the detection statistic exceeds threshold:

    Pd=P(d(t)>T | signal present)=1Fd(T)=Q(Tmdσd)

The design process would then look like this:

  • Select an operating range for your detector, defining a minimum signal-to-noise ratio (or equivalently, a maximum noise variance σ2) at which you will operate.

  • Assuming the worst-case conditions (i.e. the maximum noise level), select a threshold T that meets either your required Pd or Pfa (whichever is more important to you).

  • Plug the resulting value for T into the other equation to determine your predicted performance metrics.

This is a pretty high-level treatment of the problem, and if you get down to business trying to build something that works practically, you'll run into some other details of note:

  • One thing that may be relevant for your problem of detections sinusoids is that it's likely that the received pulses will be at some unknown starting phase ϕ relative to your template pulse shape p(t). You would then observe a reduction in the correlation peak based on the amount of phase offset, which will wreak havoc with your detector's performance. If that is the case, a noncoherent detector is a better approach:

    d1(t)=x(t)p(t)
    d2(t)=x(t)pQ(t)
    d(t)=d12(t)+d22(t)

    where pQ(t) is a 90-degree shifted (or quadrature) version of the template sinusoidal pulse. The statistics of this case are slightly different and are left as an exercise for the interested reader.

  • The above treatment assumes that the pulse is received in x(t) at the same power level as the template p(t), which is almost certain to be untrue. Two ways to approach this complication come to mind: either use some sort of automatic gain control (AGC) process in order to steer the received power level to what you would expect, or you can make T an adaptive threshold that adjusts itself relative to the observed signal (e.g. you could try to estimate the background noise variance σ2 and then set T appropriately).

Jason R
quelle
Thank you for detailed and rigorous treatment. I do not think I have any follow ups at this point in time.
Spacey
1

In order to obtain the "best" filter you need to go through a few steps

  1. Determine the spectrum of your signal: the spectrum of a windowed sine pulse is basically given by the window function convolved with the carrier. Since the carrier is a sine wave the convolution simply shifts the window spectrum. However the shape of the window is important: is it raised cosine, hanning, hamming, kaiser, etc. This determines how wide the bandwidth is and if there are strong side lobes that need to be maintained.
  2. Determine the spectrum of the noise: that's easiest done by looking at the spectrum at areas in the signal where there is only noise
  3. Look at signal and noise spectrum. Useful frequencies are the ones where the signal energy is larger than the noise. "Bad" frequencies are the ones where the noise is bigger.
  4. Create a filter specification that passes the "useful" frequencies and "rejects" the bad ones. The amount of rejection can be optimized using an approach called "Wiener Filter" http://en.wikipedia.org/wiki/Wiener_filter. In a pinch a bandpass will do as well.
  5. The filter spec should have at least center frequency, bandwidth and roll off steepness. More filter coefficients typically makes the pass band flatter and the roll off steeper. Again looking at a signal to noise graph will typically tell you what roll off makes sense
Hilmar
quelle
1

The FIR filter length will determine the accuracy of the FIR filter. The FIR filter is an approximation of the optimum filter response (which is for you to decide) and shouldn't be tied to the "pulse" duration. The longer the FIR filter, the more coefficients you have, the more accurately the filter magnitude response will conform to your specifications. There are two other issues to consider. You have to consider the phase response because that can distort the shape of the demodulated pulse. You may already be doing this, but I think you probably want your FIR filter to have linear phase. Additionally as you increase the length of the FIR filter, you will add delay from input to output, so you don't want to just shoot for the moon in terms of filter length. So in terms of optimal length, you have to find a happy medium between accuracy and response time.

Bruce Zenone
quelle