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

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

Siehe auch

bessel / butter / cheby1 / cheby2 / ellip / arbmagphase / cplxfreqshift / dcremover / notch / peaking