Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Creazione onda quadra in matlab

1,759 views
Skip to first unread message

Pidi

unread,
May 30, 2009, 5:59:45 AM5/30/09
to
Un saluto.
Spero ci sia qualcuno che mi possa aiutare.
Devo creare in simulink (o con una funzione matlab, ma cmq da riversare
in simulink) un segnale a onda quadra a partire da una serie di simboli
(1 e -1) dichiarati in precedenza e inseriti in un vettore e con un
certo tempo di clock. Ho provato a mettere in un vettore i valori scelti
e in un altro vettori i tempi di campionamento ma cosᅵ facendo risulta
ovviamente un'onda triangolare...

C'ᅵ qualcuno che mi puᅵ aiutare?
Vi ringrazio

Pleg

unread,
May 31, 2009, 12:52:40 AM5/31/09
to
> Spero ci sia qualcuno che mi possa aiutare.
> Devo creare in simulink (o con una funzione matlab, ma cmq da riversare in
> simulink) un segnale a onda quadra a partire da una serie di simboli (1
> e -1) dichiarati in precedenza e inseriti in un vettore e con un certo
> tempo di clock. Ho provato a mettere in un vettore i valori scelti e in un
> altro vettori i tempi di campionamento ma cos� facendo risulta ovviamente
> un'onda triangolare...
> C'� qualcuno che mi pu� aiutare?


Se ho capito cosa intendi, ti serve un mantenitore: del "sample & hold" il
"sample" ce l'hai, ti manca lo "hold" :)
Puoi provare a guardare tra gli strumenti avanzati di simulink, nel
pacchetto DSP o cose cosi', non mi stupirei se trovassi qualcosa di gia'
fatto (di norma matlab ha _tutto_ :) , che ti porta in tempo "continuo".
Se no, puoi ricampionare con un clock piu' alto (che e' la stessa cosa che
farebbe matlab: il tempo "continuo" e' ovviamente un tempo discreto, solo a
passo piu' fine).


Pleg


Luca

unread,
Jun 1, 2009, 10:40:29 AM6/1/09
to
On 31 Mag, 06:52, "Pleg" <2...@300.K> wrote:
> > Spero ci sia qualcuno che mi possa aiutare.
> > Devo creare in simulink (o con una funzione matlab, ma cmq da riversare in
> > simulink) un segnale a onda quadra a partire da una serie di simboli (1
> > e -1) dichiarati in precedenza e inseriti in un vettore e con un certo
> > tempo di clock. Ho provato a mettere in un vettore i valori scelti e in un
> > altro vettori i tempi di campionamento ma così facendo risulta ovviamente
> > un'onda triangolare...
> > C'è qualcuno che mi può aiutare?

>
> Se ho capito cosa intendi, ti serve un mantenitore: del "sample & hold" il
> "sample" ce l'hai, ti manca lo "hold" :)
> Puoi provare a guardare tra gli strumenti avanzati di simulink, nel
> pacchetto DSP o cose cosi', non mi stupirei se trovassi qualcosa di gia'
> fatto (di norma matlab ha _tutto_ :) , che ti porta in tempo "continuo".
> Se no, puoi ricampionare con un clock piu' alto (che e' la stessa cosa che
> farebbe matlab: il tempo "continuo" e' ovviamente un tempo discreto, solo a
> passo piu' fine).
>
> Pleg

Se dovessi fare un campionamento di un segnale continuo avresti
ragione (campionamento e poi holding). In realtà i campioni sono
definiti " a mano" da me e inseriti in un vettore. Nel pacchetto dsp
c'è il blocco "zero-order hold", che esegue l'holding come dicevi tu,
ma a partire da un segnale tempo continuo.
A me servirebbe di più in interpolatore per trasformare una sequenza
di campioni discreti in una funzione t-continua...

Pidi

unread,
Jun 1, 2009, 12:11:56 PM6/1/09
to
"Pleg" <25mV@300.K> ha scritto nel messaggio
news:gvt2e1$ai1$1...@news.stanford.edu...

Ho creato in matlab una funzione usando la classica formula: y = sum:
Ak*rect(t-KT). y risulta una matrice con i vari valori della funzione, e
graficandola insieme a un vettore dei tempi viene graficata correttamente.
Non riesco per� a inserire (e graficare) questi valori in simulink...


Andrea D'Amore

unread,
Jun 1, 2009, 3:54:05 PM6/1/09
to
In article <4a21...@news.x-privat.org>, Pidi <lu...@Pidi.com> wrote:

> Ho provato a mettere in un vettore i valori scelti e in un altro

> vettori i tempi di campionamento ma così facendo risulta ovviamente
> un'onda triangolare...

Nel senso che hai eseguito un prodotto di convoluzione?

Non conosco Simulink ma credevo che lavorasse solo in tempo discreto,
come si rappresentano funzioni in tempo continuo, con l'espressione
analitica? Cioè che tipo di oggetto vorresti ottenere?

