Γεννήτρια κυματομορφών βασισμένη σε FPGA, υλοποίηση συστήματος σύνθεσης μουσικού σήματος

     Σε αυτή την εργασία παρουσιάζεται μια μέθοδος ανάπτυξης ενός συνθεσάιζερ μουσικού σήματος που βασίζεται σε FPGA. Ο ήχος των μουσικών οργάνων έχει τα χαρακτηριστικά σύνθετων κυματομορφών. Μια σύνθετη κυματομορφή είναι δυνατό να αναλυθεί και να περιγραφεί με πιο απλό τρόπο, ώστε να είναι δυνατή η επεξεργασία της αλλά και η αναπαραγωγή της. Η Ανάλυση Φουριέ είναι μια μέθοδος που μας δίνει αυτή τη δυνατότητα, αθροίζοντας απειροσειρές ημιτονικών και συνημιτονικών συναρτήσεων. Είναι δυνατό να γίνει ανάλυση των ήχων αυτών σε σειρές ημιτονικών συναρτήσεων και με τη βοήθεια μιας γεννήτριας κυματομορφών να υλοποιηθεί ένα σύστημα σύνθεσης μουσικού σήματος, ώστε να αναπαράγει παρόμοιους ήχους και να προσομοιώνει διάφορα όργανα. Μια γεννήτρια κυματομορφών είναι δυνατό να υλοποιηθεί σε ένα FPGA.

 

Συγγραφέας: Πορλιδάς Δημήτριος

Βιογραφικό Σημείωμα

electronics@porlidas.gr

Facebook

Linkedin


Σχήμα 1. Βηματική συνάρτηση.

 

Μια πολύπλοκη κυματομορφή είναι δυνατό να αναλυθεί και να περιγραφεί με πιο απλό τρόπο, ώστε να είναι δυνατή η επεξεργασία της αλλά και η αναπαραγωγή της. Η Ανάλυση Φουριέ είναι μια μέθοδος που μας δίνει αυτή τη δυνατότητα αθροίζοντας απειροσειρές ημιτονικών και συνημιτονικών συναρτήσεων. Είναι συνεπώς δυνατό για  μια κυματομορφή που ορίζεται σε ένα διάστημα (-π, π) να βρεθούνε οι συχνότητες που υπάρχουν σε αυτή καθώς και τα πλάτη τους, έτσι ώστε η κυματομορφή να περιγράφεται με το άθροισμα:

Τα πλάτη για κάθε συχνότητα fn=nf, όπου f είναι η θεμελιώδης συχνότητα, δίνονται από τις σχέσεις:

 

Σαν παράδειγμα μπορούμε να θεωρήσουμε τη βηματική συνάρτηση που απεικονίζεται στο σχήμα 1 όπου στον κατακόρυφο άξονα απεικονίζεται το πλάτος και στον οριζόντιο ο χρόνος. Στα σχήματα 2, 3 και 4 απεικονίζονται οι συνημιτονικές συναρτήσεις που συμμετέχουν για να συνθέσουν τη βηματική συνάρτηση του σχήματος 1 και στο σχήμα 5 το άθροισμα των τριών αυτών συναρτήσεων. Στο παράδειγμα αυτό η σειρά είναι πεπερασμένη (άθροισμα τριών συνημίτονων) και για αυτό διακρίνονται διαφορές στη μορφή μεταξύ της αρχικής συνάρτησης και της παραγόμενης από την Ανάλυση Φουριέ.

Είναι δυνατό να γίνει χρήση ηλεκτρονικών διατάξεων ώστε να απεικονιστεί με τη μορφή ηλεκτρικού σήματος οποιαδήποτε κυματομορφή. Εφόσον η προς απεικόνιση κυματομορφή αναλυθεί σε άθροισμα ημίτονων και συνημίτονων και προσδιοριστούν οι συχνότητες και τα πλάτη, μπορούν να σχεδιαστούν ηλεκτρονικά κυκλώματα ώστε να συνθέσουν αυτές τις συχνότητες και να τις αθροίσουν. Το παραγόμενο ηλεκτρικό σήμα θα είναι πανομοιότυπο της κυματομορφής και οι μεταξύ τους διαφορές θα ελαχιστοποιούνται όσο αυξάνουν οι όροι του αθροίσματος. Η ηλεκτρονική διάταξη που χρησιμοποιήθηκε ως γεννήτρια για την παραγωγή κυματομορφών βασίζεται σε ένα ολοκληρωμένο κύκλωμα που ονομάζεται FPGA (Field-Programmable Gate Array) το οποίο λειτουργεί σε συνεργασία με ένα μετατροπέα ψηφιακού σήματος σε αναλογικό DAC (Digital to Analog Converter). Η αρχή λειτουργίας της διάταξης βασίστηκε στην ψηφιακή σύνθεση και άθροιση των συχνοτήτων στο FPGA.

 

