MATLAB Signalverarbeitung: Funktionen und Algorithmen

Eingeordnet in Elektronik

Geschrieben am in Deutsch mit einer Größe von 1,95 KB

Impulsantwort

n = -10:1:30; b = [-1 2 3 6 ...]; A = 1; x = zeros(1,41); x(11) = 1; y1 = filter(B, A, x); stem(n, y1); grid;

zerpol (B, A)

Berechnung von Nullstellen und Polen:

function [Nullen, Pole] = zerpol(B, A)
    bs = roots(B);
    as = roots(A);
    Nullen = bs;
    Pole = as;
    zplane(bs, as);
end

respfrec (B, A, nfrec)

Frequenzgang-Analyse:

function [Modul, Phase, Frequenz] = respfrec(B, A, nfrec)
    Frequenz = linspace(0, 0.5, nfrec);
    b = B(length(B):-1:1);
    a = A(length(A):-1:1);
    Zähler = polyval(b, exp(-j*2*Pi*Frequenz));
    Nenner = polyval(a, exp(-j*2*Pi*Frequenz));
    sol = Zähler ./ Nenner;
    Modul = abs(sol);
    Phase = angle(sol);
    subplot(211), plot(Frequenz, Modul), grid, xlabel('Frequenz'), ylabel('Modul');
    subplot(212), plot(Frequenz, unwrap(Phase)), grid, xlabel('Frequenz'), ylabel('Phase (rad)');
end

fftdt (FFT Dezimierung in der Zeit)

Implementierung der FFT mittels Zeit-Dezimierung (DIT).

mdft (Diskrete Fourier-Transformation)

Direkte Berechnung der DFT über eine Schleife.

IDFT Konjugation

Berechnung der inversen DFT mittels Konjugation.

Insertaceros vs. Interp

Beim Einfügen von Nullen (Upsampling) wird ein Tiefpassfilter mit Grenzfrequenz fc = 0,5 / L angewendet.

Quitamuestras vs. Dezimieren

Decimate beinhaltet zusätzlich einen Filter, um Aliasing zu vermeiden. Bedingung: fs >= 2wm.

Filter vs. Conv

  • filter: Implementiert digitale Filter (IIR/FIR).
  • conv: Berechnet die mathematische Faltung zweier Signale.

Weitere Funktionen

  • Sinuskurve: Erzeugung von Sinussignalen.
  • Delta: Erzeugung eines Einheitsimpulses.
  • Kaskadierung & Parallel: Demonstration der Kommutativität bei LTI-Systemen.

Verwandte Einträge: