Main Content

Operazioni di base con segnali a dimensione variabile vincolata

Questo esempio mostra come generare segnali a dimensione variabile vincolata e illustra alcune operazioni che utilizzano tali segnali. In questo esempio, si generano segnali a dimensione variabile utilizzando il blocco Selector e il blocco Switch. I segnali sono utilizzati nelle operazioni matematiche, nella creazione di bus, nella concatenazione di matrici di selezione dei bus e per implementare l'equazione di un filtro discreto.

Generazione di segnali a dimensione variabile vincolata

I segnali a dimensione variabile vincolata sono generati nei seguenti componenti.

Il componente Bounded Variable-Size Signal Generation Using Switch Block utilizza un blocco Switch con un segnale scalare e un segnale non scalare di 3x2 alle porte di input. L'output di questo blocco è un segnale a dimensione variabile vincolata con limite superiore di 3x2. L'output viene deciso in base alla condizione impostata nel parametro Criteri per il passaggio del primo input. Per consentire la propagazione di segnali di dimensioni diverse, nella finestra di dialogo Parametri del blocco selezionare Attributi del segnale > Consenti dimensioni di input dei dati diverse. Il segnale di output viene poi utilizzato nei componenti di creazione di bus, selezione di bus e concatenazione di matrici.

Il componente Bounded Variable-Size Signal Generation Using Selector Block utilizza un blocco Selector che impiega un segnale 3x4 e un segnale non scalare 1x2. L'output di questo blocco è un segnale a dimensione variabile vincolata con limite superiore di 3x4. Per consentire all'indice di selezione delle dimensioni di cambiare nel tempo, nella finestra di dialogo Parametri del blocco, per l'opzione indice, selezionare il parametro indici iniziali e finali (porta) e per l'opzione indice, selezionare il parametro indici iniziali e finali (porta). Inoltre, per questo modello, il numero di dimensioni di input è impostato su 2.

Operazioni di base che utilizzano segnali a dimensione variabile vincolata

Le operazioni che utilizzano segnali vincolati a dimensione variabile sono rappresentate nei seguenti componenti.

Il componente Bus Creation, Bus Selection and Matrix Concatenation utilizza i segnali generati dal blocco Switch e contiene i seguenti blocchi per la creazione di bus, la selezione di bus e la concatenazione di matrici.

  • Blocco Matrix Concatenate $-$ Questo blocco concatena due segnali a dimensione variabile vincolata con un limite superiore di 3x2 lungo la dimensione 1 (righe). Genera una matrice 6x2.

  • Blocco Bus Creator $-$ Questo blocco combina due segnali a dimensione variabile vincolata 3x2, a e b, e genera un bus non virtuale Data Signal. Questo bus non virtuale viene memorizzato in un blocco Goto.

  • Blocco Bus Selector $-$ Questo blocco utilizza il bus non virtuale Data Signal e seleziona due segnali a dimensione variabile vincolata 3x2 utilizzando un blocco Bus Selector.

Il componente Stateflow Chart and Function-Call Subsystem to Implement a Discrete-time FIR Filter Equation implementa un'equazione di filtro di risposta impulsiva finita (FIR) causale del terzo ordine, a tempo discreto, all'interno di un sottosistema di chiamata di funzione denominato Third order Discrete FIR Filter utilizzando i blocchi Unit Delay e Gain. L'equazione del filtro rappresenta una somma ponderata che utilizza i valori di input più recenti. Questo sottosistema utilizza un segnale a dimensione variabile vincolata 3x2 come input e si attiva quando riceve un segnale di chiamata di funzione alla porta function. L'evento di output E dal grafico Stateflow Mode Control Logic indica qualsiasi cambiamento nella dimensione del segnale, che attiva (abilita) l'esecuzione di questo sottosistema.

Per propagare la dimensione del segnale corrente e reimpostare lo stato del blocco Unit Delay in modo che accetti la dimensione del segnale corrente, nella finestra di dialogo Parametri del blocco Trigger all'interno del sottosistema di chiamata di funzione, impostare il parametro Propagare dimensioni di segnali a dimensione variabile su Only when enabling.

Il segnale elaborato in output viene rappresentato mediante un blocco Scope.

In diversi passi temporali della simulazione, l'ampiezza del segnale viene registrata nel workspace di base utilizzando le variabili simout2 e simout4.

Il componente Mathematical Operations mostra le operazioni matematiche sui segnali a dimensione variabile vincolata generati con il blocco Selector. Questo componente utilizza i seguenti blocchi per le operazioni matematiche:

  • Blocco Complex to Real-Imag: questo blocco separa le parti reali e immaginarie dei segnali di input complessi.

  • Blocchi Math Function: questo blocco utilizza la funzione square per calcolare il quadrato della parte reale del segnale e la funzione log10 per calcolare il valore del logaritmo comune (base 10) della parte immaginaria del segnale.

  • Blocco Width: questo blocco calcola l'ampiezza del segnale a dimensione variabile vincolata in input in diversi passi temporali della simulazione. Questo valore viene registrato nel workspace di base nella variabile selectorVarSigWidth.

Vedi anche

| | | | (Stateflow) | | | | |

Argomenti complementari