Title: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: eight on April 19, 2012, 10:53:51 am Καλημέρα!
Θέλω να προσομοιώσω μια σειρά από bits 0 -1 και πρέπει να τα κωδικοποιήσω με μια σειρά τετραγωνικών παλμών με συγκεκριμένο rise - fall time στο Matlab. Έχει κανείς καμιά ιδέα πώς μπορώ να προκαθορίσω αυτούς τους χρόνους; Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: fugiFOX on April 19, 2012, 10:58:44 am Για να απαντηθεί καλύτερα το ερώτημά σου πες μας τι θες να κάνεις με αυτούς τους παλμούς.
Δηλαδή θα τους δώσεις ως είσοδο σε τι; Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθορι_ Post by: asmd on April 19, 2012, 11:08:27 am κάτι τέτοιο θες :
http://www.mathworks.com/matlabcentral/newsreader/view_thread/44333 ? Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: eight on April 19, 2012, 11:37:20 am Σε ευχαριστώ για το λινκ αλλά το είχα κοιτάξει ήδη και έψαχνα να βρω κάτι πιο αυτοποιημένο (μου φαίνεται απίθανο να μην υπάρχει γιατί είναι πολύ συνηθισμένη μορφή παλμού).
@fugiFΟΧ : Θέλω να προσομοιώσω τι διέλευση ενός δυαδικού σήματος μέσω μιας οπτικής ίνας με διασπορά. Αυτό που κάνω είναι να παράγω έναν τυχαίο πίνακα με bits 0 και 1 και στη συνέχεια να τον μετατρέπω σε μια παλμοσειρά = διακριτό σήμα στο χρόνο (όταν το bit = 1 τότε το πλάτος του σήματος = πλάτος τετραγωνικού παλμού ενώ όταν bit = 0 το πλάτος του σήματος διατηρείται στο 0). Έτσι έχω ένα τελικό σήμα στον χρόνο μήκους = (αριθμός bits) * (διάρκεια ενός τετραγωνικού παλμού στο χρόνο). Στη συνέχεια (βάσει της split-step fourier method) κάνω fft στο σήμα μου και μετά ifft (έτσι περνάω το σήμα μου μέσω της ίνας - εννοείται πως κάπου ενδιάμεσα λαμβάνω υπόψη και τη διασπορά) και τελικά παίρνω το σήμα (στο χρόνο) στην έξοδο της ίνας που είναι η αρχική παλμοσειρά τροποποιημένη. Αυτό το σήμα εξόδου το 'κόβω' ανά συγκεκριμένα χρονικά διαστήματα και φτιάχνω το διάγραμμα οφθαλμού. Αυτά! Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: asmd on April 19, 2012, 11:54:30 am πάντως το αυτοματοποιημένο μπορείς με μία συνάρτηση να το φτιάξεις μόνη σου.. βέβαια δεν το δουλεύω και πολύ το ματλαμπ και μπορεί να υπάρχει κάτι έτοιμο.. αλλά και η συνάρτηση δεν πιστεύω να είναι άκομψη λύση. :) Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: fugiFOX on April 19, 2012, 11:57:14 am νομίζω ότι το πιο κοντινό στην περίπτωσή σου είναι αυτό που σου προτείνει ο asmd.
Για ευκολία, πέρασε τον κώδικα του παλμού σε μια συνάρτηση με ορίσματα rise - fall time, start time, width (αν κάποια από αυτα ειναι σταθερά δεν χρειάζεται ως ορίσματα, αλλά σίγουρα το start time) και μετά τρέχεις 1 for-loop του τύπου for i=1:length(bitarray) if bitarray(i)==1 pulsearray=[pulsearray, ones(1,width).*functiongenpulse(1,2,3,4,5) end Εάν τα δεδομένα σου είναι πολλα τότε το for θα αργεί, οπότε καλύτερα να κάνεις preallocate ton pulsearray εφόσον το width σου είναι συγκεκριμένο, τότε προκύπτει εύκολα το συνολικό μέγεθός του Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: eight on April 19, 2012, 12:19:06 pm Ευχαριστώ πολύ και τους δύο!
Το δοκιμάζω έτσι :) Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθορι_ Post by: Eru lluvatar on April 19, 2012, 13:19:27 pm http://www.mathworks.com/help/toolbox/phased/ug/bssrbnv.html
ίσως σε βοηθήσει edit: slip step fourier ακούω, μη γραμμικές ίνες να υποθέσω, διπλωματική κριεζής να υποθέσω :P edit2: αυτό που σου είπε ο fugi με το preallocation πρόσεχέ του γενικά σε όλους του πίνακες σου. αν έχουν μεγάλη διάσταση και δεν τους έχεις δεσμεύσει από πριν με την zeros το matlab σέρνεται Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: eight on April 19, 2012, 14:48:25 pm Σωστά υποθέτεις :)
Title: Re: [Matlab] Δημιουργία τετραγωνικών παλμών με προκαθοριμένο rise - fall time Post by: bakeneko on April 19, 2012, 15:11:39 pm ατό; http://www.mathworks.com/help/toolbox/signal/ref/square.html
|