THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Συστήματα Πολυμέσων => Topic started by: lars on December 15, 2006, 00:30:03 am



Title: Εργασία 2006-7
Post by: lars on December 15, 2006, 00:30:03 am
Μόλις κατέβασα τα 3 αρχεία που βρίσκονται στο eTHMMY.
Επειδή δεν παρακολούθησα τα 2 τελευταία μαθήματα, τι ακριβώς ειπώθηκε για την εργασία φέτος?


Title: deleted
Post by: BOBoMASTORAS on December 15, 2006, 00:38:11 am
deleted


Title: Re: Εργασία 2006-7
Post by: lars on December 15, 2006, 01:35:07 am
Thanx Bob.
Μια ακόμα απορία: το μάθημα της Δευτέρας θα γίνει κανονικά 9-11, έτσι?
Είδα ότι θα γίνει και εργαστήριο στις Βάσεις Δεδομένων την ίδια ώρα και δε ξέρω που να πάω!


Title: Re: Εργασία 2006-7
Post by: elisabeth on December 15, 2006, 02:00:58 am
νομιζω οτι τη δευτερα πολυμεσα θα γινουν 11 με 12 αιθουσα 6.Αν το εχει ακουσει και καποιος αλλος ας το επιβεβαιωσει


Title: Re: Εργασία 2006-7
Post by: marauber on December 15, 2006, 04:36:04 am
Κάθε Δευτέρα πλέον τα Πολυμέσα θα γίνονται 11-12 αντί για 9-11.


Title: Re: Εργασία 2006-7
Post by: lars on December 15, 2006, 09:25:11 am
Επομένως ΟΚ..
Ευχαριστώ!


Title: Re: Εργασία 2006-7
Post by: chggr005 on December 15, 2006, 15:28:29 pm
-κατεβάζουμε το πρότυπο ΑΑC από το iso (μάλλον δε θα χρηαστεί για την εργασία, αλλά είναι καλό για να κατανοήσουμε το πρώτυπο.
Αυτό βασικά δεν θα το κάνουμε. Δοκίμασα να πάω στην iso να κατεβάσω το πρότυπο, αλλά ήθελαν πληρωμή!!! Το πρότυπο είναι αυτά τα τρία αρχεία που βρίσκονται στο eTHMMY. Είναι πάντως ένα πολύ τεχνικό κείμενο, σε σημείο που ορισμένες φορές είναι δύσκολο κανείς να καταλάβει τι ακριβώς λέει...


Title: Re: Εργασία 2006-7
Post by: lars on December 22, 2006, 21:04:59 pm
Συνεχίζω να μη βλέπω την εκφώνηση της εργασίας ανεβασμένη!
Είπε κάτι την Τετάρτη?


Title: Re: Εργασία 2006-7
Post by: chggr005 on December 22, 2006, 23:32:37 pm
Βασικά περιέγραψε τι περίπου θα κάνουμε και πως να το κάνουμε. Νομίζω πως ήταν από τα σημαντικότερα μαθήματα όσον αφορά την εργασία. Όποιος έχει σκάνερ ας ανεβάσει τις σημειώσεις για να τις έχουν και όσοι δεν μπόρεσαν να έρθουν στο μάθημα.

Η εκφώνηση απ' ότι μας είπε θα βγει στο eTHMMY το συντομότερο δυνατό...


Title: Re: Εργασία 2006-7
Post by: lars on December 23, 2006, 05:07:30 am
Όχι ρε γμτ. Αν μπορέσει κανένα καλό παιδί, ας τις ανεβάσει plz.. :)


Title: Re: Εργασία 2006-7
Post by: chggr005 on December 27, 2006, 23:08:15 pm
Όχι ρε γμτ. Αν μπορέσει κανένα καλό παιδί, ας τις ανεβάσει plz.. :)

Βασικά δεν έχω σκάνερ!
Όποιος άλλος μπορεί να βοηθήσει, ας το κάνει...


Title: Re: Εργασία 2006-7
Post by: Xristos on December 28, 2006, 20:10:25 pm
Για όποιον ενδιαφέρεται,η εκφώνηση της εργασίας έχει ανέβει στο eTHMMY.


Title: Re: Εργασία 2006-7
Post by: chggr005 on December 31, 2006, 11:31:35 am
Όχι ρε γμτ. Αν μπορέσει κανένα καλό παιδί, ας τις ανεβάσει plz.. :)
Lars, μην μασάς!
Μόλις κοίταξα την εκφώνηση της εργασίας και ό,τι μας είπε στην τάξη βρίσκεται εκεί μέσα!
Καλά κουράγια...


Title: Re: Εργασία 2006-7
Post by: lars on December 31, 2006, 16:35:25 pm
ΟΚ, thanx Χρήστο!
Καλά να περάσετε όλοι σήμερα!


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 01, 2007, 20:07:05 pm
Καλή χρονιά σε όλους παιδιά!
Και καλά κουράγια με την εργασία...

Για βοήθεια σας επισυνάπτω τον source code μερικών opensource υλοποιήσεων του AAC.
Δεν ξέρω κατά πόσο μπορούν να βοηθήσουν, αλλά το να τους ρίξουμε μία ματιά δεν κάνει και κακό...


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 02, 2007, 12:29:35 pm
Λοιπόν, παίδες, πως πάει η εργασία?
Έχετε αρχίσει την υλοποίηση ή όχι ακόμη?

Εγώ ξεκίνησα την υλοποίηση του 1ου επιπέδου και σκέφτηκα να γράψω τα αποτελέσματα των προσπαθειών μου στο φόρουμ για να αρχίσουμε να ανταλλάσσουμε εμπειρίες και προτάσεις για την επίλυση της άσκησης!

Λοιπόν, υλοποίησα εξαρχής την SSC, η οποία δεν είναι και τόσο δύσκολη. Το θέμα όμως είναι πως θα μπορέσουμε να τεστάρουμε ότι αυτή λειτουργεί σωστά. Το τεστάρισμα αυτό μπορεί να γίνει τρέχοντας τον ακόλουθο κώδικα:

Code:
>>a = zeros(2024,2);
>>b = zeros(2024,2);
>>for i=1:2048
>>b(i,:) = cos(2*pi*i/30);
>>end
>>c = 'OLS';
>>SSC(a,b,c)

ans =

OLS

>>c = 'ESH';
>>SSC(a,b,c)

ans =

LPS

>>c = 'LSS';
>>SSC(a,b,c)

ans =

ESH

>>c = 'LPS';
>>SSC(a,b,c)

ans =

OLS
Αυτό που κάνει ο παραπάνω κώδικας, είναι να γεμίσει και τα δύο κανάλια του πίνακα nextFrameT με ένα απλό ημίτονο. Στην συνέχεια καλεί την συνάρτηση SSC για διάφορες τιμές του prevFrameType.

Λογικά, εφόσον το επόμενο frame αποτελείται από ένα απλό ημίτονο, θα πρέπει να κωδικοποιηθεί με τύπο frame OLS - Only Long Sequence, κι αυτό διότι κατά την διάρκεια του frame διατηρούνται αμετάβλητα τα φασματικά χαρακτηριστικά του.
Τώρα, εάν το προηγούμενο frame είναι τύπου OLS, τότε επειδή και το επόμενο frame είναι OLS, λογικά το τρέχον frame θα είναι και πάλι OLS. Αντίστοιχα, εάν το προηγούμενο frame είναι ESH, επειδή το επόμενο είναι OLS, το τρέχον θα πρέπει να είναι LPS. Τέλος, στην περίπτωση που το προηγούμενο frame είναι LSS ή LPS, τότε σύμφωνα με την θεωρία το τρέχον θα πρέπει να είναι ESH και OLS αντίστοιχα. Πράγματι, αυτά τα αποτελέσματα μας δίνει η συνάρτηση.

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

Code:
>>a = zeros(2024,2);
>>b = zeros(2024,2);
>>b = wgn(2048,2,2);
>>c = 'OLS';
>>SSC(a,b,c)

ans =

LSS

>>c = 'ESH';
>>SSC(a,b,c)

ans =

ESH

>>c = 'LSS';
>>SSC(a,b,c)

ans =

ESH

>>c = 'LPS';
>>SSC(a,b,c)

ans =

OLS

Ερώτηση κρίσεως: στην όλη διαδικασία, πού χρειάζεται το frameT?
Όπως είδατε στα παραπάνω το frameT δεν χρειάστηκε και μονίμως ήταν ίσο με έναν πίνακα μηδενικών 2048x2.

Τέλος, να επισημάνω πως στην σελίδα 15 της εκφώνησης νομίζω πως έχει λάθος εκεί που περιγράφει την συνάρτηση filterbank. Στο frameF θα έπρεπε να λέει frameType = OLS|LSS|LPS και όχι winType. Το ίδιο ισχύει και για την επόμενη πρόταση.


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 02, 2007, 18:22:06 pm
Το frameT χρειαζεται για να καθορισεις ποιο θα ειναι το τελικο αποτελεσμα της συνάρτησης ssc. Αν δεις στην εκφωνηση σελ. 5 πρεπει να λεει τις διαφορες περιπτωσεις για τις εισοδους της συναρτησης ssc. Μια απο αυτες τις εισοδους ειναι και το frameT. Μου φαινεται...


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 02, 2007, 19:40:59 pm
Την υλοποιησα και εγω. Οντως δεν ηταν κατι το τρομερο. Και οντως δεν χρησιμοποπιησα ουτε και εγω το frameT. Αυτη την στιγμη η απορια ειναι ζωγραφισμενη στο προσωπο μουμ απλα βαριεμαι τα smileys :P...

Εχω μια αλλη απορια: εχουμε δυο καναλια. Δηλαδη σαν να λεμε αριστερο και δεξι. Αυτα θα υποσου ξεχωριστα την επεξεργασια, σωστα; Δεν θα πρεπει να επιστρεφουμε δυο frameTypes;


Title: Re: Εργασία 2006-7
Post by: poumpa on January 02, 2007, 20:00:46 pm
Και εγώ συμφωνώ. Το frameT δεν χρειάζεται πουθενά!
Μάλλον θα πρέπει να το πούμε και στον Ντελόπουλα ο οποίος έχει και ...ιστορία σε κάτι τέτοια!

Όσο για την SSC και γω τα ίδια βγάζω με τον chggr005.

Εχω μια αλλη απορια: εχουμε δυο καναλια. Δηλαδη σαν να λεμε αριστερο και δεξι. Αυτα θα υποσου ξεχωριστα την επεξεργασια, σωστα; Δεν θα πρεπει να επιστρεφουμε δυο frameTypes;

[Α ρε Στρατή! Πριν προλάβεις κ το δεις!!!:] Στη σελίδα 6 της εκφώνησης της εργασίας περιγράφει πως θα επιλέξουμε τον κοινό τελικό τύπο από τους τύπους των 2 καναλιών :P :P :P


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 02, 2007, 20:54:00 pm
Ok guys, απλά ήθελα κι εγώ επιβεβαίωση ότι δεν χρειάζεται το FrameT.
Εφόσον βγάζουμε τα ίδια αποτελέσματα, λογικά οι συναρτήσεις μας είναι σωστές! :)

Την filterBank και την iFilterBank τις προσπαθήσατε? Κανένα αποτέλεσμα?


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 02, 2007, 22:59:15 pm
Και εγώ συμφωνώ. Το frameT δεν χρειάζεται πουθενά!
Μάλλον θα πρέπει να το πούμε και στον Ντελόπουλα ο οποίος έχει και ...ιστορία σε κάτι τέτοια!

Όσο για την SSC και γω τα ίδια βγάζω με τον chggr005.

Εχω μια αλλη απορια: εχουμε δυο καναλια. Δηλαδη σαν να λεμε αριστερο και δεξι. Αυτα θα υποσου ξεχωριστα την επεξεργασια, σωστα; Δεν θα πρεπει να επιστρεφουμε δυο frameTypes;

[Α ρε Στρατή! Πριν προλάβεις κ το δεις!!!:] Στη σελίδα 6 της εκφώνησης της εργασίας περιγράφει πως θα επιλέξουμε τον κοινό τελικό τύπο από τους τύπους τον 2 καναλιών :P :P :P

Καλα ρε μη βαρας... Δεν το διαβασα και τοσο καλα!


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 03, 2007, 03:40:43 am
Ερωτηση: μηπως στην συγκριση των sq και dsq, το δευτερο πρεπει να ειναι διαφορετικο το κατωφλι; Αν υποθεσουμε οτι το sq, εκτος αν ειναι πολυ εξω, θα ειναι γυρω απο το 10^-3(λιγο μεγαλυτερο ή λιγο μικροτερο), πως περιμενουμε το dsq να ειναι μεγαλυτερο απο 10;

Εμενα οντως για αυτο δεν δουλευε. Το εβαλα 1 και δουλεψε.


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 03, 2007, 04:37:17 am
Οσον αφορα το filterbank προφανως εχεις δικιο Χρηστο.


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 03, 2007, 11:24:37 am
Ερωτηση: μηπως στην συγκριση των sq και dsq, το δευτερο πρεπει να ειναι διαφορετικο το κατωφλι; Αν υποθεσουμε οτι το sq, εκτος αν ειναι πολυ εξω, θα ειναι γυρω απο το 10^-3(λιγο μεγαλυτερο ή λιγο μικροτερο), πως περιμενουμε το dsq να ειναι μεγαλυτερο απο 10;

Εμενα οντως για αυτο δεν δουλευε. Το εβαλα 1 και δουλεψε.
Εμένα πάντως μου δούλεψε κανονικά με 10^-3 και 10!
Αυτό που κατάλαβα εγώ είναι ότι το dsl^2 μετράει το πόσο απότομη είναι η εναλλαγή από την μία τιμή δείγματος στην άλλη, γι' αυτό και ουσιαστικά αποτελεί μέτρο σύγκρισης της τιμής ενός δείγματος με τον μέσο όρο των προηγούμενων.

Οπότε ουσιαστικά κωδικοποιείς με ESH όταν συντρέχουν ταυτόχρονα οι εξής δύο λόγοι:
α) Το συγκεκριμένο δείγμα έχει μεγάλη ενέργεια
β) η μετάβαση από το προηγούμενο στο τρέχον δείγμα είναι πολύ απότομη.


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 03, 2007, 11:29:46 am
Λοιπόν, δοκίμασα χθες βράδυ να φτιάξω την AACoder1 και τα πράγματα πήγαν αρκετά καλά (μου φαίνεται)  ;D. Παρακάτω θα παραθέσω ένα κομμάτι κώδικα για να μπορέσουμε να τεστάρουμε αυτήν τη συνάρτηση. Για αρχή ας φτιάξουμε τα δύο wav αρχεία, τα οποία στην συνέχεια θα περάσουμε στην συνάρτηση:

Code:
>> test1 = wgn(204800,2,2);
>> wavwrite(test1,48000,32,'noise');
>> test1 = zeros(204800,2);
>> for i=1:204800
test1(i,1) = cos(2*pi*i/30);
test1(i,2) = cos(2*pi*i/30);
end
>> wavwrite(test1,48000,32,'tone');

Υπόψιν ότι για την εγγραφή του ήχου σε αρχείο θα πρέπει να επιλέξουμε 32 bit και όχι λιγότερα, αλλιώς κουτσουρεύεται το αρχείο θορύβου μας.
Εάν περάσουμε τα δύο αρχεία στον AACoder1, προκύπτουν τα εξής αποτελέσματα. Θεωρούμε πως το πρώτο frame θα έχει ως previousFrameType = OLS και ότι η winType είναι παντού SINUS.

1) Για το αρχείο tone.wav.
Code:
>> a = AACoder1('tone',200000);
>> a(1)

ans =

    frameType: 'OLS'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

>> a(2)

ans =

    frameType: 'OLS'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

>> a(3)

ans =

    frameType: 'OLS'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

>> a(193)

ans =

    frameType: 'OLS'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]
Η κωδικοποίηση έδωσε 193 frames κωδικοποιημένα. Όλα τους έχουν frameType = OLS, πράγμα που περιμέναμε, αφού πρόκειται απλά για έναν τόνο.

2) Για το αρχείο noise.wav
Code:
>> a = AACoder1('noise',200000);
>> a(1)

ans =

    frameType: 'LSS'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

>> a(2)

ans =

    frameType: 'ESH'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

>> a(191)

ans =

    frameType: 'ESH'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

>> a(192)

ans =

    frameType: 'LPS'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

>> a(193)

ans =

    frameType: 'OLS'
      winType: 'SINUS'
      frameF0: [1024x1 double]
      frameF1: [1024x1 double]

Παρατηρούμε δηλαδή ότι η πλειοψηφία των frames έχει κωδικοποιηθεί ως ESH και μερικά μονάχα έχουν κωδικοποιηθεί ως OLS. Αυτό είναι απολύτως λογικό, διότι μπορεί να τύχει στην περιοχή εκείνη του σήματος να έχουμε σχετική ηρεμία...

Άλλος κανείς με τα ίδια αποτελέσματα?

Ερωτήσεις:
α) Στην συνάρτηση που μας δίνει τους συντελεστές Kaiser-Bessel (Kbdwin) τι τιμή alpha θα πρέπει να βάλουμε?
β) Στην AACoder1 τι winType θα πρέπει να χρησιμοποιήσουμε σε κάθε frame (Kaiser-Bessel ή Sinus)?
γ) Πως μπορεί το sl^2 να είναι μικρότερο από 10^-3 και το dsl^2 να βγαίνει μεγαλύτερο του 10?
δ) To dsl^2 δεν παίρνει και αρνητικές τιμές? Μήπως θα πρέπει να ελέγξουμε και για την περίπτωση που είναι μικρότερο του -10?


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 03, 2007, 15:46:18 pm
Ερωτηση: μηπως στην συγκριση των sq και dsq, το δευτερο πρεπει να ειναι διαφορετικο το κατωφλι; Αν υποθεσουμε οτι το sq, εκτος αν ειναι πολυ εξω, θα ειναι γυρω απο το 10^-3(λιγο μεγαλυτερο ή λιγο μικροτερο), πως περιμενουμε το dsq να ειναι μεγαλυτερο απο 10;

Εμενα οντως για αυτο δεν δουλευε. Το εβαλα 1 και δουλεψε.
Εμένα πάντως μου δούλεψε κανονικά με 10^-3 και 10!
Αυτό που κατάλαβα εγώ είναι ότι το dsl^2 μετράει το πόσο απότομη είναι η εναλλαγή από την μία τιμή δείγματος στην άλλη, γι' αυτό και ουσιαστικά αποτελεί μέτρο σύγκρισης της τιμής ενός δείγματος με τον μέσο όρο των προηγούμενων.

Οπότε ουσιαστικά κωδικοποιείς με ESH όταν συντρέχουν ταυτόχρονα οι εξής δύο λόγοι:
α) Το συγκεκριμένο δείγμα έχει μεγάλη ενέργεια
β) η μετάβαση από το προηγούμενο στο τρέχον δείγμα είναι πολύ απότομη.

Ναι αλλα το dsq δεν ειναι ποσοστο αλλα απολυτο μετρο. Προφανως δειχνει τον ρυθμο αλλαγης στην ενεργεια. Αλλα ρωταω μηπως το συγκρινομενο νουμερο δεν ειναι σωστο. Αν υποθεσουμε οτι το sq^2 κατα μεσο ορο εχει εστω τιμες κατω απο το 10^-3 για παραδειγμα(οπως για το ημιτονο που παρηγαμε), θα πρεπει ενα επομενο δειγμα να εχει sq2 10 και πανω, κατι το οποιο ποσοστιαια και οχι απολυτα ειναι αυξηση 10/10^-3=10000...


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 03, 2007, 15:55:09 pm
Τωρα 2-3 ερωτησεις, κυριως για επιβεβαιωση:
Στο tft doc, αυτο που περιγραφει το ψυχοακουστικο μοντελλο, εχει ,νομιζω αν θυμαμαι καλα στην σελ.53, τους τυπους για τα δυο παραθυρια μας. Στο ημιτονικο παραθυρο, μηπως ειναι ακριβως ιδιοι οι τυποι για μικροτερο του Ν/2 και του Ν;

Επισης στην iFilterbank, τα 2*448 δειγματα στην αρχ και στο τελος, αφου στην filterbank τα αγνοουμε, τα βαζουμε και εμεις οτι να ναι, ητοι 0 ή 1;


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 03, 2007, 16:12:31 pm
Τωρα 2-3 ερωτησεις, κυριως για επιβεβαιωση:
Στο tft doc, αυτο που περιγραφει το ψυχοακουστικο μοντελλο, εχει ,νομιζω αν θυμαμαι καλα στην σελ.53, τους τυπους για τα δυο παραθυρια μας. Στο ημιτονικο παραθυρο, μηπως ειναι ακριβως ιδιοι οι τυποι για μικροτερο του Ν/2 και του Ν;
Ίδιοι πρέπει να είναι.
Σε κάθε περίπτωση όμως χρησιμοποιούμε τις συναρτήσεις από την ιστοσελίδα που μας έδωσαν.

Επισης στην iFilterbank, τα 2*448 δειγματα στην αρχ και στο τελος, αφου στην filterbank τα αγνοουμε, τα βαζουμε και εμεις οτι να ναι, ητοι 0 ή 1;
Βασικά κι εγώ έτσι νομίζω. Στην δικιά μου υλοποίηση τα έβαλα ίσα με 0. Δεν ξέρω κατά πόσο αυτό παίζει ρόλο στην διαδικασία κωδικοποίησης/αποκωδικοποίησης..

Κανείς καμιά ιδέα για το πως θα βρούμε το SNR?


Title: Re: Εργασία 2006-7
Post by: poumpa on January 03, 2007, 18:18:01 pm
Ερωτήσεις:
α) Στην συνάρτηση που μας δίνει τους συντελεστές Kaiser-Bessel (Kbdwin) τι τιμή alpha θα πρέπει να βάλουμε?
β) Στην AACoder1 τι winType θα πρέπει να χρησιμοποιήσουμε σε κάθε frame (Kaiser-Bessel ή Sinus)?
γ) Πως μπορεί το sl^2 να είναι μικρότερο από 10^-3 και το dsl^2 να βγαίνει μεγαλύτερο του 10?
δ) To dsl^2 δεν παίρνει και αρνητικές τιμές? Μήπως θα πρέπει να ελέγξουμε και για την περίπτωση που είναι μικρότερο του -10?


Οι παράμετροι για το Kaizer μάλλον δεν έχουν σημασία. Αρκεί να χρησιμοποιείς συνέχεια τους ίδιους για να μπορέσεις ξαναφτιάξεις το σήμα μετά τους mdct και imdct. Εγώ δοκιμές έχω κάνει μόνο με το sinus προς το παρών.
Το ίδιο και με το winType (νομίζω το αναφέρει και στην εργασία κάπου)

Όσο για το sl_2 στην εκφώνηση λέει ότι πρέπει να είναι μεγαλύτερο του 10^-3 κ όχι μικρότερο όπως έγραψες...
Για το dsl^2 έχω και εγώ την ίδια απορία.

Πάντως για να τεστάρεις την AACoder1 δεν ξέρω αν αρκεί να βλέπεις τα αποτελέσματα του struct που επιτρέφει...
Εγώ πήρα ένα κομμάτι από ενα stereo wav αρχείο το πέρασα από την AACoder1 και μετα από την iAACoder1 και άκουσα το αποτέλεσμα. Θα πρέπει να είναι ίδιο ακριβώς αφού ουσιαστικά δεν κάνουμε συμπίεση (ακόμα) γιατί απλώς μετασχηματίζουμε το σήμα με τον mdct και στην συνέχεια το επανασυνθέτουμε με τον imdct.
Το μόνο πρόβλημα είναι ότι πρέπει να χρησιμοποιηθεί αρχείο που να "έχει" όλους τους τύπους frame (LPS,OLS,LSS,ESH) για να είναι ολοκληρωμένο το τεσταρισα. Δυστυχώς δεν βρήκα ακόμα τέτοιο αρχείο κ έτσι έχω δοκιμάσει μόνο για OLS.


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 03, 2007, 19:09:16 pm
Εγω βαριομουνα να τα πολυδιαβαζω και το υλοποιησα απο το πρωτοκολλο. Αλλα τελος παντων, για σιγουρια εχεις δικιο Χρηστο. Καλυτερα απο την ιστοσελιδα. Θαναση, οταν λες και εσυ για το dsq εχεις απορια, το εβαζες και εσυ διαφορετικο του 10 το κατωφλι;


Title: Re: Εργασία 2006-7
Post by: poumpa on January 03, 2007, 19:20:00 pm
Εγω βαριομουνα να τα πολυδιαβαζω και το υλοποιησα απο το πρωτοκολλο. Αλλα τελος παντων, για σιγουρια εχεις δικιο Χρηστο. Καλυτερα απο την ιστοσελιδα. Θαναση, οταν λες και εσυ για το dsq εχεις απορια, το εβαζες και εσυ διαφορετικο του 10 το κατωφλι;

