Abstract:
In one exemplary embodiment, an adaptive quantiser includes: an input; a memory configured to store a representation of the distribution of the quantiser output for an expected input signal; a data recording configuration operable to record the actual input signal over a period that is statistically significant, the data recording configuration comprising an analogue-to-digital converter and a second memory configured to cyclically store the output of the analogue-to-digital converter; and a processor configured to set quantisation steps in dependence on the recorded input signal so that the quantiser output distribution tends to match said represented distribution.

Description:
TECHNICAL FIELD  
   The present invention relates to an adaptive quantiser. 
   BACKGROUND 
   Quantisers in general are well-known. A quantiser receives an input signal and produces an output signal that indicates into which, of a set of amplitude ranges, the input signal falls. A typical application of a simple quantiser is in an analogue-to-digital converter in which the sizes of the ranges, or “quantisation steps”, are set by the precision of the output digital signal and the acceptable input signal range. However, the quantisation steps need not all be the same size. For example, an analogue-to-digital converter can be used as a speech compressor by making the quantisation steps smaller for large input signals than for small input signals. 
   SUMMARY 
   The present inventor has perceived a need for a quantiser that can adapt the sizes of its quantisation steps on the basis of a statistical model of the expected output signal. This enables compensation of unwanted systemic gain variations and non-linearities. 
   According to the present invention, there is provided an adaptive quantiser comprising:
         an input;   means storing a representation of the distribution of the quantiser output for an expected input signal;   means for recording actual the input signal over a period that is statistically significant;   processing means for setting quantisation steps in dependence on the recorded input signal so that the quantiser output distribution tends to match said represented distribution. The processing means may be a custom circuit or a programmed processor.       

   According to the present invention, there is also provided a system for grading individuals&#39; performances, e.g. test scores or employee review score, comprising:
         an input for receiving information representing individuals&#39; performances;   a memory for storing a representation of the expected distribution of individuals&#39; grades output;   means for recording the actual performances, represented by information received by the input means, over a period that is statistically significant;   processing means for setting grade boundaries in dependence on the recorded actual performances so that the output grade distribution tends to match said represented expected distribution.       

   One embodiment of the present invention is a system for grading students&#39; academic performances comprising:
         an input for receiving information representing students&#39; scores for a test;   a memory for storing a representation of the expected distribution of students&#39; grades for said test output;   means for recording the actual scores, represented by information received by the input means, over a period that is statistically significant;   processing means for setting grade boundaries in dependence on the recorded actual scores so that the output grade distribution tends to match said represented expected distribution.       

   The means for recording an input signal may comprises an analogue-to-digital converter means and memory means configured for cyclically storing the output of the analogue-to-digital converter. 
   The representation of the expected output distribution may comprise an array of probabilities for the quantiser output or grades, or a percentile value for each quantisation level or grade. 
   The processing means may be configured to vary the quantisation steps or grades such that applying the recorded signal/performances/scores to the varied steps produces said represented distribution. Alternatively, the processing means may be configured to allocate a quantisation step or grade to an input signal value/performance/score in dependence on the percentile of the input signal value/performance/score in the recorded input signal/performances/scores and the percentile values of the quantisation levels or grades. 
   The input may be configured to received inputs from a plurality of different sources. The inputs from different sources are considered to be one input signal. The input may comprise means for extracting HTML form data from an http request. It will be appreciated that a measuring instrument could construct an http request and encode measurements in the request in the manner of form data, using either the GET or POST methods. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Embodiments of the present invention will now be described, by way of example, with reference to the accompanying drawings, in which: 
       FIG. 1  is a block diagram of a speech processor according to the present invention; 
       FIG. 2  is a flowchart of the quantisation step determining process performed in the processor of  FIG. 1 ; 
       FIG. 3  is a graph illustrating the probability density function of an expected input signal; 
       FIG. 4  is a graph illustrating the probability density function of an actual input signal; 
       FIG. 5  is a flowchart of the new quantisation step calculation step of the processing illustrated in  FIG. 2 ; 
       FIG. 6  illustrates the major physical components of an online testing system for students, according to the present invention; 
       FIG. 7  illustrates the database of the system shown in  FIG. 6 ; 
       FIG. 8  is a signalling diagram illustrating the signalling between a client and the server in the system shown in  FIG. 6 ; 
       FIG. 9  shows a question web page; 
       FIG. 10  is a flowchart illustrating the marking of a question answered by a student; 
       FIG. 11  is a flowchart illustrating a quantiser updating process; 
       FIG. 12  illustrates the database of a more sophisticated system of the type shown in  FIG. 6 ; 
       FIG. 13  is a flowchart illustrating the marking of a question answered by a student; and 
       FIG. 14  is a flowchart illustrating a quantiser updating process. 
   

   DETAILED DESCRIPTION  
   Referring to  FIG. 1 , a speech processor according to the present invention, comprises a linear analogue-to-digital converter (ADC)  1 , a memory  2 , a processor  3  and a controllable analogue-to-digital converter  4 . 
   Input analogue signals are digitised by the linear ADC  1  and written cyclically to the memory  2 . The input analogue signals are also fed to the controllable ADC  4 . Initially, the quantisation steps of the controllable ADC  4  are set to default ranges. For example, the heights of the quantisation steps of the controllable ADC  4  may all be the same. 
   The processor  3  can send control signals to the controllable ADC  4  to set controllable ADC&#39;s quantisation steps. The quantisation step control signal are generated by the processor  3  by analysing the input signals in a moving window. The width of the moving window corresponds to the period of the cyclical writing of output data from the linear ADC  1  to the memory  2 . 
   Referring to  FIG. 2 , at intervals, the processor  3  reads a block of input signal samples from the memory  2  (step s 1 ). 
   Referring to  FIG. 3 , the probability density function expected for the input signal, can be divided into regions by vertical lines from the amplitude axis. These lines correspond to the boundaries between quantisation steps of a linear quantiser. The probability that an expected input signal sample will fall within a particular quantisation level is given by the area bounded by the probability curve and the vertical lines at the upper and lower limits of the level. 
   The processor  3  is programmed with an array (“the model array”) containing the quantisation level probabilities for a predetermined speech signal probability density function. In other words, the nth element of the model array defines the desired probability of the output of the controllable quantiser being the nth value when the input signal is the expected input signal, i.e. an input signal without undesirable gain and linearity effects. 
   Referring back to  FIG. 2 , the processor calculates an amplitude probability density function for the input signal from the samples, read from the memory  2  (step s 2 ). This may be done by building a representation of a histogram, ignoring silences, and fitting a curve to the histogram. 
   For the sake of the present explanation only, the amplitude probability density function of the input signal can be considered to be as shown in  FIG. 4 . The distribution shown in  FIG. 4  is biased towards smaller amplitudes when compared with the distribution shown in  FIG. 3 . This is consistent with attenuation. Also, the shape of the curve is not a linear transformation of the curve in  FIG. 3 , which indicates some non-linearities in the signal path to the input of the speech processor. 
   Once the amplitude probability density function of the input signal has been calculated in step s 2 , the new quantisation steps for the controllable ADC  4  are determined (step s 3 ). 
   Referring to  FIG. 5 , the first step of the determination of the new quantisation steps comprises obtaining the next, i.e. the first, element of the model array (step s 11 ). A quantisation step upper bound is then determined by finding the amplitude value such that the area under the amplitude probability density function of the input signal between the previous upper bound, which is 0 in the case of the first step, and the upper bound of the current step equals or approximates the currently selected element of the model array (step s 12 ). Expressed mathematically, the value of b n  that gives: 
           0   =         ∫     A   =     b     n   -   1           b   n       ⁢       f   ⁡     (   p   )       ⁢           ⁢     ⅆ   A         -     m   ⁡     (   n   )                   or             0   ≈         ∫     A   =     b     n   -   1           b   n       ⁢       f   ⁡     (   p   )       ⁢           ⁢     ⅆ   A         -     m   ⁡     (   n   )               