Σχήμα 5. Άθροισμα των συναρτήσεων.

 

Σχήμα 2. Συνημιτονική συνάρτηση f=220Hz.

Σχήμα 3. Συνημιτονική συνάρτηση f=1100Hz.

Σχήμα 4. Συνημιτονική συνάρτηση f=1540Hz

Σχήμα 6. Βασικός σχεδιασμός της               γεννήτριας κυματομορφών.

 

Η κυματομορφή που παράγεται είναι ένα άθροισμα ημίτονων, συνημίτονων και σταθερών όρων, σύμφωνα με τη σειρά Φουριέ που παρουσιάστηκε παραπάνω. Τα ημίτονα και τα συνημίτονα παράγονται σε ξεχωριστές γεννήτριες το καθένα, οι οποίες είναι ακολουθιακά κυκλώματα, ενώ ο σταθερός όρος δίνεται ως σταθερά και μπορεί να παραμετροποιηθεί. Ο σχεδιασμός βασίζεται στην ψηφιακή άθροιση των όρων του αθροίσματος. Ο αριθμός των όρων περιορίζεται από το μέγεθος των καταχωρητών και τον χώρο του FPGA (αριθμό των CLBs του FPGA). Το μέγεθος των καταχωρητών, και συνεπώς οι όροι του αθροίσματος, είναι δυνατό να μεταβληθούν ανάλογα με τις ανάγκες της κυματομορφής.

Στο μπλοκ διάγραμμα του σχήματος 6 διακρίνονται τα δομικά στοιχεία των γεννητριών. Το ρολόι του συστήματος (50 MHz) χρονίζει έναν μετρητή (Counter), ο οποίος συγκρίνει την τρέχουσα τιμή του με μια σταθερά (Constant). Με αυτή τη διάταξη υλοποιείται ένας διαιρέτης της συχνότητας συστήματος (System Frequency Divider). Για την παραγωγή των συχνοτήτων στους διαιρέτες συχνότητας δε χρησιμοποιήθηκαν τα DCMs, γιατί στο σχεδιασμό χρειάζεται να χρησιμοποιηθούν ταυτόχρονα περισσότερες διαφορετικές συχνότητες από όσες είναι δυνατό να παράγουν τα DCMs. Υπάρχει όμως δυνατότητα, εφόσον το επιτρέπει το υλικό, να γίνει χρήση των DCMs για την παραγωγή της συχνότητας συστήματος για κάθε γεννήτρια, ώστε να αυξηθεί η ευελιξία της γεννήτριας κυματομορφών.

 

Όταν η τιμή του μετρητή γίνει ίση με τη σταθερά, αυξάνει ο μετρητής διεύθυνσης κύματος (Address Counter) κατά ένα. Ο μετρητής διεύθυνσης κύματος διευθυνσιοδοτεί έναν πίνακα μεγέθους 1x64 στοιχείων των 8bit, στον οποίο είναι αποθηκευμένη μία περίοδος ενός ημιτονικού κύματος με αριθμητικές αξίες, έτσι ώστε αν αυτές απεικονιστούν σε μια γραφική παράσταση να σχηματιστεί μια πλήρης περίοδος (σχήμα 7). Το μέγεθος του πίνακα εξαρτάται από την ποιότητα της κυματομορφής που ζητείται και επηρεάζει τις συχνότητες που δύναται να παράγει η γεννήτρια. Στο σχεδιασμό επηρεάζει το μέγεθος των μετρητών διεύθυνσης κύματος. Περιορίζεται από τις ανάγκες της εφαρμογής για παραγόμενες συχνότητες και το χώρο του FPGA. Οι διευθύνσεις 0-63 του πίνακα αντιστοιχούν σε φάση 0-2π του κύματος. Η αριθμητική αξία του κάθε στοιχείου του πίνακα αντιστοιχεί στο πλάτος της παραγόμενης τάσης μετά τη μετατροπή του σε αναλογικό σήμα και μπορεί να υπολογιστεί με την παρακάτω σχέση κάνοντας στρογγυλοποίηση στην πλησιέστερη μονάδα:

(Dv: Η αριθμητική αξία του κάθε στοιχείου του πίνακα, VDC: Το πλάτος της DC τάσης, Vc: Το πλάτος της μέγιστης τάσης που μπορεί να παράγει το DAC, Vpp: Το πλάτος της τάσης του παραγόμενου κύματος από κορυφή σε κορυφή, nm: Ο αριθμός της διεύθυνσης του στοιχείου, Nm: Ο συνολικός αριθμός των στοιχείων του πίνακα (μέγεθος του πίνακα), NBit: Ο αριθμός των bit του κάθε στοιχείου.)