Οχι το κατωφλι το εχω 10. Για το -10 εχω απορια κ εγω


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 03, 2007, 20:25:56 pm
Οι παράμετροι για το Kaizer μάλλον δεν έχουν σημασία. Αρκεί να χρησιμοποιείς συνέχεια τους ίδιους για να μπορέσεις ξαναφτιάξεις το σήμα μετά τους mdct και imdct. Εγώ δοκιμές έχω κάνει μόνο με το sinus προς το παρών.
Κι εγώ μόνο με το sinus έκανα δοκιμές και μπορώ να πω ότι βγήκαν αρκετά καλές. Πάντως εάν κοιτάξεις, το alpha της Kaiser παίζει αρκετά μεγάλο ρόλο στην μορφή που θα έχει το παράθυρο. Οπότε ίσως να πρέπει να μας δοθεί ή να υπολογίζουμε με κάποιο τρόπο το βέλτιστο. Και επίσης, όταν λέμε παράθυρο Kaiser, αυτό δεν λέει απολύτως τίποτα. Θα πρέπει να καθορίσουμε και συγκεκριμένη τιμή alpha (ή beta στο Matlab), διότι από αυτήν εξαρτάται κατά πολύ η μορφή του παραθύρου.
Πχ. Δοκίμασε στο matlab να κατασκευάσεις ένα παράθυρο kaiser με beta=0.1 και με beta=100. Θα βγουν εντελώς διαφορετικά...

Πάντως σε αυτό που είπες, έχεις δίκιο. Αν χρησιμοποιήσουμε το ίδιο παράθυρο για κωδικοποίηση και αποκωδικοποίηση, τότε λογικά θα πρέπει τα αποτελέσματα να είναι σωστά.

Το ίδιο και με το winType (νομίζω το αναφέρει και στην εργασία κάπου)
Όσον αφορά το winType, λογικά θα πρέπει να υπάρχει κάποιος τρόπος καθορισμού του βέλτιστου τύπου παραθύρου. Δεν μπορεί απλά να βάζουμε στην τύχη όποιο παράθυρο θέλουμε. Μάλλον για διαφορετικές εισόδους θα χρειάζεται και διαφορετικό παράθυρο...

Πάντως για να τεστάρεις την AACoder1 δεν ξέρω αν αρκεί να βλέπεις τα αποτελέσματα του struct που επιτρέφει...
Εγώ πήρα ένα κομμάτι από ενα stereo wav αρχείο το πέρασα από την AACoder1 και μετα από την iAACoder1 και άκουσα το αποτέλεσμα. Θα πρέπει να είναι ίδιο ακριβώς αφού ουσιαστικά δεν κάνουμε συμπίεση (ακόμα) γιατί απλώς μετασχηματίζουμε το σήμα με τον mdct και στην συνέχεια το επανασυνθέτουμε με τον imdct.
Το μόνο πρόβλημα είναι ότι πρέπει να χρησιμοποιηθεί αρχείο που να "έχει" όλους τους τύπους frame (LPS,OLS,LSS,ESH) για να είναι ολοκληρωμένο το τεσταρισα. Δυστυχώς δεν βρήκα ακόμα τέτοιο αρχείο κ έτσι έχω δοκιμάσει μόνο για OLS.
Βασικά, δεν νομίζω ότι το αποτέλεσμα θα πρέπει να βγαίνει ακριβώς ίδιο με το αρχικό. Νομίζω ότι η όλη διαδικασία εισάγει απώλειες, οι οποίες θα είναι εμφανείς και στον ήχο που θα προκύψει στην έξοδο. Για παράδειγμα, στα ESH frames αγνοούμε παντελώς του 448 πρώτους και τελευταίους όρους. Αυτό λογικά θα πρέπει να εισάγει απώλειες. Επίσης, στα υπόλοιπα παράθυρα που χρησιμοποιούμε (εκτός του OLS) υπάρχουν περιοχές όπου πολλαπλασιάζουμε τους όρους με το 0, οπότε ουσιαστικά τους μηδενίζουμε. Και από εκεί λογικά θα έχουμε απώλειες.

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


Title: Re: Εργασία 2006-7
Post by: adelo on January 04, 2007, 01:46:51 am
%Kaiser windows
a_l=4; % for long
a_s=6; % for short
W_s = kbdwin(N_s,a_s);
W_l = kbdwin(N_l,a_l);


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 04, 2007, 01:58:00 am
H kaiser που εχει το matlab δεν κανει;


Title: Re: Εργασία 2006-7
Post by: poumpa on January 04, 2007, 05:05:19 am
Βασικά, δεν νομίζω ότι το αποτέλεσμα θα πρέπει να βγαίνει ακριβώς ίδιο με το αρχικό. Νομίζω ότι η όλη διαδικασία εισάγει απώλειες, οι οποίες θα είναι εμφανείς και στον ήχο που θα προκύψει στην έξοδο. Για παράδειγμα, στα ESH frames αγνοούμε παντελώς του 448 πρώτους και τελευταίους όρους. Αυτό λογικά θα πρέπει να εισάγει απώλειες. Επίσης, στα υπόλοιπα παράθυρα που χρησιμοποιούμε (εκτός του OLS) υπάρχουν περιοχές όπου πολλαπλασιάζουμε τους όρους με το 0, οπότε ουσιαστικά τους μηδενίζουμε. Και από εκεί λογικά θα έχουμε απώλειες.

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

Αν προσέξεις πιο καλά τα παράθυρα είναι έτσι φτιαγμένα ώστε με την επικάλυψη των frames να μην αγνοούνται ζώνες συχνοτήτων (να μην μηδενίζονται τελείως όπως λες). Για να το δεις πάρε 2 ESH και βάλε τα να επικαλυφθούν όπως περιγράφει το πρότυπο. Θα δεις ότι στην κοινή περιοχή επικάλυψης δεν υπάρχει συχνότητα που να μηδενίζεται. Αυτό φαίνεται και στα LSS και LPS που είναι το ενδιάμεσο στάδιο μεταξύ ESH και OLS για αυτό και είνιαι μη συμμετρικά.


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 04, 2007, 08:37:40 am
Αν προσέξεις πιο καλά τα παράθυρα είναι έτσι φτιαγμένα ώστε με την επικάλυψη των frames να μην αγνοούνται ζώνες συχνοτήτων (να μην μηδενίζονται τελείως όπως λες). Για να το δεις πάρε 2 ESH και βάλε τα να επικαλυφθούν όπως περιγράφει το πρότυπο. Θα δεις ότι στην κοινή περιοχή επικάλυψης δεν υπάρχει συχνότητα που να μηδενίζεται. Αυτό φαίνεται και στα LSS και LPS που είναι το ενδιάμεσο στάδιο μεταξύ ESH και OLS για αυτό και είνιαι μη συμμετρικά.
Οκ όλα αυτά, πράγματι έχεις δίκιο.
Αλλά και πάλι δεν θα ακούγεται το ίδιο επειδή την έχουμε φιλτράρει με το υψιπερατό φίλτρο. Έτσι δεν είναι?

H kaiser που εχει το matlab δεν κανει;
H kaiser του Matlab δεν κάνει, διότι στο πρότυπο αναφέρει ότι το παράθυρο θα πρέπει να είναι Kaiser - Bessel και όχι σκέτο Kaiser.


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 04, 2007, 09:05:11 am
Λοιπόν, τελικά στην filterbank ίσως να χρειάζεται το frameT. Κι αυτό διότι το τελευταίο frame που κωδικοποιούμε δεν έχει nextFrameT, οπότε δεν μπορούμε να βρούμε τον τύπο του με αυτόν τον τρόπο. Στην περίπτωση αυτή λογικά θα πρέπει να εξετάσουμε το περιεχόμενο του ίδιου του frame και στην συνέχεια να καθορίσουμε τον τύπο ανάλογα με το prevFrameType. Τα ίδια φυσικά ισχύουν και για το αρχικό frame! Οπότε το frameT μάλλον χρειάζεται για την σωστή κωδικοποίηση του αρχικού και του τελικού frame και μόνο. Σ' αυτό φυσικά δεν είμαι απολύτως σίγουρος, οπότε ας περιμένουμε την επίσημη απάντηση επί του θέματος ούτως ώστε να κινηθούμε κατάλληλα...


Ένα άλλο πρόβλημα που υπάρχει είναι στην συνάρτηση TNS!!
Βασικά δεν μπορώ να καταλάβω σε ποιά συνάρτηση (??TNS ή psycho??) θα γίνει ο διαχωρισμός σε ζώνες συχνοτήτων και ο υπολογισμός της ενέργειας της κάθε μίας. Στην σελίδα 16 όπου περιγράφει την συνάρτηση TNS, σαν ορίσματα εισόδου δίνει τα frameFin, frameType. Παρόλα αυτά, όταν περιγράφει το ψυχοακουστικό μοντέλο στην σελίδα 11, αναφέρει ρητά ότι :

Οι τιµές του ενεργειακού ϕάσµατος Pi (j) διαβιβάζονται στη ϐαθµίδα TNS και αυτή επιστρέφει
τους ϕιλτραρισµένους συντελεστές Xi (k) για κάθε frame i.


Πως είναι δυνατόν να διαβιβαστούν οι τιμές του ενεργειακού φάσματος (Pi(j)), αφού στην προδιαγραφή της συνάρτησης TNS δεν υπάρχει αντίστοιχη μεταβλητή εισόδου.

Έτσι όπως είναι δοσμένο, φαίνεται σαν να πρέπει να βρούμε τους συντελεστές Pi και στην TNS και στην psycho, πράγμα ολίγον κουφό διότι ουσιαστικά κάνουμε την ίδια δουλειά δύο φορές...

ΥΓ. Υπόψιν ότι έχει ανέβει στο eTHMMY βελτιωμένη έκδοση της εκφώνησης (v1.1). Απ' όσο είδα όμως, δεν μπόρεσα να εντοπίσω που έχουν γίνει οι αλλαγές.


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 04, 2007, 13:46:04 pm
Για ξεκαθαρισμα (λογαριασμων):

η imdctv κανει κανονικα τον αντιστροφο του dctv. Αυτο το λεω γιατι ο Μαριος απο το Κολουμπια μαλλον το μπερδεψε και εγραψε οτι κανει το Modified Discrete ... και οχι το Inverse Modified ...


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 04, 2007, 16:43:13 pm
Τελικα και εγω εκανα κατι διορθωσεις και μ δουλεψε με κατωφλι το 10.

Ωστοσο, θα πρεπει να παρατηρησω, οτι η εκφωνηση δεν ειναι καλογραμμενη, κυριως στα σημεια με τα σχηματα, οπου αλλα ειναι τα ονοματα των σχηματων και αλλα χρησιμοποιει στο κειμενο. Βεβαια τα καταλαβαινεις, αλλα ειναι σπαστικο...


Title: Re: Εργασία 2006-7
Post by: poumpa on January 04, 2007, 17:44:59 pm
Αλλά και πάλι δεν θα ακούγεται το ίδιο επειδή την έχουμε φιλτράρει με το υψιπερατό φίλτρο. Έτσι δεν είναι?

Το υψιπερατό φίλτρο το χρησιμοποιείς μόνο για να προσδιορίσεις τον τύπο του επόμενου frame. Είναι δηλαδή προσωρινό φιλτράρισμα για να πάρεις μια απόφαση και δεν επηρεάζει μόνιμα τους συντελεστές.

Ένα άλλο πρόβλημα που υπάρχει είναι στην συνάρτηση TNS!!
Βασικά δεν μπορώ να καταλάβω σε ποιά συνάρτηση (??TNS ή psycho??) θα γίνει ο διαχωρισμός σε ζώνες συχνοτήτων και ο υπολογισμός της ενέργειας της κάθε μίας. Στην σελίδα 16 όπου περιγράφει την συνάρτηση TNS, σαν ορίσματα εισόδου δίνει τα frameFin, frameType. Παρόλα αυτά, όταν περιγράφει το ψυχοακουστικό μοντέλο στην σελίδα 11, αναφέρει ρητά ότι :

Οι τι΅ές του ενεργειακού ϕάσ΅ατος Pi (j) διαβιβάζονται στη ϐαθ΅ίδα TNS και αυτή επιστρέφει
τους ϕιλτραρισ΅ένους συντελεστές Xi (k) για κάθε frame i.


Πως είναι δυνατόν να διαβιβαστούν οι τιμές του ενεργειακού φάσματος (Pi(j)), αφού στην προδιαγραφή της συνάρτησης TNS δεν υπάρχει αντίστοιχη μεταβλητή εισόδου.

Έτσι όπως είναι δοσμένο, φαίνεται σαν να πρέπει να βρούμε τους συντελεστές Pi και στην TNS και στην psycho, πράγμα ολίγον κουφό διότι ουσιαστικά κάνουμε την ίδια δουλειά δύο φορές...

Βασικά έχεις δίκιο. Δεν προσδιορίζει πως ακριβώς έχουν τα πράγματα.
Αλλα μη σκας τόσο. Αρκεί στο τέλος να δουλεύει.
Όταν έχεις να κάνεις με εργασίες του Ντελόπουλα τέτοια φαινόμενα δεν είναι κ τόσο ασυνήθιστα...  ;) ;D


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 04, 2007, 21:13:38 pm
Εκανα και εγω την δοκιμη για τον AACoder1 και βγηκαν τα ιδια τα αποτελεσματα, με την διαφορα, οτι στην δευτερη μου βγηκε μονο ΕΣΗ, λογικο δεδομενου οτι παργονται τυχαια τα δειγματα καθε φορα και ετσι στον Χρηστο ισως σε καποια στιγμη να ηταν παρομοια τα νουμερα...

Εχω πιο καλη γεννητρια αριθμων  :P :P :P :P :P :P


Title: Re: Εργασία 2006-7
Post by: adelo on January 05, 2007, 02:54:30 am
Επίσημες απαντήσεις στα σοβαρά ερωτήματά σας θα έχετε δυστυχώς τη Δευτέρα (8.1.7). Μέχρι τότε δουλέψτε με τις υποθέσεις σας. Πάντως το πάτε καλά!


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 05, 2007, 15:15:49 pm
Στην ΤΝΣ, το δευτερο εξαγομενο, το ΤΝΣκοεφ ειναι οι συντελεστες α; Γιατι απο οτι καταλαβα απο την εκφωνηση, θελουμε τους κβαντισμενους συντελεστες, και μον αυτους κβαντιζουμε.

Οσον αφορα την απορια σου Χρηστο, απο την στιγμη που λεει οτι μπορουμε να φτιαξουμε οτι συναρτηση θελουμε, μπορουμε ευκολα να φτιαξουμε μια αλλη συναρτηση που θα κανει οτι ειναι να κανει και θα εχει σχεση με τις μπαντες και στην συνεχεια θα την καλουμε μεσα στην ΤΝΣ η στην ψυχω(ονομα και αυτο).


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 06, 2007, 02:17:33 am
Οσον αφορα την απορια σου Χρηστο, απο την στιγμη που λεει οτι μπορουμε να φτιαξουμε οτι συναρτηση θελουμε, μπορουμε ευκολα να φτιαξουμε μια αλλη συναρτηση που θα κανει οτι ειναι να κανει και θα εχει σχεση με τις μπαντες και στην συνεχεια θα την καλουμε μεσα στην ΤΝΣ η στην ψυχω(ονομα και αυτο).
Ναι, αλλά και πάλι αυτό αποτελεί πλεονασμό, διότι θα την καλείς δύο φορές (μία στην ΤΝS και μία στην psycho), ενώ ουσιαστικά η δουλειά μπορεί να γίνει και με μία φορά. Τεσπα, θα τα πούμε Δευτέρα.
Μαζέψτε όσες ερωτήσεις υπάρχουν και πάμε δυναμικά ;)


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 06, 2007, 14:24:15 pm
Ερωτηση: Στην psycho, απο οτι λεει στην εκφωνηση θελει να καλεσουμε την ΤΝΣ και να παρουμε τους φιλτραρισμενους συντελεστες. Ομως η psycho δεν εχει στα ορισματα της το frameF που θελει η TNS. Θα πρεπει να κανουμε IMDCT ή υπαρχει καποιο λαθος;


Title: Re: Εργασία 2006-7
Post by: Aurelius on January 06, 2007, 15:38:00 pm
Οταν λεει TNScoeffs ποια εννοει τελικα, τα α; Οι αλλοι συντελεστες, οι φιλτραρισμενοι δεν τους στελνουμε  με το frameFout;


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 06, 2007, 15:59:09 pm
Οταν λεει TNScoeffs ποια εννοει τελικα, τα α; Οι αλλοι συντελεστες, οι φιλτραρισμενοι δεν τους στελνουμε  με το frameFout;
Κι εγώ κάτι τέτοιο κατάλαβα...
Ας περιμένουμε όμως μέχρι την Δευτέρα για να ρωτήσουμε απ' ευθείας τον κ. Ντελόπουλο.
Ό,τι λέμε μέχρι στιγμής είναι υποθέσεις και μόνο


Title: Re: Εργασία 2006-7
Post by: sevastizoi on January 23, 2007, 02:40:32 am
Χα,σας φτάσαμε ,kinda..
Για το πρώτο επίπεδο παραπλήσια αποτελέσματα βγάζουμε και εμείς,κάτι απορίες έχουμε με την αντίστροφη διαδικασία αλλά το παλεύουμε..
Η δικιά μου πρώτη απορία (δεν είναι και τόσο τρομερή )είναι η ακόλουθη
για το σπάσιμο των frames σε scale factor bands με βάση τους πίνακες απο το πρότυπο,έχουμε κάπου τους πίνακες έτοιμους να τσιμπήσουμε τσουκ τσουκ τα στοιχεία,γιατί είναι μεγααάλο πράγμα...


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 23, 2007, 11:10:01 am
για το σπάσιμο των frames σε scale factor bands με βάση τους πίνακες απο το πρότυπο,έχουμε κάπου τους πίνακες έτοιμους να τσιμπήσουμε τσουκ τσουκ τα στοιχεία,γιατί είναι μεγααάλο πράγμα...
Οι πίνακες βρίσκονται μέσα στο πρότυπο οπότε μπορείς να τους πάρεις από εκεί.
Βέβαια το πρότυπο είναι σε μορφή pdf, αλλά μπορείς να χρησιμοποιήσεις τον Acrobat Reader, να επιλέξεις τα νούμερα και να τα κάνεις copy-paste στον κώδικά σου. Εγώ τουλάχιστον αυτό έκανα.


Title: Re: Εργασία 2006-7
Post by: sevastizoi on January 23, 2007, 11:18:19 am
τελικά μπήκαν χειροκίνητα σε ένα script και τελείωσε η υπόθεση..που κολλάει κανείς τις μικρές ώρες..


Title: Re: Εργασία 2006-7
Post by: poumpa on January 23, 2007, 18:14:19 pm
Ωραία, αφού άρχισε κόσμος να πιάνει και το 2ο μέρος ας αρχίσω εγώ τις απορίες:P

1)
Στο 2ο μέρος ουσιαστικά υπολογίζουμε τα TNScoeffs και τα κατώφλια ακουστότητας.
Αυτό το κάνουμε για κάθε κανάλι ξεχωριστά ή και για τα 2 κανάλια είναι τα ίδια;
Το λογικό( :D) θα είναι να το κάνουμε για κάθε κανάλι χωριστά αλλά στην AACSeq2 υπάρχει ένα πεδίο για τα TNScoeffs και ένα για τα κατώφλια ακουστότητας και φαίνεται έτσι ότι είναι τα ίδια και για τα 2 κανάλια.
Αν είναι όντως τα ίδια τι θα χρησιμοποιήσουμε στους υπολογισμούς; Το μέσο όρο;
Μήπως μου ξεφεύγει κάτι;  :o
Γιατί το θέμα είναι αρκετά σημαντικό...

Προς το παρών χρησιμοποιώ το μέσο όρο και όλα παν ΟΚ αλλά δεν έχω δοκιμάσει κανα wav να δω τι θα γίνει...

2)
Στην TNS, στην κανονικοποίηση των συντελεστών (σελ. 8 σχέση (1) ) υπάρχει περίπτωση το Sw(k) να είναι 0 και άρα διαίρεση με 0...
Να μηδενίζουμε και το Xw(k) ή να το αφήνουμε ως έχει;
Το ίδιο συμβαίνει και στην psycho υπολογίζοντας τα sl και sh όπου το ΔΒ βγαίνει 0 στις τελευταίες μπάντες αφού όπως φαίνεται και από τους πίνακες η κεντρική συχνότητα των μπαντών αυτών είναι η ίδια.
Ιδιαίτερα σε αυτό το σημείο δεν είναι απολύτως κατανοητό το τι συμβαίνει με τη επιλογή του κατωφλίου για να μπορούμε να αποφασίσουμε τι θα γίνει σε περίπτωση διαίρεσης με το 0.
Ίσως να μην έχει και τόση σημασία αλλά είπα καλύτερα να ρωτήσω....



Title: Re: Εργασία 2006-7
Post by: chggr005 on January 23, 2007, 20:10:54 pm
1)
Στο 2ο μέρος ουσιαστικά υπολογίζουμε τα TNScoeffs και τα κατώφλια ακουστότητας.
Αυτό το κάνουμε για κάθε κανάλι ξεχωριστά ή και για τα 2 κανάλια είναι τα ίδια;
Βασικά θα πρέπει να το κάνουμε για τα δύο κανάλια ξεχωριστά.
Το πεδίο που υπάρχει για την TNScoeffs θα είναι λογικά 2xA, όπου Α ο αριθμός των συντελεστών. Δηλαδή ουσιαστικά δύο πίνακες όπου θα αποθηκεύονται οι συντελεστές του κάθε καναλιού.


Title: Re: Εργασία 2006-7
Post by: poumpa on January 24, 2007, 01:35:40 am
Γενικά συμφωνώ αλλά δες πως περιπλέκεται το πράμα με την εκφώνηση:
Η psycho επιστρέφει <number of bands>x1 πίνακες ενώ το frameT είναι "όπως παραπάνω" άρα θα έχει 2 κανάλια. Δηλαδή από 2 κανάλια πάμε σε 1 εκτός κι αν δεν είναι "όπως παραπάνω" και παίρνει το ένα κανάλι μόνο.
Στην AACSeq2 υπάρχει frameF0 και frameF1 ενώ υπάρχει ένα μόνο Τ και ένα TNScoeffs. Θα είχε περισσοτερο νόημα αν υπήρχε π.χ. Τ0 και Τ1 ή μόνο ένα δικάναλο frameF.

Σαν αποτέλεσμα στην υλοποίηση γίνεται ένα μικρό μπέρδεμα πότε έχεις 2 κανάλια και πότε 1.

Εκτός από αυτά και η δομή των συναρτήσεων είναι λίγο "ομιχλώδης". Για να πάρεις τα κατώφλια Τ καλείς την TNS μέσα από την psycho. Για να πάρεις τα TNScoeffs και τα frameF μετά την TNS ξανακαλείς την TNS! Για να καλέσεις την TNS πρέπει να δώσεις frameF άρα να καλέσεις την filterbank. Έτσι καλείς και την filterbank 2 φορές: μία στην psycho (αφού δέχεται σαν όρισμα frameT και όχι frameF) και μια έξω από την psycho για να πάρεις τα TNScoeffs και τα frameF μετά την TNS! :D :D :D :D :D
Αυτό λέγεται "απλοποιημένη έκδοση του AAC";;;


Title: Re: Εργασία 2006-7
Post by: chggr005 on January 24, 2007, 02:44:10 am
Μα αφού είχαμε πει ότι η psycho θα καλεί μία φορά την TNS και θα τις περνάει ορίσματα σχετικά με τις ενέργειες...


Title: Re: Εργασία 2006-7
Post by: poumpa on January 24, 2007, 03:20:12 am
Θυμάμαι τι είπαμε αλλα ξαναδιάβασε τα παραπάνω όταν πας να κάνεις την AACoder2...  ;)


Title: Re: Εργασία 2006-7
Post by: vagia on January 25, 2007, 03:46:48 am
Quote
Το ίδιο συμβαίνει και στην psycho υπολογίζοντας τα sl και sh όπου το ΔΒ βγαίνει 0 στις τελευταίες μπάντες αφού όπως φαίνεται και από τους πίνακες η κεντρική συχνότητα των μπαντών αυτών είναι η ίδια.
Εμείς θεωρήσαμε ότι όταν το DB=0 τότε το εύρος ζώνης είναι πάρα πολύ μικρό και για αυτό sl και sh
=30 ή 20 db αντίστοιχα για τα long και ομοίως για short


-Τι νόημα έχει το wintype που είναι όρισμα στη filterbank αφού για κάθε frame οι συντελεστές του παραθύρου είναι διαφορετικοί ανάλογα με το frametype τους.Μήπως πρέπει να βάλουμε αντί wintype='kaiser' ή  'sinus' τον πίνακα με τους αντίστοιχους  συντελεστές;
-Όσο για το αν θα χρησιμοποιούμε 2 ή 1 κανάλια για το δεύτερο επίπεδο θα προχωρήσουμε με δικές μας θεωρήσεις ή θα περιμένουμε κάποια επίσημη  απάντηση;;; ;)