Pidi

unread,
Jun 1, 2009, 7:21:36 PM6/1/09
to
"Andrea D'Amore" <and.da...@LOSPAM.gmail.com.invalid> ha scritto nel
messaggio news:and.damoreVIA-D06...@newssrv.fastweb.it...

> In article <4a21...@news.x-privat.org>, Pidi <lu...@Pidi.com> wrote:
>
>> Ho provato a mettere in un vettore i valori scelti e in un altro
>> vettori i tempi di campionamento ma cos� facendo risulta ovviamente

>> un'onda triangolare...
>
> Nel senso che hai eseguito un prodotto di convoluzione?
>
> Non conosco Simulink ma credevo che lavorasse solo in tempo discreto,
> come si rappresentano funzioni in tempo continuo, con l'espressione
> analitica? Cio� che tipo di oggetto vorresti ottenere?

Devo fare il prodotto di due segnali. Uno � un segnale binario ottenuto con
un blocco gi� costruito in simulink (in pratica se prendo l'uscita di questo
blocco e visualizzo l'uscita su un grafico mi visualizza un'onda quadra). Il
secondo segnale invece lo devo costruire a partire da dei campioni, che devo
inserire io "a mano" e che per comodit� ho messo in un vettore. Se per
esempio avessi a=[1 0 0 1 1 0] vorrei in uscita un segnale continuo del tipo
(spero mantenga la formattazione):

|-----| |----------|
| |_________| |_____
0 T 2T 3T 4T 5T

Come dicevo nell'altro post, sono riuscito ad ottenere una funzione (in
matlab!) che, dato il vettore t dei tempi e un vettore y(trasformazione di
a), con plot(t,y) riesco ad avere l'onda sopra.

Il problema � che non riesco a trasportare questa funzione in simulink.
Riassumendo un attimo in questo momento dovrei sommare a una sorgente
binaria (continua) dei valori di un vettore (discreti), e questo ovviamente
non � possibile, se prima non trasformo in un segnale tempo continuo la
sequenza di valori discreti


Pidi

unread,
Jun 2, 2009, 9:46:15 AM6/2/09
to
"Pidi" <lu...@Pidi.com> ha scritto nel messaggio
news:4a21...@news.x-privat.org...

> Un saluto.
> Spero ci sia qualcuno che mi possa aiutare.
> Devo creare in simulink (o con una funzione matlab, ma cmq da riversare in
> simulink) un segnale a onda quadra a partire da una serie di simboli (1
> e -1) dichiarati in precedenza e inseriti in un vettore e con un certo
> tempo di clock. Ho provato a mettere in un vettore i valori scelti e in un
> altro vettori i tempi di campionamento ma cos� facendo risulta ovviamente
> un'onda triangolare...
>

> C'� qualcuno che mi pu� aiutare?
> Vi ringrazio

Ho risolto.
Avevo una versione un p� datata di simulink, ho aggiornato all'ultima e ha
disponibili i blocchi che mi erano necessari.

Grazie per l'aiuto


Andrea D'Amore

unread,
Jun 2, 2009, 10:11:46 AM6/2/09
to
In article <4a25...@news.x-privat.org>, "Pidi" <la...@mail.com> wrote:

> Ho risolto.
> Avevo una versione un pò datata di simulink, ho aggiornato all'ultima e ha

> disponibili i blocchi che mi erano necessari.

Eh ma spiega, spiega :-)

Pidi

unread,
Jun 2, 2009, 11:29:15 AM6/2/09
to
"Andrea D'Amore" <and.da...@LOSPAM.gmail.com.invalid> ha scritto nel
messaggio news:and.damoreVIA-F1F...@newssrv.fastweb.it...

> In article <4a25...@news.x-privat.org>, "Pidi" <la...@mail.com> wrote:
>
>> Ho risolto.
>> Avevo una versione un p� datata di simulink, ho aggiornato all'ultima e
>> ha
>> disponibili i blocchi che mi erano necessari.
>
> Eh ma spiega, spiega :-)

Non volevo entrare troppo nel dettaglio, ma se insisti :)

In pratica dovevo creare una Walsh-Hadamard sequence, utilizzata nei sistemi
CDMA (tecnica utilizzata per la trasmissione in ambito 3G, WLAN ecc). Avevo
realizzato una funzione che mi generava i campioni di questa sequenza, che
sarebbero poi dovuti andare a formare la forma d'onda quadra.
Nel nuovo simulink c'� gi� un blocco che realizza la sequenza di Walsh,
quindi � stato sufficente buttar dentro quello :)


Andrea D'Amore

unread,
Jun 2, 2009, 12:54:24 PM6/2/09
to
In article <4a25454f$1...@news.x-privat.org>, "Pidi" <la...@mail.com>
wrote:

> CDMA (tecnica utilizzata per la trasmissione in ambito 3G, WLAN ecc)

Anche Ethernet.

0 new messages