Στο συγκεκριμένο παράδειγμα το παραγόμενο κύμα θα έχει πλάτος 1V από κορυφή σε κορυφή και μια DC συνιστώσα πλάτους 1.65V, αν χρησιμοποιηθεί DAC 8bit 0-3.3V. Η DC συνιστώσα υπάρχει στο σχεδιασμό της γεννήτριας κυματομορφών για να αποφευχθεί η χρήση αρνητικών αριθμών και αρνητικών τάσεων στο DAC, με στόχο απλούστερο σχεδιασμό και οικονομία χώρου στο FPGA. Στα σχήματα 8α ως 8δ παρουσιάζονται πραγματικά στιγμιότυπα από απεικόνιση σε παλμογράφο τεσσάρων ημιτονικών κυματομορφών που παρήχθησαν  στη γεννήτρια κυματομορφών με πίνακα διαφορετικού μεγέθους για την κάθε μία.

Για τη δημιουργία του αθροίσματος είναι δυνατό να χρησιμοποιηθεί ένας μόνο πίνακας. Σε αυτή την περίπτωση το πλάτος του κύματος για κάθε συχνότητα που συμμετέχει στο άθροισμα θα διαμορφώνεται με επαναλήψεις του όρου. Εναλλακτικά μπορούν να κατασκευαστούν πίνακες που ο κάθε ένας θα αντιστοιχεί σε κύμα με διαφορετικό πλάτος. Οι δύο προσεγγίσεις είναι ισοδύναμες γιατί παρουσιάζουν σχεδόν την ίδια πολυπλοκότητα στο σχεδιασμό, ενώ ο χώρος που καταλαμβάνεται στο FPGA σε κάθε περίπτωση εξαρτάται από τις παραμέτρους του αθροίσματος. Επίσης είναι δυνατό να είναι αποθηκευμένο μόνο το ένα τέταρτο της περιόδου (0-π/2) αφού τα υπόλοιπα τρία τέταρτα παρουσιάζουν συμμετρίες ως προς αυτό. Η παραγωγή του κύματος σε αυτή την περίπτωση απαιτεί επιπλέον βαθμίδα σύνθεσης που αυξάνει την πολυπλοκότητα. Τα παραπάνω κυκλώματα συμπεριλαμβάνονται στη βαθμίδα Waveform Option της κάθε γεννήτριας. Οι πίνακες αποτελούν τη ROM του συστήματος και συμπεριλαμβάνονται στη βαθμίδα Waveforms. Στο σχεδιασμό επιλέχθηκε οι πίνακες να είναι Logic Vectors ώστε να μπορούν όλες οι γεννήτριες να έχουν ταυτόχρονα πρόσβαση σε αυτούς σε οποιαδήποτε διεύθυνση χρειάζεται. Κάτι τέτοιο δε θα ήταν δυνατό αν οι πίνακες ήταν αποθηκευμένοι σε RAM Block.

 

     Σχήμα 7. Περίοδος ημιτονικού κύματος                     πίνακα 1x64 byte.

 

Σχήμα 8α. Πίνακας 1x4 Bytes.

Σχήμα 8α. Πίνακας 1x4 Bytes.

Σχήμα 8γ. Πίνακας 1x16 Bytes.

Σχήμα 8δ. Πίνακας 1x256 Bytes.

Σχήμα 9. Διάγραμμα αθροιστών και               καταχωρητών της γεννήτριας               κυματομορφών.

 

Όπως αναφέρθηκε παραπάνω, η κάθε γεννήτρια παράγει τη δική της ημιτονική κυματομορφή ανεξάρτητα από τις άλλες. Για τις συνημιτονικές κυματομορφές δεν υπάρχουν ξεχωριστοί πίνακες, αλλά η διευθυνσιοδότηση των πινάκων είναι μετατοπισμένη κατά το ένα τέταρτο του μεγέθους του πίνακα που αντιστοιχεί σε π/2. Η στιγμιαία τιμή του κύματος κάθε γεννήτριας εισάγεται στους καταχωρητές f1fn στο ανερχόμενο μέτωπο του παλμού του ρολογιού συστήματος (σχήμα 9). Οι καταχωρητές αυτοί έχουν το ίδιο μέγεθος με τα διανύσματα του πίνακα (8bit στο συγκεκριμένο παράδειγμα).