Title: Re: Εργασία 2006-7
Post by: poumpa on January 25, 2007, 15:34:09 pm
-Τι νόημα έχει το wintype που είναι όρισμα στη filterbank αφού για κάθε frame οι συντελεστές του παραθύρου είναι διαφορετικοί ανάλογα με το frametype τους.Μήπως πρέπει να βάλουμε αντί wintype='kaiser' ή  'sinus' τον πίνακα με τους αντίστοιχους  συντελεστές;

To winType καθορίζει ποια συνάρτηση θα χρησιμοποιήσεις για να δημιουργήσεις τους διάφορους τύπους παραθύρων που χρειάζονται.
Π.χ. τα παράθυρα τύπου EIGHT SHORT είναι 8 "παραθυράκια" που δημιουργούνται βάσει της συνάρτησης Kaiser ή της συνάρτησης Sinus.


Title: Re: Εργασία 2006-7
Post by: vagia on January 30, 2007, 13:51:12 pm
Τι θα λέγατε να βάζαμε σαν είσοδο το  αρχείο που επισυνάπτω ("rihana.wav") να δούμε τουλάχιστο στο πρώτο επίπεδο τι SNR βγάζει;


Title: Re: Εργασία 2006-7
Post by: poumpa on February 03, 2007, 16:55:21 pm
Μετά από επικοινωνία με τον Ντελόπουλα είπε ότι τα TNScoeffs, το κατώφλι ακουστότητας όπως και οτιδήποτε άλλο χρειάζεται για την κωδικοποίηση (εκτός από το frameType) υπολογίζεται για κάθε κανάλι ξεχωριστά.


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 07, 2007, 16:46:00 pm
Παίδες, δεν ξέρω εάν προσέξατε, αλλά έχει ανέβει στο eTHMMY η version 1.2 της εργασίας.

Στην έκδοση αυτή, αλλάζει τον τρόπο υπολογισμού των attack ratios στο βήμα 3 του SSC. Το θέμα όμως είναι ότι τα όρια που έχει ορίσει για το sl2 και dsl2 παραμένουν ίδια.

Εγώ έκανα την αλλαγή αυτή στον κώδικα και τώρα μου βγάλει όλα τα frames να έχουν τύπο OLS, είτε βάλω ημίτονο ως nextFrameT είτε βάλω θόρυβο. Δοκιμάστε το κι εσείς και πείτε μου. Γνώμη μου είναι πως πρέπει να αλλάξουν και τα όρια για το sl2 και το dsl2.


Title: Re: Εργασία 2006-7
Post by: KillBill on February 09, 2007, 17:44:00 pm
Παίδες, δεν ξέρω εάν προσέξατε, αλλά έχει ανέβει στο eTHMMY η version 1.2 της εργασίας.

Στην έκδοση αυτή, αλλάζει τον τρόπο υπολογισμού των attack ratios στο βήμα 3 του SSC. Το θέμα όμως είναι ότι τα όρια που έχει ορίσει για το sl2 και dsl2 παραμένουν ίδια.

Εγώ έκανα την αλλαγή αυτή στον κώδικα και τώρα μου βγάλει όλα τα frames να έχουν τύπο OLS, είτε βάλω ημίτονο ως nextFrameT είτε βάλω θόρυβο. Δοκιμάστε το κι εσείς και πείτε μου. Γνώμη μου είναι πως πρέπει να αλλάξουν και τα όρια για το sl2 και το dsl2.
Κι εμένα τα ίδια μου βγαίνουν... Μάλλον πρέπει να αλλάξουμε τα όρια αλλά πως?

Έχω και μερικές ακόμη απορίες:
1) Στη βαθμίδα TNS κβαντίζουμε τους συντελεστές α με ομοιόμορφο συμμετρικό κβαντιστή 4άρων bit βήματος 0.1. Δηλαδή τα α κβαντίζονται (ή πιο σωστά αποκβαντίζονται) στα επίπεδα -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7 και  0.8? Μήπως το έχω καταλάβει λάθος?
2) Η βαθμίδα iTNS το μόνο που κάνει είναι να περνάει τους συντελεστές από το φίλτρο 1/H όπου Η = φίλτρο της TNS, σωστά?

Ευχαριστώ για τη βοήθεια!


Title: Re: Εργασία 2006-7
Post by: poumpa on February 09, 2007, 22:03:13 pm
Έχω και μερικές ακόμη απορίες:
1) Στη βαθμίδα TNS κβαντίζουμε τους συντελεστές α με ομοιόμορφο συμμετρικό κβαντιστή 4άρων bit βήματος 0.1. Δηλαδή τα α κβαντίζονται (ή πιο σωστά αποκβαντίζονται) στα επίπεδα -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7 και  0.8? Μήπως το έχω καταλάβει λάθος?
2) Η βαθμίδα iTNS το μόνο που κάνει είναι να περνάει τους συντελεστές από το φίλτρο 1/H όπου Η = φίλτρο της TNS, σωστά?


Και εγώ αυτά κατάλαβα ότι κάνουμε.
Τώρα πως λες ομοιόμορφο έναν κβαντιστή από το -0.7 στο 0.8 δεν ξέρω αλλά από τις σημειώσεις του μαθήματος έτσι πρέπει να είναι.... :???:


Title: Re: Εργασία 2006-7
Post by: shiver on February 14, 2007, 11:58:37 am
Τελικά διαβάζοντας όλα τα παραπάνω δεν κατάφερα να καταλάβω τι κάνουμε με το πρώτο και το τελευταίο frame για την υλοποίηση της SSC.Για να βρούμε τον τύπο τους θα κάνουμε τα 4 βήματα που βρίσκονται στην σελίδα 5 της εκφώνησης(και που κανονικά τα κάνουμε κάθε φορά για το επόμενο frame ώστε να δούμε αν είναι ESH ή LSS);ή θα κάνουμε ότι κάνουμε για όλα τα frame θεωρώντας για το πρώτο frame ότι το προηγούμενο του είναι LSS και για το τελευταίο ότι το επόμενο του είναι ΟLS; :-\


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 14, 2007, 20:04:44 pm
Τελικά διαβάζοντας όλα τα παραπάνω δεν κατάφερα να καταλάβω τι κάνουμε με το πρώτο και το τελευταίο frame για την υλοποίηση της SSC.Για να βρούμε τον τύπο τους θα κάνουμε τα 4 βήματα που βρίσκονται στην σελίδα 5 της εκφώνησης(και που κανονικά τα κάνουμε κάθε φορά για το επόμενο frame ώστε να δούμε αν είναι ESH ή LSS);ή θα κάνουμε ότι κάνουμε για όλα τα frame θεωρώντας για το πρώτο frame ότι το προηγούμενο του είναι LSS και για το τελευταίο ότι το επόμενο του είναι ΟLS; :-\
Είχε πει στην τάξη ότι το πρώτο και το τελευταίο frame, τα παίρνουμε εμείς αυθαίρετα ό,τι θέλουμε.


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 16, 2007, 12:52:08 pm
Λοιπόν, ας ανταλλάξουμε μερικά αποτελέσματα για να ξέρουμε στοιχειωδώς που πηγαίνουμε και όποιος συνάδελφος έχει κάποιο λάθος να το αντιληφθεί εγκαίρως με την βοήθεια όλων.

Λοιπόν, ας ξεκινήσουμε από το πρώτο μέρος της εργασίας. Να σημειώσω πως η εκφώνηση τελικά έχει λάθος στο σημείο όπου δίνει τα όρια των attack ratios για το πότε θεωρούμε το frame ESH ή OLS. Το σημείο αυτό θα διορθωθεί με την επόμενη version απ' ότι ξέρω.

Τώρα, έστω ότι έχουμε μία δοκιμαστική ακολουθία δειγμάτων. Εάν κωδικοποιήσουμε την ακολουθία αυτή ολόκληρη είτε με OLS είτε με ESH, τότε θα πρέπει λογικά το σήμα στην έξοδο του αποκωδικοποιητή να βγαίνει εντελώς ίδιο με αυτό της εισόδου του αποκωδικοποιητή. Ένα μέτρο για το πόσο καλή είναι η κωδικοποίηση είναι και το SNR που μας ζητείται ως έξοδος στην συνάρτηση demoAAC1. Η τιμή του SNR θα πρέπει λογικά να είναι αρκετά μεγάλη. Εγώ για δοκιμαστική ακολουθία 1102500 δειγμάτων το βρήκα ίσο με 138 περίπου. Εσείς τι τιμές βρίσκετε?


Title: Re: Εργασία 2006-7
Post by: poumpa on February 16, 2007, 16:33:55 pm
Εγώ το βρήκα περίπου 308 για κάθε κανάλι

Επίσης υπολόγισα και το MSE (μέσο τετραγωνικό σφάλμα) γιατί ήξερα ότι πρέπει να βγεί της τάξης 10^-33 που είναι κ το σφάλμα που εισάγεται λόγω των πράξεων στο matlab.
Αφού το MSE μου βγήκε σωστό φαντάζομαι κ το SNR θα είναι σωστό.

Χρήστο, πως υπολογίζεις το SNR;
Δεν είναι η ισχύς του σήματος προς την ισχύς του σφάλματος σε dB;


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 16, 2007, 20:35:38 pm
Προωθώ από το eTHMMY:


Υπάρχει μια συζήτηση γύρω από το SSC και τον τρόπο υπολογισμού των attack ratios και τις τιμές των κατωφλίων. Μερικές παρατηρήσεις πάνω σε αυτό το θέμα:

1. Με random noise σταθερής ισχύος σαν input frame δεν πρέπει να αποφασίζει Eight Short. Είναι λογικό η απόφαση να είναι OLS εφόσον η ισχύς είναι σταθερή.
2. Μια καλή δοκιμή για να δείτε ότι λειτουργεί η μέθοδος είναι να βάλετε σε ένα μόνο κομμάτι του frame (πχ. σε 100 samples) random noise με ισχύ 5 φορές την ισχύ του υπολοίπου frame. Τότε πρέπει να αποφασίσει ESH.
3. Πάντως σε σήματα με πιανάκι (που έχουν αρκετούς τόνους) ανιχνεύει ESH σε ποσοστό μικρότερο του 1%, οπότε υπάρχει ένα δίκιο στις αιτιάσεις σας.
4. Ως κατασκευαστές του κωδικοποιητή μοπρείτε να διαλέξετε κατά βούληση το attack ratio. Σε δικά μας πειράματα μια καλή τιμή είναι το 5 (αντί για το 10 που προτείνει η εκφώνηση)...



Title: Re: Εργασία 2006-7
Post by: chggr005 on February 16, 2007, 20:59:10 pm
Χρήστο, πως υπολογίζεις το SNR;
Δεν είναι η ισχύς του σήματος προς την ισχύς του σφάλματος σε dB;
Απ' ότι κατάλαβα εσύ υπολόγισες το PSNR. Αυτό είχα υπολογίσει κι εγώ στην αρχή, αλλά μετά είδα ότι ζητάει το SNR (συνολικός σηματοθορυβικός λόγος σε dB). Για PSNR η τιμή που βρήκες είναι πολύ καλή και ουσιαστικά περιλαμβάνει μονάχα τα σφάλματα σε στρογγυλοποιήσεις που κάνει το matlab εσωτερικά. Δηλαδή εν ολίγοις, το σήμα εισόδου σου είναι ακριβώς ίδιο με το σήμα στην έξοδο.

Τώρα, πως βρίσκουμε το SNR...
Κοίταξα στην Wikipedia το εξής άρθρο:
http://en.wikipedia.org/wiki/Signal-to-noise_ratio

Ουσιαστικά το άρθρο αυτό λέει ότι SNR = 10log(P_signal/P_noise), όπου ο λογάριθμος είναι δεκαδικός. Άρα λοιπόν βρίσκουμε την ισχύς του σήματος (άθροισμα τετραγώνων των δειγμάτων), στην συνέχεια βρίσκουμε την ισχύ του θορύβου (άθροισμα τετραγώνων των διαφορών εισόδου - εξόδου) και εφαρμόζουμε τον τύπο.


Title: Re: Εργασία 2006-7
Post by: vagia on February 17, 2007, 18:11:45 pm
Για το πρώτο επίπεδο παίρνοντας τον τύπο  SNR = 10log(P_signal/P_noise) μας βγαίνει  SNR και για τα δύο κανάλια άπειρο. Θεωρητικά δεν θα πρέπει να βγει άπειρο αφού δεν κάνουμε κβάντιση;


Title: Re: Εργασία 2006-7
Post by: poumpa on February 19, 2007, 02:07:28 am
Ουσιαστικά το άρθρο αυτό λέει ότι SNR = 10log(P_signal/P_noise), όπου ο λογάριθμος είναι δεκαδικός. Άρα λοιπόν βρίσκουμε την ισχύς του σήματος (άθροισμα τετραγώνων των δειγμάτων), στην συνέχεια βρίσκουμε την ισχύ του θορύβου (άθροισμα τετραγώνων των διαφορών εισόδου - εξόδου) και εφαρμόζουμε τον τύπο.

Αυτό ακριβώς έκανα :)


Για το πρώτο επίπεδο παίρνοντας τον τύπο  SNR = 10log(P_signal/P_noise) μας βγαίνει  SNR και για τα δύο κανάλια άπειρο. Θεωρητικά δεν θα πρέπει να βγει άπειρο αφού δεν κάνουμε κβάντιση;

Θεωρητικά ναι. Εισάγεται όμως ένα πολύ μικρό σφάλμα από τις πράξεις του matlab.
Πάντως το άπειρο είναι σίγουρα σωστό.
Ίσως να έχει σχέση με το ποια mdct συνάρτηση χρησιμοποιεί ο καθένας (μπορεί κάποια να κάνει περισσότερες ή λιγότερες πράξεις κ να επηρεάζει ανάλογα το αποτέλεσμα).
Εγώ πάντως χρησιμοποιήσα την mdct4.


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 19, 2007, 12:45:42 pm
Αυτό ακριβώς έκανα :)

Βασικά ξέρεις γιατί έχουμε αυτήν την διαφωνία στα αποτελέσματα?
Διότι χρησιμοποιούμε άλλο αρχείο ήχου για τις δοκιμές μας.   :P

Μόλις δοκίμασα να βγάλω το αποτέλεσμα για θόρυβο ισχύος 1 watt, το SNR βγήκε ίσο με 307.9335, παρόμοιο δηλαδή αποτέλεσμα με το δικό σου. Η προηγούμενη τιμή που έδωσα αφορούσε ένα αρχείο τραγουδιού και έβγαινε γύρω στο 107. Αυτό μάλλον συμβαίνει επειδή η ισχύς του σήματος του τραγουδιού είναι αρκετά μικρότερη, οπότε το αποτέλεσμα βγαίνει κάποιος πιο μικρό. Πάντως υπενθυμίζω  πως το SNR μετριέται σε dB, οπότε και το 107 θεωρείται αρκετά καλό.

Προσοχή θέλει στον τρόπο υπολογισμού του SNR, αφού πρέπει πρώτα να βρούμε την ισχύ του σήματος και του θορύβου και μετά έξω από το loop να υπολογίσουμε το SNR. Μία διαφορετική προσέγγιση όπου το SNR = SNR + 10*log(input(i)/(input(i)-output(i))) σε κάθε loop, είναι εντελώς λανθασμένη ακριβώς επειδή το SNR μετριέται σε dB...


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 19, 2007, 13:03:54 pm
Πάμε τώρα στο άλλο μείζον θέμα: τι βάλατε ως όριο για το dsl^2

Στο δεύτερο σημείο της ανακοίνωσης λέει ότι θα πρέπει το αποτέλεσμα αυτού του κώδικα να βγαίνει LSS:

a = wgn(2048,2,0);
b = wgn(100,2,0.7);
for i=1:100
a(i+1200,:) = b(i,:);
end
result = SSC (0,a,'OLS');

Δηλαδή ουσιαστικά σε ένα frame με θόρυβο 1watt βάλαμε σε ένα κομμάτι θόρυβο 5 watt (log10(5)=0.7). Δηλαδή το κομμάτι αυτό έχει την πενταπλάσια ισχύ από το υπόλοιπο frame. Όταν το περνάμε ως παράμετρο στην SSC με prevFrameType='OLS', θα πρέπει να ανιχνεύσει ότι το frame a είναι ESH και η μεταβλητή result να είναι ίση με LSS.

Αυτό όμως για τον δικό μου κώδικα και για όριο του dsl^2 ίσο με 5, δεν ισχύει και δεν βγαίνει αυτό το αποτέλεσμα... Λίγο απίθανο να έχω λάθος στον κώδικα, διότι το έχω κοιτάξει δεκάδες φορές... Δοκιμάστε το κι εσείς στον κώδικά σας και ποστάρετε τα αποτελέσματα να δούμε τι γίνεται.


Title: Re: Εργασία 2006-7
Post by: KillBill on February 19, 2007, 14:42:38 pm
Ετρεξα τον κωδικα ακριβώς όπως τον έχεις γράψει (με όριο το 5) και παίρνω αποτέλεσμα: result = OLS.


