Ich arbeite an Signalfilterung in MATLAB. Ich schrieb ein Signal mit 3 verschiedenen Frequenzen:Entwerfen eines schmalen Bandpassfilters in MATLAB
Fs = 8000; %// Sampling frequency
T = 1/Fs; %// Sample time
L = 16000; %// Length of signal
t = (0:L-1)*T; %// Time vector
y = 40*sin(2*pi*50*t) + 500*sin(2*pi*51*t) + 500*sin(2*pi*49*t);
Jetzt möchte ich die 50 Hz-Signal durch Bandpassfilterung Fenster zum Extrahieren eines Hanning-Fenster.
Hier ist mein Code, den Filter zu entwerfen:
function Hd = HannFilter1
Fs = 8000; %// Sampling Frequency
N = 4096; %// Order
Fc1 = 49.5; %// First Cutoff Frequency
Fc2 = 50.5; %// Second Cutoff Frequency
flag = 'scale'; %// Sampling Flag
win = hann(N+1);
b = fir1(N, [Fc1 Fc2]/(Fs/2), 'bandpass', win, flag);
Hd = dfilt.dffir(b);
Danach, ich Filterung filter
wie folgt aus:
yfilter = filter(Hd.Numerator,1,y);
NFFT = 2^nextpow2(L);
Y = fft(yfilter,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
figure;
subplot(2,1,1);
plot(yfilter);
subplot(2,1,2);
plot(f,2*abs(Y(1:NFFT/2+1)))
- Warum ist das Filter nicht in der Lage zu extrahiere das 50Hz Signal?
- Ich mache etwas falsch in dieser Simulation?
- Wie kann ich das 50Hz-Signal herausfiltern?
Was ist die beste Abtastrate für 50Hz-Signal? und sehr wichtige Frage! in der realen Welt, wie Balancing-System, ist das Hauptsignal etwa 20Hz und Umgebung ist sehr zu laut und Filterung durch meine Lösung gibt keine richtige Antwort. Wie kann ich in diesem Fall den besten Filteralgorithmus verwenden oder auswählen?
wenn meine Abtastrate 8000Hz und ich kann nur 20000 Proben gepuffert, wie kann Entwerfen eines Schmalbandfilter?
Dies ist ein absurd Naturpaßband. Haben Sie den Frequenzgang Ihres Filters überprüft? –
ja, Filter Antwort ist in Ordnung, es gibt einen komischen Punkt, dass ich es gefunden habe! Wenn ich die Amplitude von 49 Hz und 51 Hz Signal auf 10 (von 500) verringern, funktioniert alles gut! Warum?! –
gibt es noch einen weiteren Punkt! Maximum der Amplitude des gefilterten Signals hängt stark von anderen Signalen ab! (49Hz und 51Hz) andererseits, wenn die Amplitude des 49Hz-Signals bis zu 2000 ansteigt (von 500), ist die Filterergebnisamplitude aufgewachsen !!! aber Hauptsignal (50Hz) Amplitude ist behoben! ich werde verrückt !!!!! –