Esportare filtri da Filter Designer
L'applicazione Filter Designer fornisce un modo semplice per creare oggetti filtro (dfilt) dai propri progetti di filtro. Ciò è particolarmente utile per salvare il progetto del filtro nel workspace MATLAB® per usarlo con le funzioni della riga di comando. È possibile anche salvare i filtri come codice MATLAB usando File > Generate MATLAB code da eseguire in script o file batch.
In Filter Designer, fare clic su Filter Manager ed evidenziare solo il filtro
Bandpass Butterworth-1.Selezionare File > Export.
Impostare Export to su
Workspace. Impostare Export as suObjects. In Discrete Filter digitareHd1. Fare clic su Export per esportare il primo filtro nel banco di filtri in un oggettoHd1dfiltnel workspace.
Ripetere i passaggi da 1 a 3 per ciascuno dei nove filtri rimanenti. Evidenziare ciascun filtro individualmente per abilitarlo e per cambiare il nome Discrete Filter così da farlo corrispondere al numero del filtro. Una volta terminata questa operazione, i 10 oggetti
dfiltsi troveranno nel workspace.Chiudere l'applicazione selezionando File > Close.
Sulla riga di comando MATLAB, verificare che gli oggetti siano stati esportati usando il comando
whos.whos Name Size Bytes Class Attributes Hd1 1x1 dfilt.df2sos Hd10 1x1 dfilt.df2sos Hd2 1x1 dfilt.df2sos Hd3 1x1 dfilt.df2sos Hd4 1x1 dfilt.df2sos Hd5 1x1 dfilt.df2sos Hd6 1x1 dfilt.df2sos Hd7 1x1 dfilt.df2sos Hd8 1x1 dfilt.df2sos Hd9 1x1 dfilt.df2sos
Filtrare con dfilt
Digitare quanto segue sulla riga di comando MATLAB per concatenare gli oggetti filtro del banco di filtri in un singolo oggetto
dfilt.Hd = [Hd1 Hd2 Hd3 Hd4 Hd5 Hd6 Hd7 Hd8 Hd9 Hd10];
Per visualizzare il primo filtro, digitare
Hd(1).Hd(1) ans = FilterStructure: 'Direct-Form II, Second-Order Sections' sosMatrix: [3x6 double] ScaleValues: [3.40097054256801e-009;1;1;1] PersistentMemory: falsePossono essere usati diversi metodi per visualizzare e manipolare l'oggetto
Hd1dfilt. Provare il comandoinfo:info(Hd1) % Displays filter information Discrete-Time IIR Filter (real) ------------------------------- Filter Structure : Direct-Form II, Second-Order Sections Number of Sections : 3 Stable : Yes Linear Phase : No
È possibile aprire FVTool dalla riga di comando MATLAB e specificare i parametri di visualizzazione come segue.
F = fvtool(Hd,'Analysis','magnitude') % Open FVTool with % magnitude display set(F,'FrequencyScale','Log') % Change to log scaleCiò produce la stessa visualizzazione del passaggio 5 di Visualizzare il filtro su FVTool.
Quindi, usando la riga di comando MATLAB, creare alcuni dati discreti di rumore bianco gaussiano, che è possibile filtrare utilizzando il banco di filtri.
rand; % Initialize random number generator Nx = 100000; % Number of noise data points xw = randn(Nx,1); % Create white noise for i=1:10, yw(:,i)=filter(Hd(i),xw); % Filter the white noise through end % the entire filter bank. % (:,i) means all rows of column iTracciare i dati filtrati.
plot(yw)