Title: Re: Εργασία 2006-7
Post by: ioanna208 on February 20, 2007, 11:48:37 am
-Τρέξαμε και εμείς τον ίδιο κώδικα με όριο 5 και βγάζει result=OLS. To περίεργο είναι ότι είδαμε τις τιμές των dsl^2 και για τις οχτώ ζώνες και είναι
0    0.0073    0.0068    0.0079    0.0084    0.0087    0.0061    0.0051
Οι τιμές αυτές είναι φυσιολογικές και αν ναι δεν υπάρχει διαφορά αν το όριο που θα βάλουμε είναι 10 ή 5, αλλά για να βγάλει LSS και όχι OLS ΘΑ πρέεπι να βάλουμε όριο 0....?!?!!! :(


-Κάτι λίγο διαδικαστικό...Για την filterbanks που πρέπει να χρησιμοποιήσουμε kaiser-bessel ή sinusoid, πήγαμε στην σελίδα του Μάριου και βρήκαε την συνάρτηση για το kaiser-bessel kbdwin.m . Αλλά υπάρχουν και οι άλλες συναρτήσεις για αυτό το παράθυρο τις οποίες προφανώς πρέπει να χρησιμοποιήσουμε αφού το αρχείο m δεν έχει κώδικα παρά μόνο σχόλια....Θα πρέπει να χρησιμοποιήσουμε το αρχείo  kbdwin.c και το αρχείο  kbdwin.dll??Και πως θα γίνει αυτό.?Πως γίνεται να τρέξουμε αρχείο c μέσα από το matlab?


Title: Re: Εργασία 2006-7
Post by: KillBill on February 20, 2007, 14:41:09 pm
Πάμε τώρα στο άλλο μείζον θέμα: τι βάλατε ως όριο για το dsl^2

Στο δεύτερο σημείο της ανακοίνωσης λέει ότι θα πρέπει το αποτέλεσμα αυτού του κώδικα να βγαίνει LSS:

a = wgn(2048,2,0);
b = wgn(100,2,0.7);
for i=1:100
a(i+1200,:) = b(i,:);
end
result = SSC (0,a,'OLS');

Δηλαδή ουσιαστικά σε ένα frame με θόρυβο 1watt βάλαμε σε ένα κομμάτι θόρυβο 5 watt (log10(5)=0.7). Δηλαδή το κομμάτι αυτό έχει την πενταπλάσια ισχύ από το υπόλοιπο frame. Όταν το περνάμε ως παράμετρο στην SSC με prevFrameType='OLS', θα πρέπει να ανιχνεύσει ότι το frame a είναι ESH και η μεταβλητή result να είναι ίση με LSS.

Αυτό όμως για τον δικό μου κώδικα και για όριο του dsl^2 ίσο με 5, δεν ισχύει και δεν βγαίνει αυτό το αποτέλεσμα... Λίγο απίθανο να έχω λάθος στον κώδικα, διότι το έχω κοιτάξει δεκάδες φορές... Δοκιμάστε το κι εσείς στον κώδικά σας και ποστάρετε τα αποτελέσματα να δούμε τι γίνεται.

Νομίζω ότι στο b πρέπει να βάλουμε σαν 3ο όρισμα εισόδου 7 και όχι 0.7, διότι 7dBW = 5 watt (http://www.bessernet.com/jobAids/dBmCalc/dBmCalc.html).

Ετσι το αποτέλεσμα είναι LSS για όριο 5.


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 21, 2007, 01:04:51 am
Νομίζω ότι στο b πρέπει να βάλουμε σαν 3ο όρισμα εισόδου 7 και όχι 0.7, διότι 7dBW = 5 watt (http://www.bessernet.com/jobAids/dBmCalc/dBmCalc.html).

Ετσι το αποτέλεσμα είναι LSS για όριο 5.
Σωστός! Ξέχασα να πολλαπλασιάσω με το δεκαράκι στον τύπο...

-Τρέξαμε και εμείς τον ίδιο κώδικα με όριο 5 και βγάζει result=OLS. To περίεργο είναι ότι είδαμε τις τιμές των dsl^2 και για τις οχτώ ζώνες και είναι
0    0.0073    0.0068    0.0079    0.0084    0.0087    0.0061    0.0051
Αυτές οι τιμές δεν παίζει να είναι σωστές ( :( ).
Οι δικές μου αντίστοιχες τιμές για τα δύο κανάλια είναι:

sl2 =

   82.2345   98.9896
   90.9170   70.9736
   86.4189   93.5760
  115.5789   73.1601
   95.1055   89.1327
  115.1083  132.2092
  126.6504  112.7788
   90.9595   83.3950


dsl2 =

    1.0000    1.0000
    1.1056    0.7170
    0.9982    1.1011
    1.3358    0.8328
    1.0141    1.0589
    1.2239    1.5524
    1.2982    1.2126
    0.8942    0.8702


Title: Re: Εργασία 2006-7
Post by: ioanna208 on February 21, 2007, 11:50:23 am
-Τρέξαμε και εμείς τον ίδιο κώδικα με όριο 5 και βγάζει result=OLS. To περίεργο είναι ότι είδαμε τις τιμές των dsl^2 και για τις οχτώ ζώνες και είναι
0    0.0073    0.0068    0.0079    0.0084    0.0087    0.0061    0.0051
Αυτές οι τιμές δεν παίζει να είναι σωστές ( :( ).
Οι δικές μου αντίστοιχες τιμές για τα δύο κανάλια είναι:

sl2 =

   82.2345   98.9896
   90.9170   70.9736
   86.4189   93.5760
  115.5789   73.1601
   95.1055   89.1327
  115.1083  132.2092
  126.6504  112.7788
   90.9595   83.3950


dsl2 =

    1.0000    1.0000
    1.1056    0.7170
    0.9982    1.1011
    1.3358    0.8328
    1.0141    1.0589
    1.2239    1.5524
    1.2982    1.2126
    0.8942    0.8702

Αν καταλαβαίνω καλά το παρακάτω κομμάτι κώδικα, δημιουργεί 2 ίδια frame που αντιστοιχούν στο αριστερό και δεξί κανάλι. Πως είναι δυνατόν να βγαίνουν διαφορετικές τιμές στα sl και dsl? :o Τόσο λάθος καταλαβαίνω??
 
Στο δεύτερο σημείο της ανακοίνωσης λέει ότι θα πρέπει το αποτέλεσμα αυτού του κώδικα να βγαίνει LSS:

a = wgn(2048,2,0);
b = wgn(100,2,0.7);
for i=1:100
a(i+1200,:) = b(i,:);
end
result = SSC (0,a,'OLS');

Aν κάποιος ξέρει τι πρέπει να κάνουμε και αν πρέπει να συνδέσουμε το kbdwin.m και το kbdwin.c μέσω Matlab ας το πει...Επειδή δεν έχουμε ξανακάνει κάτι ανάλογο στο matlab και θα χρειαστεί να ψάξουμε πως γίνεται, μη καθόμαστε και ψάχνουμε τσάμπα, ενώ υπάρχει άλλος τρόπος να το κάνουμε....
-Κάτι λίγο διαδικαστικό...Για την filterbanks που πρέπει να χρησιμοποιήσουμε kaiser-bessel ή sinusoid, πήγαμε στην σελίδα του Μάριου και βρήκαε την συνάρτηση για το kaiser-bessel kbdwin.m . Αλλά υπάρχουν και οι άλλες συναρτήσεις για αυτό το παράθυρο τις οποίες προφανώς πρέπει να χρησιμοποιήσουμε αφού το αρχείο m δεν έχει κώδικα παρά μόνο σχόλια....Θα πρέπει να χρησιμοποιήσουμε το αρχείo  kbdwin.c και το αρχείο  kbdwin.dll??Και πως θα γίνει αυτό.?Πως γίνεται να τρέξουμε αρχείο c μέσα από το matlab?


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 21, 2007, 21:37:14 pm
Αν καταλαβαίνω καλά το παρακάτω κομμάτι κώδικα, δημιουργεί 2 ίδια frame που αντιστοιχούν στο αριστερό και δεξί κανάλι. Πως είναι δυνατόν να βγαίνουν διαφορετικές τιμές στα sl και dsl? :o Τόσο λάθος καταλαβαίνω??

Με την εντολή: a = wgn(2048,2,0) δημιουργείται ένα frame με δύο κανάλια ήχου που περιέχουν θόρυβο. Το ένα κανάλι όμως δεν είναι πανομοιότυπο με το άλλο. Αυτό φαίνεται και εάν πατήσεις τις εξής εντολές:

plot (a(:,1),'red')
hold on
plot (a:,2))

Όσο για το Matlab, μου φαίνεται μία εντολή είναι που κάνει compile το αρχείο της C στο Matlab. Θα την βρεις και στο Help του Matlab και στο internet. Δεν την θυμάμαι απ' έξω επειδή την χρησιμοποίησα για μία και τελευταία φορά πριν από 2 μήνες...


Title: Re: Εργασία 2006-7
Post by: Faidon on February 21, 2007, 21:50:23 pm
τα στάδια της εργασία όπως είπε ο Ντελώ είναι
-κατεβάζουμε το πρότυπο ΑΑC από το iso (μάλλον δε θα χρηαστεί για την εργασία, αλλά είναι καλό για να κατανοήσουμε το πρώτυπο.
-Τη Δευτέρα θα γίνει η παρουσίαση του προτύπου και θα δωθεί η εκφώνηση
-θα δωθούν βοηθητικά προγράμματα στο matlab για κάποιες διαδικασίες
-θα συνεργαστούμε τον adelo και manf, αλλά και μεταξύ μας ;)
-θα παραδώσουμε την εργασία στις 3/3/07 μέσω ethmmy

τα αρχεία που ανέβηκαν δε τα είδα, αλλά μόνο αυτά είπε στο μάθημα για την εργασία.

Αυτό ισχύει ωρε παίδες;
Σας έδωσε συναρτήσεις για το MATLAB;
Αν ναι, μπορεί να τις ανεβάσει κανένας;


Title: Re: Εργασία 2006-7
Post by: KillBill on February 22, 2007, 11:25:49 am
Καλημέρα.

Μίλησα χθες το μεσημέρι με τον κο Ντελόπουλο και έγινε πρόταση να συναντηθούμε όλοι όσοι έχουμε απορίες πάνω στην εργασία. Είναι καλύτερα να λύσουμε όλοι μαζί τις απορίες μας παρά ο καθένας μόνος του. Η συνάντηση, πρότεινε ο κος Ντελόπουλος, να γίνει αύριο Παρασκευή (δεν μιλήσαμε για ώρα) καθώς μερικοί (είμαι και εγώ ένας από αυτούς) θα πάνε εκδρομή στο CERN (Τρίτη 27/2 με Σάββατο 3/3).
Επίσης είπε ότι πιθανότατα θα πάρει παράταση η παράδοση της εργασίας για μια εβδομάδα.



Title: Re: Εργασία 2006-7
Post by: adelo on February 22, 2007, 13:06:17 pm
Παρά την κατάληψη προτείνω να τα πούμε αύριο Παρασκευή 23.2.2007 ώρα 14:00.
Ας συναντηθούμε εκείνη την ώρα στο κυλικείο και βλέπουμε.
Όσοι έχετε laptop φέρτε το.


Title: Re: Εργασία 2006-7
Post by: adelo on February 22, 2007, 13:08:14 pm
Διόρθωση: Αύριο Παρασκευή στις ΔΩΔΕΚΑ (12:00) και όχι 14:00


Title: Re: Εργασία 2006-7
Post by: Faidon on February 23, 2007, 12:03:20 pm
Το είδε κανείς το post μου?  :'(

τα στάδια της εργασία όπως είπε ο Ντελώ είναι
-κατεβάζουμε το πρότυπο ΑΑC από το iso (μάλλον δε θα χρηαστεί για την εργασία, αλλά είναι καλό για να κατανοήσουμε το πρώτυπο.
-Τη Δευτέρα θα γίνει η παρουσίαση του προτύπου και θα δωθεί η εκφώνηση
-θα δωθούν βοηθητικά προγράμματα στο matlab για κάποιες διαδικασίες
-θα συνεργαστούμε τον adelo και manf, αλλά και μεταξύ μας ;)
-θα παραδώσουμε την εργασία στις 3/3/07 μέσω ethmmy

τα αρχεία που ανέβηκαν δε τα είδα, αλλά μόνο αυτά είπε στο μάθημα για την εργασία.

Αυτό ισχύει ωρε παίδες;
Σας έδωσε συναρτήσεις για το MATLAB;
Αν ναι, μπορεί να τις ανεβάσει κανένας;


Title: Re: Εργασία 2006-7
Post by: ioanna208 on February 23, 2007, 17:16:14 pm
Το είδε κανείς το post μου?  :'(

τα στάδια της εργασία όπως είπε ο Ντελώ είναι
-κατεβάζουμε το πρότυπο ΑΑC από το iso (μάλλον δε θα χρηαστεί για την εργασία, αλλά είναι καλό για να κατανοήσουμε το πρώτυπο.
-Τη Δευτέρα θα γίνει η παρουσίαση του προτύπου και θα δωθεί η εκφώνηση
-θα δωθούν βοηθητικά προγράμματα στο matlab για κάποιες διαδικασίες
-θα συνεργαστούμε τον adelo και manf, αλλά και μεταξύ μας ;)
-θα παραδώσουμε την εργασία στις 3/3/07 μέσω ethmmy

τα αρχεία που ανέβηκαν δε τα είδα, αλλά μόνο αυτά είπε στο μάθημα για την εργασία.

Αυτό ισχύει ωρε παίδες;
Σας έδωσε συναρτήσεις για το MATLAB;
Αν ναι, μπορεί να τις ανεβάσει κανένας;
o ντελόπουλος είπε ότι δίνεται παράταση για την εργασία με προθεσμία υποβολής 10 Μαρτίου και θα βγάλει διορθωμένη εκφώνηση....μπορεί ήδη να την έχει βάλει στο alexander....
όσο για τις συναρτήσεις που λες δίνει mdct και imdct και για τα παράθυρα...Κοίταξε στην διεύθυνση
http://www.ee.columbia.edu/~marios/


Title: Re: Εργασία 2006-7
Post by: evi_L on February 24, 2007, 16:09:46 pm
Καλησπέρα!
Καταρχάς έχω να εκφράσω τα παράπονα μου διότι χάσαμε πολλά άτομα την συνάντηση στο κυλικείο γιατί το μάθαμε λίγο αργά...  :???:
Δεν είμαστε και όλη μέρα πάνω απο το thmmy..

Το προσπερνώ κι έχω να ρωτήσω το εξής:
Στην καινούργια εκφώνηση,στη σελ 11 μήπως υπάρχει καποιο λαθάκι στον τύπο του ενεργειακού φάσματος??Γιατί το κάτω όριο της σειράς είναι μεγαλύτερο απο το πάνω και επιπλέον για j=0 ή 1 προκύπτουν κάπως απροσδιόριστα αποτελέσματα..


Title: Re: Εργασία 2006-7
Post by: ioanna208 on February 26, 2007, 15:42:17 pm
Το προσπερνώ κι έχω να ρωτήσω το εξής:
Στην καινούργια εκφώνηση,στη σελ 11 μήπως υπάρχει καποιο λαθάκι στον τύπο του ενεργειακού φάσματος??Γιατί το κάτω όριο της σειράς είναι μεγαλύτερο απο το πάνω και επιπλέον για j=0 ή 1 προκύπτουν κάπως απροσδιόριστα αποτελέσματα..
Στην σελίδα 11 υπήρχε λάθος πριν την τελευταία εκφώνηση...το διόρθωσε αλλά διόρθωσε και κάτι σωστό....Δηλαδή στο πάνω όριο στον δείκτη παραμένει το j+1 αλλά από τον όρο αυτό αφαιρούμε 1...


Title: Re: Εργασία 2006-7
Post by: chggr005 on February 27, 2007, 13:00:02 pm
Επιβεβαιώνω κι εγώ ότι έχει λάθος στον τύπο της σελίδας 11. Πράγματι η διόρθωση της Ιωάννας είναι η σωστή...

Νομίζω όμως ότι βρήκα άλλο ένα λάθος στην συνάρτηση psycho αυτήν την φορά. Η εκφώνηση λέει ότι η συνάρτηση αυτή δίνει ως έξοδο δύο μεταβλητές:

   T : Πίνακας < number of bands > ×1 µε τα κατώφλια ακουστότητας για κάθε Scalefactor
band του frameT .
   P : Πίνακας < number of bands > ×1 µε το ενεργειακό ϕάσµα του frameT .

Κι εγώ ρωτώ: Εφόσον ο πίνακας frameT είναι μεγέθους 1024x2, μήπως θα έπρεπε και οι δύο αυτοί πίνακες να έχουν μέγεθος <number of bands> x 2?

Εάν όχι, εγώ που κάνω τους υπολογισμούς για κάθε κανάλι ξεχωριστά, πως θα συγχωνεύσω τα αποτελέσματα που προκύπτουν για τα δύο κανάλια?


Title: Re: Εργασία 2006-7
Post by: sevastizoi on February 27, 2007, 14:20:32 pm
Quote
Κι εγώ ρωτώ: Εφόσον ο πίνακας frameT είναι μεγέθους 1024x2, μήπως θα έπρεπε και οι δύο αυτοί πίνακες να έχουν μέγεθος <number of bands> x 2?

Εάν όχι, εγώ που κάνω τους υπολογισμούς για κάθε κανάλι ξεχωριστά, πως θα συγχωνεύσω τα αποτελέσματα που προκύπτουν για τα δύο κανάλια?

Προφανώς, οι πίνακες αυτοί έχουν όντως μέγεθος <number of bands>χ 2,δε νομίζω ότι μπορούμε να συγχωνεύσουμε τα δεδομένα για τα δύο κανάλια [αντίστοιχα και για το snr προφανώς...].Δεδομένου ότι δεν έχουμε δει πουθενά για στατιστική συσχέτιση των δυο καναλιών δεν μπορούμε να εξάγουμε κάποιο συμπέρασμα ώστε  να έχουμε ενα κοινό ενεργειακό φάσμα για τα δυο κανάλια.
Ίσως στη version 1.3-2 έχουμε διόρθωση και σε αυτό ..


Title: Re: Εργασία 2006-7
Post by: poumpa on February 27, 2007, 15:09:54 pm
Ναι κ για τα 2 κανάλια πρέπει να εκτελεστούν οι συναρτήσεις άρα τελικά θα έχουμε <number of bands>χ 2

Το είχα ρωτήσει στον Ντελόπουλα πιο παλιά κ είχε πεί ότι θα το βάλει σε επόμενη εκφώνηση... :D :D ;D


Title: Re: Εργασία 2006-7
Post by: sevastizoi on February 28, 2007, 02:34:03 am
Όσον αφορά τον κβαντιστή στο δεύτερο επίπεδο για τους tns coeffs είπαμε ότι ειναι ομοιόμορφος συμμετρικός με βήμα 0,1.Ειπώθηκε κάτι στη συνάντηση της προηγούμενης Παρασκευής ότι πρέπει το εύρος των σταθμών κβαντισμού να είναι απο -0,7 έως 0,8 είτε απο -0,8 έως 0,7;Αυτό δεν θα ίσχυε για περιττής συμμετρίας κβαντιστή; Γιατί αν ισχύει αυτή η φήμη κάτι τέτοιο δεν μπορεί να συμβαίνει αφού έχουμε Ν=16(άρτιος) και με βάση τις σημειώσεις αυτό δεν μπορεί να συμβεί ,aka να υπάρχει στάθμη κβαντισμού στο 0.
Για άρτιας συμμετρίας κβαντιστεί ,με βάση τις σημειώσεις του μαθήματος προκύπτει ότι το εύρος των σταθμών κβαντισμού είναι [-0,75 , 0,75].
Επιβεβαίωση ή διόρθωση ;
Μπορεί κάποιος να μεταφέρει τι είχε ειπωθεί;


Title: Re: Εργασία 2006-7
Post by: Nick_nAME on February 28, 2007, 03:43:32 am
Ο Ντελό είπε να κβαντίσουνε ομοιόμορφα από -0,7 έως 0,8.
Δεν παίζει ρόλο που το διάστημα δεν φαίνεται συμμετρικό (γιατί εμείς έχουμε ως μέσο το 0)...
Είναι συμμετρικό...


Title: Re: Εργασία 2006-7
Post by: poumpa on February 28, 2007, 14:32:04 pm
Για άρτιας συμμετρίας κβαντιστεί ,με βάση τις σημειώσεις του μαθήματος προκύπτει ότι το εύρος των σταθμών κβαντισμού είναι [-0,75 , 0,75].
Επιβεβαίωση ή διόρθωση ;
Μπορεί κάποιος να μεταφέρει τι είχε ειπωθεί;

Σύμφωνα με τις σημειώσεις το διάστημα είναι [-0.7,0.8].
Πρόσεξε ότι για Ν άρτιο στο i=N/2 η στάθμη είναι d_i=0 και έτσι έχεις τον άξονα χ=0 να ανήκει στις στάθμες σου αλλά στον αρνητικό ημιάξονα μια στάθμη λιγότερο.

Πάντως κ εμένα λογικό μου φαίνεται αυτό που λές.
Πως λες συμμετρικό ως προς το 0 κάτι από -0.7 ως 0.8; :o :o
Go figure... ^superinnocent^


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 01, 2007, 13:05:30 pm
Παιδιά, έχετε τα πρώτα αποτελέσματα για τις τιμές του α?

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


Title: Re: Εργασία 2006-7
Post by: Faidon on March 01, 2007, 17:52:57 pm
Εγώ πήγα στη σελίδα:

http://www.ee.columbia.edu/~marios/mdct/mdct_giraffe.html

Κατέβασα τη kbdwin αλλά δεν έχει κώδικα, παραμόνο σχόλια!...

Όταν βέβαια κατεβάζω και την kbdwin.dll μπορώ να χρησιμοποιήσω τη συνάρτηση από το MATLAB.

Πώς γίνεται αυτό;
Το kbdwin.c χρειάζεται;


Title: Re: Εργασία 2006-7
Post by: shiver on March 01, 2007, 21:34:13 pm

Κατέβασα τη kbdwin αλλά δεν έχει κώδικα, παραμόνο σχόλια!...

Όταν βέβαια κατεβάζω και την kbdwin.dll μπορώ να χρησιμοποιήσω τη συνάρτηση από το MATLAB.

Πώς γίνεται αυτό;
Το kbdwin.c χρειάζεται;

εμείς αυτό που κάναμε είναι να βάλουμε το αρχείο dll στον ίδιο φάκελο με τις υπόλοιπες συναρτήσεις που έχουμε κάνει και η kbdwin τρέχει
κανονικά :)
Το kbdwin.c δεν το χρησιμοποιήσαμε


Title: Re: Εργασία 2006-7
Post by: Faidon on March 02, 2007, 14:19:58 pm
Ποιές συναρτήσεις χρησιμοποιήσατε για το MDCT; Από το Mario;

Εγώ δοκιμάζω το ζευγάρι mdct4-imdct4 και δε μου λειτουργεί....

Code:
x=[1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16]
y=mdct4(x)
xx=imdct4(y)

Βγάζω:

Code:
>> x=[1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16]

x =

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16

>> y=mdct4(x)

y =

  -24.4858
   -4.1725
    3.5383
    2.1988
   -2.0377
   -1.6502
    1.5982
    1.5011

>> xx=imdct4(y)

xx =

   -7.0000
   -5.0000
   -3.0000
   -1.0000
    1.0000
    3.0000
    5.0000
    7.0000
   25.0000
   25.0000
   25.0000
   25.0000
   25.0000
   25.0000
   25.0000
   25.0000

Ότι νά' ναι δηλαδή... Δε θα έπρεπε να βγάζει το ίδιο;


Title: Re: Εργασία 2006-7
Post by: adelo on March 02, 2007, 14:49:24 pm
Όχι.
Πού είναι τα παράθυρά σου, πού είναι το overlap;

Δες π.χ.
http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 02, 2007, 15:14:49 pm
Το kbdwin.c δεν το χρησιμοποιήσαμε
To kdbwin.c το χρησιμοποίησα εγώ που τρέχω Linux. ;)

Faidon, διάβασε καλά την εκφώνηση για τις συναρτήσεις SSC, filterbank, iFilterbank.

Κανείς να έχει βρει τιμές του α στο 2ο βήμα TNS? Εμένα μου βγαίνουν μικρότερες του 0.1, περίπου από -0.07 έως 0.08. Κάποιος να επαληθεύσει ή να διαψεύσει???


Title: Re: Εργασία 2006-7
Post by: poumpa on March 02, 2007, 15:51:45 pm
Κανείς να έχει βρει τιμές του α στο 2ο βήμα TNS? Εμένα μου βγαίνουν μικρότερες του 0.1, περίπου από -0.07 έως 0.08. Κάποιος να επαληθεύσει ή να διαψεύσει???

Δεν νομίζω ότι αυτός είναι ο κατάλληλος τρόπος για να δεις αν δουλεύει η TNS.
Οι τιμές αυτές δεν έχουν κ κάποια ιδιαίτερη σημασία αν τις βλέπεις απλώς ως ...αριθμούς

Καλύτερα να δοκιμάσεις να δεις αυτό που θα πρέπει να κάνει η TNS από την εκφώνηση της άσκησης.
Πάρε ένα σήμα που αποτελείται από 1-2 απλά ημίτονα κ βάλτου ένα δυνατό παλμό.
Το φάσμα θα εμφανίσει μια περιοδικότητα σε σχέση με το φάσμα πριν την εισαγωγή του παλμού.
Μετά την TNS αυτή η περιοδικότητα θα πρέπει να μειωθεί.

Επίσης δοκίμασε κ με την iTNS η οποία θα πρέπει να ανακατεσκευάζει πλήρως το σήμα που δίνεις στην TNS


Title: Re: Εργασία 2006-7
Post by: (Stalin)^2 on March 02, 2007, 15:58:58 pm
άντε ρε βλάκα χέσε τις εργασίες και έλα καμιά βόλτα απ' την κατάληψη....


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 03, 2007, 12:24:50 pm
Δεν νομίζω ότι αυτός είναι ο κατάλληλος τρόπος για να δεις αν δουλεύει η TNS.
Οι τιμές αυτές δεν έχουν κ κάποια ιδιαίτερη σημασία αν τις βλέπεις απλώς ως ...αριθμούς

Καλύτερα να δοκιμάσεις να δεις αυτό που θα πρέπει να κάνει η TNS από την εκφώνηση της άσκησης.
Πάρε ένα σήμα που αποτελείται από 1-2 απλά ημίτονα κ βάλτου ένα δυνατό παλμό.
Το φάσμα θα εμφανίσει μια περιοδικότητα σε σχέση με το φάσμα πριν την εισαγωγή του παλμού.
Μετά την TNS αυτή η περιοδικότητα θα πρέπει να μειωθεί.

Επίσης δοκίμασε κ με την iTNS η οποία θα πρέπει να ανακατεσκευάζει πλήρως το σήμα που δίνεις στην TNS
Εγώ δεν αναφερόμουν στο πως θα πρέπει να τεστάρει κανείς για να δει εάν δουλεύει η TNS. Αναφερόμουν στο πως θα γίνει ο κβαντισμός των α. Διότι εάν τα α βγαίνουν από -0.08 έως 0.08, τότε προφανώς το βήμα του κβαντιστή δεν μπορεί να είναι 0.1 που λέει η εκφώνηση...
Γι' αυτό ρωτάω πόσο τα βρήκατε κι εσείς, για να δούμε εάν έχω εγώ πρόβλημα ή η εκφώνηση.

Η TNS χωρίς κβαντιστή δουλεύει κανονικά.

EDIT: Τελικά εντάξει, λύθηκε το πρόβλημα. Το λάθος ήταν δικό μου, αφού πριν από κάθε δοκιμή πρέπει να πολλαπλασιάσουμε το frameT με 2^15.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 03, 2007, 19:00:13 pm
Ρε παιδιά τελικά το SNR πως το υπολογίζουμε;


Title: Re: Εργασία 2006-7
Post by: ckck20 on March 03, 2007, 19:16:53 pm
Ξέρει κανείς τι κάνουμε στο Huffman;

SNR=10*log10(P_in/P_noise)
P_in είναι η ισχύς του σήματος εισόδου
P_noise=η ισχύς του θορύβου (σήμα εισόδου - σήμα εξόδου)


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 03, 2007, 19:17:53 pm
Το SNR το βρίσκουμε έτσι:

Τώρα, πως βρίσκουμε το SNR...
Κοίταξα στην Wikipedia το εξής άρθρο:
http://en.wikipedia.org/wiki/Signal-to-noise_ratio

Ουσιαστικά το άρθρο αυτό λέει ότι SNR = 10log(P_signal/P_noise), όπου ο λογάριθμος είναι δεκαδικός. Άρα λοιπόν βρίσκουμε την ισχύς του σήματος (άθροισμα τετραγώνων των δειγμάτων), στην συνέχεια βρίσκουμε την ισχύ του θορύβου (άθροισμα τετραγώνων των διαφορών εισόδου - εξόδου) και εφαρμόζουμε τον τύπο.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 03, 2007, 19:31:10 pm
για Huffman αν δεν κάνω λάθος ο Ντελ είπε πως θα μας δώσει έτοιμη συνάρτηση (αν κάνω λάθος διαψεύστε με εγκαίρως.......)


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 03, 2007, 19:39:04 pm
Κι εγώ νομίζω πως είχε πει ότι θα μας δώσει τον Huffman έτοιμο.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 03, 2007, 19:53:03 pm
νέα απορία: διαβάζοντας τα μηνύματα στο forum πέτυχα κάπου 1 που λέει πως για τα long παράθυρα έχουμε α=4 και για τα short έχουμε α=6. Στην εκφώνηση της εργασίας (έκδοση 1.3) όμως λέει το αντίθετο. Τι ισχύει τελικά;


Title: Re: Εργασία 2006-7
Post by: poumpa on March 03, 2007, 20:10:14 pm
Ξέρει κανείς τι κάνουμε στο Huffman;

Ακόμα το ψάχνω στο πρότυπο...
Έχω βρει 2 παραγράφους με τίτλο 'Noiseless Coding' στα w2203tft κ w2203tfa όπου περιγράφει κάποια πράγματα αλλά δεν μπορώ να καταλαβώ ολοκληρωμένα τι γίνεται.

Σε ότι έχει σχέση καθαρά με την κωδικοποίηση huffman από τις παραγράφους αυτές καταλαβαίνεις πως εφαρμοζέται.
Ωστόσο έχει αρκετά επιπλέον σημεία τα οποία με μπερδεύουν...
(π.χ. Δεν έχω καταλάβει ακόμα πως πρέπει να χωρίσεις το frame σε sections)
Ίσως κ να μην χρειάζονται για την εργασία τα επιπλεόν αλλά μου φαίνεται πως χωρίς αυτά η κωδικοποίηση
δεν θα είναι κ τόσο αποδοτική
Άσε που υπάρχουν αρκετές αναφορές σε παραγράφους κ πίνακες που δεν μπορώ να βρω (τυπογραφικά λάθη στο πρότυπο;;;!!!)

για Huffman αν δεν κάνω λάθος ο Ντελ είπε πως θα μας δώσει έτοιμη συνάρτηση (αν κάνω λάθος διαψεύστε με εγκαίρως.......)

Κάτι είπε αλλά δεν ξέρω πόσο σίγουροι μπoρούμε να είμαστε.
Για την ακρίβεια εγώ θυμάμαι να λέει ότι "κάτι" θα μας δώσουν....


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 03, 2007, 20:49:27 pm
Τον τύπο αυτόν για τον SNR τον εφαρμόζω σε κάθε κανάλι ξεχωριστά; Αν ναι τότε η συνάρτηση demoAAC1 τι επιστρέφει σαν έξοδο SNR;


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 04, 2007, 00:28:13 am
Παιδιά μια ερώτηση κυρίως για επιβεβαίωση:
Στο ψυχοακουστικό όταν έχω long frame τότε υπολογίζω 69 Pi(j) ;
Αντίθετα όταν έχω short frame τότε υπολογίζω 8*42 = 336 Pi(j) ;


Title: Re: Εργασία 2006-7
Post by: ioanna208 on March 04, 2007, 15:51:15 pm
Σχετικά με το δεύτερο επίπεδο..Εκεί που υπολογίζουμε τα α, την αυτοσυσχέτιση (r)  πως την υπολογίζουμε? Θυμάμαι σαν να είχε πει ο Ντελόπουλος στο μάθημα για μία συνάρτηση στο matlab αλλά δεν έχω σημειώσει κάτι...Έψαξα και στην βοήθεια και το μόνο που βρήκα είναι μία autocor που παίρνει αρκετούτσικα  ορίσματα :(. Αυτή είναι???
Και κάτι ακόμα σχετικά με τον κβαντιστή. Όταν το α ανήκει σε κάποιο από τα διαστήματα το κβαντίζουμε στην χαμηλότερη τιμή του διαστήματος? Απλά έχω μπερδευτεί λίγο από τα ψεε που μας έδινε για κάθε διάστημα μία συγκεκριμένη τιμή και τώρα δεν έχουμε τιμές για τα διαστήματα.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 04, 2007, 18:03:07 pm
Όχι.
Πού είναι τα παράθυρά σου, πού είναι το overlap;

Δες π.χ.
http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform

Ναι σωστά... Απλά μπερδεύτηκα από την iFilterbank.

Η iFilterbank δε θα επιστρέφει το frameT που είχε σαν είσοδο η filterbank. Έτσι δεν είναι;
ή μήπως θα κάνει και την ανακατασκευή;

Και μία ακόμη απορία: Τα πρώτα 1024 δείγματα του πρώτου frame πώς θα ανακατασκευαστούν;


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 05, 2007, 00:22:53 am
νέα απορία: διαβάζοντας τα μηνύματα στο forum πέτυχα κάπου 1 που λέει πως για τα long παράθυρα έχουμε α=4 και για τα short έχουμε α=6. Στην εκφώνηση της εργασίας (έκδοση 1.3) όμως λέει το αντίθετο. Τι ισχύει τελικά;
Ισχύει αυτό που λέει στην εκφώνηση.

Τον τύπο αυτόν για τον SNR τον εφαρμόζω σε κάθε κανάλι ξεχωριστά; Αν ναι τότε η συνάρτηση demoAAC1 τι επιστρέφει σαν έξοδο SNR;
Η συνάρτηση demoAAC1 θα σου επιστρέψει έναν πίνακα 2x1 που θα περιέχει το SNR για κάθε κανάλι ξεχωριστά.

Παιδιά μια ερώτηση κυρίως για επιβεβαίωση:
Στο ψυχοακουστικό όταν έχω long frame τότε υπολογίζω 69 Pi(j) ;
Αντίθετα όταν έχω short frame τότε υπολογίζω 8*42 = 336 Pi(j) ;
Για τα long frames, ο πίνακας P θα έχει μέγεθος 69x2 (για τα δύο κανάλια)
Για τα short frames ο πίνακας P θα έχει μέγεθος 42x2. Κατά την εύρεση των 42 αυτών συντελεστών, θα πρέπει να συνυπολογίσεις τους συντελεστές MDCT και από τα 8 subframes.

Σχετικά με το δεύτερο επίπεδο..Εκεί που υπολογίζουμε τα α, την αυτοσυσχέτιση (r)  πως την υπολογίζουμε?
Τσέκαρε την συνάρτηση lpc. Αυτή νομίζω ότι μας κάνει όλη την δουλειά χωρίς προβλήματα, αν και θέλει κάπως προσοχή στην χρήση της για να σου δώσει τα σωστά αποτελέσματα...


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 05, 2007, 00:42:30 am
για τα short frames τι εννοείς ότι πρέπει να να συνυπολογίσω τους συντελεστές MDCT και από τα 8 subframes;


Title: Re: Εργασία 2006-7
Post by: ioanna208 on March 05, 2007, 02:20:03 am

Σχετικά με το δεύτερο επίπεδο..Εκεί που υπολογίζουμε τα α, την αυτοσυσχέτιση (r)  πως την υπολογίζουμε?
Τσέκαρε την συνάρτηση lpc. Αυτή νομίζω ότι μας κάνει όλη την δουλειά χωρίς προβλήματα, αν και θέλει κάπως προσοχή στην χρήση της για να σου δώσει τα σωστά αποτελέσματα...
ευχαριστώ :)
Τον τύπο αυτόν για τον SNR τον εφαρμόζω σε κάθε κανάλι ξεχωριστά; Αν ναι τότε η συνάρτηση demoAAC1 τι επιστρέφει σαν έξοδο SNR;
Η συνάρτηση demoAAC1 θα σου επιστρέψει έναν πίνακα 2x1 που θα περιέχει το SNR για κάθε κανάλι ξεχωριστά.
Τον μεταπτυχιακό που τον ρωτήσαμε μας είπε :
να χρησιμοποιήσουμε το μέσο όρο ισχύος του σήματος για κάθε κανάλι ως προς το μέσο όρο ισχύος του θορύβου.


Title: Re: Εργασία 2006-7
Post by: ioanna208 on March 05, 2007, 11:59:21 am
Σχετικά με το δεύτερο επίπεδο στην psycho εκεί που θέλουμε να υπολογίσουμε τα κατώφλια ακουστότητας...κολλάμε στην πρώτη μπάντα και στην τελευταία του frame. :(, επειδή  χρησιμοποιούν στοιχεία από την προηγούμενη και την επόμενη μπάντα αντίστοιχα.

Πιο συγκεκριμένα εκεί που υπολογίζουμε το εύρος της μπάντας σε barks για την πρώτη μπάντα δεν θα λάβουμε υπόψιν τον όρο (Bj-Bj-1)/2 και για την τελευταία μπάντα θα αγνοήσουμε το( Bj+1-Bj)/2 (σελ 12). Και μετά εκεί που υπολογίζουμε το Τi θα πούμε κατευθείαν ότι είναι ίσο με Ti,sc??


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 05, 2007, 13:48:38 pm
για τα short frames τι εννοείς ότι πρέπει να να συνυπολογίσω τους συντελεστές MDCT και από τα 8 subframes;

Θα πρέπει να δουλέψεις για κάθε subframe ξεχωριστά και στο τέλος να συνδυάσεις τα αποτελέσματα ούτως ώστε να προκύψουν 42x2 συντελεστές ισχύος


Title: Re: Εργασία 2006-7
Post by: poumpa on March 05, 2007, 13:54:03 pm
Πιο συγκεκριμένα εκεί που υπολογίζουμε το εύρος της μπάντας σε barks για την πρώτη μπάντα δεν θα λάβουμε υπόψιν τον όρο (Bj-Bj-1)/2 και για την τελευταία μπάντα θα αγνοήσουμε το( Bj+1-Bj)/2 (σελ 12). Και μετά εκεί που υπολογίζουμε το Τi θα πούμε κατευθείαν ότι είναι ίσο με Ti,sc??

Δεν το έχει διευκρινήσει αλλό αυτό φαίνεται σωστό και αυτό έκανα κι εγώ

για τα short frames τι εννοείς ότι πρέπει να να συνυπολογίσω τους συντελεστές MDCT και από τα 8 subframes;

Θα πρέπει να δουλέψεις για κάθε subframe ξεχωριστά και στο τέλος να συνδυάσεις τα αποτελέσματα ούτως ώστε να προκύψουν 42x2 συντελεστές ισχύος

Είσαι σίγουρος; Διαφωνώ... :(
Γιατί να μην επιστρέψεις 8x42;


Title: Re: Εργασία 2006-7
Post by: ckck20 on March 05, 2007, 14:57:25 pm
Και γω 42x8 επιστρέφω, μου φαίνεται πιο λογικό.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 05, 2007, 15:40:53 pm
νέα απορία: διαβάζοντας τα μηνύματα στο forum πέτυχα κάπου 1 που λέει πως για τα long παράθυρα έχουμε α=4 και για τα short έχουμε α=6. Στην εκφώνηση της εργασίας (έκδοση 1.3) όμως λέει το αντίθετο. Τι ισχύει τελικά;

Εγώ το έκανα όπως στην εκφώνηση, αλλά βρήκα ότι στο w2203tfa.pdf σελίδα 128 κάτω λέει ότι 4 για long και 6 για short.

Να σας ρωτήσω ρε παιδιά. Στην αρχή προσθέσατε 1024 δείγματα (π.χ. μηδενικά) για να μπορείτε εν τέλει να κάνετε πλήρη ανακατασκευή;
Ή τέλος πάντων πως κάνατε την πλήρη ανακατασκευή στα πρώτα 1024 δείγματα και πως επιλέξατε τον τύπο frame για το πρώτο frame;


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 05, 2007, 17:14:17 pm
Τον τύπο του 1ου frame τον επιλέγεις αυθαίρετα OLS. Τώρα για την ανακατασκευή ότι ξέρεις ξέρω.
Εγώ κάνω το εξής: τους συντελεστές mdct τους βάζω στην imdct και το αποτέλεσμα το διαιρώ με το ατνίστοιχο παράθυρο. Συμφωνείτε;

Εγώ ήθελα να ρωτήσω το εξής: Στα LSS και LPS τα παράθυρα που χρησιμοποιούνται έχουν ένα μέρος των συντελεστών τους ίσο με μηδέν όποτε δεν μπορώ  να διαιρέσω τα αντίστοιχα τμήματα των συντελεστών imdct με το τμήμα αυτό του παραθύρου.Σε αυτή την περίπτωση τι κάνω;

Επίσης στα ESH με την παραπάνω διαδικασία ανακτώ τους 1152 συντελεστές του frame. Τους άλλους 448x2 πως τους ανακτώ;


Title: Re: Εργασία 2006-7
Post by: Faidon on March 05, 2007, 17:36:17 pm
Τον τύπο του 1ου frame τον επιλέγεις αυθαίρετα OLS. Τώρα για την ανακατασκευή ότι ξέρεις ξέρω.
Εγώ κάνω το εξής: τους συντελεστές mdct τους βάζω στην imdct και το αποτέλεσμα το διαιρώ με το ατνίστοιχο παράθυρο. Συμφωνείτε;

Εγώ ήθελα να ρωτήσω το εξής: Στα LSS και LPS τα παράθυρα που χρησιμοποιούνται έχουν ένα μέρος των συντελεστών τους ίσο με μηδέν όποτε δεν μπορώ  να διαιρέσω τα αντίστοιχα τμήματα των συντελεστών imdct με το τμήμα αυτό του παραθύρου.Σε αυτή την περίπτωση τι κάνω;

Επίσης στα ESH με την παραπάνω διαδικασία ανακτώ τους 1152 συντελεστές του frame. Τους άλλους 448x2 πως τους ανακτώ;

Δεν τα διαιρείς με το αντίστοιχο παράθυρο.
Τα πολλαπλασιάζεις και ως δια μαγείας  :D  παίρνεις το σωστό αποτέλεσμα!

Δες π.χ.
http://en.wikipedia.org/wiki/Modified_discrete_cosine_transform


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 05, 2007, 18:17:44 pm
Ακόμα και αν τα πολλαπλασιάσεις εκεί που το παράθυρο είναι μηδέν (στα LSS και LPS) το αποτέλεσμα θα είναι μηδέν (οπότε δεν ανακτάς το αρχικό).Καταλαβαίνω κάτι λάθος;

Επίσης με τα 448x2 των ESH τι γίνεται; 


Title: Re: Εργασία 2006-7
Post by: Faidon on March 05, 2007, 18:38:41 pm
Ανακτάς την πληροφορία από τα προηγούμενα και επόμενα frames.
Πάνε διάβασε στο wikipedia και θα καταλάβεις!


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 05, 2007, 20:43:52 pm
δηλαδή αφού κάνω imdct και εφαρμόσω το παράθυρο τότε προσθέτω (και αντικαθιστώ) το αριστερό μισό φρειμ στο δεξί μισό του προηγούμενου φρέιμ. Σωστά;

Αυτό το ίδιο κάνω και για τα subframes στα ESH;   ::)


Title: Re: Εργασία 2006-7
Post by: Faidon on March 06, 2007, 03:25:59 am
Ναι και αν θες κάνε μερικές δοκιμές με τα z, w και τα a,b,c,d να δεις πως γίνεται και για τα μη συμμετρικά παράθυρα LSS και LPS.


Title: Re: Εργασία 2006-7
Post by: sevastizoi on March 06, 2007, 15:00:34 pm
Όσον αφορά την ανακατασκευή παίξε μια μια ακολουθία αριθμών για να ανακατασκευάσεις τις επικαλυπτόμενες περιοχές.Δηλαδή, παράθυρα ,mdct , imdct, παράθυρα ,overlap +add.


Όσον αφορά το SNR [και στα δύο πρώτα επίπεδα]:
το υπολογίζετε με εισόδους τα fNameIn . fNameout ,έτσι δεν είναι;
Το αρχείο χ που είναι η έξοδος κάθε iAACoder και το αρχείο που προκύπτει απο το h=wavread(fNameOut) δεν θα έπρεπε να είναι ίδιο;
Γιατί με έλεγχο ισότητας isequal(x,h) προκύπτει ότι δεν είναι ίδιοι οι πίνακες ,πράγμα περίεργο :o.

To SNR για το δεύτερο επίπεδο πόσο το βγάζετε;Σε εμάς προκύπτει 305 .Στα δύο πρώτα επίπεδα δεν θα πρέπει να υπάρχει διαφορά στο SNR;Αφού υποτίθεται ότι στο δεύτερο επίπεδο κάνουμε και κβάντιση,δεν θα πρέπει να είναι μικρότερο του πρώτου επιπέδου;


Title: Re: Εργασία 2006-7
Post by: Faidon on March 06, 2007, 15:21:39 pm
Το αρχείο χ που είναι η έξοδος κάθε iAACoder και το αρχείο που προκύπτει απο το h=wavread(fNameOut) δεν θα έπρεπε να είναι ίδιο;
Γιατί με έλεγχο ισότητας isequal(x,h) προκύπτει ότι δεν είναι ίδιοι οι πίνακες ,πράγμα περίεργο :o.

Μάλλον κατά την αποθήκευση σε αρχείο το MATLAB κόβει σε ακρίβεια...

To SNR για το δεύτερο επίπεδο πόσο το βγάζετε;Σε εμάς προκύπτει 305 .Στα δύο πρώτα επίπεδα δεν θα πρέπει να υπάρχει διαφορά στο SNR;Αφού υποτίθεται ότι στο δεύτερο επίπεδο κάνουμε και κβάντιση,δεν θα πρέπει να είναι μικρότερο του πρώτου επιπέδου;

Αν γίνεται κβάντιση, λογικά πρέπει να υπάρχει διαφορά. Αν και δεν το έχω κάνει ακόμα. Πάντως να χρησιμοποιείτε το sample που ανέβασε στο eTHMMY για να κάνουμε σύγκριση αποτελεσμάτων.


ΕΡΩΤΗΣΗ: Εσείς πώς υλοποιήσατε την iFilterbank;

1) Επιστρέφει το frameT που ήταν είσοδος στην filterbank.

2) Επιστρέφει τον imdct του frameF. Δηλαδή δεν κάνει ανακατασκευή.

Πάντως αν επιστρέφει την ανακατασκευασμένη είσοδο της filterbank, δε θα πρέπει να έχει στις εισόδους και το prevframeF και το nextframeF;


Title: Re: Εργασία 2006-7
Post by: sevastizoi on March 06, 2007, 15:29:04 pm
Quote
Μάλλον κατά την αποθήκευση σε αρχείο το MATLAB κόβει σε ακρίβεια...

Εκεί βρίσκουμε περίεργα τα πράγματα.Πώς κρατάμε ή αυξάνουμε την ακρίβεια του matlab;γιατί μιλάμε για διαφορές στα 10-12ατα δεκαδικά ψηφία που βγάζουν άλλα αποτελέσματα.


Quote
) Επιστρέφει τον imdct του frameF. Δηλαδή δεν κάνει ανακατασκευή.
Όντως, δεν είναι η δουλειά της ifilterbank να κάνει ανακατασκευή.
Αυτό γίνεται μετά στη σύνθεση όλων των συναρτήσεων σου στην iaacoderx


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 06, 2007, 15:36:32 pm
Σε μένα το χ και το wavead(fNameout) μου βγαίνουν ίδια. (όντως περίεργο αυτό που λές)