Για λόγους ευταξίας, η σειρά των ημίτονων αθροίζεται ξεχωριστά από τη σειρά των συνημίτονων και το κάθε άθροισμα εισάγεται σε έναν καταχωρητή στο κατερχόμενο μέτωπο του παλμού του ρολογιού συστήματος (σχήμα 9). Ο καταχωρητής του κάθε αθροίσματος έχει μέγεθος ανάλογο με το πλήθος των όρων του αθροίσματος, ώστε να μη προκύπτει κρατούμενο (carry) από την άθροιση. Αν για παράδειγμα το άθροισμα των ημίτονων (ή των συνημίτονων) περιέχει έως 16 όρους των 8bit ο καταχωρητής του αθροίσματος θα πρέπει να είναι 12bit. Κατά την άθροιση λαμβάνεται υπόψη ότι κάθε κύμα έχει και DC τάση και ότι το άθροισμα πρέπει και αυτό να έχει DC τάση και γίνονται οι ανάλογες διορθώσεις.

Στη συνέχεια αθροίζονται οι δύο καταχωρητές και η σταθερά και το αποτέλεσμα εισάγεται στον καταχωρητή εξόδου στο ανερχόμενο μέτωπο του παλμού του ρολογιού συστήματος (σχήμα 9).  Το μέγεθος του καταχωρητή εξόδου εξαρτάται από τη σταθερά, ώστε να μη προκύπτει κρατούμενο και από αυτή την άθροιση. Στον καταχωρητή εξόδου είναι χρήσιμο να τοποθετηθεί και ένας συγκριτής – περιοριστής, ώστε να υπάρχει δυνατότητα να περιορίζεται το πλάτους εξόδου εντός ορίων ή να ενημερώνεται κάποια σημαία όταν το πλάτος ξεπεράσει κάποιες οριακές τιμές. Και σε αυτή την άθροιση λαμβάνεται υπόψη ότι κάθε σειρά έχει και DC τάση και ότι το άθροισμα πρέπει και αυτό να έχει DC τάση ξεχωριστά από τη σταθερά και γίνονται οι ανάλογες διορθώσεις.  Η εισαγωγή των δεδομένων στους καταχωρητές σε διαφορετική φάση του παλμού του ρολογιού (μορφή τεχνικής pipeline) προτιμήθηκε στο σχεδιασμό, για να εξασφαλιστεί ότι θα έχουν ολοκληρωθεί οι αλλαγές σε όλα τα λογικά κυκλώματα που υλοποιούν τη διάταξη πριν οριστικοποιηθούν τα αποτελέσματα.

 

Στα σχήματα 10α και 10β παρουσιάζονται στιγμιότυπα από απεικόνιση σε παλμογράφο δύο διαφορετικών κυματομορφών που παρήχθησαν  στη γεννήτρια κυματομορφών. Οι όροι του αθροίσματος στην κυματομορφή του σχήματος 10α επιλέχτηκαν ώστε να μοιάζει με το θεωρητικό παράδειγμα του σχήματος 5. Για την κυματομορφή του σχήματος 10β επιλέχτηκαν τυχαίοι όροι, με στόχο να προκύψει αρκετά πολύπλοκη.

Η γεννήτρια κυματομορφών μπορεί να χρησιμοποιηθεί  ώστε να παράγει μουσικές νότες και να προσομοιώνει μουσικά όργανα. Κάθε μουσικό όργανο έχει τον δικό του χαρακτηριστικό ήχο, ώστε να μπορούμε να το ξεχωρίζουμε από τα άλλα μουσικά όργανα και να το αναγνωρίζουμε. Το χαρακτηριστικό αυτό ονομάζεται χροιά ή τόνος του οργάνου και οφείλεται στις αρμονικές που παράγει και την ένταση που κάθε αρμονική συμμετέχει στην τελική διαμόρφωση του ήχου. Έτσι είναι δυνατό να προσδιοριστεί το φάσμα συχνοτήτων για κάθε όργανο και κάθε νότα να αναπαρασταθεί με μια μαθηματική έκφραση βασισμένη στις σειρές Φουριέ. Η παραπάνω μαθηματική έκφραση μπορεί μετατραπεί σε ηλεκτρικό σήμα χρησιμοποιώντας τη γεννήτρια κυματομορφών που περιγράφηκε παραπάνω και στη συνέχεια, με κατάλληλη διάταξη (ενισχυτής, μεγάφωνο κλπ), να μετατραπεί σε ακουστικό σήμα. Ο τροποποιημένος σχεδιασμός της γεννήτριας κυματομορφών, ώστε να ανταποκρίνεται στις απαιτήσεις της παραγωγής μουσικού σήματος, παρουσιάζεται σε μπλοκ διάγραμμα στο σχήμα 11.

 

Σχήμα 11. Βασικός σχεδιασμός της γεννήτριας σύνθεσης μουσικού σήματος.

   Σχήμα 10α. Πραγματικό στιγμιότυπο           κυματομορφής του αθροίσματος:

