Arbitrary response magnitude and phase filter (Betrags- und Phasenfilter mit beliebigem Ansprechverhalten)
Syntax
Hd = arbmagphase (Nb,Na,mag,phase,freq,Type,DFormat)
Beschreibung
Ermittelt die Pole und Nullstellen eines unbekannten Filters anhand seiner komplexen Frequenzgangspezifikation \(H(k)\). Dabei gilt: \(mag=20log10(|H(k)|),Phase=180πarg (H(k))\) und \(mag= 20{log}_{10}(\left|H(k)\right|), phase =\frac{180}{\pi}arg\ (H(k))\) and \(freq = 0 \rightarrow Nyquist \) in Hz. Die Daten können Lücken aufweisen und müssen nicht in gleichmäßigen Abständen zwischen 0 und Nyquist inkrementelle Frequenzschritte aufweisen. Verwenden Sie das Schlüsselwort fsunits, um eine normalisierte Frequenzangabe in Hz zu skalieren.
Nb: Nb: Die Anzahl der Nullen (0-20), die an die Daten angepasst werden sollen. Wenn Sie ein Modell mit nur Nullen erstellen wollen, setzen Sie Na=0
Na: Die Anzahl der Pole (0-20), die an die Daten angepasst werden sollen. Wenn Sie ein ganzpoliges Modell erstellen wollen, setzen Sie Nb=0
Mag, phase and freq:die komplexen Frequenzgangdaten in dB, Grad und Hz.
Type: real
real erzeugt einen reellen Filter, während complex
einen komplexen Filter erzeugt.
DFormat: Hier können Sie das Anzeigeformat des resultierenden digitalen Filterobjekts festlegen.
symbolic |
Zeigt eine symbolische Darstellung des Filterobjekts an. |
numeric |
Zeigt eine Matrixdarstellung des Filterobjekts an. |
void |
Erzeugt ein Filterobjekt, zeigt aber keine Ausgabe an. |
Beispiel
[code lang=”java”]ClearH1; // clear primary filter from cascade
ShowH2DM;
interface Na = {0,10,1,5}; // interface variable definition
interface Nb = {0,20,1,6}; // interface variable definition
H=importdata("Datafiles\mysteryfilter.txt"); // load specification (Fs=500Hz)
freq=H(:,0); // extract frequency specification (Hz)
mag=H(:,1); // extract magnitude specification (dB)
phase=H(:,2); // extract phase specification (degrees)
Main()
// design a "real" filter from the specification
Hd=arbmagphase(Nb,Na,mag,phase,freq,"real","symbolic");
Num = getnum(Hd); // define numerator coefficients
Den = getden(Hd); // define denominator coefficients
Gain = getgain(Hd); // define gain
[/code]
Siehe auch
bessel / butter / cheby1 / cheby2 / ellip / arbmagphase / cplxfreqshift / dcremover / notch / peaking