2 νέες απορίες:

1. Στο TNS εφόσον τα α που προκύπτουν είναι 4 (5 μαζί με τον άσσο) γιατί πρέπει να τα κβαντίσουμε (και μάλιστα με Ν=16);

2. Εν τέλει ποιον αριθμο αντιστοιχίζουμε σε κάθε διάστημα κβάντισης; (κάτι ειπώθηκε για το κάτω άκρο κάθε διαστήματος; ισχύει;)


Title: Re: Εργασία 2006-7
Post by: Faidon on March 06, 2007, 16:15:02 pm
Εκεί βρίσκουμε περίεργα τα πράγματα.Πώς κρατάμε ή αυξάνουμε την ακρίβεια του matlab;γιατί μιλάμε για διαφορές στα 10-12ατα δεκαδικά ψηφία που βγάζουν άλλα αποτελέσματα.

Εντάξει τόσο μικρή διαφορά τι σε πειράζει; Πάντως το wav αρχείο αυξάνει ακρίβεια αν αυξήσεις τα NBITS:

WAVWRITE(Y,FS,NBITS,WAVEFILE)

Βάλτα 32 που είναι το μέγιστο.

Αλλά φαντάζομαι ότι αυτό θα το ξέρεις...


Title: Re: Εργασία 2006-7
Post by: evi_L on March 06, 2007, 16:24:19 pm
Ρε παιδιά τελικά το SNR θα είναι μια τιμή,δηλαδή συνολικά, ή 2 τιμές μία για κάθε κανάλι?? :D


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 06, 2007, 16:28:37 pm
1 για κάθε κανάλι (το πιο πιθανό....)


Title: Re: Εργασία 2006-7
Post by: Faidon on March 06, 2007, 16:38:21 pm
Εγώ νομίζω ότι είναι κοινή και για τα δύο κανάλια.

Δοκιμάσατε το 1ο Επίπεδο στο αρχείο που ανέβασε στο eTHMMY (LicorDeCalandraca.wav);

Εγώ βγάζω με τη SINUS:

SNR =

   Inf   Inf

  353.9367  354.3071

και με τη KAISER:

SNR =

   Inf   Inf

  357.0496  353.8809

Εσείς; Εσείς;  :D

EDIT: Χρησιμοποίησα NBITS=16 στο wavwrite. Όταν είχα NBITS=32 δεν έβγαζα άπειρο.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 06, 2007, 16:49:35 pm
Ποσοοοοοοοο;  Καλά ποιον τύπο χρησιμοποιείς;


Title: Re: Εργασία 2006-7
Post by: Faidon on March 06, 2007, 19:03:28 pm
Ποσοοοοοοοο;  Καλά ποιον τύπο χρησιμοποιείς;

Γιατί; Εσύ πόσο βγάζεις;

Αυτόν τον τύπο χρησιμοποίησα:

 SNR = 10*log10{ Σ Xi2  /  Σ(Xi - Yi)2 }

X: fNameIn
Y: fNameOut

EDIT: Βασικά άλλαξα το NBITS του wavwrite από 32 σε 16 και έγινε το SNR άπειρο.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 06, 2007, 19:20:05 pm
Χρήστοοοοο! Τελικά το δεύτερο επίπεδο πώς το υλοποιήσατε;

Η AACSeq2 καλεί την psycho. Η psycho καλεί την TNS. Η AACSeq2 καλεί την TNS για να πάρουμε τα TNScoeffs; Έτσι;

Απορώ γιατί χρειάζεται η psycho να δίνει στην έξοδο το P...


Title: Re: Εργασία 2006-7
Post by: evi_L on March 06, 2007, 20:30:45 pm
Εγώ νομίζω ότι είναι κοινή και για τα δύο κανάλια.

Δοκιμάσατε το 1ο Επίπεδο στο αρχείο που ανέβασε στο eTHMMY (LicorDeCalandraca.wav);