g(t)=10sin2πft +3cos2π5ft +2cos2π8ft

(f = 434Hz).

 

   Σχήμα 10β. Πραγματικό στιγμιότυπο           κυματομορφής του αθροίσματος:

g(t)=10cos2πf1t +4cos2π2f1t +2cos2π3f1t

+4cos2π4f1t+2cos2π5f1t+4cos2π6f1t

+10sin2πf2 t +5sin2π2f2 t +3sin3πf2 t

+5sin2π4f2 t +3sin5πf2 t +5sin2π6f2 t

  (f1 = 579Hz), (f2 = 434Hz).

 

Σχήμα 12. Περίοδος ημιτονικών κυμάτων    των πινάκων της ROM του συστήματος.

 

Η βασικότερη τροποποίηση είναι ότι αφαιρέθηκαν οι γεννήτριες συνημίτονων. Η κάθε μία νότα συνθέτεται ξεχωριστά ως άθροισμα σειράς ημίτονων από 6 αρμονικές, τη θεμελιώδη και πέντε παράγωγες. Το αποτέλεσμα εισάγεται στον καταχωρητή της νότας, ώστε να υπάρχει δυνατότητα να αθροιστεί με τους καταχωρητές από τις υπόλοιπες νότες. Οι καταχωρητές που θα αθροιστούν στη συνέχεια και συνεπώς οι νότες που θα συμμετέχουν στην τελική διαμόρφωση του ήχου, καθορίζονται από εξωτερική παράμετρο, που στη συγκεκριμένη εφαρμογή είναι ένα πλήκτρο. Υπάρχει δηλαδή δυνατότητα ο τελικός ήχος να προέρχεται από μία μόνο νότα ή συνδυασμό περισσότερων (συγχορδίες). Επίσης προσαρμόστηκε μηχανισμός απόσβεσης της έντασης του ήχου (fade out), ώστε να δημιουργείται ακουστικό αποτέλεσμα χτυπήματος χορδής. Στη βαθμίδα Waveforms αποθηκεύτηκαν 9 πίνακες 1x64 στοιχείων 8 bit και κάθε πίνακας μπορεί να συνθέσει ένα ημιτονικό κύμα ορισμένου πλάτους, από 63mVpp ως 1Vpp με βήματα των 3dB (V0=1mV). Στο σχήμα 12 παρουσιάζεται η γραφική παράσταση της περιόδου των ημιτονικών κυμάτων όπως είναι αποθηκευμένα στους πίνακες για τη ROM του συστήματος.

Η αρχιτεκτονική του συστήματος θέτει μερικούς περιορισμούς, με αποτέλεσμα να υπάρχουν σε ορισμένες περιπτώσεις αποκλίσεις, τόσο στη δημιουργία της επιθυμητής θεμελιώδους συχνότητας και των αρμονικών, όσο και στο επιθυμητό ακουστικό αποτέλεσμα. Οι αποκλίσεις αυτές είναι δυνατό να εξαλειφθούν με διάφορους τρόπους, οι οποίοι θα παρουσιάζονται καθώς αναλύονται οι περιορισμοί.

 

Ο κυριότερος περιορισμός είναι η δημιουργία μιας συχνότητας με μεγάλη ακρίβεια. Η συχνότητα του ρολογιού του συστήματος είναι 50MHz και μία πλήρης περίοδος του ημιτονικού κύματος που χρησιμοποιείται στην εφαρμογή συντίθεται από 64 Bytes. Συνεπώς η μέγιστη συχνότητα (fm) ημιτονικού κύματος που είναι δυνατό να παραχθεί είναι:

fm=50·106/64=781,250Hz

Επειδή οι συχνότητες στη γεννήτρια παράγονται από τη διαίρεση της συχνότητας του ρολογιού με μια σταθερά (constant), η οποία είναι ακέραιος αριθμός, οι συχνότητες  που είναι δυνατό να συνθέσει το σύστημα (fp)  περιορίζονται στις τιμές που δίνει τοαποτέλεσμα της διαίρεσης της μέγιστης συχνότητας με τη σταθερά (constant):

fp=781,250/constant Hz

   Σχήμα 13. Απόκλιση που παρουσιάζουν                    οι νότες της γεννήτριας.

Σχήμα 14. Νότες που συντέθηκαν με έξι       αρμονικές και με τέσσερις αρμονικές.

 

