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);
endrespfrec (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)');
endfftdt (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.