Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

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.

  1. In Filter Designer, fare clic su Filter Manager ed evidenziare solo il filtro Bandpass Butterworth-1.

  2. Selezionare File > Export.

  3. Impostare Export to su Workspace. Impostare Export as su Objects. In Discrete Filter digitare Hd1. Fare clic su Export per esportare il primo filtro nel banco di filtri in un oggetto Hd1 dfilt nel workspace.

  4. 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 dfilt si troveranno nel workspace.

  5. Chiudere l'applicazione selezionando File > Close.

  6. 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

  1. 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];
    
  2. 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: false
    
  3. Possono essere usati diversi metodi per visualizzare e manipolare l'oggetto Hd1 dfilt. Provare il comando info:

    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   
  4. È 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 scale
    

    Ciò produce la stessa visualizzazione del passaggio 5 di Visualizzare il filtro su FVTool.

  5. 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 i
  6. Tracciare i dati filtrati.

    plot(yw)