is required, where ƒ(p) is the amplitude probability density function of the input signal, A is the input signal amplitude, m is the model array, b is a quantisation step boundary and n is the index of the current quantisation step.
 
   The new boundary is stored and the model array index incremented (step s 13 ). If the model array index has passed the end of the model array, the process ends, otherwise the process returns to step s 11  for processing of the next quantisation step. 
   Referring back to  FIG. 2 , the new quantisation steps are sent by the processor  3  to the controllable ADC  4  (step s 4 ) which sets its quantiser according to the new steps. 
   In a variant, the model array stores percentiles for the quantisation levels and the quantisation steps are set by moving the thresholds of the controllable quantiser so that the percentiles in the model are achieved with the actual input signal. 
   The problem of unwanted systemic gain variations and non-linearities also occurs in the grading of educational examination results. If the pool of test takers is sufficiently large, the characteristics of the examination sitters as a group can be considered to be constant over a period of time. However, the examination questions do vary in difficulty over time. Therefore, the unwanted systemic gain variations and non-linearities can be attributed to differences in the difficulties of the examination questions. 
   In large scale public examinations, the examination grades, e.g. A, B, C etc., are allocated to different ranges of marks retrospectively on the basis of the distribution of marks obtained by the entire set of examination sitters. Consequently, there has been a problem in providing graded results to students sitting “mock” examinations individually within an extended period of time. This problem is particularly apparent where the “mock” examinations are set and graded automatically. 
   A solution to this problem is, however, provided by an adaptive quantiser according to the present invention. 
   A simple embodiment will be described first. The simple embodiment enables students to answer questions in one subject at one academic level. 
   Referring to  FIG. 6 , an online testing system comprises a web server machine  11  and a database machine  12  connected by a local area network. The client machines  13  can communicate with the web server machine  11  across the Internet  14 . 
   The web server machine  11  runs a conventional web server program, such as Apache, with a server-side scripting language, such as PHP or ASP providing dynamic content. A conventional SQL database system, such as MySQL or Microsoft SQL Server, runs on the database machine  12 . 
   Referring to  FIG. 7 , the database system includes a testing system database  21 . The testing system database includes a plurality of tables comprising a Model Table  22  and a Quantisation Table  23 . 
   The Model Table  22  stores a representation of the grade boundaries in terms of the percentiles for the upper boundary of each grade and corresponds to the model array in the first embodiment described above. The Model Table  22  contains columns for Grade and Boundary. The grade boundary is stored as the percentage of students who fell in or below the grade. For example, for grade U (the bottom grade), the boundary is 5%, for grade F, the boundary is 10%, for grade E, the boundary is 20% and so on until for grade A, the boundary is 100%. 
   The Quantisation Table  23  provides a mapping between students&#39; scores on a particular question on the one hand and grades on the other. The Quantisation Table  23  comprises a Question ID column, a Possible Percentage column, a Count of Score column, a Cumulative Count of Score column, a Grade column and a Percentile for Possible Score column. 
   The Question ID column merely identifies the question to which the data in the other columns relates. 
   Typically a single question will not have 100 marks allocated to it. It is likely to be the case that a question has from four to 20 marks allocated to it. If a question has four marks allocated, a student can score 0%, 25%, 50%, 75% or 100%. Likewise, if a question has 20 marks allocated to it, a student can score 0%, 5%, 10%, 15%, etc. For a given question, there is a row in the Quantisation Table  23  for each possible score. These possible scores are stored in the Possible Percentage column. 
   The Count of Score column contains counts of the number of times each question/percentage score combination has occurred. 
   The Cumulative Count of Score column contains the sum of Count of Score column values for the question identified in the Question ID column. 
   The Possible Percentage Score in the Possible Percentage Column is mapped onto a Grade. The Grade is defined by the contents of the Grade column. 
   The Percentile for Possible Score column contains the percentile of students attempting the identified question who achieved the score to which the row relates. 
   The database also comprises a Question Table  26  which contains columns for Question ID and Main Question Text and a Subsidiary Question Table  27  which contains a column for the id of the question in the Question Table  26  to which a subsidiary question belongs, a Text column and an Answer column. 
   A process by which a student can take a test and receive a grade will now be described. 
   Referring to  FIG. 8 , to initiate a question answering session, a student causes their web browser to send an http request for a question page from a client machine  13  to the server machine  11 . The server machine  11  responds by sending the requested page in an http response. 
   Referring to  FIG. 9 , the question page is displayed by the student&#39;s browser and, in the present example, comprises introductory question text  31 , six subsidiary question sections  32 - 1 , . . . ,  32 - 6  and a submit button  34 . Each subsidiary question section comprises a subsidiary question text and four answer option with associated radio buttons. 
   The student reads the introductory question text  31  and the subsidiary question texts and selects the radio buttons beside the answers that they believe to be correct. The student may change their mind and select other radio buttons at this point. When the student is finally satisfied with their selections, the student clicks on the submit button  34 . 
   The clicking on the submit button  34  causes the student&#39;s web browser to send the identities of the selected radio buttons to the web server machine  11  in a request for a resource, defined in the action parameter of the HTML form in the question page. 
   Referring to  FIG. 10 , when the request for the resource, defined in the action parameter of the HTML form in the question page, is received by the web server machine  11 , it is processed to obtain the form data and, in particular, the id of the question and the values of the selected radio buttons (step s 21 ). 
   The main and Subsidiary Question Tables  26 ,  27  are queried to obtain the correct answer values for the identified question (step s 22 ). The values from the form data are compared with the correct values (step s 23 ) and an approximate percentage score, i.e. 0%, 17%, 33%, 50%, 66%, 83% or 100%, is calculated according to the number of correct answers to the subsidiary questions (step s 24 ). 
   The grade for the calculated percentage score and the question is then obtained from the Quantisation Table (step s 25 ). The student&#39;s percentage score is stored (step s 26 ) and a new page is sent to the student as the response to the request carrying the form data (step s 27 ). The student&#39;s grade is included in the response page in this example. 
   It will be appreciated that conventional session management techniques can be used to present a question over a plurality of pages. 
   The process of generating this mapping will now be described. 
   At intervals, for example nightly, a quantisation step update process is performed. 
   Referring to  FIG. 11 , the quantisation step update process starts with the possible percentage scores for a question being obtained from the database  21  (step s 31 ). The percentile for each of these possible scores is then calculated from the records of students&#39; scores recorded in the Quantisation Table  23  of database  21  within a moving window (step s 32 ). 
   For each of the possible score percentiles, the closest grade percentile above the current score percentile is obtained from the grade boundary table  23  (step s 33 ). These values are then used to update the grade values in the Quantisation Table  22  (step s 34 ). 
   Thus, the grade allocated to a particular percentage score depends on the historical record of that score being achieved and the desired grade percentiles. 
   The foregoing embodiment has been made deliberately simple so that the adaptive quantisation process can be more readily understood. A more complex system which is more desirable in practice will now be described. 
   In this more complex embodiment, the hardware is substantially as described above with reference to  FIG. 6 . However, the processing by the server machine  11  is more complex. The web server, running on the server machine  11 , is programmed to provide login pages, question pages and report pages using data from the database machine  12 . The logging in members, session handling and the production of web pages from data sources are familiar tasks to any one skilled in the art of web application design. The members may be students or teachers, although only students will perform the test exercises. 
   Referring to  FIG. 12 , the database  121  of this embodiment contains extended versions of the tables of the preceding embodiment and some additional tables. The tables are a Model Table  122 , a Quantisation Table  123 , a Points Reference Table  124 , a Question Table  125 , a Subsidiary Question Table  126 , a Members Table  127 , a Class Details Table  128 , a Class Table  129 , a School Table  131 , a Categorize Table  132  and an Exercise Table  133 . 
   The Members Table  127  comprises columns for a member id, member personal details, user id and password for accessing the system, a school reference to the School Table  131 , and member type, e.g. student or teacher. 
   The Class Table  129  comprises a School Reference column containing references to the School Table  131  and a Code column. The Class Details Table  128  merely provides a link between a member id in the Members Table  127  and class code in the Class Table  129 . 
   The Exercise Table  133  contains columns for a member id, an exercise id and a reference to a record in the Quantisation Table  123 . 
   The Categorize Table  132  stores a record of members&#39; performances in the exercises that they have undertaken. The columns of the Categorize Table  132  include an ID column, a Year column, Subject, Heading, Topic, Subtopic and Type columns for information relating to exercises, a column for references to the Exercise Table  133 , columns for the time and duration of an exercise and columns for grade and points. 
   The Quantisation Table  123  comprises columns for Question ID, Academic Level, Possible Percentage Score, Count of Score, Count of Attempts at Question, Lower and Upper Grades, Possible Point Score, Percentile for Possible Score and Question Subject. 
   The Model Table  122  has columns for Academic Level, Subject, Grade and Grade Boundary Percentile. 
   Finally, the Points Reference Table  124  has Academic Level, Grade and Points columns. 
   The skilled person will readily understand how the information stored in the tables can be used to generate web pages reporting members&#39;, classes&#39; or schools&#39; performances. 
   When a member completes an exercise, the member submits the question form. 
   Referring to  FIG. 12 , when the form data is received by the web server, the relevant program or script extracts the member&#39;s id, the time taken, which may be determined by a Javascript counter, a Question ID and the selections made in answer to the question (step s 41 ). 
   The percentage score is calculated (step s 42 ). The Count of Attempts at Question fields of the Quantisation Table records, having the extracted Question ID, are incremented (step s 43 ) and the record for that Question ID and the calculated Percentage Score combination is obtained from the Quantisation Table  123  (step s 44 ). 
   A record is next created in the Categorize Table  132  using information about the question from the Question Table  125  (step s 45 ). The grade field is set from the upper grade field of the Quantisation Table record and the points field is set from the possible point score field of the Quantisation Table record. 
   Finally, the program or script sends the appropriate response page to the member&#39;s client machine  13 . 
   At intervals, the Quantisation Table  123  is updated. In particular, the Upper and Lower Grades and the Possible Point Score columns are updated. 
   Referring to  FIG. 13 , the Quantisation Table updating process is carried out for each question (steps s 51  and s 57 ). Counts of the number of times each possible score was achieved in a moving window, consisting of the preceding three months, are obtained from the Categorize Table (step s 52 ). From these counts, the percentiles for each possible score is calculated (step s 53 ). These percentiles are then compared with the grade boundary percentiles from the Model Table  122  to get the Upper and Lower Grades for the Quantisation Table  123  (step s 54 ). The points for the new Upper and Lower Grades for the question&#39;s academic level are obtained from the Points Reference Table  124  and averaged to produce a new possible points score (step s 55 ). The new Upper and Lower Grades and the new Possible Points Score are used to update the Quantisation Table record for the current question/percentage score combination (step s 56 ). 
   Thus, both the grading and the allocation of points are determined on the basis of a historical record of inputs and the desired output distribution. 
   In a variant of this embodiment, the member is asked an open-ended question in a first web page and provided with a marking schedule in a second page. The second page includes checkboxes which enable the member to identify the items in the marking schedule that the member included in their answer. When the form data from the second page is received by the web server, the percentage score is determined by the number of boxes that the member checked. Once the percentage score has been determined, the grading proceeds as shown in  FIG. 13 . 
   It will be appreciated that an adaptive quantiser can be applied in may situations where a signal is subject to systemic amplitude noise and can be characterised statistically. For example the adaptive quantiser can be used to grade employee performance on a relative basis in a corporation.