Για τη σύνθεση μιας νότας χρησιμοποιούνται 6 αρμονικές (η θεμελιώδης συχνότητα και οι πέντε πρώτες παράγωγες), οι οποίες είναι ακέραια πολλαπλάσια μιας συχνότητας. Συνεπώς, για την παραγωγή των παράγωγων συχνοτήτων οι σταθερές που θα χρησιμοποιηθούν θα πρέπει να είναι αριθμοί που προκύπτουν από την τέλεια διαίρεση της σταθεράς της θεμελιώδους συχνότητας με τους ακέραιους 2, 3, 4, 5 και 6, ώστε να έχουν συχνότητες που θα είναι ακέραια πολλαπλάσια της θεμελιώδους. Άρα η ελάχιστη τιμή που μπορεί να πάρει η σταθερά της θεμελιώδους συχνότητας είναι το ελάχιστο κοινό πολλαπλάσιο των αριθμών 2, 3, 4, 5 και 6, το οποίο είναι 60 και οι δυνατές τιμές είναι ακέραια (n) πολλαπλάσια του 60. Αυτό μας περιορίζει ακόμα περισσότερο τις συχνότητες που μπορούν να παραχθούν για τη θεμελιώδη συχνότητα (ff):

ff=781,250/60n=13,020.833/n Hz (n = integer)

Στο σχήμα 13 παρουσιάζεται σε διάγραμμα η απόκλιση που παρουσιάζουν οι νότες της κλίμακας ΑΜ (la magore) που συντέθηκαν από τη γεννήτρια. Η απόκλιση αυτή είναι δύσκολο να διακριθεί από το ανθρώπινο αυτί αλλά γίνεται μεγαλύτερη όσο αυξάνει η θεμελιώδης συχνότητα μιας νότας, δηλαδή όσο πηγαίνουμε ψηλότερα στη μουσική κλίμακα, με αποτέλεσμα, να γίνεται αντιληπτή από ένα σημείο και μετά.

 

Η απόκλιση αυτή είναι δυνατό να περιοριστεί ή ακόμα και να εξαλειφθεί τελείως με κάποιες τεχνικές. Τα μουσικά όργανα δεν παρουσιάζουν το ίδιο φάσμα συχνοτήτων σε όλη τη μουσική κλίμακα που μπορούν να παίξουν. Συμβαίνει μάλιστα, όσο ψηλότερα πηγαίνουμε τόσο να περιορίζεται η ένταση των ανώτερων αρμονικών. Αυτό οφείλεται στις δυνατότητες δόνησης του οργάνου κατασκευαστικά, αλλά και σε περιορισμούς από μηχανήματα που συνεργάζονται με το μουσικό όργανο, με αποτέλεσμα τα μουσικά όργανα όταν παίζουν υψηλές νότες να αλλάζει η χροιά τους και να είναι σχετικά δύσκολη η αναγνώρισή τους. Υπάρχει συνεπώς η δυνατότητα σε υψηλές νότες να μη γίνεται χρήση και των έξι αρμονικών, αλλά μόνο τεσσάρων. Κάτι τέτοιο διαμορφώνει το ελάχιστο κοινό πολλαπλάσιο από 60 σε 12, με αποτέλεσμα να είναι μεγαλύτερος ο αριθμός των τιμών που μπορούν να επιτευχθούν για τη θεμελιώδη συχνότητα. Στο σχήμα 14 παρουσιάζεται σε διάγραμμα η απόκλιση που έχουν οι νότες που συντέθηκαν από τη γεννήτρια με έξι αρμονικές για ολόκληρο το εύρος της κιθάρας (κόκκινα σημεία) και με τέσσερις αρμονικές για τις τρεις τελευταίες νότες (πράσινα σημεία).

Είναι επίσης δυνατό να χρησιμοποιηθεί χαμηλότερη ανάλυση για την παραγωγή του κύματος, κατασκευάζοντας κατάλληλους πίνακες, χωρίς να έχει αυτό σημαντικές επιπτώσεις στην ποιότητα των κυματομορφών. Στο σχήμα 8γ φαίνεται άλλωστε ότι από 16 Byte και πάνω η ποιότητα της ημιτονικής κυματομορφής είναι ικανοποιητική. Με βάση τους υπολογισμούς που παρουσιάστηκαν παραπάνω μπορούμε εύκολα να καταλήξουμε στο συμπέρασμα ότι για κάθε υποδιπλασιασμό της ανάλυσης διπλασιάζεται η διακριτική ικανότητα του συστήματος για παραγωγή συχνοτήτων.

       Σχήμα 15. Διάγραμμα φάσματος                        συχνοτήτων βιολιού.

Σχήμα 16. Διάγραμμα φάσματος                 συχνοτήτων σαξόφωνου.

 

