Ciao ragazzi,
Devo svolgere su MATLAB un progetto di simulazione numerica con modulazione QAM (es1 del file in allegato).
Noi a lezione di MATLAB abbiamo fatto solo i comandi principali, come generare dei numeri casuali ed un po' di machine learning. Qualcuno di voi potrebbe darmi delle dritte su come svolgere il progetto o magari linkarmi del materiale da poter consultare, perché io non ho la più pallida idea di come fare. Inoltre dovremmo anche scrivere una relazione, questa é la prima volta che ne scrivo una e mi chiedevo se ci fosse uno schema da seguire per scriverla.
Ringrazio chiunque vorrà rispondermi e colgo l'occasione per augurarvi buone feste
Simulazione numerica di una modulazione QAM con matlab
6 messaggi
• Pagina 1 di 1
0
voti
Ciao, ho provato ad implementarlo e qualcosa ne è saltato fuori anche se non è ancora finito.
Avevo mandato una mail prof per un problema nel codice (che adesso ho risolto), e lui mi ha suggerito di sostituire i cicli for con l'indicizzazione logica; io ci ho pensato a lungo ma non sono riuscita a trovare il modo per sostituire i cicli; potreste darmi una mano?
Vi allego il codice
Grazie a chi mi vorrà aiutare
Avevo mandato una mail prof per un problema nel codice (che adesso ho risolto), e lui mi ha suggerito di sostituire i cicli for con l'indicizzazione logica; io ci ho pensato a lungo ma non sono riuscita a trovare il modo per sostituire i cicli; potreste darmi una mano?
Vi allego il codice
Grazie a chi mi vorrà aiutare
- Allegati
-
qam_modulation1.pdf
- (29.5 KiB) Scaricato 356 volte
1
voti
Non vorrei portarti su una strada sbagliata, ho ricordi troppo lontani, però un possibile approccio potrebbe essere qualcosa di simile:
Teoricamente ciascun elemento dell'array "logical_indxs" dovrebbe contenere 1 se la condizione è soddisfatta e zero altrimenti. Il punto cruciale è se Matlab consente un'indicizzazione indiretta nella forma che ipotizzo
symbol (logical_indxs) = <expr> ;
ovvero che capisca che l'assegnazione deve avvenire solo se l'indice è diverso da zero. Sarebbe troppo bello per essere vero
Nel caso scusami se ti ho fatto perdere tempo con un'idea fallace.
- Codice: Seleziona tutto
elementi_indice_pari = bits (2:2:end) ;
elementi_indice_dispari = bits (1:2:end) ;
%
logical_indxs = [ ] ;
logical_indxs = ( ( elementi_indice_pari = 0 ) & ( elementi_indice_dispari = 0 ) ) ;
symbol (logical_indxs) = -1 -1i ;
%
logical_indxs = [ ] ;
logical_indxs = ( ( elementi_indice_pari = 1 ) & ( elementi_indice_dispari = 0 ) ) ;
symbol (logical_indxs) = 1 -1i ;
%
% etc...
%
Teoricamente ciascun elemento dell'array "logical_indxs" dovrebbe contenere 1 se la condizione è soddisfatta e zero altrimenti. Il punto cruciale è se Matlab consente un'indicizzazione indiretta nella forma che ipotizzo
symbol (logical_indxs) = <expr> ;
ovvero che capisca che l'assegnazione deve avvenire solo se l'indice è diverso da zero. Sarebbe troppo bello per essere vero

0
voti
Ciao, grazie per la risposta, ho preso spunto dal tuo codice ed effettivamente sono riuscita ad indicizzare il vettore considerando gli elementi con indice dispari separatamente da quelli di indice pari. Hai per caso altre idee su come eliminare gli altri loop?
0
voti
No, nessuna idea; non conosco la materia abbastanza bene. Fare un lavoro del genere sulla base di procedure formali ignorando cosa stia succedendo e cosa stia facendo l'algoritmo è al di là delle mie capacità.
Ovviamente avevo dato un'occhiata anche ai loops seguenti ma non mi è venuta nessuna idea altrimenti l'avrei messa in campo volentieri. Certo, appena vedo qualcosa che somiglia a (t-h) penso subito alla convoluzione ma è molto probabile che non c'entri niente. Ma anche se fosse il caso usare quel tipo di procedura che non dipende da costrutti "if" "then" "else" espliciti piuttosto che una chiamata diretta a qualche funzione di libreria che sicuramente esiste, richiede un esame delle proprietà delle funzioni e vedere se possono essere valutate numericamente usando il logical indexing. Non so
Ovviamente avevo dato un'occhiata anche ai loops seguenti ma non mi è venuta nessuna idea altrimenti l'avrei messa in campo volentieri. Certo, appena vedo qualcosa che somiglia a (t-h) penso subito alla convoluzione ma è molto probabile che non c'entri niente. Ma anche se fosse il caso usare quel tipo di procedura che non dipende da costrutti "if" "then" "else" espliciti piuttosto che una chiamata diretta a qualche funzione di libreria che sicuramente esiste, richiede un esame delle proprietà delle funzioni e vedere se possono essere valutate numericamente usando il logical indexing. Non so

6 messaggi
• Pagina 1 di 1
Torna a Programmi applicativi: simulatori, CAD ed altro
Chi c’è in linea
Visitano il forum: Nessuno e 3 ospiti