Εγω πάντως βγάζω 33.Και φταίει γι'αυτό το πρώτο και το τελευταίο frame που έχουν μεγάλη απόκλιση απο το αρχικό σήμα.
 :-[


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 06, 2007, 20:31:31 pm
Εγώ SNR βγάζω 9.4967 για το ένα κανάλι και  9.8614 για το άλλο. Κουφό;;; Πες τε μου :-[


Title: Re: Εργασία 2006-7
Post by: Faidon on March 06, 2007, 21:17:11 pm
Εγω πάντως βγάζω 33.Και φταίει γι'αυτό το πρώτο και το τελευταίο frame που έχουν μεγάλη απόκλιση απο το αρχικό σήμα.
 :-[

Να προσθέσετε μερικά μηδενικά στην αρχή και στο τέλος του αρχείου και έτσι θα κάνετε πλήρη ανακατασκευή.

Όσο για το 9.4967 μάλλον είναι λάθος.... Ψάξε από την αρχή τις συναρτήσεις σου να το βρεις...


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 06, 2007, 21:46:31 pm
To SNR για το δεύτερο επίπεδο πόσο το βγάζετε;Σε εμάς προκύπτει 305 .Στα δύο πρώτα επίπεδα δεν θα πρέπει να υπάρχει διαφορά στο SNR;Αφού υποτίθεται ότι στο δεύτερο επίπεδο κάνουμε και κβάντιση,δεν θα πρέπει να είναι μικρότερο του πρώτου επιπέδου;
Στα δύο πρώτα επίπεδα δεν θα πρέπει να υπάρχει διαφορά στο SNR.
Υπενθυμίζω ότι στο δεύτερο επίπεδο δεν έχει γίνει ακόμη κβαντισμός. Στο τρίτο επίπεδο εισάγεται ο κβαντισμός. Οπότε τα SNR του πρώτου και του δεύτερου επιπέδου θα πρέπει να βγαίνουν θεωρητικά ίδια και αρκετά μεγάλα. Σε εμένα βγήκαν ίδια με διαφορές μικρότερες του 0.01.

Ρε παιδιά τελικά το SNR θα είναι μια τιμή,δηλαδή συνολικά, ή 2 τιμές μία για κάθε κανάλι?? :D
Εγώ υπολόγισα μία τιμή SNR για κάθε κανάλι. Δηλαδή η μεταβλητή SNR είναι πίνακας 2x1.

Χρήστοοοοο! Τελικά το δεύτερο επίπεδο πώς το υλοποιήσατε;

Η AACSeq2 καλεί την psycho. Η psycho καλεί την TNS. Η AACSeq2 καλεί την TNS για να πάρουμε τα TNScoeffs; Έτσι;

Απορώ γιατί χρειάζεται η psycho να δίνει στην έξοδο το P...
Στο δεύτερο επίπεδο χρειάζεται η psycho να δίνει έξοδο το Ρ διότι μετά από αυτήν πρέπει να εφαρμοστεί ξανά η ΤΝS για να δώσει ένα από τα ορίσματα που χρειάζονται στην έξοδο και συγκεκριμένα το AACseq2(i).TNScoeffs.

Εγώ SNR βγάζω 9.4967 για το ένα κανάλι και  9.8614 για το άλλο. Κουφό;;; Πες τε μου :-[
Οι τιμές SNR που βγάζεις είναι αρκετά μικρές. Βέβαια, το SNR εξαρτάται και από το μουσικό κομμάτι που θα βάλεις να κωδικοποιήσει. Οι συναρτήσεις κωδικοποίησης/αποκωδικοποίησης που κατασκευάζουμε θέλουν μερικά αρχικά frame για να προσαρμοστούν. Σε αυτά τα αρχικά frame η έξοδος διαφέρει σημαντικά από την είσοδο. Για τον λόγο αυτό, δοκίμασε να κωδικοποιήσεις ένα αρχείο που ξεκινάει με ένα δευτερόλεπτο σιωπής. Στην περίπτωση αυτή θα πρέπει το SNR να βγαίνει μεγαλύτερο του 300 και να οφείλεται αποκλειστικά σε λάθη ακρίβειας του matlab.


Δοκιμάσατε το 1ο Επίπεδο στο αρχείο που ανέβασε στο eTHMMY (LicorDeCalandraca.wav);
Τώρα που ανέβηκε το αρχείο δοκιμής, είναι λίγο αργά.
Εγώ έχω κάνει τις δοκιμές μου με δικά μου test files και έχω μισογράψει και την αναφορά οπότε δεν πρόκειται να τα αλλάξω...



Title: Re: Εργασία 2006-7
Post by: giannis13 on March 06, 2007, 21:55:57 pm
μήπως μποριες να στειλεις κανα αρχειο με σιωπη στην αρχη;


Title: Re: Εργασία 2006-7
Post by: evi_L on March 06, 2007, 22:30:10 pm
Εγω πάντως βγάζω 33.Και φταίει γι'αυτό το πρώτο και το τελευταίο frame που έχουν μεγάλη απόκλιση απο το αρχικό σήμα.
 :-[

Να προσθέσετε μερικά μηδενικά στην αρχή και στο τέλος του αρχείου και έτσι θα κάνετε πλήρη ανακατασκευή.

Μα έχω προσθέσει!Αλλά τζίφος! Όλο το κομμάτι είναι σωστό εκτος απο αυτά τα 2 frames


Title: Re: Εργασία 2006-7
Post by: evi_L on March 06, 2007, 22:33:36 pm
μήπως μποριες να στειλεις κανα αρχειο με σιωπη στην αρχη;
Μπορώ εγώ να σου στείλω αν μου δώσεις email.Αρκεί να μου πεις πόσα sec το θέλεις περίπου(αν έχεις και καμιά προτίμηση ακόμα καλύτερα ;D)
Αλλά γιατί το θες??Πιο πολλά καταλαβαίνει κανείς απο γεμάτα wav πιστεύω.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 06, 2007, 22:49:03 pm
evi sou esteila pm


Title: Re: Εργασία 2006-7
Post by: shiver on March 07, 2007, 11:09:26 am
Σχετικά με το δεύτερο επίπεδο στο σημείο που πρέπει να ελεγξουμε την ευστάθεια για το
αντίστροφο Htns υπάρχει ένα πρόβλημα.Η διαδικασία που σκεφτήκαμε είναι η εξής:
1)υπολοίζουμε κανονικά τα α από τη σχέση Rα=r
2)Κβαντίζουμε τους συντελεστές α
3)Ελέγχουμε την ευστάθεια του αντίστροφου Htns
4)αν είναι ευσταθές συνεχίζουμε στο βήμα 5.Αλλιώς βρίσκουμε τους πόλους και όποιο δεν
είναι μέσα στο μοναδιαίο κύκλο αλλάζουμε το μέτρο και του δίνουμε μία τιμή μικρότερη του
1.Με βάση αυτού τους πόλους βρίσκουμε τους συντελεστές του πολυωνύου που δημιουργούνε και
πηγαίνουμε στο βήμα 2 όπου σαν α χρησιμοποιούμε αυτούς τους συντελεστές.

το πρόβλημα με την παραπάνω διαδικασία είναι ότι όταν το φίλτρο είναι ασταθές εμείς το
κάνουμε ευσταθές αλλά επειδή τους καινούριους συντελεστές τους κβαντίζουμε αυτό γίνεται
πάλι ασταθές.Και με αυτή την επαναληπτική διαδικασία το πρόγραμμα κολλάει γιατί
τουλάχιστον όσο το αφήνουμε να τρέχει δεν γίνεται ποτέ ευσταθές.
Καταλάβα κάπου λάθος τη διαδικασία;το θέμα είναι ότι δεν μπορούμε να σταματήσυμε στο 4
γιατί οι καινούργιοι συντελεστές που παίρνουμε θα πρέπει να κβαντιστούν και από την άλλη
από τη στιγμή που τους κβαντίζουμε θα πρέπει πάλι να δούμε αν είναι ευσταθές το
φίλτρο.Οπότε γίνεται ένας φαύλος κύκλος.


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 07, 2007, 12:03:50 pm
Να σου πω shiver αυτό που έκανα εγώ.
Υπολογίζω κανονικά τα α και βλέπω εάν το αντίστροφο είναι ευσταθές υπολογίζοντας το μέτρο των πόλων του. Εάν είναι ευσταθές, προχωράμε κανονικά. Εάν όμως είναι ασταθές, θεωρώ ότι η TNS αδυνατεί να επιτελέσει τον σκοπό της οπότε επιστρέφει κανονικά το frameF χωρίς να του κάνει καμία απαλοιφή των περιοδικοτήτων.
Σε μετρήσεις που έκανα, το να βγει ασταθές το αντίστροφο φίλτρο είναι αρκετά σπάνιο, οπότε το συνολικό αποτέλεσμα δεν επηρεάζεται εάν ένα frame στα 1000 δεν υποστεί TNS.

Στην λύση αυτή κατέληξα μετά από αρκετούς πειραματισμούς και την θεωρώ πολύ καλή - καλύτερη από τις άλλες που έχω δοκιμάσει ως τώρα...


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 07, 2007, 12:20:50 pm
Ρε παίδες στην iTNS γιατί χρειάζεται σαν όρισμα εισόδου το frameType;

Γενικώς στην iTNS εκτός από την εφαρμογή του αντιστόφου φίλτρου (στα frameFout της ΤNS)  κάνουμε τίποτα άλλο για την ανάκτηση των αρχικών frameF;


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 07, 2007, 12:25:25 pm
Ρε παίδες στην iTNS γιατί χρειάζεται σαν όρισμα εισόδου το frameType;
Χρειάζεται διότι για ESH frames έχει 42 bands ενώ για OLS έχεις 69 bands. Οπότε θα πρέπει να το χειριστείς κατάλληλα ανάλογα με τον τύπο του frame.

Να ρωτήσω κι εγώ κάτι άλλο:
1) Τις συναρτήσεις streamfunctions που έχουν ανέβει στο eTHMMY, που θα τις χρησιμοποιήσουμε??
2) Τελικά τι θα γίνει με την συνάρτηση Huffman που στην συνάντηση είχαμε πει ότι θα μας δοθεί? Θα μας δοθεί, να την υλοποιήσουμε ή να μην την κάνουμε καθόλου. Το λέω αυτό διότι είναι αρκετά ζόρι να υλοποιηθεί η Huffman από το πρότυπο διότι ως γνωστόν είναι πολύ δυσνόητο.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 07, 2007, 13:02:42 pm
αφού για όλα τα frames έχω 1024 συντελεστές frameFout (από την TNS) και σε αυτούς εφαρμόζω το αντίστροφο φίλτρο στην iTNS. Το frameType και τα bands που κολλάνε;


Title: Re: Εργασία 2006-7
Post by: poumpa on March 07, 2007, 13:34:56 pm
Να σου πω shiver αυτό που έκανα εγώ.
Υπολογίζω κανονικά τα α και βλέπω εάν το αντίστροφο είναι ευσταθές υπολογίζοντας το μέτρο των πόλων του. Εάν είναι ευσταθές, προχωράμε κανονικά. Εάν όμως είναι ασταθές, θεωρώ ότι η TNS αδυνατεί να επιτελέσει τον σκοπό της οπότε επιστρέφει κανονικά το frameF χωρίς να του κάνει καμία απαλοιφή των περιοδικοτήτων.
Σε μετρήσεις που έκανα, το να βγει ασταθές το αντίστροφο φίλτρο είναι αρκετά σπάνιο, οπότε το συνολικό αποτέλεσμα δεν επηρεάζεται εάν ένα frame στα 1000 δεν υποστεί TNS.

Στην λύση αυτή κατέληξα μετά από αρκετούς πειραματισμούς και την θεωρώ πολύ καλή - καλύτερη από τις άλλες που έχω δοκιμάσει ως τώρα...

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


Να ρωτήσω κι εγώ κάτι άλλο:
1) Τις συναρτήσεις streamfunctions που έχουν ανέβει στο eTHMMY, που θα τις χρησιμοποιήσουμε??
2) Τελικά τι θα γίνει με την συνάρτηση Huffman που στην συνάντηση είχαμε πει ότι θα μας δοθεί? Θα μας δοθεί, να την υλοποιήσουμε ή να μην την κάνουμε καθόλου. Το λέω αυτό διότι είναι αρκετά ζόρι να υλοποιηθεί η Huffman από το πρότυπο διότι ως γνωστόν είναι πολύ δυσνόητο.

Τις streamfunctions τις χρησιμοποιείς αφού έχεις κάνει την κωδικοποίηση για να μπορέσεις να αποθηκεύσεις το αρχέιο στο PC κ να δεις πόσο χώρο πιάνει (ο μεταπτυχιακός μου το είπε). Δεν είναι τπτ το σπουδαίο. Αλλού είναι τα δύσκολα....

Λες να μας δώσει τη huffman το Σάββατο;;;
Έχω κάνει μια Huffman αλλά είναι σχετικά ...δικής μου έκδοσης (όπου δεν καταλάβαινα το πρότυπο έκανα ότι μου κατέβαινε).
Αν έχεις ιδέες κ όρεξη να το ψάξουμε κάνε κάνα σχετικό post να δούμε τι κατάλαβε ο καθένας...
Προς το παρών αυτό που κατάφερα σίγουρα είναι να υλοποίησω τον τρόπο με τον οποίο δημιουργείς tuple, βρίσκεις το αντίστοιχο index στο codebook ώστε να εισάγεις το κατάλληλο codeword στο stream και το αντίστροφο αυτής της διαδικασίας για το decoding.
Αυτό που δεν μπορώ να καταλάβω είναι πως θα χωρίσεις το frame σε περιοχές όπου στη καθεμία θα χρησιμοποιείς ένα σταθερό codebook (στο πρότυπο τα ονομάζει section κ περιέχουν αριθμό (κβαντισμένων) συντελεστών mdct που είναι πολλαπλάσιο του 4)
Προς το παρών χωρίζω το frame σε περιοχές ίσου μήκους κ δοκιμάζω την κωδικοποίηση με διάφορα μήκη μέχρι να βρω το καλύτερο αλλά αυτό μου έχει καταστρέψει το πρόγραμμα γιατι κάνει μέχρι κ 10πλασιο χρόνο να τελιώσει!!!!!

(ΧΑ! έγραψα 2 "Προς το παρών" :D :D δε πάω καλά....)


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 07, 2007, 14:49:13 pm
Λες να μας δώσει τη huffman το Σάββατο;;;
Βασικά η κωδικοποίηση Huffman είναι πολύ δύσκολη να την κάνουμε διαβάζοντας το πρότυπο. Ο καθένας καταλαβαίνει διαφορετικά πράγματα. Αφού όμως είπε ότι θα μας την δώσει έτοιμη, προτιμώ να τεστάρω διεξοδικά την λειτουργία της quantize για να βεβαιωθώ ότι δουλεύει παρά να αρχίσω τους πειραματισμούς με την Huffman. Προτιμώ εν ολίγοις να κάνω μία συνάρτηση σωστή παρά δύο μισοφτιαγμένες.

Τo bitrate και το compression ratio θα τα βρω με άλλους τρόπους...

Εξάλλου παραδίδουμε στις 10 του μηνός, πράγμα που σημαίνει ότι μένουν 2,5 μέρες και έχουμε και μία αναφορά να γράψουμε.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 07, 2007, 14:58:59 pm
Χρήστοοοοο! Τελικά το δεύτερο επίπεδο πώς το υλοποιήσατε;

Η AACSeq2 καλεί την psycho. Η psycho καλεί την TNS. Η AACSeq2 καλεί την TNS για να πάρουμε τα TNScoeffs; Έτσι;

Απορώ γιατί χρειάζεται η psycho να δίνει στην έξοδο το P...
Στο δεύτερο επίπεδο χρειάζεται η psycho να δίνει έξοδο το Ρ διότι μετά από αυτήν πρέπει να εφαρμοστεί ξανά η ΤΝS για να δώσει ένα από τα ορίσματα που χρειάζονται στην έξοδο και συγκεκριμένα το AACseq2(i).TNScoeffs.

Δηλαδή χρησιμοποιούμε το P που προκύπτει από το frameFout (καινούργιο frameF υπολογισμένο από την TNS) για να βρούμε ένα καινούργιο frameFout;

Αφού το T που έχουμε βρει αντιστοιχεί στο frameFout που υπολογίστηκε μέσα στην psycho (από την TNS)... Δεν είναι έτσι;


Πάντως εγώ που διάβασα τα post για το huffman κατάλαβα ότι κάτι θα δώσει για το huffman και όχι έτοιμη συνάρτηση. Μήπως αυτό το κάτι είναι οι steamfunctions;  :-\


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 07, 2007, 15:28:37 pm
Δηλαδή χρησιμοποιούμε το P που προκύπτει από το frameFout (καινούργιο frameF υπολογισμένο από την TNS) για να βρούμε ένα καινούργιο frameFout;
Το P που δίνει ως έξοδο η psycho είναι το ενεργειακό φάσμα του frameF και όχι του frameFout.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 07, 2007, 15:37:46 pm
Δηλαδή καλούμε δύο φορές την TNS για να κάνει το ίδιο πράγμα;  :o

EDIT1: Ότι να' ναι υλοποίηση!...

EDIT2: Ή σύμφωνα με την ανακοίνωση του eTHMMY (τώρα την είδα). Την πρώτη φορά που καλείς την psycho την καλείς για το 10% της δουλειάς που κάνει. Το υπόλοιπο γιατί να το κάνει; Τέλος πάντων...


Title: Re: Εργασία 2006-7
Post by: Faidon on March 07, 2007, 22:30:05 pm
EDIT: Τελικά εντάξει, λύθηκε το πρόβλημα. Το λάθος ήταν δικό μου, αφού πριν από κάθε δοκιμή πρέπει να πολλαπλασιάσουμε το frameT με 2^15.

Αυτό γιατί χρειάστηκε να το κάνεις; Εγώ δεν το έκανα και τα α μου βγαίνουν μια χαρα.


Και κάτι άλλο:

Στην αναφορά τι γράφετε; Δεν έχω ιδέα τι να γράψω...
Να εξηγήσω τον κώδικα;
Να εξηγήσω τους αλγόριθμους;
Τις εξόδους-εισόδους των συναρτήσεων;


Title: Re: Εργασία 2006-7
Post by: ckck20 on March 07, 2007, 22:44:36 pm
Εγώ στην αναφορά έγραψα τι υλοποιήσαμε διαφορετικά ή κάποια σημεία που μας δυσκόλεψαν πώς τα αντιμετωπίσαμε. Λίγα πράγματα δηλαδή, γύρω στις 3 σελίδες. Αφού τα αποτελέσματα φαίνονται από το SNR και από το γεγονός ότι το αρχείο εξόδου...ακούγεται!


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 08, 2007, 01:50:30 am
EDIT: Τελικά εντάξει, λύθηκε το πρόβλημα. Το λάθος ήταν δικό μου, αφού πριν από κάθε δοκιμή πρέπει να πολλαπλασιάσουμε το frameT με 2^15.

Αυτό γιατί χρειάστηκε να το κάνεις; Εγώ δεν το έκανα και τα α μου βγαίνουν μια χαρα.
Αυτό χρειάζεται να το κάνεις για να σου βγει σωστά το ενεργειακό φάσμα και η psycho να μπορεί να διαμορφώσει σωστά το κατώφλι ακουστότητας.

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


Title: Re: Εργασία 2006-7
Post by: Faidon on March 08, 2007, 03:04:31 am
EDIT: Τελικά εντάξει, λύθηκε το πρόβλημα. Το λάθος ήταν δικό μου, αφού πριν από κάθε δοκιμή πρέπει να πολλαπλασιάσουμε το frameT με 2^15.

Αυτό γιατί χρειάστηκε να το κάνεις; Εγώ δεν το έκανα και τα α μου βγαίνουν μια χαρα.
Αυτό χρειάζεται να το κάνεις για να σου βγει σωστά το ενεργειακό φάσμα και η psycho να μπορεί να διαμορφώσει σωστά το κατώφλι ακουστότητας.

Δηλαδή, εσύ μετά το wavread πολλαπλασιάζεις τα δείγματα με 2^15 και πριν το wavwrite τα διαιρείς με 2^15;;


Έστειλα e-mail στο μεταπτυχιακό σχετικά με την αναφορά και μου απάντησε:

Στην αναφορά πρέπει να περιλάβετε
--σχόλια για την υλοποίηση και τυχόν επιλογές που κάνατε σε κάποια σημεία
--οδηγίες χρήσης των συναρτήσεών σας
--παραδείγματα χρήσης (αποτελέσματα, γραφικές παραστάσεις κτλ).


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 08, 2007, 10:35:21 am
Δηλαδή, εσύ μετά το wavread πολλαπλασιάζεις τα δείγματα με 2^15 και πριν το wavwrite τα διαιρείς με 2^15;;
Ακριβώς! Αυτό έκανα εγώ τουλάχιστον.

Την εργασία την παραδίδουμε με mail, στο eTHMMY, πως?


Title: Re: Εργασία 2006-7
Post by: KillBill on March 08, 2007, 12:38:06 pm
Κι εμένα τα περισσότερα (όχι όλα) α μου βγαίνουν μεταξύ -0.1 και 0.1. Έχω πολλαπλασιάσει με 2^15 το frameT αλλά τα α δεν αλλάζουν. Το έψαξα λίγο και μου φαίνεται λογικό να μην αλλάζουν.Ο υπολογισμός γίνεται ως εξής:

Xw = frameFin./Sw;
temp = xcorr(Xw,'unbiased');
r = temp(1025:1028)';
R = toeplitz(temp(1024:1027));
a = R \ r;

Μήπως κάνω κάπου λάθος ή είναι τυχαίο? Η ανακατασκευή βέβαια είναι σωστή, εκεί όπου το αντίστροφο φίλτρο είναι ευσταθές.

Ευχαριστώ!


Title: Re: Εργασία 2006-7
Post by: Faidon on March 08, 2007, 15:04:24 pm
Δηλαδή, εσύ μετά το wavread πολλαπλασιάζεις τα δείγματα με 2^15 και πριν το wavwrite τα διαιρείς με 2^15;;
Ακριβώς! Αυτό έκανα εγώ τουλάχιστον.

Γιατί εμένα μου φαίνεται ανούσιο αυτό;
Αφού ο συντελεστής 2^15 ούτως ή άλλως απλοποιείται στη διαίρεση:

Xw=X/Sw

Την εργασία την παραδίδουμε με mail, στο eTHMMY, πως?

Νομίζω στο eTHMMY, που το διόρθωσαν κιόλας.
Μέχρι τώρα όποιος δηλωνόταν έμπαινε στην ομάδα σου με το ζόρι!
Γι' αυτό ήσουν μόνος... :D


Κι εμένα τα περισσότερα (όχι όλα) α μου βγαίνουν μεταξύ -0.1 και 0.1.

Ποιό αρχείο χρησιμοποιείς; Το LicorDeCalandraca.wav;

Εγώ βγάζω για τα α το ιστόγραμμα που επισυνάπτω, για τσέκαρέ το! 8)


Title: Re: Εργασία 2006-7
Post by: Xatiux on March 09, 2007, 16:00:51 pm
παίζει να του ζητήσουμε καμιά αναβολή πχ μέχρι την δευτέρα να μπορέσουμε να την ολοκληρώσουμε άνετα;


Title: Re: Εργασία 2006-7
Post by: vagia on March 09, 2007, 17:25:25 pm
Για το τρίτο επίπεδο (χωρίς το huffman) το SNR δεν θα πρέπει να βγεί μικρό λόγω της κβάντισης;
Στο τραγούδι όμως θα πρέπει να ακούγεται θόρυβος;
Εγώ από αυτά που κατάλαβα κάνουμε όσο πιο καλή κβάντιση γίνεται αλλά μέχρι το σημείο εκείνο που το αυτί μας δεν αντιλαμβάνεται το θόρυβο..(δηλαδή να ακούμε το ίδιο τραγούδι)
Έιναι σωστό αυτό;

Το SNR που βγάλαμε είναι γύρω στο 50 αλλά όταν ακούμε το τραγούδι έχει στην αρχή θόρυβο 


Title: Re: Εργασία 2006-7
Post by: marauber on March 09, 2007, 17:34:26 pm
παίζει να του ζητήσουμε καμιά αναβολή πχ μέχρι την δευτέρα να μπορέσουμε να την ολοκληρώσουμε άνετα;

Και εγώ μέσα είμαι, αλλά το θέμα είναι πως θα το κάνουμε αυτό...Είναι και ότι μας έχει ήδη δώσει μία.
Πρέπει να οργανωθούμε.

Για το τρίτο επίπεδο (χωρίς το huffman) το SNR δεν θα πρέπει να βγεί μικρό λόγω της κβάντισης;
Στο τραγούδι όμως θα πρέπει να ακούγεται θόρυβος;
Εγώ από αυτά που κατάλαβα κάνουμε όσο πιο καλή κβάντιση γίνεται αλλά μέχρι το σημείο εκείνο που το αυτί μας δεν αντιλαμβάνεται το θόρυβο..(δηλαδή να ακούμε το ίδιο τραγούδι)
Έιναι σωστό αυτό;

Το SNR που βγάλαμε είναι γύρω στο 50 αλλά όταν ακούμε το τραγούδι έχει στην αρχή θόρυβο 
Θα έλεγα ότι το αυτί δε θα πρέπει να καταλαβαίνει τη διαφορά. Ναι μεν υλοποιούμε απλοποιημένη έκδοση του AAC, αλλά αν δεν κάνω λάθος η κωδικοποίηση γίνεται με σταθερή ποιότητα και εις βάρος του λόγου συμπίεσης.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 09, 2007, 17:37:51 pm
παίζει να του ζητήσουμε καμιά αναβολή πχ μέχρι την δευτέρα να μπορέσουμε να την ολοκληρώσουμε άνετα;
Και μόνο που το έγραψες εδώ είναι σαν να το ζήτησες (το φόρουμ το παρακολουθεί ο Ντελόπουλος  ^suspicious^ ).

Πάντως εγώ μόνο το πρώτο και δεύτερο επίπεδο έκανα..., αλλά δεν το βλέπω να παίρνει και άλλη αναβολή...  :-\

Για το τρίτο επίπεδο (χωρίς το huffman) το SNR δεν θα πρέπει να βγεί μικρό λόγω της κβάντισης;
Στο τραγούδι όμως θα πρέπει να ακούγεται θόρυβος;
Εγώ από αυτά που κατάλαβα κάνουμε όσο πιο καλή κβάντιση γίνεται αλλά μέχρι το σημείο εκείνο που το αυτί μας δεν αντιλαμβάνεται το θόρυβο..(δηλαδή να ακούμε το ίδιο τραγούδι)
Έιναι σωστό αυτό;

Το SNR που βγάλαμε είναι γύρω στο 50 αλλά όταν ακούμε το τραγούδι έχει στην αρχή θόρυβο 

Ναι είναι λογικό αυτό που λες. Λογικά θα πρέπει να ακούγεται ίδιο. Πάντως δεν έχω ασχοληθεί καθόλου με το 3ο επίπεδο για να σου πω σίγουρα...


Title: Re: Εργασία 2006-7
Post by: kinezos on March 09, 2007, 18:11:10 pm
Αξίότιμε κ.κ.Ντελόπουλε,

Θα ήταν εύκολο να μας δώσετε μια μικρή παράταση μέχρι την Δευτέρα;

Με τιμή,

οι φοιτητές που ασχολούμαστε με την εργασία σας


Title: Re: Εργασία 2006-7
Post by: ckck20 on March 09, 2007, 19:14:30 pm
Καλά, τη huffman πότε θα μας τη δώσουν; Αύριο υποτίθεται παραδίδουμε!


Title: Re: Εργασία 2006-7
Post by: poumpa on March 09, 2007, 19:34:38 pm
Για το τρίτο επίπεδο (χωρίς το huffman) το SNR δεν θα πρέπει να βγεί μικρό λόγω της κβάντισης;
Στο τραγούδι όμως θα πρέπει να ακούγεται θόρυβος;
Εγώ από αυτά που κατάλαβα κάνουμε όσο πιο καλή κβάντιση γίνεται αλλά μέχρι το σημείο εκείνο που το αυτί μας δεν αντιλαμβάνεται το θόρυβο..(δηλαδή να ακούμε το ίδιο τραγούδι)
Έιναι σωστό αυτό;

Το SNR που βγάλαμε είναι γύρω στο 50 αλλά όταν ακούμε το τραγούδι έχει στην αρχή θόρυβο 

Ναι κ έγω έτσι νομίζω απλά χωρίς τον Huffman δεν καταλαβαίνεις εύκολα πόσο καλή είναι η κβάντιση γιατί η κβάντιση γίνεται για να μπορέσεις να χρησιμοποιήσεις μια καλή κωδικοποίηση. Όσο πιο "γερά" κβαντίζεις τόσο λιγότερα σύμβολα έχεις άρα κ αποδοτικότερη κωδικοποίηση.

Εγώ έβγαλα SNR γύρω στο 30 αλλά το ηχητικό αποτέλεσμα είναι τέλειο (όσο κ να ακούω το αποσυμπιεσμενό wav δε μπορώ να βρω διαφορά με το κανονικό!).
Ο θόρυβος ίσως να μην έχει σχέση με τη κβάντιση. Έχω την εντύπωση ότι η κβάντιση το μόνο στραβό που πιθανόν να έχει είναι να "κόψει" κάποιους ήχους (δλδ συχνότητες) κ όχι να προσθέσει θόρυβο.


Title: Re: Εργασία 2006-7
Post by: vagia on March 09, 2007, 19:46:35 pm
Τελικά για το 3 επίπεδο(χωρίς το huffman) το SNR μας βγήκε  25,259 και το τραγούδι ακούγεται...
Με το huffman τι ακριιβώς είχε ειπωθεί στη συνάντηση;Θα μας την έδιναν έτοιμη;
Γιατί εμείς δεν καταλάβαμε απο το πρότυπο τι πρέπει να κάνουμε....οπότε δεν μπορούμε να δούμε και το bitrate...