Η αρχιτεκτονική του συστήματος, επίσης, επιτρέπει για την ίδια νότα, διαφορετικές αρμονικές να έχουν διαφορετική ανάλυση. Στο σχήμα 12 μπορούμε να παρατηρήσουμε ότι καθώς ελαττώνεται το πλάτος του ημιτονικού κύματος υπάρχει λιγότερη πληροφορία για τη σύνθεσή του. Είναι εφικτό, για τα χαμηλά πλάτη να γίνεται χρήση μικρότερων αναλύσεων, αφού ούτως ή άλλως υπάρχει χαμένη πληροφορία και στις υψηλές αναλύσεις. Και αυτή η τεχνική είναι δυνατό να βελτιώσει τη διακριτική ικανότητα του συστήματος για παραγωγή συχνοτήτων, αυξάνει όμως την πολυπλοκότητά του και συνεπώς τον χώρο που καταλαμβάνει ο σχεδιασμός στο FPGA. Υπάρχει ακόμα η δυνατότητα, εφόσον το επιτρέπει το υλικό, να γίνει χρήση των DCMs για την παραγωγή της συχνότητας συστήματος για τις γεννήτριες που συνθέτουν τις νότες, ώστε να αυξηθεί η ευελιξία της διάταξης στον τομέα της παραγωγής συχνοτήτων.

Σύμφωνα με τα διαγράμματα φάσματος συχνοτήτων του βιολιού, σαξόφωνου και της κιθάρας (σχήμα 15, 16 και 17) υπολογίστηκαν σειρές ημιτόνων και προσομοιώθηκαν ήχοι για το κάθε όργανο. Ο ήχος του βιολιού έχει σταθερή ένταση, η οποία εξαρτάται από την πίεση που ασκεί ο μουσικός στη χορδή με το δοξάρι καθώς το σέρνει σε αυτή. Επίσης είναι δυνατό να τροποποιηθεί σε μικρό βαθμό και η χροιά του ήχου, ανάλογα με τον τρόπο που «πατάει» το δοξάρι.

 

Ο ήχος του σαξόφωνου έχει και αυτός σταθερή ένταση η οποία εξαρτάται από τη δύναμη που φυσάει ο μουσικός στο στόμιο του οργάνου. Επίσης είναι δυνατό να τροποποιηθεί σε μεγάλο βαθμό και η χροιά του ήχου ανάλογα με τον τρόπο που φυσάει ή ανάλογα με το υλικό του στομίου (mouthpiece). Για αυτό το λόγο δεν υπάρχει ένα συγκεκριμένο φάσμα συχνοτήτων για το σαξόφωνο, ούτε μια συγκεκριμένη χροιά, αλλά εξαρτώνται από τον μουσικό και είναι το χαρακτηριστικό γνώρισμα του κάθε ενός. Τα χαρακτηριστικά αυτά είναι δυνατό να προσομοιωθούν και να παραχθούν από τη γεννήτρια ήχοι, παρόμοιοι με τον ήχο του βιολιού και του σαξόφωνου, ώστε να καλύψουν τη διαφορετικότητα ή ακόμα και να παρουσιάσουν καινούριες ιδιαιτερότητες.

Για την αναπαραγωγή ήχων κιθάρας σχεδιάστηκε μηχανισμός απόσβεσης του ήχου, όπως αναφέρθηκε παραπάνω, όπου γίνεται ελάττωση της έντασης του ήχου (fade out) καθώς συνθέτονται οι νότες στις γεννήτριές τους. Για να υλοποιηθεί αυτή  η λειτουργία το πλάτος της κυματομορφής κάθε αρμονικής ελαττώνονταν, βάση κάποιας χρονικής συνάρτησης, επιλέγοντας σε κατάλληλα χρονικά σημεία διαφορετικό πίνακα. Η συνάρτηση βάση της οποίας γίνεται η ελάττωση της έντασης του ήχου προήλθε πειραματικά από το ακουστικό αποτέλεσμα σε συνδυασμό με την εικόνα του διαγράμματος (σχήμα 17). Στο σχήμα 18 παρουσιάζεται το διάγραμμα που δείχνει τη μείωση του πλάτους της θεμελιώδους συχνότητας μιας νότας σε συνάρτηση με το χρόνο που αναπαράγεται.

 

       Σχήμα 17. Διάγραμμα φάσματος                        συχνοτήτων κιθάρας.

Figure 18. Διάγραμμα μείωσης πλάτους.

 

Στην πραγματικότητα δεν υπάρχει κάποιος συγκεκριμένος ρυθμός, γιατί κάθε τύπος κιθάρας έχει κατασκευαστικές ιδιαιτερότητες, με αποτέλεσμα να παρουσιάζονται διαφορές στην απόσβεση του ήχου, όπως και στη χροιά, οι οποίες είναι αντιληπτές. Με κατάλληλες αλλαγές στις παραμέτρους της γεννήτριας κυματομορφών είναι δυνατό να επιτευχθούν ήχοι κατάλληλοι, ώστε να καλύψουν τη διαφορετικότητα ή ακόμα και να παρουσιάσουν καινούριες ιδιαιτερότητες. Επίσης είναι δυνατό να ενσωματωθούν στο σχεδιασμό ψηφιακά φίλτρα για προσομοίωση διάφορων εφέ για ηλεκτρική κιθάρα που χρησιμοποιούνται από μουσικούς.

