2016-05-14 3 views
1

Ich habe versucht, einen Bandpassfilter zu machen. Während ich daran arbeitete, bemerkte ich etwas Seltsames. Der Frequenzgang des Filters ist in Ordnung (scipy.signal.freqz). Aber wenn ich es auf ein Sinus-Signal anwendete, ändert sich die Form des Filters.Bandpass Filterform in Python

3 = Spektrum von Signal

4 = Frequenzgang des Filters nach freqz() Funktion

1 = Spektrum Filter angelegtes Signal

Schließlich warum die Form Filter (auch Magnitude) wird geändert, wenn es auf ein Signal angewendet wird?

Spectrum of my signal

Response of filter according to freqz function

Filter applied signal spectrum

from scipy.signal import butter, lfilter, buttord, freqz 
import numpy as np 
import matplotlib.pyplot as plt 
import math 

t = np.arange(0, 8192, 1) 
data = 1+np.sin(.15*np.pi*t + np.pi/2) 

b, a = butter(6, [0.35, 0.55], btype='band') 

y = lfilter(b, a, data) 

y = np.fft.rfft(y) 
y = np.abs(y) 

x = np.fft.rfft(data) 
x = np.abs(x) 


w, h = freqz(b, a, worN=4096) 

plt.figure(1) 
plt.plot(np.arange(0,4097,1),y) 

plt.figure(2) 
plt.plot(np.arange(0,8192,1), data) 

plt.figure(3) 
plt.plot(np.arange(0,4097,1), x) 

plt.figure(4) 
plt.plot(np.arange(0,4096,1),np.abs(h)) 
plt.show() 
+0

Können Sie den Code teilen, der diese Visualisierungen generiert hat? Ich denke, es wäre hilfreich. –

+0

Der Code hinzugefügt, sorry meine Schuld – Reactionic

Antwort

2

Beim Anwenden des Filters Sie die Fourier-Transformation multiplizieren (dh das Spektrum) des Signals f (w) mit der Filterfunktion g (w). Also ist die Ausgabe im Zeitbereich IFFT (f (w) g (w)) und nur g (w) f (w) in der Spektraldomäne, die Ihre Zahl 1 ist. Es ist klar, dass das Produkt anders sein wird sowohl Signal als auch Filter. In Ihrem Fall überlappen sich Filter und Signal nicht sehr, was zu einem etwas seltsamen Ergebnis führt. Versuchen Sie, eine zweite Sinuswelle mit einer Winkelfrequenz von 0,5 pi hinzuzufügen und Sie werden ein ganz anderes Ergebnis sehen.

+0

Danke. Als ich mit vielen Sinusfunktionen versuchte, funktionierte es, wie Sie sagten http://s32.postimg.org/loh24vtrp/wow.png – Reactionic