Title: Re: Εργασία 2006-7
Post by: ckck20 on March 09, 2007, 20:35:40 pm
Εγώ έβγαλα SNR γύρω στο 30 αλλά το ηχητικό αποτέλεσμα είναι τέλειο (όσο κ να ακούω το αποσυμπιεσμενό wav δε μπορώ να βρω διαφορά με το κανονικό!).

Ακριβώς τα ίδια και εδώ!!!


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 09, 2007, 23:51:28 pm
Εγώ έβγαλα SNR γύρω στο 30 αλλά το ηχητικό αποτέλεσμα είναι τέλειο (όσο κ να ακούω το αποσυμπιεσμενό wav δε μπορώ να βρω διαφορά με το κανονικό!).
Σωστός, έτσι πρέπει να γίνεται.
Σε εμένα και για διάφορα αρχεία δοκιμής μου βγαίνει το SNR από 24 έως 28 περίπου. Διαφορά στο αυτί δεν ακούγεται.


Title: Re: Εργασία 2006-7
Post by: sevastizoi on March 10, 2007, 00:14:28 am
Τελικά με τον huffman ασχολήθηκε κανείς;Έχει καταλάβει κανείς κάτι από το πρότυπο ή το αφήσατε; ^sfinaki^


Title: Re: Εργασία 2006-7
Post by: Xatiux on March 10, 2007, 01:00:34 am
Αναβολή τελικά πήραμε; ή να λιώσουμε στο ξενύχτι σήμερα το βράδυ;


Title: Re: Εργασία 2006-7
Post by: marauber on March 10, 2007, 03:36:40 am
Αναβολή τελικά πήραμε; ή να λιώσουμε στο ξενύχτι σήμερα το βράδυ;

Δεν είδα κάτι σχετικό :(
Και η νύχτα προβλέπεται μεγάααλη... :-\
Δε βαριέσαι, συνηθισμένα τα βουνά από τα χιόνια :D :D


Title: Re: Εργασία 2006-7
Post by: adelo on March 10, 2007, 04:07:41 am
Όχι ρε παιδιά. Πέστε για ύπνο.
Παράταση μέχρι Παρασκευή 16.3.2007 ώρα 23:59:59

(ο manf  θα σας ανεβάσει το huffman ... ασαπ)


Title: Re: Εργασία 2006-7
Post by: marauber on March 10, 2007, 04:30:31 am
Όχι ρε παιδιά. Πέστε για ύπνο.
Παράταση μέχρι Παρασκευή 16.3.2007 ώρα 23:59:59

(ο manf  θα σας ανεβάσει το huffman ... ασαπ)

Αλήθεια;; Ένα ευχαριστώ εκ μέρους των καταπονημένων συμφοιτητών μας :D

Και μια υπόσχεση ότι, τουλάχιστον όσο με αφορά, η ποιότητα του παραδοτέου θα ανέβει ::)


Title: Re: Εργασία 2006-7
Post by: Aurelius on March 10, 2007, 09:48:54 am
Να σημειωσω εδω, οτι ενα παιδι απο αυτους που συλληφθηκαν, Γιαννης εκτο ετος παρεδιδε και αυτος εργασια. Αρα, σωστο να αναβληθει για λιγο η εργσια. Λετε να τον αφηναν; Λετε να ειχε ασυρματο;;;; :Ρ


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 10, 2007, 11:26:34 am
Αχ και να 'ξερα κατά τις 10 Ιανουαρίου που τύπωσα το -δομικά χαοτικό- πρότυπο από το ISO (όόόόλο όμως) και την beta version της εκφώνησης "κάπου-κάπως-κάποτε κάποιοι φτιάξαν έναν κωδικοποιητή ήχου, για δοκιμάστε κι εσείς", οτι με τις διαδοχικές παρατάσεις θα φτάναμε να παραδίδουμε προς τα τέλη Μαρτίου... 
^lypi^


Title: Re: Εργασία 2006-7
Post by: Sotis on March 10, 2007, 13:10:45 pm
Thanks για την παράταση.Τώρα μάλλον θα μπορέσουμε να ολοκληρώσουμε το 3ο μέρος
 :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :) :)


Title: Re: Εργασία 2006-7
Post by: poumpa on March 10, 2007, 13:37:23 pm
Παράταση μέχρι Παρασκευή 16.3.2007 ώρα 23:59:59

(ο manf  θα σας ανεβάσει το huffman ... ασαπ)

Αντιγράφω από ethmmy:
10 Μαρ 2007 3:09 πμ
Φαλελάκης

Παράταση της υποβολής της εργασίας μέχρι Παρασκευή 16/3/2007 23:59:59!!!

Ο adelo θα ανεβάσει το huffman ασαπ!




σχόλιον ουδέν...


Title: Re: Εργασία 2006-7
Post by: Faidon on March 10, 2007, 15:17:45 pm
Το πρόσεξα και εγώ αυτό!  ;D


Title: Re: Εργασία 2006-7
Post by: manf on March 10, 2007, 19:20:19 pm
Ελπίζω να δικαιολογείται η ποιότητα του χιούμορ λόγω του προχωρημένου της ώρας... 8)


Title: Re: Εργασία 2006-7
Post by: Faidon on March 11, 2007, 14:47:45 pm
Ελπίζω να δικαιολογείται η ποιότητα του χιούμορ λόγω του προχωρημένου της ώρας... 8)

Α!... Επίτηδες το γράψατε; :D


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 11, 2007, 14:59:53 pm
Ρε παιδιά στο 3ο επίπεδο τον τύπο του κβαντιστή πως τον υλοποιείτε;


Title: Re: Εργασία 2006-7
Post by: Faidon on March 11, 2007, 17:19:29 pm
Εννοείς το μαθηματικό τύπο του κβαντιστή;

Τον υλοποιείς όπως ακριβώς τον λέει με τις συναρτήσεις sign και int32 (ή όποια άλλη συνάρτηση int θέλεις) του MATLAB.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 11, 2007, 17:36:25 pm
βασικά το matlab βγάζει σφάλμα όταν πάω να πολλαπλασιάσω το αποτέλεσμα της int32 με το αποτέλεσμα της sign. Λέει πως δεν ορίζεται πολλαπλασιασμός με στοιχεία int32.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 12, 2007, 05:42:09 am
Εγώ έχω το MATLAB 7.0.4 και δε μου βγάζει κανένα πρόβλημα...

π.χ. η sign(-7)*int32(1.67) εκτελείται κανονικά

Πάντως σε κάθε περίπτωση νομίζω μπορείς το int32 να το κάνεις μετά το sign. Λογικά θα βγάζει το ίδιο αποτέλεσμα.


Title: Re: Εργασία 2006-7
Post by: poumpa on March 12, 2007, 12:59:26 pm
βασικά το matlab βγάζει σφάλμα όταν πάω να πολλαπλασιάσω το αποτέλεσμα της int32 με το αποτέλεσμα της sign. Λέει πως δεν ορίζεται πολλαπλασιασμός με στοιχεία int32.

Χρησιμοποίησε την floor αντί της int32


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 12, 2007, 20:51:45 pm
To huffman έχει ανέβει πουθενά;
Έχει καταλάβει κανείς ποιό codebook χρησιμοποιούμε και αν ναι, έχει βγάλει άκρη με τις ρουτίνες μετασχηματισμών στο ISO;


Title: Re: Εργασία 2006-7
Post by: poumpa on March 12, 2007, 22:59:32 pm
To huffman έχει ανέβει πουθενά;

Λογικά θα ανέβει στο ethmmy...

Έχει καταλάβει κανείς ποιό codebook χρησιμοποιούμε και αν ναι, έχει βγάλει άκρη με τις ρουτίνες μετασχηματισμών στο ISO;

To codebook το επιλέγεις από τη μέγιστη απόλυτη τιμή που υπάρχει sto section που κωδικοποιείς.
Τι εννοείς με τις ρουτίνες μετασχηματισμού;
Μήπως τον μετασχηματισμό που σου δίνει το index ενός tuple;;;
Αν λες για αυτό: από την μεριά του decoder υπάρχει ο ψευδοκώδικας στο πρότυπο (κάπου που λεέι Noiseless Coding) ενώ δεν είναι δύσκολο να κάνεις κ την αντίστοιχη διαδικασία για τον encoder "αντιστρέφοντας" τον ψευδοκώδικα.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 12, 2007, 23:41:46 pm
Γιατί στην εκφώνηση της εργασίας στο τρίτο επίπεδο γράφει 1024 x 1 και <number of bands> x 1;

Εσείς τι κάνετε; Βάζετε σαν είσοδο μόνο το ένα κανάλι και τα επιστρέφετε σε ...x1;

ή

Βάζετε σαν είσοδο όλο το frame και τα επιστρέφετε σε ...x2;


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 12, 2007, 23:55:21 pm
Thnx πατερούλη, αλλά μέχρι να "ανέβει" ο huffman από adelo καλό είναι να μην το παλεύουμε με το ISO γιατί στις εκφωνήσεις υπάρχει πάντα μια απλοποιημένη παραλλαγή.


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 13, 2007, 09:51:10 am
Γιατί στην εκφώνηση της εργασίας στο τρίτο επίπεδο γράφει 1024 x 1 και <number of bands> x 1;
Έχει ήδη απαντηθεί 2 σελίδες πριν.


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 13, 2007, 09:52:08 am
Χρησιμοποίησε την floor αντί της int32
Η round νομίζω είναι καλύτερη επιλογή...


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 13, 2007, 10:03:42 am
Η round είναι η μοναδική επίλογή γιατι μετά δεν μπορείς να υψώσεις int σε μη ακέραιες δυνάμεις.


Title: Re: Εργασία 2006-7
Post by: vagia on March 13, 2007, 12:51:03 pm
Η fix γιατί όχι;Εμείς με αυτήν προσπαθήσαμε..


Title: Re: Εργασία 2006-7
Post by: Sotis on March 13, 2007, 12:54:19 pm
Εμείς χρησιμοποιήσαμε floor ...


Title: Re: Εργασία 2006-7
Post by: poumpa on March 13, 2007, 13:44:05 pm
Χρησιμοποίησε την floor αντί της int32
Η round νομίζω είναι καλύτερη επιλογή...

Σύμφωνα με τον τύπο της εκφώνησης η round είναι λάθος επιλογή.
Από τον τύπο αυτό ο τελεστής int επιστρέφει το ακέραιο μέρος ενός αριθμού.
Αυτή την λειτουργία την εκτελεί η floor και όχι η round (η οποία δίνει τον κοντινότερο ακέραιο)...


Thnx πατερούλη, αλλά μέχρι να "ανέβει" ο huffman από adelo καλό είναι να μην το παλεύουμε με το ISO γιατί στις εκφωνήσεις υπάρχει πάντα μια απλοποιημένη παραλλαγή.

you 're wellcome!
Έχω μεγάλη περιέργια να δω πως θα είναι αυτός ο huffman που θα πάρουμε... :???: :???:


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 13, 2007, 20:19:47 pm
Νομίζω η floor στρογγυλοποιεί προς τα κάτω, η ceil προς τα πάνω και η round προς τον κοντινότερο ακέραιο.

Με τον κβαντιστή ξέρει κανείς τι κάνουμε γιατί όλες οι τιμές μετά βγαίνουν 0.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 13, 2007, 21:29:41 pm
Χρησιμοποίησε την floor αντί της int32
Η round νομίζω είναι καλύτερη επιλογή...

Σύμφωνα με τον τύπο της εκφώνησης η round είναι λάθος επιλογή.
Από τον τύπο αυτό ο τελεστής int επιστρέφει το ακέραιο μέρος ενός αριθμού.
Αυτή την λειτουργία την εκτελεί η floor και όχι η round (η οποία δίνει τον κοντινότερο ακέραιο)...

Όντως σύμφωνα με την εκφώνηση έτσι θα πρέπει να το κάνουμε...

Με τον κβαντιστή ξέρει κανείς τι κάνουμε γιατί όλες οι τιμές μετά βγαίνουν 0.

Εννοείς ότι όλα τα δείγματα σου βγαίνουν μηδέν;; Περίεργο... :???:


Τι SNR βγάζετε μετά την κβάντιση - αποκβάντιση;


Title: Re: Εργασία 2006-7
Post by: Sotis on March 13, 2007, 21:38:52 pm
Εμείς βγάζουμε 30 κ 34 για τα 2 κανάλια αντίστοιχα...


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 13, 2007, 21:52:46 pm
 
Trivial: Όταν υπολογίζετε την ισχύ του σφάλματος κβαντισμού παίρνετε το Σ(Χ-S)^2 ή χρησιμοποιείτε τον τύπο της σελίδας 142 του ISO, όπου αντί του S λαμβάνει υπ' όψη της αποκβαντισμένη τιμή του S;




Title: Re: Εργασία 2006-7
Post by: Faidon on March 14, 2007, 05:45:26 am
Εγώ χρησιμοποιώ τον τύπο 6 της σελίδας 11 της εκφώνησης. Δηλαδή υπολογίζω την ισχύ κατα μπάντες, όπου Χi(k) = frameFi(k) - Si(k) (αποκβαντισμένο)


Title: Re: Εργασία 2006-7
Post by: Sotis on March 14, 2007, 13:39:10 pm
Καλά ο Huffman πότε 8α δοθεί???
Την Παρασκευή δίνουμε την εργασία...
Πάλι στην αναμονή είμαστε :-\ :-\ :-\


Title: Re: Εργασία 2006-7
Post by: Faidon on March 15, 2007, 03:48:42 am
Ωρέ παιδιά!! Τι τιμές βρίσκεται για τα κατώφλια ακουστότητας;;;

Εγώ βρίσκω από 10 έως 70 dB περίπου. Καλά είμαι;;

^seestars^


Title: Re: Εργασία 2006-7
Post by: manf on March 15, 2007, 04:01:46 am
^shout^Ο huffman ανέβηκε στο eTHMMY και σας περιμένει... 

^beer^


Title: Re: Εργασία 2006-7
Post by: Faidon on March 15, 2007, 05:57:59 am
Νομίζω η floor στρογγυλοποιεί προς τα κάτω, η ceil προς τα πάνω και η round προς τον κοντινότερο ακέραιο.

Με τον κβαντιστή ξέρει κανείς τι κάνουμε γιατί όλες οι τιμές μετά βγαίνουν 0.

Το βρήκες τελικά;

Και εμένα μου έβγαιναν όλα μηδενικά και έκανα αυτό που λέει ο χρήστος:

Πολλαπλασίασα όλα τα δείγματα στην αρχή-αρχή με 2^15 και στο τέλος-τέλος τα διαίρεσα με 2^15.

Αλλά και πάλι το τελικό .wav δεν ακούγεται ίδιο με το αρχικό... Έχει πολύ θόρυβο...


^shout^Ο huffman ανέβηκε στο eTHMMY και σας περιμένει... 

^beer^

Τώρα πότε να προλάβουμε να τον κάνουμε; Έχουμε και πορεία αύριο.....  :-\


Title: Re: Εργασία 2006-7
Post by: KillBill on March 15, 2007, 11:41:56 am
Καλημέρα σε όλους!

Μήπως δοκίμασε κανένας τις συναρτήσεις για το Huffman? Μαζί με τις συναρτήσεις υπάρχει και το αρχείο huffCodebooks.mat το οποίο όταν παώ να το κάνω load μου βγάζει:

??? Error using ==> load
Unable to read MAT-file C:\MATLAB701\work\polumesa\huffCodebooks.mat
File may be corrupt.

Έχει κανένας άλλος το ίδιο πρόβλημα?


Title: Re: Εργασία 2006-7
Post by: Sotis on March 15, 2007, 12:11:27 pm
Πολύ λίγο το κοίταξα για να δω απλά τις συναρτήσεις.Απλά γράψε loadLUT και λύθηκε το πρόβλημα.Πλέον τον huffCodebooks τον διαβάζεις σαν cellArray... 8) 8) 8)


Title: Re: Εργασία 2006-7
Post by: KillBill on March 15, 2007, 12:28:37 pm
Πολύ λίγο το κοίταξα για να δω απλά τις συναρτήσεις.Απλά γράψε loadLUT και λύθηκε το πρόβλημα.Πλέον τον huffCodebooks τον διαβάζεις σαν cellArray... 8) 8) 8)

Αυτό κάνω αλλά και πάλι μου βγάζει σφάλμα. >:(

>> loadLUT
??? Error using ==> load
Unable to read MAT-file C:\MATLAB701\work\polumesa\huffCodebooks.mat

File may be corrupt.

Error in ==> loadLUT at 2
load huffCodebooks

Και με το χέρι όταν πάω να το φορτώσω μου βγάζει κάτι περίεργα. Εσύ το έκανες και έτρεξε?


Title: Re: Εργασία 2006-7
Post by: Sotis on March 15, 2007, 12:37:29 pm
Ναι κανονικά τρέχει.Έβαλες όλες τις συναρτήσεις κ το huffCodebooks.mat στο Current Directory?(Λογικά ναι αλλά δεν μπορώ να βρω τι άλλο φταίει)...

ΥΓ:Ξανακατέβασε το αρχείο,μπορεί αυτό να φταίει


Title: Re: Εργασία 2006-7
Post by: ioanna208 on March 15, 2007, 13:39:16 pm
Κάτι λίγο αρχικό.. για το τρίτο επίπεδο...για να δούμε αν βαδίζουμε σωστά :) :)

Κοιτάξαμε λίγο τι α βγαίνουν στην πρώτη προσέγγιση για όλες τις μπάντες και τις αντίστοιχες τιμές για την ισχύ του σφάλματος κβαντισμού...
Βλέπουμε ότι τα α είναι κάπου από 1 μέχρι 10 ενώ η ισχύς κάποιες τις τιμές μπορεί να φτάνουν και μέχρι 5 μηδενικά...Ο Ντελόπουλος είχε πει ότι και καλά αν το α είναι πολύ μικρότερο από την ισχύ να το αυξάνουμε κατά 1 μονάδα?!?!
Κατ'αρχήν πόσο μικρότερο κοιτάμε να είναι το α για να το αλλάξουμε, και τι αλλαγή το κάνουμε, δηλαδή πόσο το αυξάνουμε??Αν οι παραπάνω τιμές είναι σωστές σίγουρα όχι 1 μονάδα....Εσείς τι τιμές βγάζετε για τα α και για την ισχύ ?Έχουν τόσο τεράστια διαφορά μεταξύ τους? :???:


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 15, 2007, 14:51:10 pm
Ιωάννα μόνο και μόνο οτι η ισχύς σφάλματος κβαντισμού σας βγαίνει με 5 μηδενικά δηλ. της τάξης των 100kW ίσως να δείχνει οτι έχετε κάνει κάποιο λαθάκι με τους τύπους.

Τα όρια για την ισχύς του σφάλματος εγώ τα πήρα από 90% έως 110% του ακουστικού κατωφλίου και αυξομοιώνω κατά +1, -1 το α αντίστοιχα.

Τα α σε μερικά πλαίσια φτάνουν στο όριο διασποράς των 60 οπότε και διακόπτεται η διαδικασία.
-----------------------------------------------------------------------------------------------------------------------------------------------------

Για το huffman νομίζω έχω καεί από την υπερπληροφόρηση. Με μια πρώτη ματιά, οι συναρτήσεις είναι τόσο αναλυτικές που νομίζω το μόνο που χρειάζεται είναι 2-3 εντόλες και να φτιάξουμε ένα "παζλ"....


Title: Re: Εργασία 2006-7
Post by: ioanna208 on March 15, 2007, 14:55:51 pm
Ιωάννα μόνο και μόνο οτι η ισχύς σφάλματος κβαντισμού σας βγαίνει με 5 μηδενικά δηλ. της τάξης των 100kW ίσως να δείχνει οτι έχετε κάνει κάποιο λαθάκι με τους τύπους.

Τα όρια για την ισχύς του σφάλματος εγώ τα πήρα από 90% έως 110% του ακουστικού κατωφλίου και αυξομοιώνω κατά +1, -1 το α αντίστοιχα.

Τα α σε μερικά πλαίσια φτάνουν στο όριο διασποράς των 60 οπότε και διακόπτεται η διαδικασία.


Σ' ευχαριστώ....
Να ρωτήσω και κάτι...Τα κατώφλια ακουστότητας μας βγαίνουν γύρω στα 30 με 70...Αυτές οι τιμές είναι λογικές? Για να ξέρουμε που να ψάχνουμε για πιθανά λάθη.... :)


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 15, 2007, 14:57:30 pm
Ρε παιδια και εγώ έχω τα ίδια προβλήματα με το huffCodebooks.mat. Τι παίζει;  Χρησιμοποιώ MATLAB 6.5. Χρησιμοποιεί κανείς την ίδια έκδοση και κατάφερε να το τρέξει;


Title: Re: Εργασία 2006-7
Post by: manf on March 15, 2007, 15:14:33 pm
Το πιθανότερο είναι να φταίει η έκδοση του matlab. Από την 6.X στην 7 έχει αλλάξει ο τρόπος αποθήκευσης των mat αρχείων.

Έσωσα ένα mat για την έκδοση 6 (huffCodebooks_v6.mat) και το ανέβασα στο ethmmy. Δοκιμάστε αυτό όσοι δε χρησιμοποιείτε την 7.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 15, 2007, 15:27:17 pm
οκ. σε μενα δουλεψε


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 15, 2007, 15:43:36 pm
Σ' ευχαριστώ....
Να ρωτήσω και κάτι...Τα κατώφλια ακουστότητας μας βγαίνουν γύρω στα 30 με 70...Αυτές οι τιμές είναι λογικές? Για να ξέρουμε που να ψάχνουμε για πιθανά λάθη.... :)

Οι τιμές είναι λογικές και παραπλήσιες σε αυτά που έχουμε και εμείς (ανάλογα και με το frame βέβαια)

Οι πρώτες προσεγγίσεις των α βγαίνουν στο +-10 ενώ στη συνέχεια στον επαναληπτικό αλγόριθμο, ανάλογα με το εύρος της προσέγγισης της ισχύος σφάλματος στο ακουστικό κατώφλι βγαίνουν σε μένα από 15 - 70.
----------------------------------------------------------------------------------------------------------------------
Εγώ πάλι που χρησιμοποιώ την 7.0.1 δεν μπορώ να το ανοίξω το huffCodebooks ... που θα πάει....

OK..... με το huffCodebooks_v6 τρέχει κανονικά!!!


Title: Re: Εργασία 2006-7
Post by: Sotis on March 15, 2007, 16:11:16 pm
Απ'ό,τι κατάλαβα,κάτω από την έκδοση 7.1 του Matlab δεν λειτουργεί το αρχικό αρχείο mat.
Έχω 7.1 κ λειτουργεί.Άρα όσοι έχουν έκδοση κάτω από 7.1 να χρησιμοποιήσουν το άλλο αρχείο mat για να μην παιδεύονται τζάμπα...


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 15, 2007, 17:36:02 pm
ρε παιδες η testHuff σας τρέχει; Σε μένα βγάζει σφάλμα στην encode στη γραμμη: [huffSec]=huffLUTCode0(); Τι μπορεί να φταίει;


Title: Re: Εργασία 2006-7
Post by: manf on March 15, 2007, 18:48:03 pm
Πάλι η έκδοση φταίει. Νέα οδηγία λοιπόν:

Σε Μάτλαμπ 6.X σβήστε τις δύο παρενθεσούλες από τη γραμμή 18 της encodeHuff: [huffSec]=huffLUTCode0(); Παλιά το μάτλαμπ δεν έπαιρνε συναρτήσεις με κενά ορίσματα.

Αυτό δεν αφορά όσους έχουν 7.X


Title: Re: Εργασία 2006-7
Post by: poumpa on March 15, 2007, 20:59:42 pm
Έχει κάνει κανείς την ιHuffman;;;

Έτσι όπως είναι η decodeHuff μου φαίνεται ότι δεν μπορούμε να την χρησιμοποιήσουμε!
Εξηγώ:
Σαν όρισμα παίρνει την huffSec και το codebook που της αντιστοιχεί. Ξεκινώντας την αποκωδικοποίηση του stream έστω ότι διαβάζουμε τα 4 πρώτα bits που θα μας δώσουν τον αριθμό του codebook (0...11) κ το οποίο χρησιμοποιείται για το πρώτο section. Στη συνέχεια πως θα ξέρουμε τον αριθμό των bits που πρέπει να διαβάσουμε για τα δώσουμε στην decodeHuff για να τα αποκωδικοποιήσει;;; (κ όχι μόνο αυτό αλλα κ για να γνωρίζουμε πότε διαβάζουμε τον επόμενο codebook)

Για το κάνουμε αυτό χρειαζόμαστε το δένδρο του huffman (κ γενικά ότι χρειάστηκε κ στην κωδικοποίηση) αλλά έτσι θα πρέπει να εκτελέσουμε την ίδια εργασία που κάνει η decodeHuff!!!!
Με λίγα λόγια λόγω της κωδικοποίησης huffman ο "εντοπισμός" του μήκους μιας κωδικοποιημένης λέξης γίνεται ουσιαστικά από τον "εντοπισμό" της ίδιας της λέξης στο stream άρα η decodeHuff είναι πρακτικά άχρηστη!!! :o :o