Στη συγκεκριμένη εφαρμογή τροποποιήθηκε ο περιοριστής της βαθμίδας εξόδου ώστε να συμπεριφέρεται σαν Overdrive. Το Overdrive είναι ένα εφέ που χρησιμοποιείται κατά κόρο από μουσικούς ηλεκτρικής κιθάρας. Η λειτουργία του συγκεκριμένου εφέ βασίζεται στην υπεροδήγηση των βαθμίδων προενίσχυσης, ώστε να οδηγηθούν σε κόρο. Αυτό έχει σαν αποτέλεσμα να ψαλιδίζονται οι κορυφές στην κυματομορφή του ήχου και να παράγεται παραμορφωμένος.

Στα σχήματα 19α, 19β και 19γ παρουσιάζονται πραγματικά στιγμιότυπα κυματομορφών ήχων βιολιού, σαξόφωνου και κιθάρας και στο σχήμα 19δ παρουσιάζεται πραγματικό στιγμιότυπο κυματομορφής ήχου κιθάρας μετά την εφαρμογή του ψηφιακού Overdrive, όπως έγινε η σύνθεσή τους από τη γεννήτρια κυματομορφών.

 

Σχήμα 19α. Βιολί.

Σχήμα 19β. Σαξόφωνο.

Σχήμα 19γ. Κιθάρα.

 

     Για τη μετατροπή του ψηφιακού σήματος σε αναλογικό χρησιμοποιήθηκε ένα απλό R2R Ladder, το θεωρητικό κύκλωμα του οποίου παρουσιάζεται στο σχήμα 20. Αυτή η μέθοδος μετατροπής ψηφιακού σήματος σε αναλογικό παρουσιάζει μικρές αποκλίσεις στην ακρίβεια της μετατροπής και έχει υψηλή αντίσταση εξόδου. Οι αποκλίσεις αυτές δεν είναι σημαντικές για τη συγκεκριμένη εφαρμογή στα στάδια που αναπτύχθηκε. Επίσης ο παλμογράφος που χρησιμοποιήθηκε για τις καταγραφές έχει εκ κατασκευής υψηλή αντίσταση εισόδου όπως και η διάταξη που χρησιμοποιήθηκε για ενίσχυση του ήχου και αναπαραγωγή. Για τους παραπάνω λόγους δεν ήταν απαραίτητο να γίνει χρήση DAC με καλύτερα χαρακτηριστικά.

Στο σχήμα 21 παρουσιάζονται τα στατιστικά που αφορούν τη χρήση του FPGA για την υλοποίηση της γεννήτριας κυματομορφών και για το σύστημα σύνθεσης μουσικού σήματος. Η υλοποίηση του συστήματος σύνθεσης μουσικού σήματος παρουσιάζει σημαντικά αυξημένες απαιτήσεις, αφού έχει καταλάβει σχεδόν ολόκληρο το FPGA. Η εφαρμογή από την οποία έγινε η εξαγωγή της αναφοράς συμπεριλαμβάνει: οκτώ νότες με αντίστοιχα πλήκτρα, τέσσερα διαφορετικά όργανα (ένα εκ των οποίων είναι η κιθάρα με το σύστημα απόσβεσης ήχου) με επιλογή από δύο διακόπτες και τέσσερις διαφορετικές ρυθμίσεις overdrive με επιλογή επίσης από δύο διακόπτες.

 

Σχήμα 19δ. Κιθάρα με ψηφιακό Overdrive

 

Σχήμα 20. R2R Ladder που     χρησιμοποιήθηκε ως DAC.

 

 

SOURCES  

  • Kendall Milar (FAST FOURIER TRANSFORM ANALYSIS OF OBOES, OBOE REEDS AND OBOISTS: WHAT MATTERS MOST TO TIMBRE?)

  • XILINX

  • http://www.feilding.net/

  • http://www.phy.mtu.edu/

  • http://home.cc.umanitoba.ca/

  • http://computermusicresource.com/

  • http://www.philbarone.com/blog/saxophone-news/

 

  Σχήμα 21. Χρήση του FPGA για την υλοποίηση της γεννήτριας κυματομορφών και το σύστημα σύνθεσης μουσικού                   σήματος.

     

Σας ευχαριστώ για την υποστήριξή σας ώστε να γίνει η ιστοσελίδα μου καλύτερη.

© 2017 Πορλιδάς Δημήτριος