Hier ist mein Code für ein zweifarbiges Signal, bei dem ich ein Stoppband verwende, um den höheren Ton zu entfernen, und dann das Vorher (in Blau) und Nachher (in Rot) im Frequenzbereich zeichne, nachdem ich mein Signal mit den Filterkoeffizienten gefaltet habe .
Wenn Sie diesen Code in Matlab einfügen, können Sie deutlich erkennen, dass die höhere Frequenz vom Filter erfolgreich entfernt wurde. Aus irgendeinem Grund wurde jedoch die Amplitude der niedrigeren Frequenz halbiert, und je mehr ich die Anzahl der Filterkoeffizienten erhöhe. Je mehr es nur meine ganze Kurve abflacht, warum tritt dies auf? Und wie kann ich das verhindern, damit sich das Sperrband nicht nach außen ausbreitet? Hier ist das Bild und der Code:
fSampling = 8000; tSampling = 1 / fSampling; t = 0: t Abtastung: 0,005; F0 = 1000; F1 = 3000; xt = sin (2 · pi · F0 · t) + sin (2 · pi · F1 · t); ht = fir1 (40, .25, "Stop"); yt = conv (xt, ht); fAxis = -4000: 125: 4000-125; xF = fft (xt, 64); MagXF = fftshift (abs (xF)); Diagramm (Achse, MagXF); warten Sie mal yF = fft (yt, 64); MagYF = fftshift (abs (yF)); Handlung (Achse, MagYF, 'r')