Στο testHuff κ κωδικοποίηση κ η αποκωδικοποίηση γίνεται κατευθείαν κ η ακολουθία huffSec δεν  προστίθεται σε κάποιο stream άρα είναι όλα ΟΚ....


ΥΓ. Οι συναρτήσεις μας δόθηκαν τόσο αργά που μια παρατασούλα την δικαιούμαστε... ::)


Title: Re: Εργασία 2006-7
Post by: Nick_nAME on March 15, 2007, 21:04:15 pm
Κι άλλη παράταση???
Ας μην ληφθεί υπ'όψιν η Huffman να τελειώνουμε. Κουραστήκαμεεεεεεεεε

 :-X


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 15, 2007, 22:10:41 pm
Κι άλλη παράταση???
Ας μην ληφθεί υπ'όψιν η Huffman να τελειώνουμε. Κουραστήκαμεεεεεεεεε

 :-X
Συμφωνώ 100%!!!!
Ας μην μετρήσει ο Huffman και ας παραδώσουμε την εργασία δίχως αυτόν. Δεν χάθηκε και ο κόσμος...
Δυστυχώς ή ευτυχώς έχουμε κι άλλες εργασίες να κάνουμε.


Title: Re: Εργασία 2006-7
Post by: poumpa on March 15, 2007, 22:31:02 pm
Κι άλλη παράταση???
Ας μην ληφθεί υπ'όψιν η Huffman να τελειώνουμε. Κουραστήκαμεεεεεεεεε

 :-X
Συμφωνώ 100%!!!!
Ας μην μετρήσει ο Huffman και ας παραδώσουμε την εργασία δίχως αυτόν. Δεν χάθηκε και ο κόσμος...
Δυστυχώς ή ευτυχώς έχουμε κι άλλες εργασίες να κάνουμε.

ΟΚ αν συμφωνούν κ οι άλλοι.
Έγω έτσι κι αλλιώς εναν huffman έχω κάνει (χωρίς τις συναρτήσεις που μας δόθηκαν)  :P


Title: Re: Εργασία 2006-7
Post by: manf on March 15, 2007, 22:53:50 pm
Προφανώς το αν θα χρησιμοποιήσετε το huffman είναι δική σας επιλογή. Και συμφωνώ κι εγώ με τη σειρά μου 100% για το θέμα της κούρασης. Παρόλα αυτά νομίζω ότι ο σύντροφος Stalin υπερβάλει στις αιτιάσεις του και γι'αυτό το λόγο βγάλαμε την παρακάτω ανακοίνωση στο ethmmy για τη διαδικασία που προτείνουμε να ακολουθηθεί.



Για ευκολία στην αποκωδικοποίηση θα θεωρήσουμε ότι η μεταβλητή stream μετονομάζεται σε streamStruct και θα είναι μια δομή που περιλαμβάνει τα ακόλουθα:

streamStruct.codebooks: πίνακας 1x(αριθμός scalefactor bands) που περιλαμβάνει τους αιθμούς των codebook που επιλέχθηκαν για κάθε band.
streamStruct.stream: cell array 1x(αριθμός scalefactor bands) που περιλαμβάνει τις αντίστοιχες ακολουθίες δυαδικών αριθμών για κάθε band.

Συνεπώς αγνοήστε τον ορισμό για το stream που υπάρχει τώρα στη σελ. 18 της εκφώνησης.

Αντίστοιχα στην δομή που θα δημιουργείται θα έχουμε AACSeq3(i).streamStruct0 και AACSeq3(i).streamStruct1 (αντί για AACSeq3(i).stream0 και AACSeq3(i).stream1)


Βέβαια ο σύντροφος (και όποιος άλλος μπήκε στον κόπο να το κάνει) μπορεί να προτιμήσει τη δικιά του υλοποίηση χωρίς πρόβλημα από μας..


Title: Re: Εργασία 2006-7
Post by: KillBill on March 16, 2007, 01:04:17 am



Για ευκολία στην αποκωδικοποίηση θα θεωρήσουμε ότι η μεταβλητή stream μετονομάζεται σε streamStruct και θα είναι μια δομή που περιλαμβάνει τα ακόλουθα:

streamStruct.codebooks: πίνακας 1x(αριθμός scalefactor bands) που περιλαμβάνει τους αιθμούς των codebook που επιλέχθηκαν για κάθε band.
streamStruct.stream: cell array 1x(αριθμός scalefactor bands) που περιλαμβάνει τις αντίστοιχες ακολουθίες δυαδικών αριθμών για κάθε band.

Συνεπώς αγνοήστε τον ορισμό για το stream που υπάρχει τώρα στη σελ. 18 της εκφώνησης.

Αντίστοιχα στην δομή που θα δημιουργείται θα έχουμε AACSeq3(i).streamStruct0 και AACSeq3(i).streamStruct1 (αντί για AACSeq3(i).stream0 και AACSeq3(i).stream1)


Βέβαια ο σύντροφος (και όποιος άλλος μπήκε στον κόπο να το κάνει) μπορεί να προτιμήσει τη δικιά του υλοποίηση χωρίς πρόβλημα από μας..

Εγώ μόλις τώρα είδα αυτή την ανακοίνωση... Λίγο αργά βέβαια γιατί το υλοποίησα ήδη λίγο διαφορετικά. Άφησα ίδιο το stream της εκφώνησης αλλά πρόσθεσα 2 πίνακες (1 για καθε κανάλι) με τα codebooks και 2 πίνακες (1 για καθε κανάλι) με τα length(huffSec) όπου huffSec είναι η ακολουθία από 0 και 1 που δίνει η encodeHuff για κάθε μπάντα. Έτσι είναι λίγο περιπλοκότερο και πρέπει να στείλουμε στον αποκωδικοποιητή 2 πίνακες παραπάνω για κάθε frame αλλά να μη το αλλάζω τέτοια ώρα...


Title: Re: Εργασία 2006-7
Post by: Faidon on March 16, 2007, 03:25:21 am
Προφανώς το αν θα χρησιμοποιήσετε το huffman είναι δική σας επιλογή. Και συμφωνώ κι εγώ με τη σειρά μου 100% για το θέμα της κούρασης. Παρόλα αυτά νομίζω ότι ο σύντροφος Stalin υπερβάλει στις αιτιάσεις του και γι'αυτό το λόγο βγάλαμε την παρακάτω ανακοίνωση στο ethmmy για τη διαδικασία που προτείνουμε να ακολουθηθεί.

Το θέμα είναι ότι αν τελικά υλοποιηθεί και ο huffman, δώστε παράταση!!!  ^banghead^  ^seestars^


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 16, 2007, 04:08:01 am
Κύριε Ντελόπουλε θερμή παράκληση: επειδή ο huffman έχει δουλειά μήπως είναι δυνατό να δοθεί μια ακόμα μικρή παράταση (έστω μέχρι την Κυριακή) για να τελειώσουμε την υλοποίηση μας χωρίς άγχος.


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 16, 2007, 04:24:52 am
Παιδιά με τη βοήθεια της τελευταίας διευκρίνησης ο Huffman και ο iHuffman είναι <30 γραμμές κώδικα έκαστος... μην αγχώνεστε και χαλαρώστε 2-3 ωρίτσες δουλειά είναι.

ΥΓ: Μεγάλη μπουκιά φάε, μεγάλη κουβέντα μην πεις.....

Ο iHuffman έχει ένα μικρό bug και πετάει μερικά άσχετα 0 (ή μήπως τα βάζει ο Huffman;) στο τέλος μερικών bands κατά την αντιστροφή αλλά αυτό διορθώνεται σχετικά εύκολα.... Η κόλαση είναι όταν έχουμε ESH frames όπου έχουμε να κάνουμε Huffman encoding - decoding σε bands μήκους 1 sample.
-Τι κάνεις; Ρωτά ο Huffman
-Κουκιά σπέρνω... απαντά ο iHuffman.
Άλλο sample μπαίνει, άλλο βγαίνει....

Ο κώδικας παραμένει <30 γραμμές αλλά θέλουν πείραγμα οι ρουτίνες των Huffman και iHuffman. Αν έχει κάποιος όρεξη ας ρίξει μια ματιά γιατί εμένα τα μάτια έχουν κολλήσει στην οθόνη του υπολογιστή όλο το βράδυ.
Καλημέρα.
Τετέλεσθαι....


Title: Re: Εργασία 2006-7
Post by: pada on March 16, 2007, 08:38:18 am
Αίσχος Ναι!
Ντροπή και όνειδος.
Βαράμε όλο το βράδυ και οι encodeHuff και decodeHuff πέτανε μ.... ( sorry ...λάθη ήθελα να πω).
Παρακαλώ να διορθωθούν αμέσως ή αλλιώς να κατέβουμε στους δρόμους!
Βοήθεια Χριστιανοί...
Τρελαίνομαι....

 
Βασικα για να σοβαρευτούμε λιγο...
Η encodeHuff (μέχρι τώρα τουλάχιστον) μου δουλεύει μιά χαρα.
Στην decodeHuff όμως βγάζει error στην πρώτη σειρά:

"
???Attempt to reference non-structure array:
huffLUT.InvTable
"
Με άλλα λόγια δεν αναγνωρίζει το hufLUT ως structure...
To ψάχνω αλλα μέχρι στιγμής δεν βλέπω φώς...
Μόνο το φώς της ημέρας.... :)


Title: Re: Εργασία 2006-7
Post by: chggr005 on March 16, 2007, 12:10:33 pm
Μετά από 2,5 μήνες ενασχόλησης με την εργασία, πραγματικά δεν έχω πλέον κουράγιο να ασχοληθώ περισσότερο.
Κατά συνέπεια δεν πρόκειται να παραδώσω την Huffman.

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


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 16, 2007, 12:34:39 pm
Σε μένα πάλι όταν τρέχω την iAACoder μου πετάει σφάλμα στην decodeHuff:

??? Error using ==> bin2dec
Binary string must be 52 bits or less.

Error in ==> C:\MATLAB6p5\work\decodeHuff.m
On line 69  ==>             nTupleDec(escIndex(i))=2^N4+bin2dec(num2str(escape_word));

Error in ==> C:\MATLAB6p5\work\iAACoder3.m
On line 226  ==>                decCoeffs0 = decodeHuff(hf0, huffLUT{cdb0(n)});

Τι φταίει; Βοήθεια..... μη μας αφήνετε στο σκοτάδι. :-\


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 16, 2007, 12:57:47 pm
Δοκιμάστε να τρέξετε την testHuffman με
coeffSec=fix(randn(1,1)*10);
Παρόλο που την ταίζουμε αριθμούς βγάζει σαν έξοδο πίνακες 1x2 όπου μόνο ο πρώτος αριθμός αντιστοιχεί στην είσοδο. Παρόλ' αυτά ο πίνακας e βγαίνει πάντα 0.

Στη δικιά μου περίπτωση με ESH frame ταίζω [-19 -12 -26 16 -24 0 -5 3 1 6 6 1 -1 -2 3 1 3 1 4 2 1 -2 2 -1 2.......] με codebook 11 και παίρνω [-25 18 15 29 -26 22 -38 -25 26 11 -27 16 -2 19 15 4 28 -18 19 -19 20 -10 -19 2 -18 14 18 19 -1 16 -9 -13 5......]
λόττο η έξοδος.

Επίσης αυτό που παρατήρησα είναι μόνο οτι σε bands "μονού" αριθμού samples κατά την αποκωδικοποίηση βγαίνει και ένα "πονηρό" 0 στο τέλος και τις μετατρέπει σε "ζυγές".

Πιστεύω οτι θα διορθωθεί με το SP1, όποτε βγεί.


Title: Re: Εργασία 2006-7
Post by: poumpa on March 16, 2007, 13:51:28 pm
Ο iHuffman έχει ένα μικρό bug και πετάει μερικά άσχετα 0 (ή μήπως τα βάζει ο Huffman;) στο τέλος μερικών bands κατά την αντιστροφή αλλά αυτό διορθώνεται σχετικά εύκολα.... Η κόλαση είναι όταν έχουμε ESH frames όπου έχουμε να κάνουμε Huffman encoding - decoding σε bands μήκους 1 sample.

Νομίζω ότι στα σχόλια της decodeHuff περιγράφει πως έχουν προστεθεί περίσσια μηδενικά όταν τα bands είναι μικρά και πρέπει απλά να τα αγνοήσεις στην αποκωδικοποίηση.
Σε μένα πάντως δούλεψαν όλα οπότε δεν πρέπει να υπάρχουν "χοντρά" bugs στις συναρτήσεις που μας δόθηκαν...



Title: Re: Εργασία 2006-7
Post by: adelo on March 16, 2007, 13:52:05 pm
>> help decodeHuff
    decCoeffs=decodeHuff(huffSec, huffLUT)
 
    huffSec: a string of '1' and '0' corresponding to the Huffman encoded
    stream
    huffLUT: Huffman look up table(s) to be loaded using loadLUT.m
 
    decCoeffs: the decoded quantized (integer) values of a 'section'
    in practice a 'section' can coincide with a 'scale factor band'
    CAUTION: due to zero padding the length of decCoeffs may be larger than
    the length of the encoded sequence. Simply ignore values (they should
    be equal to zero) that are outside the index range [1:length(encoded sequence)]



Title: Re: Εργασία 2006-7
Post by: manf on March 16, 2007, 13:59:53 pm
Το θέμα είναι ότι αν τελικά υλοποιηθεί και ο huffman, δώστε παράταση!!!  ^banghead^  ^seestars^

Ντάξει μη χτυπάς και το κεφάλι σου στον τοίχο. Κι άλλη παράταση μέχρι το βράδυ της κυριακής για όσους θέλουν να περάσουν έτσι το σ/κ τους.

Αλλά αυτή η παράταση είναι άτυπη (που θα πει ότι δεν θα απαντάμε σε άλλα μέιλ και ποστς).



Title: Re: Εργασία 2006-7
Post by: manf on March 16, 2007, 14:07:03 pm

Στη δικιά μου περίπτωση με ESH frame ταίζω [-19 -12 -26 16 -24 0 -5 3 1 6 6 1 -1 -2 3 1 3 1 4 2 1 -2 2 -1 2.......] με codebook 11 και παίρνω [-25 18 15 29 -26 22 -38 -25 26 11 -27 16 -2 19 15 4 28 -18 19 -19 20 -10 -19 2 -18 14 18 19 -1 16 -9 -13 5......]
λόττο η έξοδος.


Το τρέξαμε εκατομμύρια φορές με όσο πιο διαφορετικές εισόδους μπορούσαμε και δεν είχε πρόβλημα... Ξανακοίταξέ το λίγο. Αν επιμένεις ότι είναι πρόβλημα της συνάρτησης στείλε μου με mail τι πραγματικά το ταίζεις για να το αναπαράγω.


Title: Re: Εργασία 2006-7
Post by: manf on March 16, 2007, 14:09:00 pm
Σε μένα πάλι όταν τρέχω την iAACoder μου πετάει σφάλμα στην decodeHuff:

Το ίδιο ισχύει και για σένα βέβαια...


Title: Re: Εργασία 2006-7
Post by: Lurpak on March 16, 2007, 15:20:05 pm

Στη δικιά μου περίπτωση με ESH frame ταίζω [-19 -12 -26 16 -24 0 -5 3 1 6 6 1 -1 -2 3 1 3 1 4 2 1 -2 2 -1 2.......] με codebook 11 και παίρνω [-25 18 15 29 -26 22 -38 -25 26 11 -27 16 -2 19 15 4 28 -18 19 -19 20 -10 -19 2 -18 14 18 19 -1 16 -9 -13 5......]
λόττο η έξοδος.


Το τρέξαμε εκατομμύρια φορές με όσο πιο διαφορετικές εισόδους μπορούσαμε και δεν είχε πρόβλημα... Ξανακοίταξέ το λίγο. Αν επιμένεις ότι είναι πρόβλημα της συνάρτησης στείλε μου με mail τι πραγματικά το ταίζεις για να το αναπαράγω.

Μα γίνεται να επιμένει κανείς για κάτι στον προγραμματισμό; Θα το ξανακοιτάξω και το mail θα είναι η τελευταία επιλογή πριν πηδήξω από τον 7ο.... έχουμε και κάποια περηφάνεια :D


....Το βρήκα το λάθος ΜΟΥ! Είναι απίστευτο μετά από 5 ώρες ύπνου τι μπορείς να κάνεις!   ^clap^ ^clap^ ^clap^

ΥΓ: Κάνω uninstalling το Matlab γιατί δεν θέλω να το ξαναδώ μέχρι το καλοκαίρι.


Title: Re: Εργασία 2006-7
Post by: Faidon on March 16, 2007, 15:56:22 pm
Χρησιμοποίησε την floor αντί της int32
Η round νομίζω είναι καλύτερη επιλογή...

Εγώ πάντως με τη round βγάζω μικρότερο SNR...

Αλλά αυτή η παράταση είναι άτυπη (που θα πει ότι δεν θα απαντάμε σε άλλα μέιλ και ποστς).

Να σας ξεζουμίσουμε σήμερα δηλαδή;;

Εγώ έχω την απορία:

1) Στους συντελεστές T και sfc δε θα κάνουμε κανένα huffman να μειώσουμε το μέγεθος;

2) Τους συντελεστές TNScoeffs θα τους αποθηκεύσουμε ως δεκαδικό -0.7, -0.6 κ.τ.λ. ή σαν έναν ακέραιο 4 bit που να δείχνει σε ποια στάθμη τελικά κβαντίστηκε ο συντελεστής;


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 16, 2007, 16:02:16 pm
Ρε παιδιά στην quantize η ισχύς του σφάλματος κβαντισμού σε db είναι 20*log Σ (Χ-Χ')^2    ή  10*log Σ (Χ-Χ')^2 ;


Title: Re: Εργασία 2006-7
Post by: Faidon on March 16, 2007, 16:08:12 pm
10 ρε όργιο!  :D



Τελικά τις συναρτήσεις pushstream και readstream δε θα τις χρησιμοποιήσουμε;

Το bitrate θα το υπολογίσουμε μόνο από τα streams ή θα λάβουμε υπόψην και το μέγεθος που καταλαμβάνουν τα T, sfc και TNScoeffs, δηλαδή το μέγεθος όλης της δομής;


Title: Re: Εργασία 2006-7
Post by: pada on March 16, 2007, 20:38:18 pm
 Paidia, exw edw kai 2 meres pou exw oloklhrwsei ton kwdika (1 mera pou oloklhrwsa ton Huffmann) kai ta apotelesmata pou pairnw apo tis dokimes mou fainontai an mh ti allo, ligo perierga kai prospathw na ta diorthwsw. Exw kapoies erwthseis gia ta apotelesmata auta pou an ginetai tha hthela na sygrinw me dika sas giati alliws den yparxei periptwsh na vrw an kai pou exw lathh. An exei kapoios thn kalosynh as apanthsei:

1) Poso megales einai oi domes pou apothikeuontai se kathena apo ta 3 level (AACSeq1,AACSeq2,AACSeq3)?
   ( se mas vgainoun peripou 6,5 4,5 3,5 MB antistoixa)
2) Thewrwntas oti ginetai o pollaplasiasmos epi 2^15 sta arxika deigmata, se ti epipeda kymainontai ta stoixeia twn pinakwn frameF tou Level 2 (dhladh meta to TNS)
    kai tou pinaka S (dhladh meta ton Quantiser tou Level 3)?
3) Poso diaforetika htan ta SNR meta to Level 1 kai meta to Level 2? Poso peripou einai to SNR meta to Level 3?

4) Sto Level 3 h pws apothikeuetai to huffStream pou prokyptei apo thn encodeHuff? Giati sto pedio streamStruct(i).stream(j) DEN ginetai na apothikeutei...
   (Auto pou ekana egw htan na to apothikeusw se ena pedio streamStruct(i).stream(j).string)
5) Sto Level 2 ta katwflia akoustothtas pou prokyptoun  exoun (toulaxiston grafika) gia kathe frame thn idia morfh...esas pws sas vghkan?

Euxaristw ek twn proterwn
kalh epityxia se olous
kai velceremos

Y.Γ Oi encode kai decodeHuff argoun xarakthristika se mena toulaxiston....symvainei to idio kai se sas?
 
   
   


Title: Re: Εργασία 2006-7
Post by: manf on March 17, 2007, 00:20:57 am

Τελικά τις συναρτήσεις pushstream και readstream δε θα τις χρησιμοποιήσουμε;

Όχι

Το bitrate θα το υπολογίσουμε μόνο από τα streams ή θα λάβουμε υπόψην και το μέγεθος που καταλαμβάνουν τα T, sfc και TNScoeffs, δηλαδή το μέγεθος όλης της δομής;

Επειδή δεν υπάρχει ντετερμινιστικός τρόπος να το κάνετε, δημιουργήστε.. 8)

Θα εκτιμηθούν οι παρατηρήσεις/παραδοχές/συμπεράσματα που θα γράψετε στην αναφορά.

ΥΓ: Κάνω uninstaling το Matlab γιατί δεν θέλω να το ξαναδώ μέχρι το καλοκαίρι.

Σου εύχομαι να τα καταφέρεις ;)

Άντε καλή σας συνέχεια...


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 17, 2007, 11:15:50 am
faidon πως υπολογίζεις bitrate (φαντάζομαι πως είναι ο αριθμός των bits ανα sec δηλαδή ανα 48000 δείγματα) και compression; Για ξηγήσου εσύ που το κατέχεις  8)


Title: Re: Εργασία 2006-7
Post by: Faidon on March 17, 2007, 14:50:51 pm
Το κατέχω λες;  :???:

Για το αρχικό αρχείο (π.χ. 'LicorDeCalandraca.wav') είναι εύκολο. Έχουμε 48000 δείγματα το δευτερόλεπτο με κάθε δείγμα να θέλει 16 bits. Επειδή έχουμε 2 κανάλια:

bitrate = 2*48000*16

Για το τελικό αρχείο (δομή fnameAACoded) είναι δύσκολο. Για την ώρα κάνω το εξής:

Μετρώ απο κάθε AACSeq3(i).streamStruct0(j).stream και AACSeq3(i).streamStruct1(j).stream το μέγεθος τους (που αντιστοιχεί σε πλήθος bit). Τέλος τα προσθέτω όλα και βρίσκω το πλήθος των bit που χρειάζεται για την αποθήκευση της κωδικοποιημένης ακολουθίας. Μετά βρίσκω το συνολικό χρόνο του τραγουδιού. Αυτός είναι όσα είναι τα δείγματα που πήρες (N) προς 48000. Τέλος διαιρείς το πλήθος των bit με το συνολικό χρόνο και προκύπτει το bitrate.

Είναι όμως και το εξής:

Το bitrate θα το υπολογίσουμε μόνο από τα streams ή θα λάβουμε υπόψην και το μέγεθος που καταλαμβάνουν τα T, sfc και TNScoeffs, δηλαδή το μέγεθος όλης της δομής;

Επειδή δεν υπάρχει ντετερμινιστικός τρόπος να το κάνετε, δημιουργήστε.. 8)

Θα εκτιμηθούν οι παρατηρήσεις/παραδοχές/συμπεράσματα που θα γράψετε στην αναφορά.


Title: Re: Εργασία 2006-7
Post by: giannis13 on March 17, 2007, 15:11:54 pm
για το bitrate νομίζω ότι αυτό που λες είναι απολύτως λογικό. Αρκούν τα streams. Για το compression όμως ;......... (καταρχήν compression τι ορίζουμε ακριβώς;) :(


Title: Re: Εργασία 2006-7
Post by: Faidon on March 17, 2007, 15:28:45 pm
Αφού το λέει ωρέ!

Quote from: hw-2006-7.v1.4.pdf
compression : bitrate πριν την κωδικοποίηση προς bitrate µετά την κωδικοποίηση.

Διαιρείς τα δύο bitrate...

Δε διαβάζουμε τις εκφωνήσεις; ε;  ::)


Title: Re: Εργασία 2006-7
Post by: Faidon on March 17, 2007, 23:22:22 pm
Να ρωτήσω: Βάλατε στις συναρτήσεις documentation;


Title: Re: Εργασία 2006-7
Post by: ckck20 on March 17, 2007, 23:54:55 pm
Σε μας για το αρχείο Licor...wav με μέγεθος 1,07mb τα streams έχουν μέγεθος 1.3mb περίπου. Τι γίνεται;!!! Αποσυμπίεση κάνουμε;;; Εσάς τι βγάζει;


Title: Re: Εργασία 2006-7
Post by: Faidon on March 18, 2007, 00:41:58 am
Εμένα μου βγαίνουν γύρω στα 1,872,000 bits όλα τα streams (0.223 MB). Δε βλέπεις το μέγεθος της δομής σε byte αλλά το πλήθος των bit στα streams.