[go: up one dir, main page]

ES2266312T3 - Indexacion de posiciones y señales de pulso en codigos de cifrado y descifrado algebraicos para la codificacion de señales de banda ancha. - Google Patents

Indexacion de posiciones y señales de pulso en codigos de cifrado y descifrado algebraicos para la codificacion de señales de banda ancha. Download PDF

Info

Publication number
ES2266312T3
ES2266312T3 ES01997803T ES01997803T ES2266312T3 ES 2266312 T3 ES2266312 T3 ES 2266312T3 ES 01997803 T ES01997803 T ES 01997803T ES 01997803 T ES01997803 T ES 01997803T ES 2266312 T3 ES2266312 T3 ES 2266312T3
Authority
ES
Spain
Prior art keywords
amplitude
index
positions
pulses
zero
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES01997803T
Other languages
English (en)
Inventor
Bruno Bessette
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VoiceAge Corp
Original Assignee
VoiceAge Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=4167763&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2266312(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by VoiceAge Corp filed Critical VoiceAge Corp
Application granted granted Critical
Publication of ES2266312T3 publication Critical patent/ES2266312T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • G10L19/107Sparse pulse excitation, e.g. by using algebraic codebook
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/10Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a multipulse excitation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/08Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters
    • G10L19/12Determination or coding of the excitation function; Determination or coding of the long-term prediction parameters the excitation function being a code excitation, e.g. in code excited linear prediction [CELP] vocoders
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L2019/0001Codebooks
    • G10L2019/0007Codebook element generation
    • G10L2019/0008Algebraic codebooks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Mathematical Optimization (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Moving Of The Head To Find And Align With The Track (AREA)
  • Dc Digital Transmission (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Investigating, Analyzing Materials By Fluorescence Or Luminescence (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Treatment Of Fiber Materials (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

Un método de indexación de posiciones y amplitudes de pulso en un código algebraico de cifrado y descifrado para una codificación y una decodificación eficientes de una señal de sonido, en el que: - el código de cifrado y descifrado comprende un conjunto de combinaciones de amplitud/posición de pulso; - cada combinación de amplitud/posición de pulso define un número de posiciones diferentes y comprende tanto pulsos de amplitud cero como pulsos de amplitud distinta de cero, asignados a posiciones respectivas de la combinación, y - cada pulso de amplitud distinta de cero asume una de la pluralidad de amplitudes posibles, y en el que dicho procedimiento de indexación comprende: - formar un conjunto de al menos una pista de dichas posiciones de pulso, en la que la posición de cada pulso de amplitud distinta de cero de cada combinación de amplitud/posición de pulso está restringida a una pista de dicho conjunto; - indexar, de acuerdo con un primer procedimiento, mencionado en lo que sigue como procedimiento 1, la posición y la amplitud de un pulso de amplitud distinta de cero solamente cuando la posición de dicho pulso de amplitud distinta de cero se localice en una pista de dicho conjunto; - indexar, de acuerdo con un segundo procedimiento, mencionado en lo que sigue como procedimiento 2, las posiciones y amplitudes de dos pulsos distintos de cero solamente cuando las posiciones de dichos dos pulsos de amplitud distinta de cero estén localizadas en una pista de dicho conjunto, y - cuando las posiciones de un número X de pulsos de amplitud distinta de cero se localicen en una pista de dicho conjunto, en la que X>_3: - dividir las posiciones de dicha pista en dos secciones; - utilizar otro procedimiento asociado a dicho número X, mencionado en lo que sigue como procedimiento X, para indexar las posiciones y amplitudes de dichos X pulsos de amplitud distinta de cero, comprendiendo dicho procedimiento X: - identificar en cuál de las dos secciones de pista se localiza cada pulso de amplitud distinta de cero; - calcular sub-índices de dichos X pulsos de amplitud distinta de cero utilizando los procedimientos 1 y 2 en al menos una de las citadas secciones de pista y en la pista completa, y - calcular un índice de ¿posición y amplitud¿ de dichos X pulsos de amplitud distinta de cero mediante la combinación de dichos sub-índices.

Description

Indexación de posiciones y señales de pulso en códigos de cifrado y descifrado algebraicos para la codificación de señales de banda ancha.
Antecedentes de la invención 1. Campo de la invención
La presente invención se refiere a una técnica para codificar digitalmente una señal, en particular aunque no exclusivamente una señal de voz, con vistas a la transmisión y sintetización de esta señal. Más específicamente, la presente invención está relacionada con un método para indexar posiciones y amplitudes de pulso de pulsos con amplitud distinta de cero, en particular aunque no exclusivamente en códigos de cifrado y descifrado algebraicos muy amplios, necesarios para la codificación de alta calidad de señales de banda ancha en base a técnicas de Predicción Lineal Excitada de Código Algebraico (ACELP).
2. Breve descripción de la tecnología actual
La demanda de técnicas para una codificación eficaz de voz/audio digital de banda ancha, con una buena relación subjetiva de calidad/velocidad de bit, se está incrementando en relación con numerosas aplicaciones, tales como en aplicaciones de teleconferencia de audio/video, multimedia e inalámbricas, así como también en aplicaciones de Internet y de red de envío en paquetes. Hasta hace poco tiempo, se utilizaron principalmente anchos de banda telefónica filtrada en la gama de 200-3400 Hz en aplicaciones de codificación de voz. Sin embargo, existe una demanda creciente de aplicaciones de voz de banda ancha con el fin de incrementar la inteligibilidad y la naturalidad de las señales de voz. Un ancho de banda comprendido en la gama de 50-7000 Hz, ha sido encontrado como suficiente para suministrar una calidad de voz para comunicación verbal. Para señales de audio, esta gama proporciona una calidad de audio aceptable, pero todavía es más baja que la calidad CD (Compact Disk, Disco Compacto) que opera en la gama de 20-20000 Hz.
Un codificador de voz convierte una señal de voz en una corriente digital de bits que se transmite por un canal de comunicación (o que se almacena en un medio de almacenaje). La señal de voz es digitalizada (muestreada y cuantificada con 16 bits por muestra normalmente), y el codificador de voz tiene la misión de representar estas muestras digitales con un número más pequeño de bits mientras mantiene una buena calidad de voz subjetiva. El decodificador o sintetizador de voz, opera sobre la corriente de bits transmitida o almacenada, y la convierte de nuevo en una señal digital.
Una de las mejores técnicas conocidas que es capaz de conseguir una buena relación de calidad/velocidad de bit, es la que se conoce como técnica CELP (Code Excited Linear Prediction, Predicción Lineal Excitada de Código). De acuerdo con esta técnica, la señal de voz muestreada se procesa en bloques sucesivos de L muestras denominadas normalmente "delimitaciones", donde L es algún número predeterminado (correspondiente a 10-30 ms de palabra). En CELP, se calcula un filtro de síntesis de LP (Linear Prediction, Predicción Lineal), y se transmite cada delimitación. La delimitación de la muestra L se divide entonces en bloques más pequeños conocidos como sub-delimitaciones de muestras de tamaño N, siendo L = kN y siendo k el número de sub-delimitaciones en una delimitación (N corresponde normalmente a 4-10 ms de palabra). Se determina una señal de excitación en cada sub-delimitación, la cual consiste normalmente en dos componentes: uno procedente de la excitación pasada (también denominado contribución de separación de paso o código adaptativo de cifrado y descifrado), y el otro procedente de un código de cifrado y descifrado innovador (también conocido como código fijo de cifrado y descifrado). Esta señal de excitación es transmitida y utilizada en el decodificador como entrada del filtro de síntesis de LP con el fin de obtener la voz sintetizada.
Para sintetizar voz de acuerdo con la técnica CELP, cada bloque de N muestras se sintetiza filtrando un vector de código apropiado del código de cifrado y descifrado de innovación a través de filtros variables en el tiempo que modelizan las características espectrales de la señal de voz. Estos filtros consisten en un filtro de síntesis de separación de paso (implementado normalmente como código de cifrado y descifrado adaptativo que contiene la señal de excitación pasada), y un filtro de síntesis de LP. En el extremo de codificador, se calcula la salida de síntesis para todos, o para un subconjunto de, los vectores de código del código de cifrado y descifrado (búsqueda de código de cifrado y descifrado). El vector de código conservado es el que produce la salida de síntesis más cercana a la señal de voz original de acuerdo con una medida de distorsión ponderada perceptivamente. Este pesaje perceptivo se realiza utilizando lo que se conoce como filtro de pesaje perceptivo, el cual se deriva normalmente del filtro de síntesis de LP.
Un código de cifrado y descifrado innovador en el contexto CELP, es un conjunto indexado de N secuencias de muestra largas, que se mencionarán como vectores de código de N dimensiones. Cada secuencia de código de cifrado y descifrado está indexada por un número entero k que está comprendido en la gama de 1 a M, donde M representa el tamaño del código de cifrado y descifrado, expresado con frecuencia como un número de bits b, siendo M = 2^{b}.
Un código de cifrado y descifrado puede ser almacenado en una memoria física, por ejemplo una tabla de búsqueda (código de cifrado y descifrado estocástico), o puede estar referido a un mecanismo para relacionar el índice con un vector de código correspondiente, por ejemplo una fórmula (código de cifrado y descifrado algebraico).
Un inconveniente de este tipo de códigos de cifrado y descifrado, códigos de cifrado y descifrado estocásticos, consiste en que con frecuencia conllevan un almacenaje físico sustancial. Éstos son estocásticos, es decir, aleatorios en el sentido de que el recorrido desde el índice hasta el vector de código asociado, incluye tablas de búsqueda que son el resultado de números generados aleatoriamente o de técnicas estadísticas aplicadas a grandes conjuntos de ejercitación de palabra. El tamaño de los códigos de cifrado y descifrado estocásticos tiende a estar limitado por la complejidad de la búsqueda y/o del almacenaje.
El segundo tipo de códigos de cifrado y descifrado consiste en códigos de cifrado y descifrado algebraicos. En contraste con los códigos de cifrado y descifrado estocásticos, los códigos de cifrado y descifrado algebraicos no son aleatorios y no requieren almacenaje sustancial. Un código de cifrado y descifrado algebraico es un conjunto de vectores de código indexados cuyas amplitudes y posiciones de los pulsos del vector de código kº pueden ser derivadas de un índice k correspondiente a través de una regla que no requiere ningún almacenaje físico, o requiere un almacenaje mínimo. Por lo tanto, el tamaño de los códigos de cifrado y descifrado algebraicos no está limitado por requisitos de almacenaje. Los códigos de cifrado y descifrado algebraicos pueden estar también diseñados para una búsqueda eficaz.
El modelo CELP ha tenido mucho éxito en la codificación de señales de sonido de la banda telefónica, y existen varios estándares basados en CELP en una amplia gama de aplicaciones, especialmente en aplicaciones celulares digitales. En la banda de teléfono, la señal de sonido es una banda limitada a 200-3400 Hz y muestreada a razón de 16000 muestreos/segundo.
Se presentan algunas dificultades cuando se aplica el modelo CELP optimizado de banda de teléfono a señales de banda ancha, y se necesita añadir características adicionales al modelo con el fin de obtener señales de banda ancha de alta calidad. Estas características incluyen un filtrado eficaz de pesado perceptivo, un filtrado de separación de paso de ancho de banda variable, y técnicas eficaces de aumento de separación de paso y de alisamiento de ganancia. Otro tema importante que se presenta en la codificación de señales de banda ancha, consiste en la necesidad de utilizar códigos de cifrado y descifrado de excitación muy grandes. Por lo tanto, resultan muy importantes las estructuras eficientes de código de cifrado y descifrado que requieren un almacenaje mínimo y que pueden ser buscadas rápidamente. Los códigos de cifrado y descifrado algebraicos han sido conocidos por su eficacia y son ahora utilizados ampliamente en diversos estándares de decodificación de voz. Códigos de cifrado y descifrado algebraicos y procedimientos de búsqueda rápida, se encuentran descritos en las Patentes US núms. 5.444.816 (Adoul et al.) concedida el 22 de Agosto de 1995; 5.699.482 concedida a Adoul et al. el 17 de Diciembre de 1997; 5.754.976 concedida a Adoul et al. el 19 de Mayo de 1998, y 5.701.392 (Adoul et al.) de fecha 23 de Diciembre de 1997.
Objeto de la invención
Un objeto de la presente invención consiste en proporcionar un nuevo procedimiento para indexar posiciones y amplitudes de pulso en códigos de cifrado y descifrado algebraicos para codificar eficientemente, en particular pero no exclusivamente, señales de banda ancha.
Sumario de la invención
La invención está definida en la reivindicación de método 1 anexa, la reivindicación de dispositivo 27 independiente, y la reivindicación de sistema 60 independiente. Realizaciones ventajosas se encuentran definidas en las reivindicaciones dependientes.
Breve descripción de los dibujos
En los dibujos anexos:
La Figura 1 es un diagrama esquemático de bloques de una realización preferida del dispositivo de codificación de banda ancha;
La Figura 2 es un diagrama esquemático de bloques de una realización preferida del dispositivo de decodificación de banda ancha;
La Figura 3 es un diagrama esquemático de bloques de una realización preferida del dispositivo de análisis de separación de paso;
La Figura 4 es un diagrama esquemático de bloques, simplificado, de un sistema de comunicación celular en el que pueden ser implementados el dispositivo de codificación de banda ancha de la Figura 1 y el dispositivo de decodificación de banda ancha de la Figura 2, y
La Figura 5 es un diagrama de flujo de una realización preferida para un procedimiento de codificación de dos pulsos signados en una pista de longitud k = 2^{M}, que incluye la indexación de las posiciones de pulso y los signos.
Descripción detallada de las realizaciones preferidas
Según conocen bien los expertos en la materia, un sistema de comunicación celular tal como el mostrado con 401 (Figura 4), proporciona un servicio de telecomunicaciones sobre una gran área geográfica dividiendo esa gran área geográfica en un número C de células más pequeñas. Las células C más pequeñas se ponen en servicio mediante estaciones de base 402_{1}, 402_{2}, ..., 402_{c} celulares respectivas para dotar a cada célula con canales de transmisión de señales de radio, canales de audio y de datos.
Los canales de transmisión de señales de radio se utilizan para situar llamadas a radioteléfonos móviles (unidades móviles de transmisor/receptor) tales como 403 dentro de los límites del área (célula) de cobertura de la estación de base 402 celular, y para colocar llamadas a otros radioteléfonos 403 situados ya sea en el interior o ya sea fuera de la célula de la estación de base, o a otra red tal como la Red Conmutada de Teléfonos Públicos (PSTN) 404.
Una vez que un radioteléfono 403 ha colocado con éxito, o ha recibido, una llamada, se establece un canal de audio o de datos entre este radioteléfono 403 y la estación de base 402 celular correspondiente a la célula en la que se encuentra situado el radioteléfono 403, y se establece la comunicación entre la estación de base 402 y el radioteléfono 403 por ese canal de audio o de datos. El radioteléfono 403 puede recibir también información de control o de temporización por el canal de transmisión de señales mientras se está produciendo una llamada.
Si un radioteléfono 403 abandona una célula y entra en otra célula adyacente mientras se está celebrando una llamada, el radioteléfono 403 traspasa la llamada a un canal de audio o de datos disponible de la estación de base 402 de la nueva célula. Si un radioteléfono 403 abandona una célula y entra en otra célula adyacente cuando no se está celebrando ninguna llamada, el radioteléfono 403 envía un mensaje de control por el canal de transmisión de señales para registrarse en la estación de base 402 de la nueva célula. De esta manera, resulta posible la comunicación móvil por una amplia zona geográfica.
El sistema 401 de comunicación celular comprende además una terminal de control 405 para controlar la comunicación entre las estaciones de base 402 celulares y la PSTN 404, por ejemplo durante una comunicación entre un radioteléfono 403 y la PSTN 404, o entre un radioteléfono 403 situado en una primera célula y un radioteléfono 403 situado en una segunda célula.
Por supuesto, se requiere un sub-sistema de comunicación de radio inalámbrica bidireccional para establecer un canal de audio o de datos entre una estación de base 402 de una célula y un radioteléfono 403 situado en esa célula. Según se ha ilustrado de forma muy simplificada en la Figura 4, tal sub-sistema de comunicación de radio inalámbrica bidireccional comprende típicamente en el radioteléfono 403:
- un transmisor 406 que incluye:
-
un codificador 407 para codificar una señal de voz u otra señal que va a ser transmitida, y
-
un circuito de transmisión 408 para transmitir la señal codificada desde el codificador 407 a través de una antena tal como 409, y
- un receptor 410 que incluye:
-
un circuito de recepción 411 para recibir una señal de voz codificada transmitida u otra señal, normalmente a través de la misma antena 409, y
-
un decodificador 412 para decodificar la señal codificada recibida desde el circuito 411 de recepción.
El radioteléfono 403 comprende además otros circuitos 413 de radioteléfono convencional para suministrar una señal de voz u otra señal al codificador 407, y para procesar la señal de voz u otra señal procedente del decodificador 412. Estos circuitos 413 de radioteléfono son bien conocidos por los expertos en la materia y, en consecuencia, no van a ser descritos con mayor detalle en la presente descripción.
También un sub-sistema de comunicación de radio inalámbrica bidireccional de este tipo, comprende típicamente en la estación de base 402:
- un transmisor 414 que incluye:
-
un codificador 415 para codificar la señal de voz u otra señal que va a ser transmitida, y
-
un circuito de transmisión 416 para transmitir la señal codificada procedente del codificador 415 a través de una antena tal como 417, y
- un receptor 418 que incluye:
\newpage
-
un circuito de recepción 419 para recibir una señal de voz codificada transmitida u otra señal por medio de la misma antena 417, o a través de otra antena diferente (no representada), y
-
un decodificador 420 para decodificar la señal codificada recibida procedente del circuito de recepción 419.
La estación de base 402 comprende además, típicamente, un controlador 421 de estación de base, junto con su base de datos 422 asociada, para controlar la comunicación entre el terminal de control 405 y el transmisor 414 y el receptor 418. El controlador 421 de estación de base controlará también la comunicación entre el receptor 418 y el transmisor 414 en caso de comunicación entre dos radioteléfonos, tales como el 403, situados en la misma célula que la estación de base 402.
Según conocen bien los expertos en la materia, se requiere codificación con el fin de reducir el ancho de banda necesario para transmitir una señal, por ejemplo una señal de voz tal como las palabras, a través del sub-sistema de comunicación de radio inalámbrica bidireccional, es decir, entre un radioteléfono 403 y una estación de base 402.
Los codificadores de voz de LP (tales como 415 y 407), que operan típicamente a 13 kbits/segundo y por debajo, tales como los codificadores de Predicción Lineal Excitada de Código (CELP), utilizan típicamente un filtro de síntesis de LP para modelizar la envolvente espectral a corto plazo de la señal de palabra. La información de LP es transmitida, típicamente, cada 10 ó 20 ms hasta el decodificador (tal como 420 y 412), y es extraída en el extremo de decodificador.
Las técnicas novedosas que se describen en la presente descripción, pueden ser utilizadas con señales de banda telefónica que incluyen la palabra, con señales de sonido distintas de la palabra, así como también con otros tipos de señales de banda ancha.
La Figura 1 muestra un diagrama de bloques general de un dispositivo 100 de codificación de voz tipo CELP, modificado para acomodar mejor las señales de banda ancha. Las señales de banda ancha pueden comprender, entre otras, señales tales como la música y las señales de video.
La señal 114 de entrada muestreada, se divide en bloques sucesivos de L muestras, denominadas "unidades de información". En cada unidad de información, se computan diferentes parámetros que representan la señal de voz, se codifican y se transmiten. Habitualmente se computan los parámetros de LP que representan el filtro de síntesis de LP, una vez por cada unidad de información. La unidad de información se divide además en bloques más pequeños de N muestras (bloques de longitud N), en los que se determinan los parámetros de excitación (separación de paso e innovación). En la literatura CELP, estos bloques de longitud N se denominan "sub-unidades de información", y las señales de la muestra N en las sub-unidades de información se mencionan como vectores N dimensionales. En esta realización preferida, la longitud N corresponde a 5 ms, mientras que la longitud L corresponde a 20 ms, lo que significa que una unidad de información contiene cuatro sub-unidades (N = 80 a la velocidad de muestreo de 16 kHz, y 64 tras un muestreo descendente a 12,8 kHz). Se producen diversos vectores N dimensionales en el procedimiento de codificación. En lo que sigue se proporciona una lista de los vectores que aparecen en las Figuras 1 y 2, así como también una lista de los parámetros transmitidos:
Lista de los principales vectores N dimensionales
s
Vector de voz de entrada de señal de banda ancha (tras el muestreo descendente, pre-procesamiento y pre-énfasis);
s_{w}
Vector de palabra ponderado;
s_{0}
Respuesta de entrada cero de filtro de síntesis ponderada;
s_{p}
Señal pre-procesada muestreada descendente;
\hat{s}
Señal de voz sintetizada sobremuestreada;
s'
Señal de síntesis con anterioridad a la atenuación;
s_{d}
Señal de síntesis atenuada;
s_{h}
Señal de síntesis tras la atenuación y el post-procesamiento;
x
Vector objetivo para búsqueda de separación de paso;
x_{2}
Vector objetivo para búsqueda de innovación;
h
Respuesta de impulso de filtro de síntesis ponderada;
v_{T}
Vector de código de cifrado y descifrado adaptativo (separación) a un retardo T_{i};
y_{T}
Vector de código de cifrado y descifrado de separación filtrado (v_{T} convolucionado con h);
c_{k}
Vector de código innovador de índice k (entrada kª del código de cifrado y descifrado de innovación);
c_{f}
Vector de código de innovación escalado incrementado;
u
Señal de excitación (vectores de código de innovación y de separación de paso escalados);
u'
Excitación incrementada;
z
Secuencia de ruido pasa banda;
w'
Secuencia de ruido blanco, y
w
Secuencia de ruido escalado.
Lista de parámetros transmitidos
STP
Parámetros de predicción a corto plazo (que define A(z));
T
Retraso de separación (o índice de código de cifrado y descifrado de separación de paso);
b
Ganancia de separación de paso (o ganancia de código de cifrado y descifrado de separación de paso);
j
índice del filtro pasa bajo utilizado en el vector de código de separación de paso;
k
Índice de vector de código (entrada de código de cifrado y descifrado de innovación), y
g
ganancia de código de cifrado y descifrado de innovación.
En esta realización preferida, los parámetros STP son transmitidos una vez por unidad de información, y el resto de los parámetros son transmitidos cada sub-unidad (cuatro veces por unidad de información).
Lado del codificador
La señal de voz muestreada se codifica sobre la base de bloque por bloque mediante el dispositivo de codificación 100 de la Figura 1, el cual se ha descompuesto en once módulos numerados del 101 al 111.
La señal de voz de entrada, se procesa en los L bloques de muestra mencionados anteriormente, denominados unidades de información.
Con referencia a la Figura 1, la señal de voz 114 de entrada muestreada, se somete a muestreo descendente en un módulo 101 de muestreo descendente. Por ejemplo, la señal se somete a muestreo descendente desde 16 kHz a 12,8 kHz, utilizando técnicas bien conocidas por los expertos en la materia. El descenso del muestreo a otra frecuencia puede estar, por supuesto, previsto. El muestreo descendente incrementa la eficacia de la codificación, puesto que se codifica un ancho de banda de menor frecuencia. Esto reduce también la complejidad algorítmica puesto que se reduce el número de muestras de una unidad de información. El uso de muestreo descendente resulta significativo cuando la velocidad de bit se reduce por debajo de 16 kbit/s; el muestreo descendente no es esencial por encima de 16 kbit/s.
Tras el muestreo descendente, la unidad de información de 320 muestras de 20 ms, se reduce a una unidad de información de 256 muestras (relación de muestreo descendente de 4/5).
La unidad de información de entrada, se suministra a continuación al bloque 102 de pre-procesamiento opcional. El bloque 102 de pre-procesamiento puede consistir en un filtro pasa alto con una frecuencia de corte de 50 Hz. El filtro pasa alto 102 elimina las componentes de sonido indeseadas por debajo de 50 Hz.
La señal pre-procesada sometida a muestreo descendente, se indica mediante S_{p}(n), n = 0, 1, 2, ..., L-1, donde L es la longitud de la unidad de información (256 a una frecuencia de muestreo de 12,8 kHz). En una realización preferida, la señal s_{p}(n) se pre-enfatiza utilizando un filtro de pre-énfasis 103 que tiene la siguiente función de transferencia:
P(z) = 1 - \mu z^{-1}
donde \mu es un factor de pre-énfasis con un valor comprendido entre 0 y 1 (un valor típico es \mu = 0,7), y z representa la variable del polinomio P(z). También se podría utilizar un filtro de orden más alto. Se debe puntualizar que el filtro pasa alto 102 y el filtro de pre-énfasis 103 pueden ser intercambiados para obtener implementaciones de punto doble más eficientes.
\newpage
La función del filtro de pre-énfasis 103 consiste en aumentar el contenido de alta frecuencia de la señal de entrada. También reduce la gama dinámica de la señal de voz de entrada, lo que hace que sea más adecuada la implementación de punto doble. Sin pre-énfasis, el análisis de LP en punto doble utilizando aritmética de precisión simple, es difícil de implementar.
La pre-énfasis juega también un importante papel en la consecución de un ponderado perceptivo global apropiado del error de cuantificación, lo que contribuye a mejorar la calidad de sonido. Esto va a ser explicado con mayor detalle en lo que sigue.
La salida del filtro 103 de pre-énfasis se ha indicado como s(n). Esta señal se utiliza para realizar análisis de LP en el módulo calculador 104. El análisis de LP es una técnica bien conocida por los expertos en la materia. En esta realización preferida, se utiliza la aproximación de auto-correlación. En la aproximación de auto-correlación, la señal s(n) se divide en ventanas utilizando una ventana de Hamming (que tiene normalmente una longitud del orden de 30-40 ms). Las auto-correlaciones son calculadas a partir de la señal con ventanas, y se utiliza recurrencia de Levinson-Durbin para calcular los coeficientes de filtro de LP, a_{j}, donde j = 1, ..., p, y donde p es el orden de LP, el cual es típicamente 16 en codificación de banda ancha. Los parámetros a_{i} son los coeficientes de la función de transferencia del filtro de LP, la cual viene dada por la siguiente relación:
A(z) = 1 + \sum\limits^{p}_{j=1} a_{i}z^{-1}
El análisis de LP se realiza en el módulo calculador 104, el cual realiza también la cuantificación y la interpolación de los coeficientes de filtro de LP. Los coeficientes de filtro de LP son transformados en primer lugar en otro dominio equivalente más adecuado a efectos de cuantificación y de interpolación. Los dominios de par espectral de línea (LSP) y de par espectral de inmitancia (ISP), son dos dominios en los que se puede realizar eficazmente la cuantificación y la interpolación. Los 16 coeficientes de filtro de LP, a_{j}, pueden ser cuantificados en un orden de 30 a 50 bits utilizando cuantificación de partición o de multi-etapa, o una combinación de las mismas. El propósito de la interpolación consiste en permitir la actualización de los coeficientes de filtro de LP cada sub-unidad mientras que los transmite una vez por cada unidad de información, lo que mejora el comportamiento del codificador sin incrementar la velocidad de bit. La cuantificación y la interpolación de los coeficientes de filtro de LP, se estima que son bien conocidos por los expertos en la materia, por lo que, en consecuencia, no se van a describir con mayor detalle en la presente descripción.
Los párrafos que siguen van a describir el resto de las operaciones de codificación realizadas en base a una sub-unidad de información. En la descripción que sigue, el filtro A(z) indica el filtro de LP interpolado no cuantificado de la sub-unidad de información, y el filtro A(z) indica el filtro de LP interpolado cuantificado de la sub-unidad de información.
Ponderación Perceptiva
En codificadores de análisis mediante síntesis, los parámetros óptimos de separación de paso y de innovación se buscan minimizando el error cuadrático medio entre la palabra de entrada y la palabra sintetizada en un dominio perceptivamente ponderado. Esto es equivalente a minimizar el error entre la palabra de entrada ponderada y la palabra de síntesis ponderada.
La señal ponderada s_{w}(n) es una computada en un filtro 105 de ponderación perceptiva. Tradicionalmente, la señal ponderada s_{w}(n) es computada mediante un filtro de ponderación que tiene una función de transferencia W(z) en forma de
W(z) = A(z/\gamma_{1})/A(z/\gamma_{2})
\hskip1cm
donde \ 0<\gamma_{2}<\gamma_{1}\leq1
Según conocen bien los expertos en la materia, en los antiguos codificadores de análisis mediante síntesis (AbS), el análisis muestra que el error de cuantificación es ponderado mediante una función de transferencia W^{-1}(z), que es la inversa de la función de transferencia del filtro 105 de ponderación perceptiva. Este resultado ha sido bien descrito por B.S. Atal y M.R. Schroeder en "Codificación predictiva de la palabra y criterios de error subjetivos", IEEE Transaction ASSP, vol. 27, núm. 3, pp. 247-254, Junio 1979. La función de transferencia W^{-1}(z) presenta algo de la estructura formante de la señal de voz de entrada. De ese modo, se aprovecha la propiedad de enmascaramiento del oído humano mediante la conformación del error de cuantificación de modo que tiene más energía en las regiones formantes en las que será enmascarada por la energía de señal intensa presente en esas regiones. La cantidad de ponderación está controlada por los factores \gamma_{1} y \gamma_{2}.
El filtro 105 tradicional de ponderación perceptiva citado anteriormente, trabaja bien con señales de banda telefónica. Sin embargo, se ha encontrado que este filtro 105 tradicional de ponderación perceptiva no es adecuado para una ponderación perceptiva eficiente de las señales de banda ancha. También se ha encontrado que el filtro 105 tradicional de ponderación perceptiva tiene limitaciones inherentes en la modelación de la estructura formante y de la desviación espectral que se requiere habitualmente. La desviación espectral es más pronunciada en señales de banda ancha debido a la amplia gama dinámica entre las frecuencias altas y bajas. Para resolver este problema, se ha sugerido añadir un filtro de desviación en W(z) con el fin de controlar la desviación y la ponderación formante de la señal de entrada de banda ancha, por separado.
Una solución mejor para este problema consiste en introducir el filtro 103 de pre-énfasis en la entrada, computar el filtro A(z) de LP en base a la palabra de pre-énfasis s(n), y utilizar un filtro modificado W(z) mediante la fijación de su denominador.
El análisis de LP se realiza en un módulo 104 sobre la señal s(n) de pre-énfasis, con el fin de obtener el filtro A(z) de LP. También, se utiliza un nuevo filtro 105 de ponderación perceptiva con denominador fijo. Un ejemplo de función de transferencia para este filtro 104 de ponderación perceptiva viene dado por la siguiente relación:
W(z) = A(z/\gamma_{1})/(1-\gamma_{2}z^{-1})
\hskip1cm
donde \ 0<\gamma_{2}<\gamma_{1} \leq 1
Se puede utilizar un orden más alto en el denominador. Esta estructura desacopla sustancialmente la ponderación formante de la desviación.
Obsérvese que debido a que A(z) se calcula en base a la señal s(n) de palabra pre-enfatizada, la desviación del filtro 1/A(z/\gamma_{1}) es menos pronunciada en comparación con el caso en que A(z) se calcula en base a la palabra original. Puesto que la atenuación se realiza en el extremo del decodificador utilizando un filtro que tiene la función de transferencia:
P^{-1} = 1/(1-\muz^{-1}),
el espectro de error de cuantificación se conforma mediante un filtro que tiene una función de transferencia W^{-1}(z)P^{-1}(z). Cuando se establece que \gamma_{1} es igual a \mu, lo que es típicamente el caso, el espectro del error de cuantificación se conforma mediante un filtro cuya función de transferencia es 1/A(z/\gamma_{1}), con A(z) calculada en base a la señal de palabra pre-enfatizada. La escucha subjetiva mostró que esta estructura conseguir la conformación del error mediante una combinación de filtrado de pre-énfasis y de ponderación modificada, es muy eficaz para las señales de codificación de banda ancha, adicionalmente a las ventajas de implementación algorítmica de punto doble.
Análisis de paso
Con el fin de simplificar el análisis de separación de paso, se estima en primer lugar un retraso de paso T_{OL} de bucle abierto en el módulo 106 de búsqueda de paso de bucle abierto, utilizando la señal s_{w}(n) de palabra ponderada. El análisis de paso de bucle cerrado, que se realiza en el módulo 107 de búsqueda de paso de bucle cerrado en base a una sub-unidad, está restringido en torno al retraso de paso T_{OL} de bucle abierto, lo que reduce significativamente la complejidad de búsqueda de los parámetros T y b de la LTP (retraso de paso y ganancia de paso). El análisis de paso de bucle abierto se realiza normalmente en el módulo 106, una vez cada 10 ms (2 sub-unidades), utilizando técnicas bien conocidas por los expertos en la materia.
El vector objetivo x para análisis de LTP (Predicción a Largo Plazo), se calcula en primer lugar. Esto se hace habitualmente restando la respuesta s_{0} de entrada cero del filtro W(z)/Â(z) de síntesis ponderada, de la señal s_{w}(n) de palabra ponderada. Esta respuesta s_{0} de entrada se calcula mediante un calculador 108 de respuesta de entrada cero. Más específicamente, el vector x objetivo se calcula utilizando la siguiente relación:
x = s_{w} - s_{0}
donde x es el vector objetivo de N dimensiones, s_{w} es el vector de palabra ponderada en la sub-unidad, y s_{0} es la respuesta de entrada cero del filtro W(z)/Â(z) que es la salida del filtro combinado W(z)/Â(z) debido a sus estados iniciales. El calculador 108 de respuesta de entrada cero actúa en respuesta al filtro Â(z)de LP interpolada cuantificada procedente del calculador 104 de análisis, cuantificación e interpolación de LP, y a los estados iniciales del filtro W(z)/Â(z) de síntesis cuantificada almacenados en el módulo 111 de memoria para calcular la respuesta s_{0} de entrada cero (aquella parte de la respuesta debida a los estados iniciales según se determina haciendo que las entradas sean iguales a cero) del filtro W(z)/Â(z). Esta operación es bien conocida por los expertos en la materia y, por consiguiente, no va a ser descrita con mayor detalle.
Por supuesto, se pueden utilizar aproximaciones alternativas pero matemáticamente equivalentes para calcular el vector x objetivo.
Un vector h de respuesta impulsional de N dimensiones del filtro W(z)/Â(z) de síntesis ponderada, se calcula en el generador 109 de respuesta impulsional utilizando los coeficientes A(z) y Â(z) de filtro de LP, en el módulo 104. De nuevo, esta operación es bien conocida por los expertos en la materia y, por consiguiente, no va a ser explicada con mayor detalle en la presente descripción.
\newpage
Los parámetros b, T y j de paso de bucle cerrado (o código de cifrado y descifrado de paso), se calculan en el módulo 107 de búsqueda de paso de bucle cerrado, el cual utiliza el vector x objetivo, el vector h de respuesta de impulso, y el retardo T_{OL} de paso de bucle abierto, como entradas. Tradicionalmente, la predicción de paso ha sido representada por un filtro de paso que tiene la siguiente función de transferencia:
1/(1-bz^{-T})
donde b es la ganancia de paso y T es el retardo o retraso de paso. En este caso, la contribución de paso a la señal de excitación u(n) viene dada por bu(n-T), donde la excitación total viene dada por:
u(n) = bu(n-T) + gc_{k}(n)
siendo g la ganancia de código de cifrado y descifrado innovador y c_{k}(n) el vector de código innovador de índice k.
Esta representación tiene limitaciones si el retardo T de paso es más corto que la longitud N de sub-unidad. En otra representación, se puede ver la contribución de paso como un código de cifrado y descifrado de paso que contiene la señal de excitación que ha pasado. En general, cada vector del código de cifrado y descifrado de paso es una versión que cambia en uno respecto al vector anterior (desechar una muestra y añadir una nueva muestra). Para retardos de paso T>N, el código de cifrado y descifrado de paso es equivalente a la estructura de filtro (1/(1-bz^{-T}), y un vector de código de cifrado y descifrado de paso v_{T}(n) en el retardo de paso T viene dado por:
v_{T}(n) = u(n-T),
\hskip1cm
n = 0, ..., N-1
Para retardos de paso T más cortos que N, se forma un vector v_{T}(n) mediante la repetición de las muestras disponibles a partir de la última excitación hasta que el vector está completo (esto no es equivalente a la estructura de filtro).
En codificadores más recientes, se utiliza una alta resolución de paso que mejora significativamente la calidad de los segmentos de sonido de la voz. Esto se consigue mediante un sobremuestreo de la excitación pasada utilizando filtros de interpolación polifásicos. En este caso, el vector v_{T}(n) corresponde normalmente a una versión interpolada de la excitación pasada, siendo el retardo de paso T un retardo no entero (por ejemplo, 50,25).
La búsqueda de paso consiste en encontrar el mejor retardo de paso T y la ganancia b que minimicen el error E ponderado cuadrático medio entre el vector x objetivo y la excitación pasada filtrada escalada. El error E viene expresado como:
E = \Arrowvert x-by_{T} \Arrowvert ^{2}
donde y_{T} es el vector de código de cifrado y descifrado de paso filtrado a retardo de paso T:
y_{T}(n) = v_{T}(n) \text{*}h(n) = \sum\limits^{n}_{i=o}v_{T}(i)h(n-i),
\hskip1cm
n = 0, ..., N-1
Se puede demostrar que el error E se minimiza llevando al máximo el criterio de búsqueda:
C= \frac{x^{t}y_{T}}{\sqrt{y^{t}_{T}y_{T}}}
donde t indica transposición de vector.
En una realización preferida, se utiliza una resolución de paso de sub-muestra de 1/3, y la búsqueda de paso (código de cifrado y descifrado de paso) se compone de tres etapas.
En la primera etapa, se estima un retardo T_{OL} de paso de bucle abierto en el módulo 106 de búsqueda de paso de bucle abierto, en respuesta a la señal s_{w}(n) de palabra ponderada. Según se ha indicado en la descripción que antecede, este análisis de paso de bucle abierto se realiza normalmente una vez cada 10 ms (dos sub-unidades) utilizando técnicas bien conocidas por los expertos en la materia.
En la segunda etapa, e busca el criterio de búsqueda C en el módulo 107 de búsqueda de paso de bucle cerrado para retardos de paso enteros en torno al retardo T_{OL} de paso de bucle abierto estimado (normalmente \pm5), lo que simplifica significativamente el procedimiento de búsqueda. La descripción que sigue propone un procedimiento simple para actualizar el vector de código y_{T} filtrado sin necesidad de calcular la convolución para cara retardo de paso.
Una vez que se ha encontrado el retardo de paso entero óptimo en la segunda etapa, una tercera etapa de la búsqueda (módulo 107) prueba las fracciones alrededor del retardo de paso entero óptimo.
Cuando el predictor de paso está representado por un filtro de forma 1/(1-bz^{-T}), el cual es una suposición válida para retardos de paso T>N, el espectro del filtro de paso de separación presenta una estructura armónica sobre la totalidad de la gama de frecuencia, con una frecuencia armónica relacionada con 1/T. En caso de señales de banda ancha, esta estructura no es muy eficaz debido a que la estructura armónica en las señales de banda ancha no cubre el espectro extendido completo. La estructura armónica existe solamente hasta una cierta frecuencia, dependiendo del segmento de palabra. De ese modo, con el fin de conseguir una representación eficaz de la contribución de paso en segmentos de voz de la palabra de banda ancha, el filtro de predicción de paso necesita tener la flexibilidad de variar la cantidad de periodicidad sobre el espectro de banda ancha.
Un método importante capacitado para conseguir una modelación eficaz de la estructura armónica del espectro de palabra de las señales de banda ancha, se va a describir en la presente descripción, con lo que se aplican varias formas de filtros pasabajo a la excitación pasada, y se selecciona el filtro pasabajo con ganancia de predicción más alta.
Cuando se utiliza resolución de paso de sub-muestra, los filtros pasabajo pueden estar incorporados en los filtros de interpolación utilizados para obtener la resolución de paso más alta. En este caso, la tercera etapa de la búsqueda de paso, en la que se comprueban las fracciones alrededor del retardo de paso entero elegido, se repite para varios filtros de interpolación que tienen características pasabajo diferentes, y se seleccionan la fracción y el índice de filtro que optimizan el criterio C de búsqueda.
Una aproximación más simple consiste en completar la búsqueda en las tres etapas descritas anteriormente para determinar el retardo de paso fraccional óptimo con la utilización de un solo filtro de interpolación con una cierta respuesta de frecuencia, y seleccionar la configuración óptima de filtro pasabajo al final mediante la aplicación de diferentes filtros pasabajo predeterminados al vector v_{T} de código de cifrado y descifrado de paso elegido, y seleccionar el filtro pasabajo que minimiza el error de predicción de paso. La aproximación se discute con mayor detalle en lo que sigue.
La Figura 3 ilustra un diagrama esquemático de bloques de una realización preferida de la ultima aproximación propuesta.
En el módulo de memoria 303, la pasada señal u(n) de excitación, n<0, es almacenada. El módulo 301 de búsqueda de código de cifrado y descifrado de paso actúa en respuesta al vector x objetivo, al retardo T_{OL} de paso de bucle abierto y a la pasada señal u(n) de excitación, n<0, procedente del módulo 303 de memoria para conducir una búsqueda de código de cifrado y descifrado de paso (código de cifrado y descifrado) que minimice el criterio C de búsqueda que se ha definido en lo que antecede. A partir del resultado de la búsqueda realizada en el módulo 301, el módulo 302 genera el vector v_{T} de código de cifrado y descifrado de paso óptimo. Obsérvese que, puesto que se utiliza una resolución de paso de sub-muestra (paso fraccional), la pasada señal de excitación u(n), n<0, es interpolada y el vector v_{T} de código de cifrado y descifrado de paso corresponde con la señal de excitación pasada interpolada. En esta realización preferida, el filtro de interpolación (en el módulo 301, aunque no se muestra), tiene una característica de filtro pasabajo que elimina los contenidos de frecuencia superiores a 7000 Hz.
En una realización preferida, se utilizan K características de filtro; estas características de filtro podrían ser características de filtro pasabajo y pasabanda. Una vez que se ha determinado el vector de código v_{T} óptimo y se ha suministrado mediante el generador 302 de vector de código de paso, se calculan K versiones filtradas de v_{T} utilizando respectivamente K filtros diferentes de configuración de frecuencia tal como 305^{(j)}, donde j=1, 2, ..., K. Esas versiones filtradas se han indicado como v_{f}^{(j)}, donde j=1, 2, ..., K. Los diferentes vectores v_{f}^{(j)} son convolucionados en módulos 304^{(j)} respectivos, donde j=0, 1, 2, ..., K, con la respuesta impulsional h para obtener los vectores y^{(j)}, donde j=0, 1, 2, ..., K. Para calcular el error de predicción cuadrático medio para cada vector y^{(j)}, el valor y^{(j)} se multiplica por la ganancia b por medio de un amplificador 307^{(j)} correspondiente, y se resta el valor by^{(j)} del vector x objetivo por medio de un sustractor 308^{(j)} correspondiente. El selector 309 selecciona el filtro 305^{(j)} de configuración de frecuencia que minimiza el error de predicción cuadrático medio:
e^{(j)} = \Arrowvert x-b^{(j)}y^{(j)}\Arrowvert ^{2},
\hskip0.5cm
j = 1, 2, ..., K
Para calcular el error e^{(j)} cuadrático medio de predicción de paso para cada valor de y^{(j)}, el valor y^{(j)} se multiplica por la ganancia b por medio de un amplificador 307^{(j)} correspondiente, y el valor b^{(j)}y^{(j)} se resta del vector x objetivo por medio del sustractor 308^{(j)}. Cada ganancia b^{(j)} se calcula en un calculador 306^{(j)} de ganancia correspondiente en asociación con el filtro de configuración de frecuencia a índice j, utilizando la siguiente relación:
b^{(j)} = x^{t}y^{(j)}/ \Arrowvert y^{(j)} \Arrowvert^{2}
En el selector 309, se eligen los parámetros b, T y j en base a v_{T} o v_{f}^{(j)} que minimizan el error e de predicción de paso cuadrático medio.
\newpage
Haciendo de nuevo referencia a la Figura 1, el índice T de código de cifrado y descifrado de paso es codificado y transmitido a un multiplexor 112. La ganancia b de paso es cuantificada y transmitida al multiplexor 112. Con esta nueva alternativa, se necesita información extra para codificar el índice j del filtro de configuración de frecuencia seleccionado, en el multiplexor 112. Por ejemplo, si se utilizan tres filtros (j=0, 1, 2, 3), entonces se necesitan dos bits para representar esta información. La información j de índice de filtro puede ser codificada juntamente con la ganancia b de paso.
Código de cifrado y descifrado innovador
Una vez que el paso, o los parámetros b, T y j de la LTP (Predicción a Largo Plazo) han sido determinados, la siguiente etapa consiste en buscar la excitación innovadora óptima por medio del módulo 110 de búsqueda de la Figura 1. En primer lugar, el vector x objetivo es actualizado mediante substracción de la contribución LTP:
x_{2} = x - by_{T}
donde b es la ganancia de paso y y_{T} es el vector filtrado de código de cifrado y descifrado de paso (la excitación anterior a retardo T filtrada con el filtro pasabajo seleccionado y convolucionada con la respuesta impulsional h según se describe con referencia a la Figura 3).
El procedimiento de búsqueda en CELP se realiza hallando el vector de código c_{k} de excitación óptimo y la ganancia g que minimizan el error cuadrático medio entre el vector objetivo y el vector de código filtrado escalado:
E = \Arrowvert x_{2} - gHc_{k} \Arrowvert ^{2}
donde H es una matriz de convolución triangular inferior derivada del vector h de respuesta impulsional.
Hay que apreciar que el código de cifrado y descifrado de innovación utilizado es un código de cifrado y descifrado dinámico de un código de cifrado y descifrado algebraico seguido de un pre-filtro adaptativo F(z) que aumenta los componentes espectrales especiales con el fin de mejorar la calidad de la palabra de síntesis, de acuerdo con la Patente US núm. 5.444.816. Se pueden utilizar diferentes métodos para diseñar este pre-filtro. Aquí, se utiliza un diseño relevante para señales de banda ancha en el que F(z) consiste en dos partes: una parte 1/(1-0,85z^{-%}) de incremento de periodicidad, y una parte inclinada (1 - \beta_{1}z^{-1}), donde T es la parte entera del retardo de paso y \beta_{1} está relacionada con la sonorización de la sub-unidad anterior y está acotada por [0,0, 0,5]. Obsérvese que con anterioridad a la búsqueda de código de cifrado y descifrado, la respuesta impulsional h(n) debe incluir el pre-filtro F(z). Es decir,
h(n) \leftarrow h(n) + \beta h(n-T)
Con preferencia, la búsqueda de código de cifrado y descifrado innovador se realiza en el módulo 110 por medio de un código de cifrado y descifrado algebraico según se describe en las Patentes US núms. 5.444.816 (Adoul et al.) concedida el 22 de Agosto de 1995; 5.699.482 concedida a Adoul et al., el 17 de Diciembre de 1997; 5.754.976 concedida a Adoul et al., el 19 de Mayo de 1998, y 5.701.392 (Adoul et al.) concedida el 23 de Diciembre de 1997.
Existen muchas formas de diseñar un código de cifrado y descifrado algebraico. En la realización que se describe en la presente, el código de cifrado y descifrado algebraico está compuesto por vectores de código que tienen N_{p} pulsos p_{j} de amplitud distinta de cero (o pulsos distintos de cero para abreviar).
Llamemos m_{i} y \beta_{i} la posición y la amplitud del pulso iº distinto de cero, respectivamente. Supondremos que la amplitud \beta_{i} es conocida, ya sea porque la amplitud de iº es fija o ya sea porque exista algún método para seleccionar \beta_{i} con anterioridad a la búsqueda de código de cifrado y descifrado. La preselección de las amplitudes de pulso se realiza de acuerdo con el método que se describe en la Patente US núm. 5.754.976 mencionada anteriormente.
Denominemos "pista i", indicada como T_{i}, el conjunto de posiciones p_{i} que el pulso iº distinto de cero puede ocupar entre 0 y N-1. A continuación se proporcionan algunos conjuntos típicos de pistas suponiendo N=64.
Varios ejemplos de diseño han sido introducidos en la Patente US núm. 5.444.816, y se conocen como "Interleaved Single Pulse Permutations, Permutaciones de Pulso Simple Interpolado" (ISPP). Estos ejemplos estuvieron basados en una longitud de vector de código de N=40 muestras.
\newpage
Ahora proporcionamos nuevos ejemplos de diseño basados en una longitud de vector de código de N=64, y en una estructura de "Permutaciones de Pulso Simple Interpolado" ISPP(64,4) que se definen en la Tabla 1.
TABLA 1 Diseño de ISPP(64,4)
Pista Núm. Posiciones válidas de pulso en cada pista
0 0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60
1 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61
2 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62
3 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63
En el diseño ISPP(64,4), un conjunto de 64 posiciones se divide en cuatro pistas interpoladas de 60/4 = 16 posiciones válidas cada una. Se precisan cuatro bits para especificar las 16 = 2^{4} posiciones válidas de un pulso dado distinto de cero. Existen muchas formas de derivar una estructura de código de cifrado y descifrado y este diseño de ISPP para albergar requisitos particulares en términos de número de pulsos o bits de codificación. Se pueden diseñar diversos códigos de cifrado y descifrado en base a esta estructura variando el número de pulsos distintos de cero que pueden ser colocados en cada pista.
Si se dispone un pulso simple, distinto de cero, con signo, en cada pista, la posición del pulso se codifica con 4 bits y su signo (si consideramos que cada pulso distinto de cero puede ser positivo o negativo) se codifica con 1 bit. Por lo tanto, se requiere un total de 4 x (4 + 1) = 20 bits de codificación para especificar posiciones y signos de pulsos para esta estructura de código de cifrado y descifrado algebraico particular.
Si se disponen dos pulsos signados distintos de cero en cada pista, las dos posiciones de pulso son codificadas con 8 bits y sus signos correspondientes pueden ser codificados solamente con 1 bit aprovechando el ordenamiento de pulso (esto será detallado más adelante en la presente descripción). Por lo tanto, se requiere un total de 4x(4+4+1) = 36 bits de codificación para posiciones y signos de pulso específicos para esta estructura algebraica particular de código de cifrado y descifrado.
Se pueden diseñar otras estructuras de código de cifrado y descifrado mediante la colocación de 3, 4, 5 ó 6 pulsos distintos de cero en cada pista. Los métodos para la codificación eficiente de las posiciones y los signos de los pulsos en esas estructuras, serán descritos posteriormente.
Además, se pueden diseñar otros códigos de cifrado y descifrado mediante la colocación de un número desigual de pulsos distintos de cero en diferentes pistas, o ignorando ciertas pistas o juntando algunas pistas. Por ejemplo, un código de cifrado y descifrado puede ser diseñado disponiendo 3 pulsos distintos de cero en las pistas T_{0} y T_{2}, y dos pulsos distintos de cero en las pistas T_{1} y T_{3} (13+9+13+9 = código de cifrado y descifrado de 42 bits). Se pueden diseñar otros códigos de cifrado y descifrado considerando la unión de las pistas T_{2} y T_{3} y disponiendo pulsos distintos de cero en las pistas T_{0}, T_{1} y T_{2}, T_{3}.
Como se puede apreciar, se pueden formar una gran variedad de códigos de cifrado y descifrado entorno al tema general de diseños de ISPP.
Codificación eficaz de posiciones y signos de pulso (indexación de código de cifrado y descifrado)
Aquí se van a considerar varios casos de colocación de 1 a 6 códigos signados distintos de cero por pista, y se describen métodos para una codificación eficaz conjunta de posiciones y signos de pulso en una pista dada.
En primer lugar, vamos a dar ejemplos de codificación de 1 pulso distinto de cero y de 2 pulsos distintos de cero por pulso. La codificación de 1 pulso signado distinto de cero por pista es directa, y la codificación de 2 pulsos signados distintos de cero por pista se encuentra descrita en la literatura, en el estándar EFR de codificación de palabra (Global System for Mobile Communications, Sistema Global para Comunicaciones Móviles, GSM 06.60, "Sistema de telecomunicaciones celulares digitales; transcodificación de palabra de Velocidad Total Incrementada (EFR)", Instituto Europeo de Normas de Telecomunicaciones, 1996).
Tras haber presentado un método para codificar 2 pulsos signados distintos de cero, se van a describir métodos para una codificación eficaz de 3, 4, 5 y 6 pulsos signados distintos de cero por pista.
Codificación de 1 pulso signado por pista
En una pista de longitud K, un pulso distinto de cero signado requiere un bit para el signo y log_{2}(K) bits para la posición. Consideraremos aquí el caso especial de que K=2^{M}, lo que significa que se necesitan M bits para codificar la posición de pulso. Así, se necesita un total de M+1 bits para un pulso signado distinto de cero en una pista de longitud K = 2^{M}. En esta realización preferida, el bit que representa el signo (índice de signo), es establece en 0 si el pulso distinto de cero es positivo, y en 1 si el pulso distinto de cero es negativo. Por supuesto, la notación inversa puede ser también utilizada.
El índice de posición de un pulso en una pista determinada, viene dado por la posición de pulso en la sub-unidad, dividida (división entera) por la separación de pulso en la pista. El índice de la pista se halla mediante el resto de esta división entera. Tomando el ejemplo de ISPP(64,4) de la Tabla 1, el tamaño de sub-unidad es de 64 (0-63) y la separación de pulso es 4. Un pulso en la posición 25 de la sub-unidad, tiene un índice de posición de 25 DIV 4 = 6, y un índice de pista de 25 MOD 4 = 1, donde DIV indica división entera y MOD indica el resto de la división. De forma similar, un pulso en la posición 40 de la sub-unidad, tiene un índice de posición de 10 y un índice de pista de 0.
El índice de un pulso signado distinto de cero con un índice de posición p, y el índice de signo s, y en una pista de longitud 2^{M}, viene dado por:
I_{1p} = p + sx2^{M}.
Para el caso de que K = 16 (M = 4 bits), el índice de 5 bits del pulso signado ha sido representado en la tabla que sigue:
Signo Posición
s b_{3} b_{2} b_{1} b_{0}
El procedimiento código_1pulso(p,s,M) muestra cómo codificar un pulso con un índice de posición p y un índice de signo s en una pista de longitud 2^{M}.
Procedimiento código_1pulso(p,s,M)
Comienzo
\hskip0.5cm I_{1p} = p + sx2^{M}
Fin
Procedimiento 1: Codificar 1 pulso signado distinto de cero en una pista de longitud K = 2^{M} utilizando M+1 bits.
Codificar 2 pulsos signados por pista
En el caso de dos pulsos distintos de cero por pista con k = 2^{M} posiciones potenciales, cada pulso necesita 1 bit para el signo y M bits para la posición, lo que proporciona un total de 2M+2 bits. Sin embargo, existe algo de redundancia debido a poca importancia de la ordenación de pulso. Por ejemplo, colocar el primer pulso en la posición p y el segundo pulso en la posición q, es equivalente a colocar el primer pulso en la posición q y el segundo pulso en la posición p. Se puede ahorrar un bit codificando solamente un signo y deduciendo el segundo signo de la ordenación de las posiciones en el índice. En esta realización preferida, el índice viene dado por:
I_{2p} = p_{1} + p_{0}x2^{M} + sx2^{2M}
donde s es el índice de signo del pulso distinto de cero con un índice de posición p_{0.}
En el codificador, si dos señales son iguales, entonces se establece la posición más pequeña en p_{0} y la posición más grande se establece en p_{1}. Por otra parte, si las dos señales no son iguales, entonces la posición más grande se establece en p_{0} y la posición más pequeña se establece en p_{1}.
En el decodificador, el signo del pulso distinto de cero en la posición p_{0} se encuentra fácilmente disponible. El segundo signo se deduce de la ordenación de pulso. Si la posición p_{1} es más pequeña que la posición p_{0}, entonces el signo del pulso distinto de cero en la posición p_{1} es opuesto al signo del pulso distinto de cero en la posición p_{0}. Si la posición p es más grande que la posición p0_{0}, entonces el signo del pulso distinto de cero en la posición p_{1} es el mismo que el signo del pulso distinto de cero en la posición p_{0}.
\newpage
En esta realización preferida, el ordenamiento de los bits en el índice se muestra a continuación. s corresponde con el signo del pulso p_{0} distinto de cero.
Signo Posición p_{0} Posición p_{1}
s b_{3} b_{3} b_{2} b_{0} b_{3} b_{2} b_{1} b_{0}
El procedimiento para codificar dos pulsos distintos de cero con índices de posición p_{0} y p_{1} y con índices de signo \sigma_{1}, ha sido representado en la Figura 5. Esto se explica con mayor detalle en el Procedimiento 2 que sigue.
Procedimiento \hskip3cm código 2_pulso([p_{0} p_{1}], [\sigma_{0}\sigma_{1}], M)
\hskip0.3cm Comienzo
\hskip0.8cm Si \sigma_{0} = \sigma_{1} (501 en la Figura 5)
\hskip1,2cm Si p_{0} \leq p_{1} (502)
\hskip1,5cm I_{2p} = p_{1}+p_{0}x2^{M} + \sigma_{0}x2^{M} (503-504)
\hskip1,2cm Si p_{0} \geq p_{1} (véase 502)
\hskip1,5cm I_{2p} = p0+p_{1}x2 + \sigma_{0}x2^{M} (505-504)
\hskip0.8cm Si \sigma_{0} \neq \sigma_{1} (501 en la Figura 5)
\hskip1,2cm Si p_{0} \leq p_{1} (506)
\hskip1,5cm I_{2p} = p_{0}+p_{1}x2^{M} + \sigma_{1}x2^{M}
\hskip1,2cm Si p_{0} \geq p_{1} (véase 506)
\hskip1,5cm I_{2p} = p_{1} + p_{0}x2^{M} + \sigma_{0}x2^{M}
\hskip0.3cm Fin
Procedimiento 2: Codificación de 2 pulsos signados distintos de cero en una pista de longitud K = 2^{M} utilizando 2M+1 bits.
Codificación de 3 pulsos signados por pista
En caso de tres pulsos distintos de cero por pista, se puede utilizar una lógica similar a la utilizada en el caso de dos pulsos distintos de cero. Para una pista con 2^{M} posiciones, se necesitan 3M+1 bits en vez de 3M+3 bits. Una forma simple de indexar los pulsos distintos de cero, que se describe en la presente descripción, consiste en dividir las posiciones de pista en dos mitades (o secciones), e identificar una mitad que contenga al menos dos pulsos distintos de cero. El número de posiciones en cada sección es de K/2 = 2^{M}/2 = 2^{M-1}, lo que puede ser representado con M-1 bits. Los dos pulsos distintos de cero en la sección que contiene al menos dos pulsos distintos de cero, se codifican con el procedimiento código_2pulso([p_{0}p_{1}], [s_{0}s_{1}], M-1), que requiere 2(M-1)+1 bits, y el pulso restante que puede estar en cualquier lugar de la pista (en cualquier sección) se codifica con el procedimiento código_1pulso(p, s, M) que requiere M+1 bits. Finalmente, el índice de la sección que contiene los dos pulsos distintos de cero se codifica con 1 bit. De ese modo, el número total de bits requeridos es de 2(M-1)+1 + M+1 + 1 = 3M+1.
Una forma simple de comprobar si dos pulsos distintos de cero están situados en la misma mitad de la pista, se realiza comprobando si el bit más significativo (MSB) de sus índices de posición es igual para ambos. Esto puede hacerse simplemente mediante la operación lógica de OR Exclusiva que da 0 si los MSB son iguales, y 1 si no lo son. Obsérvese que MSB = 0 significa que la posición pertenece a la mitad inferior de la pista (0 - (K/2-1)) y MSB = 1 significa que pertenece a la mitad superior (K/2 - (K-1)). Si los dos pulsos pertenecen a la mitad superior, necesitan ser cambiados a la gama (0 - (K/2-1)) con anterioridad a la codificación de los mismos utilizando 2(M+1)+1 bits. Esto puede hacerse enmascarando los M-1 bits menos significativos (LSB) con una máscara consistente en M-1 unos (1s) (lo que corresponde al número 2^{M-1}-1).
El procedimiento para codificar 3 pulsos en índices de posición p_{0}, p_{1} y p_{2}, e índices de signo \sigma_{0}, \sigma_{1} y \sigma_{2}, se describe en el procedimiento que sigue.
Procedimiento código_3pulso[(p_{0}p_{1}p_{2}], [\sigma_{0}\sigma_{1}\sigma_{2}], M)
Comienzo
Si MSB(p_{0}) XOR MSB(p_{1}) = 0 (si las posiciones están en la misma mitad)
p_{0} = p_{0} AND (2^{M-1}-1) (enmascarar los M-1 LSBs)
p_{1} = p_{1} AND (2^{M-1}-1) (enmascarar los M-1 LSBs)
I_{2p} = código_2pulso([p_{0}p_{1}], [\sigma_{0}\sigma_{1}], M-1)
I_{1p} = código_1pulso(p_{2}, \sigma_{2}, M)
I_{3p} = I_{2p} + MSB(p_{0})x2^{2M-1} + I_{1p}x2^{2M}
O bien si MSB(p_{0}) XOR MSB(p_{2}) = 0
p_{0} = p_{0} AND (2^{M-1}-1)
p_{2} = p_{2} AND (2^{M-1}-1)
I_{2p} = código_2pulso([p_{0}p_{2}], [\sigma_{0}\sigma_{2}], M-1)
I_{1p} = código_1pulso(p_{1}, \sigma_{1}, M)
I_{3p} = I_{2p} + MSB(p_{0})x2^{2M-1} + I_{1p}x2^{2M}
O bien (si las posiciones p_{1} y p_{2} están en la misma mitad)
p_{1} = p_{1} AND (2^{M-1}-1)
p_{2} = p_{2} AND (2^{M-1}-1)
I_{2p} = código_2pulso([p_{1}p_{2}], [\sigma_{1}\sigma_{2}], M-1)
I_{1p} = código_1pulso(p_{0}, \sigma_{0}, M)
I_{3p} = I_{2p} + MSB(p_{1})x2^{2M-1} + I_{1p}x2^{2M}
Fin
Procedimiento 3: Codificación de 3 pulsos signados en una pista de longitud K = 2^{M} utilizando 3M+1 bits.
La tabla que sigue muestra la distribución de los bits en el índice de 13 bits de acuerdo con esta realización preferida para el caso de M=4 (K=16).
Signo Posición del 3º Índice 2 pulsos en la sección k
pulso de
Sección
s_{0} p_{0} p_{1}
s b_{3} b_{3} b_{2} b_{0} k s b_{2} b_{1} b_{0} b_{2} b_{1} b_{0}
Codificación de 4 pulsos signados por pista
Los 4 pulsos signados distintos de cero en una pista de longitud K=2^{M}, pueden ser codificados utilizando 4M bits.
De forma similar al caso de 3 pulsos, las K posiciones de la pista se dividen en 2 secciones (2 mitades), donde cada sección contiene K/2 posiciones de pulso. Aquí hemos indicado las secciones como Sección A con posiciones 0 a K/2-1 y Sección B con posiciones K/2 a K-1. Cada sección puede contener de 0 a 4 pulsos distintos de cero. La tabla que sigue muestra los 5 casos que representan el número de pulsos posible en cada una de las secciones:
\newpage
Caso Pulsos en la Sección A Pulsos en la Sección B Bits necesarios
0 0 4 4M-3
1 1 3 4M-2
2 2 2 4M-2
3 3 1 4M-2
4 4 0 4M-3
En los casos 0 ó 4, los 4 pulsos en una sección de longitud K/2 = 2^{M-1} pueden ser codificados utilizando 4(M-1)+1 = 4M-3 bits (esto se explicará más adelante).
En los casos 1 ó 3, el pulso en una sección de longitud K/2 = 2^{M-1} puede ser codificado con M-1+1 = M bits, y los 3 pulsos de la otra sección pueden ser codificados con 3(M-1)+1 = 3M-2 bits. Esto da un total de M+3M-2 = 4M-2 bits.
En el caso 2, los pulsos en una sección de longitud K/2 = 2^{M-1} pueden ser codificados con 2(M-1)+1 = 2M-1 bits. Así, para ambas secciones, se necesitan 2(2M-1) = 4M-2 bits.
Ahora, el índice de caso puede ser codificado con 2 bits (4 casos posibles) suponiendo que los casos 0 y 4 están combinados. Entonces, para los casos 1, 2 ó 3, el número de bits necesarios es de 4M-2. Esto da un total de 4M-2 + 2 = 4M bits. Para los casos 0 ó 4, se necesita 1 bit para identificar cualquiera de los casos, y se necesitan 4M-3 bits para codificar los 4 pulsos de la sección. Con la adición de los 2 bits necesarios para el caso general, esto da un total de 1+4M-3+2 = 4M bits.
De este modo, como puede verse a partir de la descripción que antecede, los 4 pulsos pueden ser codificados con un total de 4M bits.
El procedimiento de codificación de 4 pulsos signados distintos de cero en una pista de longitud K=2^{M} utilizando 4M bits, está representado en el Procedimiento 4 que sigue.
Las tablas siguientes muestran la distribución de bits en el índice para los diferentes casos descritos en lo que antecede de acuerdo con la realización preferida en la que M = 4 (K = 16). Codificar 4 pulsos con signo por pista requiere 16 bits en este caso.
Casos 0 ó 4
Caso Global Caso 0 ó 4 4 pulsos en Sección A o B
2 1 13
Casos 1
Caso global 1 pulso en Sección A 3 pulsos en Sección B
2 1+3 = 4 1+3 + 1 + 1+2+2 = 10
Casos 2
Caso global 2 pulsos en Sección A 2 pulsos en Sección B
2 1+3+3 = 7 1+3+3 = 7
Casos 3
Caso global 3 pulsos en Sección A 1 pulso en Sección B
2 1+3 + 1 + 1+2+2 = 10 1+3 = 4
100
102
\vskip1.000000\baselineskip
Procedimiento 4: Codificación de 4 pulsos distintos de cero con signo, en una pista de longitud K=2^{M} utilizando 4M bits.
Obsérvese que para los casos 0 ó 1, donde los 4 pulsos distintos de cero están en la misma sección, se necesitan 4(M-1)+1 = 4M-3 bits. Esto se hace utilizando un método simple de codificación de 4 pulsos distintos de cero en una Sección de longitud K/2 = 2^{M-1} bits. Esto se hace dividendo además la sección en dos sub-secciones de longitud k/4 = 2^{M-2}; identificando una sub-sección que contiene al menos 2 pulsos distintos de cero; codificando los 2 pulsos distintos de cero en esa sub-sección utilizando 2(M-2)+1 = 2M-3 bits; codificando el índice de la sub-sección que contiene al menos 2 pulsos distintos de cero utilizando 1 bit; y codificando los 2 pulsos restantes distintos de cero, suponiendo que éstos están en cualquier parte de la sección, utilizando 2(M-1)+1 = 2M-1 bits. Esto da un total de (2M-3) + (1) + (2M-1) = 4M-3 bits.
La codificación de 4 pulsos signados distintos de cero en una Sección de longitud K/2 = 2^{M-1} utilizando 4M-3 bits se muestra en el Procedimiento 4_Sección.
\vskip1.000000\baselineskip
103
1030
Procedimiento 4_Sección: Codificación de 4 pulsos signados en una Sección de longitud K/2 = 2^{M-1} utilizando 4M-3 bits.
Codificación de 5 pulsos signados por pista
Los 5 pulsos con signo, distintos de cero, en una pista de longitud K=2^{M}, pueden ser codificados utilizando 5M bits.
De manera similar al caso de 4 pulsos distintos de cero, las K posiciones de la pista se dividen en 2 secciones (dos mitades), de las que cada sección contiene K/2 posiciones. Aquí indicamos las secciones como Sección A con las posiciones 0 a K/2-1, y Sección B con las posiciones K/2 a K-1. Cada sección puede contener de 0 a 5 pulsos. La tabla que sigue muestra los 6 casos que representan el número posible de pulsos en cada una de las secciones:
Caso Pulsos en la Sección A Pulsos en la Sección B Bits necesarios
0 0 5 5M-1
1 1 4 5M-1
2 2 3 5M-1
3 3 2 5M-1
4 4 1 5M-1
5 5 0 5M-1
En los casos 0, 1 y 2, existen al menos 3 pulsos distintos de cero en la Sección B. Por otra parte, en los casos 3, 4 y 5, existen al menos 3 pulsos en la Sección A. De ese modo, una alternativa simple para codificar los 5 pulsos distintos de cero consiste en codificar los 3 pulsos distintos de cero en la misma sección utilizando el Procedimiento 3, que requiere 3(M-1)+1 = 3M-2 bits, y codificar los 2 pulsos restantes utilizando el Procedimiento 2, que requiere 2M+1 bits. Esto da 5M-1 bits. Se necesita un bit extra para identificar la sección que contiene al menos 3 pulsos distintos de cero (casos (0, 1, 2) o casos (3, 4, 5)). De ese modo, se necesita un total de 5M bits para codificar los 5 pulsos con signos distintos de cero.
El procedimiento de codificación de 5 pulsos signados en una pista de longitud K=2^{M} utilizando 5M bits, se muestra en el Procedimiento 5 que sigue.
Las dos tablas siguientes muestran la distribución de bits en el índice para los diferentes casos descritos en lo que antecede de acuerdo con la realización preferida, donde M = 4 (K = 16). La codificación de 5 pulsos signados distintos de cero por pista requiere 20 bits en este caso.
\vskip1.000000\baselineskip
Casos 0, 1 y 2
Identificador de Sección Mínimo de 3 pulsos en la Sección B Los otros 2 pulsos restantes en la pista
1 1+3 + 1 + 1+2+2 = 10 1+4+4 = 9
\vskip1.000000\baselineskip
Casos 3, 4 y 5
Identificador de Sección Mínimo de 3 pulsos en la Sección A Los otros 2 pulsos restantes en la pista
1 1+3 + 1 + 1+2+2 = 10 1+4+4 = 9
104
105
1050
106
Procedimiento 5: Codificación de 5 pulsos signados en una pista de longitud K=2^{M} utilizando 5M bits.
Codificación de 6 pulsos con signo por pista
Los 6 pulsos con signo en una pista de longitud K=2^{M} se codifican en esta realización preferida con utilizando 6M-2 bits.
De forma similar al caso de 5 pulsos, las K posiciones en la pista se dividen en 2 secciones (dos mitades) donde cada sección contiene K/2 posiciones. Aquí indicamos las secciones como Sección A con posiciones 0 a K/2-1, y Sección B con posiciones K/2 a K-1. Cada sección puede contener de 0 a 6 pulsos. La tabla que sigue muestra los 7 casos que representan el número de pulsos posible en cada una de las secciones:
\newpage
Caso Pulsos en la Sección A Pulsos en la Sección B Bits necesarios
0 0 6 6M-5
1 1 5 6M-5
2 2 4 6M-5
3 3 3 6M-5
4 4 2 6M-5
5 5 1 6M-5
6 6 0 6M-5
Obsérvese que los casos 0 y 6 son similares salvo en que los 6 pulsos distintos de cero están en secciones diferentes. De forma similar, la diferencia entre los casos 1 y 5, así como también los casos 2 y 4, es la sección que contiene más pulsos. Por lo tanto, estos casos pueden ser acoplados y se puede asignar un bit extra para identificar la sección que contiene más pulsos. Puesto que estos casos necesitan inicialmente 6M-5 bits, los casos acoplados necesitan 6M-4 bits teniendo en cuenta el bit de Sección.
Así, tenemos ahora 4 estados de casos acoplados, necesitándose 2 bits extra para el estado. Esto da un total de 6M-4+2 = 6M-2 bits para los 6 pulsos signados distintos de cero. Los casos acoplados se muestran en la tabla que sigue.
Casos acoplados Pulsos en la Sección A o B Pulsos en la otra Sección Bits necesarios
0, 6 0 6 6M-4
1, 5 1 5 6M-4
6M-42, 4 2 4 6M-4
3 3 3 6M-4
En los casos 0 ó 6, se necesita 1 bit para identificar la sección que contiene 6 pulsos distintos de cero. 5 pulsos distintos de cero de esa sección, se codifican utilizando el Procedimiento 5 que necesita 5(M-1) bits (puesto que los pulsos están confinados en esa sección), y el pulso restante se codifica utilizando el Procedimiento 1, que requiere 1+(M-1) bits. De ese modo, se necesita un total de 1+5(M-1)+M = 6M-4 bits para estos casos acoplados. Se necesitan 2 bits extra para codificar el estado del caso acoplado, lo que da un total de 6M-2 bits.
En los casos 1 ó 5, se necesita 1 bit para identificar la sección que contiene 5 pulsos. Los 5 pulsos de esa sección se codifican utilizando el Procedimiento 5 que necesita 5(M-1) bits, y el pulso de la otra sección se codifica utilizando el Procedimiento 1, que requiere 1+(M-1) bits. De ese modo, se necesita un total de 1+5(M-1)+M = 6M-4 bits para estos casos acoplados. Se necesitan 2 bits extra para codificar el estado de los casos acoplados, lo que da un total de 6M-2 bits.
En los casos 2 ó 4, se necesita 1 bit para identificar la sección que contiene 4 pulsos distintos de cero. Los 4 pulsos de esa sección se codifican utilizando el Procedimiento 4 que necesita 4(M-1) bits y los 2 pulsos de la otra sección se codifican utilizando el Procedimiento 2, que requiere (1+2(M-1) bits. De ese modo, se necesita un total de 1+4(M-1)+1+2(M-1) = 6M-4 para estos casos acoplados. Se necesitan 2 bits extra para codificar el estado del caso, lo que da un total de 6M-2 bits.
En el caso 3, los 3 pulsos distintos de cero de cada sección se codifican utilizando el Procedimiento 3 que requiere 3(M-1)+1 bits en cada Sección. Esto da 6M-4 bits para ambas secciones. Se necesitan 2 bits extra para codificar el estado del caso, lo que da un total de 6M-2 bits.
El procedimiento de codificación de 6 pulsos signados distintos de cero en una pista de longitud K=2^{M} utilizando 6M-2 bits, se muestra en el procedimiento 6 que sigue.
Las 2 tablas siguientes muestran la distribución de bits en el índice para los diferentes casos descritos en lo que antecede de acuerdo con la realización preferida, donde M=4 (K=16). La codificación de 6 pulsos con signo distintos de cero por pista, requiere 22 bits en este caso.
Casos 0 y 6
Estado de caso acoplado Identificador de Sección de 5 pulsos en la sección Otro pulso en la sección
6 pulsos
2 1 5(4-1) = 15 1+3 = 4
Casos 1 y 5
Estado de caso acoplado Identificador de Sección de 5 pulsos en la sección Otro pulso en la sección
5 pulsos
2 1 5(4-1) = 15 1+3 = 4
Casos 2 y 4
Estado de caso acoplado Identificador de Sección de 4 pulsos en la sección Otro pulso en la sección
4 pulsos
2 1 4(4-1) = 12 1+3+3 = 7
Caso 3
Estado de caso acoplado 3 pulsos en la Sección A 3 pulsos en la Sección B
2 3(4-1)+1 = 10 3(4-1)+1 = 10
107
108
Procedimiento 6: Codificación de 6 pulsos signados en una pista de longitud K=2^{M} utilizando 6M-2 bits.
Ejemplos de estructuras de código de cifrado y descifrado basadas en ISPP(64,4)
Aquí, se presentan diferentes ejemplos de diseño de código de cifrado y descifrado en base al diseño de ISPP(64,4) explicado en lo que antecede. El tamaño de pista es K=16, requiriendo M=4 bits por pista. Los diferentes ejemplos de diseño se obtienen cambiando el número de pulsos distintos de cero por pista. A continuación se describen 8 diseños posibles. Otras estructuras de códigos de cifrado y descifrado pueden ser obtenidas fácilmente eligiendo diferentes combinaciones de pulsos distintos de cero por pista.
Diseño 1: 1 pulso por pista (código de cifrado y descifrado de 20 bits)
En este ejemplo, cada pulso distinto de cero requiere (4+1) bits (procedimiento 1), lo que da un total de 20 bits para los 4 pulsos en las 4 pistas.
Diseño 2: 2 pulsos por pista (código de cifrado y descifrado de 36 bits)
En este ejemplo, los dos pulsos distintos de cero de cada pista requieren (4+4+1) = 9 bits (Procedimiento 2), lo que da un total de 36 bits para los 8 pulsos distintos de cero en las 4 pistas.
Diseño 3: 3 pulsos por pista (código de cifrado y descifrado de 52 bits)
En este ejemplo, los 3 pulsos distintos de cero en cada pista requieren (3x4+1) = 13 bits (Procedimiento 3), lo que da un total de 52 bits para los 12 pulsos distintos de cero en las 4 pistas.
Diseño 4: 4 pulsos por pista (código de cifrado y descifrado de 64 bits)
En este ejemplo, los 4 pulsos distintos de cero en cada pista requieren (4x4) = 16 bits (Procedimiento 4) lo que da un total de 64 bits para los 16 pulsos en las 4 pistas.
Diseño 5: 5 pulsos por pista (código de cifrado y descifrado de 80 bits)
En este ejemplo, los 5 pulsos distintos de cero de cada pista requieren (5x4) = 20 bits (Procedimiento 5), lo que da un total de 80 bits para los 20 pulsos distintos de cero en las 4 pistas.
Diseño 6: 6 pulsos por pista (código de cifrado y descifrado de 88 bits)
En este ejemplo, los 6 pulsos distintos de cero de cada pista requieren (6x4-2) = 22 bits (Procedimiento 6), lo que da un total de 88 bits para los 24 pulsos distintos de cero en las 4 pistas.
Diseño 7: 3 pulsos en las pistas T_{0} y T_{2}, y 2 pulsos en las pistas T_{1} y T_{3} (código de cifrado y descifrado de 44 bits)
En este ejemplo, las pistas T_{0} y T_{2} de 3 pulsos distintos de cero requieren (3x4+1) = 13 bits (Procedimiento 3) por pista, y los 2 pulsos distintos de cero en las pistas T_{1} y T_{3} requieren (1+4+4) = 9 bits (Procedimiento 2) por pista. Esto da un total de (13+9+13+9) = 44 bits para los 10 pulsos distintos de cero en las 4 pistas.
Diseño 8: 5 pulsos en las pistas T_{0} y T_{2} y 4 pulsos en las pistas T_{1} y T_{3} (código de cifrado y descifrado de 72 bits)
En este ejemplo, las pistas T_{0} y T_{2} de 5 pulsos distintos de cero requieren (5x4) = 20 bits (Procedimiento 5) por pista y los 4 pulsos de las pistas T_{1} y T_{3} requieren (4x4) = 16 bits (Procedimiento 4) por pista. Esto da un total de (20+16+20+16) = 72 bits para los 18 pulsos distintos de cero en las 4 pistas.
Búsqueda de código de cifrado y descifrado
En esta realización preferida, se utiliza un método especial para realizar una búsqueda de primera intensidad, descrito en la patente US 5.701.392, con lo que las necesidades de memoria para almacenar los elementos de la matriz H'H (la cual se va a definir posteriormente), se reducen significativamente. Esta matriz contiene las auto-correlaciones de la respuesta impulsional h(n) y se necesita para realizar el procedimiento de búsqueda. En esta realización preferida, solamente se calcula y se almacena una parte de esta matriz, y la otra parte se calcula en-línea dentro del procedimiento de búsqueda.
El código algebraico de cifrado y descifrado se busca hallando el vector de código c_{k} de excitación óptima y la ganancia g que minimiza el error cuadrático medio entre el vector objetivo y el vector de código filtrado escalado:
E = \Arrowvert x_{2} - gHc_{k}\Arrowvert^{2}
donde H es una matriz de convolución triangular inferior derivada del vector h de respuesta impulsional. La matriz H se define como la matriz de convolución de Toeplitz triangular inferior con diagonal h(0) y diagonales inferiores h(1), ..., h(N-1).
Se puede demostrar que el error E ponderado cuadrático medio puede ser minimizado optimizando el criterio de búsqueda:
Q_{k} = \frac{(x^{t}_{2}Hc_{k})^{2}}{c^{t}_{k}H^{t}Hc_{k}} = \frac{(d^{t}c_{k})^{2}}{c^{t}_{k}\phi c_{k}} = \frac{(R_{k})^{2}}{E_{k}}
donde d = H'x_{2} es la correlación entre la señal objetivo x_{2}(n) y la respuesta impulsional h(n) (también conocida como el vector objetivo filtrado inverso), y \Phi = H'H es la matriz de correlaciones de h(n).
Los elementos del vector d se calculan mediante:
d(n) = \sum\limits^{N-1}_{i=n}x_{2}(i)h(i-n),
\hskip0.5cm
n=0, ..., N-1
y los elementos de la matriz simétrica \Phi se calculan mediante:
\phi(i,j) = \sum\limits^{N-1}_{n=j}h(n-i)h(n-j),
\hskip0.5cm
i=0, ..., N-1,
\hskip0.5cm
j=0, ..., N-1
El vector d y la matriz \Phi pueden ser calculados con anterioridad a la búsqueda de código de cifrado y descifrado.
La estructura algebraica de los códigos de cifrado y descifrado permite procedimientos de búsqueda muy rápidos debido a que el vector de innovación c_{k} solamente contiene unos pocos pulsos distintos de cero. La correlación en el numerador del criterio de búsqueda Q_{k} viene dada por:
R = \sum\limits^{N_{p}-1}_{i=0}\beta _{i}d(m_{i})
donde m_{i} es la posición del pulso iº, \beta_{i} es su amplitud, y n_{p} es el número de pulsos. La energía en el denominador del criterio de búsqueda Q_{k} viene dada por:
E = \sum\limits^{N_{p}-1}_{i=0}\phi(m_{i},m_{i})
\hskip0.5cm
+
\hskip0.5cm
2\sum\limits^{N_{p}-2}_{i=0} \ \sum\limits^{N_{p}-1}_{j=i+1}\beta_{i}\beta_{j}\phi(m_{i},m_{j})
Para simplificar el procedimiento de búsqueda, las amplitudes de pulso son determinadas previamente mediante cuantificación de una cierta señal b(n) de referencia. Se pueden utilizar diversos métodos para definir esta señal de referencia. En la realización preferida, b(n) viene dada por:
b(n) = \sqrt{\frac{E_{d}}{E_{r}}}r_{LTP}(n)+\alpha d(n)
donde E_{d} = d'd es la energía de la señal d(n) y E_{r} = r'_{LTP}r_{LTP} es la energía de la señal r_{LTP}(n), que es la señal residual tras una predicción a largo plazo. El factor escalar a controla la cantidad de dependencia de la señal de referencia sobre d(n).
En la alternativa de amplitud de pulso seleccionada de señal que se describe en la Patente US 5.754.976, el signo de un pulso en la posición i se establece de modo que es igual al signo de la señal de referencia en esa posición. Para simplificar la búsqueda, la señal d(n) y la matriz \Phi se modifican para que incorporen los signos preseleccionados.
Indiquemos con s_{b}(n) el vector que contiene los signos de b(n). La señal d'(n) modificada viene dada por:
d'(n) = s_{b}(n)d(n),
\hskip0.5cm
n = 0, ..., N-1
y la matriz F' de correlación modificada viene dada por:
\phi'(i,j) = s_{b}(i)s_{b}(j)\phi(i,j),
\hskip0.5cm
i=0,...,N-1;
\hskip0.5cm
j=i,...,N-1
La correlación en el numerador del criterio de búsqueda Q_{k} viene ahora da por:
R = \sum\limits^{N_{p}-1}_{i=0}d'(i)
\newpage
y la energía en el denominador del criterio de búsqueda Q_{k} viene dada por:
E = \sum\limits^{N_{p}-1}_{i=0}\phi '(m_{i},m_{j})
\hskip0.5cm
+
\hskip0.5cm
2 \sum\limits^{N_{p}-2}_{i=0} \ \sum\limits^{N_{p}-1}_{j=1+1}\phi '(m_{i},m_{j})
El objetivo de la búsqueda consiste ahora en determinar el vector de código con el mejor conjunto de posiciones de pulso N_{p} suponiendo que las amplitudes de pulso han sido seleccionadas como se ha descrito en lo que antecede. El criterio de selección básico consiste en la optimización de la relación Q_{k} mencionada anteriormente.
De acuerdo con la Patente US 5.701.392, con el fin de reducir la complejidad de la búsqueda, las posiciones de pulso se determinan para N_{m} pulsos a la vez. De manera más precisa, los pulsos N_{p} disponibles se dividen en M sub-conjuntos no vacíos de N_{m} pulsos respectivamente, de tal modo que: N_{1} + N_{2} ... + N_{m} ... + N_{M} = N_{p}. Una elección particular de las posiciones para los primeros J = N_{1} + N_{2} ... + N_{m-1} pulsos considerados, se denomina trayectoria de nivel m, o trayectoria de longitud J. Un criterio básico para una trayectoria de J posiciones de pulso, consiste en la relación Q_{k}(J) cuando solamente se consideran J pulsos relevantes.
La búsqueda comienza con el subconjunto #1 y continúa con los sub-conjuntos que siguen de acuerdo con una estructura de árbol en la que se busca el sub-conjunto m en el nivel mº del árbol.
El propósito de la búsqueda a nivel 1 consiste en considerar los N_{1} pulsos del sub-conjunto #1 y sus posiciones válidas con el fin de determinar una, o un número de, trayectoria(s) candidata(s) de longitud N_{1} que estén en los nodos del árbol a nivel 1.
La trayectoria en cada nodo terminal de nivel m-1 se extiende a una longitud N_{1} + N_{2} ... + N_{m} a nivel m, considerando N_{m} nuevos pulsos y sus posiciones válidas. Se determina una, o un número de, trayectoria(s) candidata(s) extendida(s), para constituir nodos de nivel m.
El mejor vector de código corresponde a la trayectoria de longitud N_{p} que optimiza un criterio dado, por ejemplo el criterio Q_{k}(N_{p}) con respecto a todos los nodos de nivel M.
En la realización preferida, se consideran siempre 2 pulsos a la vez en el procedimiento de búsqueda, es decir, N_{m} = 2. Sin embargo, en vez de suponer que la matriz \Phi ha sido pre-calculada y almacenada, lo que requiere una memoria de NxN palabras (64x64 = 4k palabras en esta realización preferida), se utiliza una alternativa eficaz de memoria que reduce considerablemente la necesidad de memoria. En esta nueva alternativa, el procedimiento de búsqueda se realiza de tal modo que sólo se pre-calculan y almacenan una parte de los elementos necesarios de la matriz de correlación. Esta parte está relacionada con las correlaciones de la respuesta impulsional correspondiente a las posiciones potenciales de pulso en pistas consecutivas, así como también con las correlaciones correspondientes a \phi(jj), j = 0, ..., N-1 (es decir, los elementos de la diagonal principal de la matriz \Phi).
Como ejemplo de ahorro de memoria, en esta realización preferida, el tamaño de la sub-unidad de información es de N=64, lo que significa que la matriz de correlación es de un tamaño de 64x64 = 4096. Puesto que la búsqueda de pulsos se realiza dos pulsos a la vez en pistas consecutivas, en especial las pistas T_{0}-T_{1}, T_{1}-T_{2}, T_{2}-T_{3}, o T_{3}-T_{0}, los elementos de correlación necesarios son los correspondientes a pulsos en pistas adyacentes. Puesto que cada una de las pistas contiene 16 posiciones potenciales, existen 16x16 = 256 elementos de correlación correspondientes a dos pistas adyacentes. De ese modo, con la alternativa de eficacia de memoria, los elementos necesarios son 4x256 = 1024 para las cuatro posibilidades de pistas adyacentes (T_{0}-T_{1}, T_{1}-T_{2}, T_{2}-T_{3} y T_{3}-T_{0}). Adicionalmente, se necesitan 64 correlaciones en la diagonal de la matriz. Lo que da una necesidad de almacenaje de 1088 en vez de 4096
palabras.
Una forma especial del procedimiento de búsqueda de árbol de primera intensidad, se utiliza en esta realización preferida, en la que se buscan dos pulsos en dos pistas consecutivas a la vez. Con el fin de reducir la complejidad, se comprueba un número limitado de posiciones potenciales del primer pulso. Además, para códigos algebraicos de cifrado y descifrado con un gran número de pulsos, algunos pulsos de los niveles más altos del árbol de búsqueda pueden ser fijados.
Con el fin de adivinar inteligentemente qué posiciones de pulso son consideradas para el primer pulso o con el fin de fijar algunas posiciones de pulso, se utiliza un "vector b de estimación de probabilidad de posición de pulso", el cual está basado en señales relacionadas con la palabra. La componente b(p) del pº de este vector b estimado, caracteriza la posibilidad de que un pulso ocupe la posición p (p = 0, 1, ..., N-1) en el mejor vector de código que estamos
buscando.
Para una pista dada, el vector b estimado indica la probabilidad relativa de cada posición válida. Esta propiedad puede ser utilizada ventajosamente como criterio de selección en los cinco primeros niveles de la estructura de árbol en lugar del criterio Q_{k}(j) de selección básica que en cualquier caso, en los cinco primeros niveles, opera sobre demasiados pocos pulsos como para proporcionar un comportamiento fiable en la selección de posiciones válidas.
\newpage
En esta realización preferida, el vector b estimado es la misma señal de referencia utilizada en la pre-selección de las amplitudes de pulso que se ha descrito anteriormente. Es decir,
b(n) = \sqrt{\frac{E_{d}}{E_{r}}}r_{LTP}(n)+\alpha d(n)
donde E_{d} = d'd es la energía de la señal d(n), y E_{r} = r'_{LTP}r_{LTP} es la energía de la señal r_{LTP}(n) que es la señal residual tras una predicción a largo plazo.
Una vez que se han elegido el vector de código c_{k} de excitación óptima y su ganancia g mediante el módulo 110, se codifican el índice k de vector de código y la ganancia g, y se transmiten al multiplexor 112.
Con referencia a la Figura 1, los parámetros b, T, j, Â(z), k y g, han sido multiplexados mediante el multiplexor 112 con anterioridad a ser transmitidos a través de un canal de comunicación.
Actualización de memoria
En el módulo 111 de memoria (Figura 1), se actualizan los estados del filtro W(z)/Â(z) de síntesis ponderada, mediante filtrado de la señal de excitación u = gc_{k} + bv_{T} a través del filtro de síntesis ponderada. Después de este filtrado, los estados del filtro se memorizan y se utilizan en la siguiente sub-unidad de información como estados iniciales para calcular la respuesta de entrada cero en el módulo calculador 108.
Como en el caso del vector x objetivo, otras aproximaciones alternativas pero matemáticamente equivalentes, bien conocidas por los expertos en la materia, pueden ser utilizadas para actualizar los estados de filtro.
Lado del decodificador
El dispositivo 200 de decodificación de palabra de la Figura 2 ilustra las diversas etapas llevadas a cabo entre la entrada digital 222 (flujo de datos de entrada hasta el desmultiplexor 217), y la palabra 223 muestreada de salida (s_{salida} desde el sumador 221).
El desmultiplexor 217 extrae los parámetros del modelo de síntesis a partir de la información binaria recibida desde un canal de entrada digital. A partir de cada unidad de información binaria recibida, los parámetros extraídos son:
-
los parámetros Â(z) de predicción a corto plazo (STP) por la línea 225 (una vez por unidad de información);
-
los parámetros T, b y j de predicción a largo plazo (LTP) (para cada sub-unidad de información), y
-
el índice k y la ganancia g de código de cifrado y descifrado de innovación (para cada sub-unidad de información).
La señal actual de palabra se sintetiza en base a esos parámetros como se va a explicar en lo que sigue.
El código 218 de cifrado y descifrado innovador actúa en respuesta al índice k para producir el vector de código c_{k} innovador, el cual es escalado por la ganancia g decodificada a través de un amplificador 224. En la realización preferida, se utiliza un código 218 de cifrado y descifrado innovador como el descrito en las Patentes US núms. 5.444.816, 5.699.482, 5.754.976 y 5.701.392, para representar el vector de código c_{k} innovador.
El vector de código escalado gc_{k} escalado generado a la salida del amplificador 224, es procesado a través de un filtro de innovación 205.
Aumento de periodicidad
El vector de código escalado gc_{k} generado a la salida del amplificador 224, es también procesado mediante un incrementador de paso dependiente de la frecuencia, en particular el filtro de innovación 205.
El incremento de la periodicidad de la señal de excitación u mejora la calidad en caso de segmentos sonoros. Esto se ha hecho en el pasado filtrando el vector de innovación procedente del código 218 de cifrado y descifrado innovador (código de cifrado y descifrado fijo) mediante un filtro de la forma 1/(1-\varepsilonbz^{-T}) donde e es un factor por debajo de 0,5 que controla la cantidad de periodicidad introducida. Esta alternativa es menos eficaz en caso de señales de banda ancha debido a que introduce periodicidad sobre el espectro completo. Se describe una nueva aproximación alternativa, que forma parte de la invención, con la que se consigue un aumento de periodicidad filtrando el vector de código c_{k} a partir del vector de código innovador (fijo) mediante un filtro de innovación 205 (F(z)) cuya respuesta de frecuencia enfatiza las frecuentas más altas en mayor medida que las frecuencias más bajas. Los coeficientes de F(z) están relacionados con la cantidad de periodicidad en la señal u de excitación.
\newpage
Se encuentran disponibles muchos métodos conocidos por los expertos en la materia para obtener coeficientes de periodicidad válidos. Por ejemplo, el valor de la ganancia b proporciona una indicación de la periodicidad. Es decir, si la ganancia b es próxima a 1, la periodicidad de la señal u de excitación es alta, y si la ganancia b es menor de 0,5 entonces la periodicidad es baja.
Otra forma eficaz de derivar los coeficientes de filtro F(z) consiste en relacionarlos con la cantidad de contribución de paso en la señal u de excitación total. Esto da como resultado una respuesta de frecuencia que depende de la periodicidad de la sub-unidad de información, donde las frecuencias más altas son enfatizadas más intensamente (pendiente global más fuerte) para ganancias de paso más altas. El filtro de innovación 205 tiene el efecto de rebajar la energía del vector de código c_{k} innovador a frecuencias bajas cuando la señal de excitación u es más periódica, lo que aumenta la periodicidad de la señal de excitación u a frecuencias más bajas que a frecuencias más altas. Algunas formas sugeridas para el filtro de innovación 205 son:
(1)F(z) = 1 - \sigma z^{-1},
o
(2)F(z) = -\alpha z + 1 - \alpha z^{-1}
donde \sigma o \alpha son factores de periodicidad derivados del nivel de periodicidad de la señal de excitación u.
La segunda forma de F(z) con tres términos, se utiliza en una realización preferida. El factor de periodicidad \alpha se calcula en el generador 204 de factor de sonorización. Se pueden utilizar varios métodos para derivar el factor de periodicidad a en base a la periodicidad de la señal de excitación u. A continuación se presentan dos métodos.
Método 1
La relación de contribución de paso respecto a la señal u de excitación total, se calcula en primer lugar en el generador 204 de factor de sonorización mediante:
R_{p} = \frac{b^{2}v^{t}_{T}v_{T}}{u^{t}u} = \frac{b^{2}\sum\limits^{N-1}_{n=0}v^{2}_{T}(n)}{\sum\limits^{N-1}_{n=0}u^{2}(n)}
en la que v_{T} es el vector de cifrado y descifrado de paso, b es la ganancia de paso, y u es la señal de excitación u dada a la salida del sumador 219 por:
u = gc_{k} + bv_{T}
Obsérvese que el término bv_{T} tiene su fuente en el código 201 de cifrado y descifrado de paso (código de cifrado y descifrado de paso) en respuesta al retardo T de paso y al valor anterior de u almacenado en la memoria 203. El vector de código v_{T} de paso procedente del código de cifrado y descifrado 201 se procesa a continuación mediante un filtro 202 pasabajo cuya frecuencia de corte se ajusta mediante el índice j desde el desmultiplexor 217. El vector de código v_{T} resultante se multiplica después por la ganancia b procedente del desmultiplexor 217, por medio de un amplificador 226 para obtener la señal bv_{T}.
El factor \alpha se calcula en el generador 204 de factor de sonorización mediante:
\alpha = qR_{p}
\hskip0.5cm
acotado por \alpha < q
donde q es un factor que controla la cantidad de incremento (q se establece en 0,25 en esta realización preferida).
Método 2
A continuación se discute otro método para calcular el factor de periodicidad \alpha.
En primer lugar, se calcula un factor r_{v} de sonorización en el generador 204 de generador de sonorización mediante:
r_{v} = (E_{v}-E_{c}) \ / \ (E_{v}+E_{c})
donde E_{v} es la energía del vector de código bv_{T} de paso escalado, y E_{c} es la energía del vector de código gc_{k} innovador escalado. Es decir:
E_{v} = b^{2}v_{T}{}^{1}v_{T} = b^{2}\sum\limits^{N-1}_{n=0}v_{T}{}^{2}(n)
y
E_{c} = g^{2}c_{kt}c_{k} = g^{2}\sum\limits^{N-1}_{n=0}c_{k}{}^{2}(n)
Obsérvese que el valor de r_{v} está comprendido entre -1 y 1 (1 corresponde a señales puramente de voz, y -1 corresponde a señales puramente insonoras).
En esta realización preferida, el factor \alpha es calculado a continuación en el generador 204 de factor de sonorización mediante:
\alpha = 0,125(1 + r_{v})
lo que corresponde a un valor 0 para señales puramente insonoras y a 0,25 para señales puramente de voz.
En la primera forma, de dos términos, de F(z), el factor de periodicidad s puede ser aproximado utilizando \sigma = 2\alpha en los métodos 1 y 2 que anteceden. En tal caso, el factor de periodicidad s se calcula como sigue en el método 1 anterior:
\sigma = 2qR_{p}
\hskip0.5cm
acotado por \sigma < 2q.
En el método 2, el factor de periodicidad sse calcula como sigue:
\sigma = 0,25(1 + r_{v}).
La señal incrementada c_{r} se calcula por tanto filtrando el vector de código gc_{k} innovador escalado mediante el filtro de innovación 205 (F(z)).
La señal u' de excitación incrementada se calcula mediante el sumador como:
u' = c_{f} + bv_{T}
Obsérvese que este proceso no se realiza en el codificador 100. Así, es esencial actualizar el contenido del código 201 de cifrado y descifrado de paso, utilizando la señal de excitación u sin incremento para mantener el sincronismo entre el codificador 100 y el decodificador 200. Por lo tanto, la señal de excitación u se utiliza para actualizar la memoria 203 del código 201 de cifrado y descifrado de paso, y la señal u' de excitación incrementa se utiliza a la entrada del filtro 206 de síntesis de LP.
Síntesis y desénfasis
La señal s' sintetizada se calcula filtrando la señal u' de excitación incrementada mediante el filtro 206 de síntesis de LP que tiene la forma 1/Â(z), donde Â(z) es el filtro de LP interpolado en la sub-unidad de información actual. Según puede verse en la Figura 2, los coeficientes Â(z) de LP cuantificados en la línea 225 procedente del desmultiplexor 217, son suministrados al filtro 206 de síntesis de LP para ajustar los parámetros del filtro de síntesis 206 de forma correspondiente. El filtro 207 de desénfasis es la inversa del filtro 103 de pre-énfasis de la Figura 1. La función de transferencia del filtro 207 de desénfasis viene dada por:
D(z) = 1/(1 - \mu z^{-1})
donde \mu es un factor de pre-énfasis con un valor comprendido entre 0 y 1 (un valor típico es el de \mu = 0,7). También se podría utilizar un filtro de orden más alto.
El vector s' se filtra mediante el filtro de desénfasis D(Z) (módulo 207) para obtener el vector s_{d}, el cual se hace pasar a través del filtro pasaalto 208 para eliminar las frecuencias indeseadas por debajo de 50 Hz y obtener
además s_{h}.
\newpage
Sobremuestreo y regeneración de alta frecuencia
El módulo 209 de sobremuestreo realiza el proceso inverso al módulo 101 de muestreo descendente de la Figura 1. En esta realización preferida, el sobremuestreo convierte la velocidad de muestreo de 12,8 kHz en la velocidad de muestreo original de 16 kHz, utilizando técnicas bien conocidas por los expertos en la materia. La señal de síntesis sobremuestreada se ha indicado como \hat{S}. La señal \hat{S} se menciona también como señal intermedia de banda ancha sintetizada.
La señal \hat{S} de síntesis sobremuestreada no contiene las componentes de frecuencia más lata que se perdieron en el proceso de muestreo descendente (módulo 101 de la Figura 1) en el codificador 100. Esto proporciona una percepción pasabajo a la señal de palabra sintetizada. Para restablecer la banda completa de la señal original, se describe un procedimiento de generación de alta frecuencia. Este procedimiento se lleva a cabo en los módulos 210 a 216, y en el sumador 221, y requiere una entrada procedente del generador 204 de factor de sonorización (Figura 2).
En esta nueva aproximación, los contenidos de lata frecuencia son generados rellenando la parte superior del espectro con un ruido blando escalado apropiadamente en el dominio de excitación, convertido a continuación al dominio de la palabra, con preferencia conformándolo con el mismo filtro de síntesis de LP utilizado para sintetizar la señal \hat{S} sub-muestreada.
El procedimiento de generación de alta frecuencia de acuerdo con la presente invención, va a ser descrito en lo que sigue.
El generador 213 de ruido aleatorio, genera una secuencia w' de ruido blanco con un espectro plano sobre la totalidad del ancho de banda de la frecuencia, utilizando técnicas bien conocidas por los expertos en la materia. La secuencia generada es de longitud N',la cual es la longitud de sub-unidad de información en el dominio original. obsérvese que N es la longitud de la sub-unidad de información en el dominio de muestreo descendente. En esta realización preferida, N=64 y N'=80, lo que corresponde a 5 ms.
La secuencia de ruido blanco es escalada apropiadamente en el módulo 214 de ajuste de ganancia. El ajuste de ganancia comprende las siguientes etapas. En primer lugar, la energía de la secuencia w' de ruido generado se establece de modo que sea igual a la energía de la señal u' de excitación incrementada mediante un módulo 210 de cálculo de energía, y la secuencia de ruido escalado resultante viene dada por:
w(n) = w'(n) \sqrt{\frac{\sum\limits^{N-1}_{n=0}u^{t^{2}}(n)}{\sum\limits^{N'-1}_{n=0}w^{t^{2}}(n)}}
\hskip0.5cm
n = 0, ..., N’-1
La segunda etapa en el escalado de ganancia, consiste en tener en cuenta el contenido de alta frecuencia de la señal sintetizada a la salida del generador 204 de factor de sonorización en caso de segmentos sonoros (donde se encuentra presente menos energía en frecuencias latas en comparación con los segmentos insonoros). Con preferencia, la medición del contenido de alta frecuencia se implementa midiendo la desviación de la señal de síntesis a través del calculador 212 de desviación espectral, y reduciendo la energía de forma correspondiente. Se pueden utilizar igualmente otras mediciones tales como las mediciones de cruce por cero. Cuando la desviación es muy fuerte, lo que corresponde a segmentos sonoros, la energía de ruido se reduce más. El factor de desviación se calcula en el módulo 212 como el primer coeficiente de correlación de la señal de síntesis s_{h}, y viene dado por:
desviación = \frac{\sum\limits^{N-1}_{n=1}s_{h}(n)s_{h}(n-1)}{\sum\limits^{N-1}_{n=1}s^{2}{}_{h}(n)}
\hskip0.5cm
condicionada por:
\hskip0.5cm
desviación \geq 0 y desviación \geq r_{v}
donde el factor de sonorización r_{v} viene dado por:
r_{v} = (E_{v}-E_{c}) / (E_{v}+E_{c})
donde E_{v} es la energía del vector de código bv_{T} escalado y E_{c} es la energía del vector de código gc_{k} innovador escalado, según se ha descrito anteriormente. El factor de sonorización r_{v} es, con mayor frecuencia, menor que la desviación, pero esta condición fue introducida como precaución contra los tonos de alta frecuencia donde el valor de la desviación es negativo y el valor de r_{v} es alto. Por lo tanto, esta condición reduce la energía de ruido de tales señales tonales.
El valor de desviación es 0 en caso de espectro plano, y 1 en caso de señales de voz intensamente sonoras, y es negativo en caso de señales insonoras en las que se encuentra presente más energía a frecuencias altas.
\newpage
Se pueden utilizar diferentes métodos para derivar el factor de escalado g_{t} a partir de los contenidos de alta frecuencia. En esta invención, se proporcionan dos métodos basados en la desviación de señal que se ha descrito en lo que antecede.
Método 1
El factor escalar g_{t} se deriva de la desviación mediante:
g_{t} = 1 - desviación
\hskip0.5cm
acotado \ por
\hskip0.5cm
0,2 \leq g_{t} \leq 1,0
Para una señal intensamente sonora en la que la desviación se aproxima a 1, el valor de g_{t} es de 0,2, y para señales intensamente sonoras g_{t} se hace 1,0.
Método 2
El factor de desviación g_{t} se restringe en primer lugar de modo que sea mayor que, o igual a, cero, en cuyo caso el factor escalar se deriva de la desviación mediante:
g_{t} = 10^{-0,6desviación}
La secuencia w_{g} de ruido escalado producida en el módulo 214 de ajuste de ganancia, viene dada por tanto como:
w_{g} = g_{t}w'
Cuando la desviación está próxima a cero, el factor escalar g_{t} está próximo a 1, lo que no da como resultado una reducción de energía. Cuando el valor de inclinación es 1, el factor escalar g_{t} da como resultado una reducción de 12 dB en la energía del ruido generado.
Una vez que el ruido ha sido escalado apropiadamente (w_{g}), se lleva al dominio de la palabra utilizando el configurador espectral 215. En la realización preferida, esto se consigue filtrando el ruido w_{g} a través de una versión expandida de ancho de banda del mismo filtro de síntesis de LP utilizado en el dominio de muestreo descendente (1/Â(z/0,8)). Los coeficientes correspondientes de filtro de LP expandido de ancho de banda, se calculan en el configurador espectral 215.
La secuencia w_{f} de ruido escalado filtrado se filtra entonces en pasabanda en la gama de frecuencia requerida para ser restaurada utilizando el filtro 216 pasabanda. En la realización preferida, el filtro 216 pasabanda limita la secuencia de ruido a la gama de frecuencia de 5,6 - 7,2 kHz. La secuencia z resultante de ruido filtrado pasabanda, se añade en el sumador 221 a la señal \hat{S} de palabra sintetizada sobremuestreada con el fin de obtener la señal s_{salida} de sonido reconstruida en la salida 223.

Claims (62)

1. Un método de indexación de posiciones y amplitudes de pulso en un código algebraico de cifrado y descifrado para una codificación y una decodificación eficientes de una señal de sonido, en el que:
-
el código de cifrado y descifrado comprende un conjunto de combinaciones de amplitud/posición de pulso;
-
cada combinación de amplitud/posición de pulso define un número de posiciones diferentes y comprende tanto pulsos de amplitud cero como pulsos de amplitud distinta de cero, asignados a posiciones respectivas de la combinación, y
-
cada pulso de amplitud distinta de cero asume una de la pluralidad de amplitudes posibles, y
en el que dicho procedimiento de indexación comprende:
-
formar un conjunto de al menos una pista de dichas posiciones de pulso, en la que la posición de cada pulso de amplitud distinta de cero de cada combinación de amplitud/posición de pulso está restringida a una pista de dicho conjunto;
-
indexar, de acuerdo con un primer procedimiento, mencionado en lo que sigue como procedimiento 1, la posición y la amplitud de un pulso de amplitud distinta de cero solamente cuando la posición de dicho pulso de amplitud distinta de cero se localice en una pista de dicho conjunto;
-
indexar, de acuerdo con un segundo procedimiento, mencionado en lo que sigue como procedimiento 2, las posiciones y amplitudes de dos pulsos distintos de cero solamente cuando las posiciones de dichos dos pulsos de amplitud distinta de cero estén localizadas en una pista de dicho conjunto, y
-
cuando las posiciones de un número X de pulsos de amplitud distinta de cero se localicen en una pista de dicho conjunto, en la que X\geq3:
-
dividir las posiciones de dicha pista en dos secciones;
-
utilizar otro procedimiento asociado a dicho número X, mencionado en lo que sigue como procedimiento X, para indexar las posiciones y amplitudes de dichos X pulsos de amplitud distinta de cero, comprendiendo dicho procedimiento X:
-
identificar en cuál de las dos secciones de pista se localiza cada pulso de amplitud distinta de cero;
-
calcular sub-índices de dichos X pulsos de amplitud distinta de cero utilizando los procedimientos 1 y 2 en al menos una de las citadas secciones de pista y en la pista completa, y
-
calcular un índice de "posición y amplitud" de dichos X pulsos de amplitud distinta de cero mediante la combinación de dichos sub-índices.
2. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 1, que comprende interpolar las posiciones de pulso de cada pista con las posiciones de pulso de las otras pistas.
3. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 1, en el que el cálculo de un índice de posición y amplitud de dichos X pulsos de amplitud distinta de cero comprende:
calcular al menos un índice intermedio por combinación de al menos dos de dichos sub-índices, y
calcular el índice de posición y amplitud de dichos X pulsos de amplitud distinta de cero por combinación de los restantes subíndices y de dicho al menos un índice intermedio.
4. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 1, en el que dicho procedimiento 1 comprende producir un índice de posición y amplitud que incluya un índice de posición indicativo de la posición de dicho pulso de amplitud distinta de cero en la citada pista, y un índice de amplitud indicativo de la amplitud de dicho pulso de amplitud distinta de cero.
5. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 4, en el que el índice de posición comprende un primer grupo de bits, y el índice de amplitud comprende al menos un bit.
6. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 5, en el que dicho al menos un bit del índice de amplitud es un bit de orden más alto.
7. Un método de indexación de posiciones y amplitudes de pulo según se ha definido en la reivindicación 5, en el que dicha pluralidad de amplitudes posibles de cada pulso de amplitud distinta de cero comprende +1 y -1, y en el que dicho al menos un bit del índice de amplitud es un bit de signo.
8. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 1, en el que:
dicha pluralidad de amplitudes posibles de cada pulso de amplitud distinta de cero comprende +1 y -1, y
el procedimiento 1 comprende producir un índice de posición y amplitud de dicho pulso de amplitud distinta de cero que tiene la forma:
I_{1p} = p + sx2^{M}
en la que p es un índice de posición de dicho pulso de amplitud distinta de cero en dicha pista, s es un índice de signo de dicho pulso de amplitud distinta de cero, y 2^{M} es el número de posiciones en dicha pista.
9. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 8, en el que el número de posiciones en dicha pista es de 16, y en el que el índice de posición y amplitud es un índice de 5 bits representado por la siguiente tabla:
Signo Posición s b_{3} b_{2} b_{1} b_{0}
10. Un método de indexación de posiciones y amplitudes de pulso según de ha definido en la reivindicación 1, en el que dicho procedimiento 2 comprende producir un índice de posición y amplitud que comprende:
primer y segundo índices de posición, indicativos respectivamente de las posiciones de los dos pulsos de amplitud distinta de cero en dicha pista, y
un índice de amplitud indicativo de las amplitudes de dichos dos pulsos de amplitud distinta de cero.
11. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 10, en el que, en el índice de posición y amplitud:
el índice de amplitud comprende al menos un bit;
el primer índice de posición comprende un grupo de bits, y
el segundo índice de posición comprende un segundo grupo de bits.
12. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 11, en el que, en el índice de posición y amplitud:
dicho al menos un bit del índice de amplitud es un bit de orden más alto;
los bits del primer grupo son bits de orden intermedio, y
los bits del segundo grupo son bits de orden más bajo.
13. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 11, en el que dicha pluralidad de amplitudes posibles de cada pulso de amplitud distinta de cero comprende +1 y -1, en el que dicho al menos un bit del índice de amplitud es un bit de signo.
14. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 10, en el que el procedimiento 2 comprende:
cuando dichos dos pulsos tienen la misma amplitud, generar un índice de amplitud indicativo de la amplitud del pulso distinto de cero cuya posición está indicada por el primer índice de posición, generar un primer índice de posición indicativo de la posición más pequeña de los dos pulsos de amplitud distinta de cero en la citada pista, y producir un segundo índice de posición indicativo de la posición más grande de los dos pulsos de amplitud distinta de cero en dicha pista, y
\newpage
cuando dichos dos pulsos tienen amplitudes diferentes, producir un índice de amplitud indicativo de la amplitud del pulso de amplitud distinta de cero cuya posición está indicada por el primer índice de posición, producir un primer índice de posición indicativo de la posición más grande de los dos pulsos de amplitud distinta de cero en dicha pista, y producir un segundo índice de posición indicativo de la posición más pequeña de los dos pulsos de amplitud distinta de cero en dicha pista.
15. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 1, en el que procedimiento 2 comprende, cuando la posición de un primer pulso de amplitud distinta de cero con índice de posición p_{0} e índice de signo \sigma_{0}, y la posición de un segundo pulso de amplitud distinta de cero con índice de posición p_{1} e índice de signo \sigma_{1}, están localizadas en una pista de dicho conjunto, producir un índice de posición y amplitud de dichos primer y segundo pulsos de amplitud distinta de cero, de forma:
Si \sigma_{0} = \sigma_{1} Si p_{0} \leq p_{1} I_{2p} = p_{1}+p_{0}x2^{M} + \sigma_{0}x2^{M} Si p_{0} \geq p_{1} I_{2p} = p0+p_{1}x2 + \sigma_{0}x2^{M} Si \sigma_{0} \neq \sigma_{1} Si p_{0} \leq p_{1} I_{2p} = p_{0}+p_{1}x2^{M} + \sigma_{1}x2^{M} Si p_{0} \geq p_{1} I_{2p} = p_{1} + p_{0}x2^{M} + \sigma_{0}x2^{M} donde 2^{M} es el número de posiciones en dicha pista.
16. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 15, en el que el número de posiciones en dicha pista es de 16, y en el que el índice de posición y amplitud es un índice de 9 bits representado en la siguiente tabla:
Signo Posición p_{0} Posición p_{1} s b_{3} b_{3} b_{2} b_{0} b_{3} b_{2} b_{1} b_{0}
17. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 1, en el que, cuando X=3,
dividir las posiciones de dicha pista en dos secciones comprende dividir las posiciones de dicha pista en secciones de pista superior e inferior, y
el procedimiento 3 comprende:
identificar una de las secciones de pista superior e inferior, que contenga las posiciones de al menos dos pulsos de amplitud distinta de cero;
calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sección de pista utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista;
calcular un segundo sub-índice del pulso restante de amplitud distinta de cero utilizando el procedimiento 1 aplicado a las posiciones de la citada pista completa, y
producir un índice de posición y amplitud de los tres pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices.
18. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 17, en el que:
calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero situados en dicha sección de pista utilizando el procedimiento 2 comprende, cuando las posiciones de dichos al menos dos pulsos de amplitud distinta de cero están localizados en la sección superior, cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sección superior hasta la sección inferior.
19. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 18, en el que cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sección superior hasta la sección inferior comprende enmascarar un número de bits menos significativos de los índices de posición dichos al menos dos pulsos de amplitud distinta de cero, con una más cara que consiste en dicho número de unos (1's).
20. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 17, en el que calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en la citada sección de pista, utilizando el procedimiento 2, comprende insertar un índice de sección que indica aquella de dichas secciones superior e inferior de pista en la que se encuentran localizados dichos al menos dos pulsos de amplitud distinta de cero.
21. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 17, en el que el número de posiciones de dicha pista es 16, y en el que el índice de posición y amplitud es un índice de 13 bits representado en la siguiente tabla:
Signo Posición del 3º Índice 2 pulsos en la sección k pulso de Sección s_{0} p_{0} p_{1} s b_{3} b_{3} b_{2} b_{0} k s b_{2} b_{1} b_{0} b_{2} b_{1} b_{0}
22. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 1, en el que:
dicho procedimiento 1 comprende producir un índice de posición y amplitud que incluye un índice de posición indicativo de la posición de dicho pulso de amplitud distinta de cero en la citada pista, y un índice de amplitud indicativo de la amplitud de dicho pulso de amplitud distinta de cero, en el que el índice de posición comprende un primer grupo de bits, y el índice de posición comprende al menos un bit;
dicho procedimiento 2 comprende producir un índice de posición y amplitud que incluye un primer y un segundo índices de posición indicativos respectivamente de las posiciones de los dos pulsos de amplitud distinta de cero en la citada pista, y un índice de amplitud indicativo de las amplitudes de dichos dos pulsos de amplitud distinta de cero, en el que el índice de amplitud comprende al menos un bit, el primer índice de posición comprende un primer grupo de bits, y el segundo índice de posición comprende un segundo grupo de bits;
cuando X=3:
dividir las posiciones de dicha pista en dos secciones comprende dividir las posiciones de dicha pista en secciones de pista superior e inferior, y
el procedimiento 3 comprende:
identificar una de las secciones de pista superior e inferior que contenga las posiciones de al menos dos pulsos de amplitud distinta de cero;
calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sección de pista utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista;
calcular un segundo sub-índice del pulso restante de amplitud distinta de cero, utilizando el procedimiento 1 aplicado a las posiciones de dicha pista completa, y
producir un índice de posición y amplitud de los tres pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices.
23. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 22, en el que, cuando X=4:
dividir las posiciones de dicha pista en dos secciones comprende dividir las posiciones de dicha pista en secciones de pista superior e inferior, y
\newpage
el procedimiento 4 comprende:
- cuando la sección superior de pista contiene las posiciones de los cuatro pulsos de amplitud distinta de cero:
dividir además la sección de pista en sub-secciones de pista superior e inferior;
identificar una de las sub-secciones de pista superior e inferior que contenga las posiciones de al menos dos pulsos de amplitud distinta de cero;
calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero en dicha sub-sección de pista utilizando el procedimiento 2 aplicado a las posiciones de dicha sub-sección de pista;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero, utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de la sección superior de pista, y
producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección inferior de pista contiene la posición de un pulso de amplitud distinta de cero y la sección superior de pista contiene las posiciones de los otros tres pulsos de amplitud distinta de cero:
calcular un primer sub-índice de dichos pulsos de amplitud distinta de cero en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice de los tres pulsos restantes de amplitud distinta de cero en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior, y
producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud distinta de cero:
calcular un primer sub-índice de dichos dos pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice de los dos pulsos restantes distintos de cero localizados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de la sección de pista superior, y
producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud distinta de cero y la sección de pista superior contiene la posición del otro pulso de amplitud distinta de cero:
calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice del pulso restante de amplitud distinta de cero localizado en la sección de pista superior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior, y
producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de los cuatro pulsos de amplitud distinta de cero:
dividir además la sección de pista inferior en sub-secciones de pista inferior y superior;
identificar una de las sub-secciones de pista superior e inferior que contenga las posiciones de al menos dos pulsos de amplitud distinta de cero;
calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sub-sección de pista utilizando el procedimiento 2 aplicado a las posiciones de dicha sub-sección de pista;
calcular un segundo sub-índice de pulso restante de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la sección de pista inferior completa, y
producir un índice de posición y amplitud de los tres pulsos de amplitud distinta de cero mediante la combinación dichos primer y segundo sub-índices.
24. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 23, en el que el procedimiento 4 comprende:
- cuando dicha sub-sección de pista es la sub-sección superior,
calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sub-sección de pista utilizando el procedimiento 2, comprende cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sub-sección de pista superior hasta la sub-sección de pista inferior.
25. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 24, en el que cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sub-sección superior hasta la sub-sección inferior comprende enmascarar un número de bits menos significativos de los índices de posición de dichos al menos dos pulsos de amplitud distinta de cero con una máscara consistente en dicho número de unos (1's).
26. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 23, en el que, cuando X=5:
dividir las posiciones de dicha pista en dos secciones de pista comprende dividir las posiciones de dicha pista en secciones de pista superior e inferior, y
el procedimiento 5 comprende:
detectar una de las secciones inferior y superior de pista en la que estén localizadas las posiciones de al menos tres pulsos de amplitud distinta de cero;
calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en dicha sección de pista utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero, utilizando el procedimiento 2 aplicado a las posiciones de la citada pista en su totalidad, y
producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, combinando dichos primer y segundo sub-índices.
27. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 23, en el que, cuando X=5:
dividir las posiciones de dicha pista en dos secciones comprende dividir las posiciones de dicha pista en secciones de pista inferior e inferior, y
el procedimiento 5 comprende:
- cuando la sección de pista superior contiene las posiciones de los cinco pulsos de amplitud distinta de cero:
calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en dicha sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista superior;
calcular un segundo sub-índice de los dos pulsos restante de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de dicha pista, y
producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene la posición de un pulso de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros cuatro pulsos de amplitud distinta de cero:
calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista superior;
calcular un segundo sub-índice de los dos pulsos restante de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de dicha pista, y
producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud distinta de cero:
calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista superior;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de la citada pista completa, y
producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene la posición de tres pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud distinta de cero:
calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior, utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice de los dos pulsos restante de amplitud distinta de cero localizados en la sección de pista superior, utilizando el procedimiento 2 aplicado a las posiciones de la citada pista en su totalidad, y
producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de cuatro pulsos de amplitud distinta de cero y la sección de pista superior contiene la posición del otro pulso de amplitud distinta de cero:
calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de dicha pista, y
producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de los cinco pulsos de amplitud distinta de cero:
calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la citada pista completa, y
producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices.
28. Un método de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 27, en el que cuando X=6:
dividir las posiciones de dicha pista en dos secciones comprende dividir las posiciones de dicha pista en secciones inferior y superior de pista, y
el procedimiento 6 comprende:
- cuando la sección superior de pista contiene las posiciones de los seis pulsos de amplitud distinta de cero:
calcular un primer sub-índice de cinco pulsos de amplitud distinta de cero localizados en dicha sección de pista superior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista superior;
calcular un segundo sub-índice del pulso restante de amplitud distinta de cero utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior, y
producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero mediante la combinación dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene la posición de un pulso de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros cinco pulsos de amplitud distinta de cero:
calcular un primer sub-índice de los cinco pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista superior;
calcular un segundo sub-índice del pulso de amplitud distinta de cero localizado en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de dicha sección de pista inferior, y
producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros cuatro pulsos de amplitud distinta de cero:
calcular un primer sub-índice de los cuatro pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 4 aplicado a las posiciones de dicha sección de pista superior;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista inferior, y
producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero mediante la combinación de dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud distinta de cero:
calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice de los tres pulsos restantes de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior, y
producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero mediante la combinación de dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de cuatro pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud distinta de cero:
calcular un primer sub-índice de los cuatro pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 4 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista superior, y
producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero combinando dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de cinco pulsos de amplitud distinta de cero y la sección de pista superior contiene la posición del pulso restante de amplitud distinta de cero:
calcular un primer sub-índice de los cinco pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice del pulso restante de amplitud distinta de cero localizado en la sección de pista superior utilizando el procedimiento 1 aplicado a las posiciones de dicha sección de pista superior, y
producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero mediante la combinación de dichos primer y segundo sub-índices, y
- cuando la sección de pista inferior contiene las posiciones de los seis pulsos de amplitud distinta de cero:
calcular un primer subíndice de cinco pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista inferior;
calcular un segundo sub-índice del pulso restante de amplitud distinta de cero localizado en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista inferior, y
producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero mediante la combinación de dichos primer y segundo sub-índices.
29. Un dispositivo para la indexación de posiciones y amplitudes de pulso en un código de cifrado y descifrado algebraico para la codificación y decodificación eficaces de una señal de sonido, en el que:
-
el código de cifrado y descifrado comprende un conjunto de combinaciones de amplitud/posición de pulso;
-
cada combinación de amplitud/posición de pulso define un número de posiciones diferente, y comprende tanto pulsos de amplitud cero como pulsos de amplitud distinta de cero, asignados a posiciones respectivas de la combinación, y
-
cada pulso de amplitud distinta de cero asuma una de una pluralidad de amplitudes posibles, y
en el que dicho dispositivo de indexación comprende:
-
un conjunto de al menos una pista de dichas posiciones de pulso en la que la posición de cada pulso de amplitud distinta de cero de cada combinación de amplitud/posición de pulso está restringida a una pista de dicho conjunto;
-
medios para indexar, de acuerdo con un primer procedimiento, denominado en lo que sigue procedimiento 1, la posición y amplitud de un pulso de amplitud distinta de cero cuando solamente la posición de dicho pulso de amplitud distinta de cero está localizada en una pista de dicho conjunto;
-
medios para indexar, de acuerdo con un segundo procedimiento, denominado en lo que sigue procedimiento 2, las posiciones y amplitudes de dos pulsos de amplitud distinta de cero cuando solamente las posiciones de dichos dos pulsos de amplitud distinta de cero están localizados en una pista de dicho conjunto; y
-
cuando las posiciones de un número X de pulsos de amplitud distinta de cero están localizadas en una pista de dicho conjunto, en el que X\geq3:
-
medios para dividir las posiciones de dicha pista en dos secciones;
-
medios para desarrollar otro procedimiento asociado a dicho número X, denominado en lo que sigue procedimiento X, para indexar las posiciones y amplitudes de dichos X pulsos de amplitud distinta de cero,
utilizando dicho procedimiento X medios que comprenden:
-
medios para identificar en cuál de las dos secciones de pista están localizados cada uno de los pulsos de amplitud distinta de cero, y
-
medios para calcular sub-índices de dichos X pulsos de amplitud distinta de cero utilizando los procedimientos 1 y 2 en al menos una de las citadas secciones de pista y en la pista completa, y
-
medios para calcular un índice de posición y amplitud de dichos X pulsos de amplitud distinta de cero, comprendiendo los medios de cálculo de dicho índice medios para combinar dichos sub-índices.
30. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, que comprende medios para interpolar las posiciones de pulso de cada pista con las posiciones de pulso de las otras pistas.
31. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, en el que los medios para calcular un índice de posición y amplitud de dichos X pulsos de amplitud distinta de cero, comprenden:
medios para calcular al menos un índice intermedio mediante la combinación de al menos dos de dichos sub-índices, y
calcular el índice de posición y amplitud de dichos X pulsos de amplitud distinta de cero mediante la combinación de los restantes sub-índices y de dicho al menos un índice intermedio.
32. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, en el que dicho procedimiento 1 comprende medios para producir un índice de posición y amplitud que incluye un índice de posición indicativo de la posición de dicho pulso de amplitud distinta de cero en la citada pista, y un índice de amplitud indicativo de la amplitud de dicho pulso de amplitud distinta de cero.
33. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 32, en el que el índice de posición comprende un primer grupo de bits, y el índice de amplitud comprende al menos un bit.
34. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 33, en el que dicho al menos un bit del índice de amplitud es un bit de orden más alto.
35. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 33, en el que dicha pluralidad de amplitudes posibles de cada pulso de amplitud distinta de cero comprende +1 y -1, y en el que dicho al menos un bit del índice de amplitud es un bit de signo.
36. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, en el que:
dicha pluralidad de amplitudes posibles de cada pulso de amplitud distinta de cero comprende +1 y -1, y
el procedimiento 1 comprende medios para producir un índice de posición y amplitud de dicho pulso de amplitud distinta de cero que tiene la forma:
I_{1p} = p + sx2^{M}
en la que p es un índice de posición de dicho pulso de amplitud distinta de cero en dicha pista, s es un índice de signo de dicho pulso de amplitud distinta de cero, y 2^{M} es el número de posiciones en dicha pista.
37. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 36, en el que el número de posiciones en dicha pista es 16, y en el que el índice de posición y amplitud es un índice de 5 bits representado en la siguiente tabla:
Signo Posición s b_{3} b_{2} b_{1} b_{0}
38. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, en el que dicho procedimiento 2 comprende medios para producir un índice de posición y amplitud que incluye:
primer y segundo índices de posición indicativos respectivamente de las posiciones de los dos pulsos de amplitud distinta de cero en dicha pista y,
un índice de amplitud indicativo de las amplitudes de dichos dos pulsos de amplitud distinta de cero.
39. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 38, en el que, en el índice de posición y amplitud:
el índice de amplitud comprende al menos un bit;
el primer índice de posición comprende un primer grupo de bits, y
el segundo índice de posición comprende un segundo grupo de bits.
40. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 39, en el que, en el índice de posición y amplitud:
dicho al menos un bit del índice de amplitud es un bit de orden más alto;
los bits del primer grupo son bits de orden intermedio, y
los bits del segundo grupo son bits de orden inferior.
41. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 39, en el que dicha pluralidad de amplitudes posibles de cada pulso de amplitud distinta de cero comprende +1 y -1, y en el que dicho al menos un bit del índice de amplitud es un bit de signo.
\newpage
42. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 39, en el que el procedimiento 2 comprende:
medios para producir un índice de amplitud indicativo de la amplitud del pulso de amplitud distinta de cero cuya posición viene indicada por el primer índice de posición;
medios para producir un primer índice de posición indicativo de la posición más pequeña de los dos pulsos de amplitud distinta de cero en dicha pista;
medios para producir un segundo índice de posición indicativo de la posición más grande de los dos pulsos de amplitud distinta de cero en dicha pista, y
- cuando dichos dos pulsos tienen amplitudes diferentes:
medios para producir un índice de amplitud indicativo de la amplitud del pulso de amplitud distinta de cero cuya posición está indicada por el primer índice de posición;
medios para producir un primer índice de posición indicativo de la posición más grande de los dos pulsos de amplitud distinta de cero en dicha pista, y
medios para producir un segundo índice de posición indicativo de la posición más pequeña de los dos pulsos de amplitud distinta de cero en dicha pista.
43. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, en el que el procedimiento 2 comprende, cuando la posición de un primer pulso de amplitud distinta de cero con índice de posición p_{0} e índice de signo \sigma_{0}, y la posición de un segundo pulso de amplitud distinta de cero con índice de posición p_{1} e índice de signo \sigma_{1} están localizadas en una pista del conjunto, medios para producir un índice de posición y amplitud de dichos primer y segundo pulsos de amplitud distinta de cero que es de la forma:
Si \sigma_{0} = \sigma_{1} Si p_{0} \leq p_{1} I_{2p} = p_{1}+p_{0}x2^{M} + \sigma_{0}x2^{M} Si p_{0} \geq p_{1} I_{2p} = p_{0}+p_{1}x2 + \sigma_{0}x2^{M} Si \sigma_{0} \neq \sigma_{1} Si p_{0} \leq p_{1} I_{2p} = p_{0} + p_{1}x2^{M} + \sigma_{1}x2^{M} Si p_{0} \geq p_{1} I_{2p} = p_{1} + p_{0}x2^{M} + \sigma_{0}x2^{M} donde 2^{M} es el número de posiciones en dicha pista.
44. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 43, en el que el número de posiciones en dicha pista es de 16, y en el que el índice de posición y amplitud es un índice de 9 bits representado en la siguiente tabla:
Signo Posición p_{0} Posición p_{1} s b_{3} b_{3} b_{2} b_{0} b_{3} b_{2} b_{1} b_{0}
45. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, en el que, cuando X=3:
los medios para dividir las posiciones de dicha pista en dos secciones comprenden medios para dividir las posiciones de dicha pista en secciones de pista superior e inferior, y
el procedimiento 3 comprende:
medios para identificar una de las secciones de pista superior e inferior que contiene las posiciones de al menos dos pulsos de amplitud distinta de cero;
medios para calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero, localizados en dicha sección de pista, utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista;
medios para calcular un segundo sub-índice del pulso restante de amplitud distinta de cero utilizando el procedimiento 1 aplicado a las posiciones de la totalidad de dicha pista, y
medios para producir un índice de posición y amplitud de los tres pulsos de amplitud distinta de cero, comprendiendo dichos medios de producción de índice medios para combinar los citados primer y segundo sub-índices.
46. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 45, en el que:
los medios para calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sección de pista utilizando el procedimiento 2 comprenden, cuando las posiciones de dichos al menos dos pulsos de amplitud distinta de cero están localizadas en la sección superior, medios para cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sección superior hasta la sección
inferior.
47. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 48, en el que los medios para cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sección superior hasta la sección inferior comprenden medios para enmascarar un número de bits menos significativos de los índices de posición de dichos al menos dos pulsos de amplitud distinta de cero con una máscara que consiste en dicho número de unos (1's).
48. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 45, en el que los medios para calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sección de pista utilizando el procedimiento 2, comprenden medios para insertar un índice de sección que indica aquellas de dichas secciones de pista inferior y superior en la que están localizados dichos al menos dos pulsos de amplitud distinta de cero.
49. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 45, en el que el número de posiciones de dicha pista es de 16, y en el que el índice de posición y amplitud es un índice de 13 bits representado por la siguiente tabla:
\vskip1.000000\baselineskip
Signo Posición del 3º Índice 2 pulsos en la sección k pulso de Sección s_{0} p_{0} p_{1} s b_{3} b_{3} b_{2} b_{0} k s b_{2} b_{1} b_{0} b_{2} b_{1} b_{0}
\vskip1.000000\baselineskip
50. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 29, en el que:
dicho procedimiento 1 comprende medios para producir un índice de posición y amplitud que incluye un índice de posición indicativo de la posición de dicho pulso de amplitud distinta de cero en la citada pista, y un índice de amplitud indicativo de la amplitud de dicho pulso de amplitud distinta de cero, en el que el índice de posición comprende un primer grupo de bits, y el índice de posición comprende al menos un bit;
dicho procedimiento 2 comprende medios para producir un índice de posición y amplitud que incluye un primer y un segundo índice de posición indicativos respectivamente de las posiciones de los dos pulsos de amplitud distinta de cero en dicha pista, y un índice de amplitud indicativo de las amplitudes de dichos dos pulsos de amplitud distinta de cero, en el que el índice de amplitud comprende al menos un bit, el primer índice de posición comprende un primer grupo de bits, y el segundo índice de posición comprende un segundo grupo de bits;
cuando X=\cdot:
los medios para dividir las posiciones de dicha pista en dos secciones comprende medios para dividir las posiciones de dicha pista en secciones de pista inferior y superior, y
el procedimiento 3 comprende:
medios para identificar una de las secciones de pista superior e inferior que contiene las posiciones de al menos dos pulsos de amplitud distinta de cero;
medios para calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en la citada sección de pista, utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista;
medios para calcular un segundo sub-índice del pulso restante de amplitud distinta de cero utilizando el procedimiento 1 aplicado a las posiciones de la totalidad de dicha pista, y
medios para producir un índice de posición y amplitud de los tres pulsos de amplitud distinta de cero, con los medios de producción de dicho índice comprendiendo medios para combinar dichos primer y segundo sub-índices.
51. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 50, en el que, cuando X=4:
los medios para dividir las posiciones de dicha pista en dos secciones comprenden medios para dividir las posiciones de dicha pista en secciones de pista inferior y superior, y
el procedimiento 4 comprende:
- cuando la sección de pista superior contiene las posiciones de los cuatro pulsos de amplitud distinta de cero:
medios para dividir adicionalmente la sección de pista superior en sub-secciones de pista superior e inferior;
medios para identificar una de las sub-secciones de pista superior e inferior que contenga las posiciones de al menos dos pulsos de amplitud distinta de cero;
medios para calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sub-sección de pista utilizando el procedimiento 2 aplicado a las posiciones de dicha sub-sección de pista;
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero, utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de dicha sección de pista superior, y
medios para producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene la posición de un pulso de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de dicho pulso de amplitud distinta de cero localizado en la sección de pista inferior, utilizando el procedimiento 1 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice de los tres pulsos restantes de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior, y
medios para producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero, con los citados medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de dichos dos pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de la sección de pista superior, y
medios para producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud distinta de cero y la sección de pista superior contiene la posición del otro pulso de amplitud distinta de cero:
medios para calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice del pulso restante de amplitud distinta de cero localizado en la sección de pista superior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior, y
medios para producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de los cuatro pulsos de amplitud distinta de cero:
medios para dividir adicionalmente la sección de pista inferior en sub-secciones de pista inferior y superior;
medios para identificar una de las sub-secciones superior e inferior que contenga las posiciones de al menos dos pulsos de amplitud distinta de cero;
medios para calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en la citada sub-sección de pista utilizando el procedimiento 2 aplicado a las posiciones de dicha sub-sección de pista;
calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de la sección de pista inferior, y
medios para producir un índice de posición y amplitud de los cuatro pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices.
52. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 51, en el que el procedimiento 4 comprende:
- cuando dicha sub-sección de pista es la sub-sección superior,
los medios para calcular un primer sub-índice de dichos al menos dos pulsos de amplitud distinta de cero localizados en dicha sub-sección de pista utilizando el procedimiento 2, comprenden medios para cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sub-sección de pista superior hasta la sub-sección de pista inferior.
53. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 24, en el que los medios para cambiar las posiciones de dichos al menos dos pulsos de amplitud distinta de cero desde la sub-sección superior hasta la sub-sección inferior comprenden medios para enmascarar un número de bits menos significativos de los índices de posición de dichos al menos dos pulsos de amplitud distinta de cero con una máscara consistente en dicho número de unos (1's).
54. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 51, en el que, cuando X=5:
los medios para dividir las posiciones de dicha pista en dos secciones de pista comprenden medios para dividir las posiciones de dicha pista en secciones de pista superior e inferior, y
el procedimiento 5 comprende:
medios para detectar una de las secciones inferior y superior de pista en la que estén localizadas las posiciones de al menos tres pulsos de amplitud distinta de cero;
medios para calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en dicha sección de pista utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista;
\newpage
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero, utilizando el procedimiento 2 aplicado a las posiciones de la citada pista en su totalidad, y
medios para producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, con los medios de producción de dicho índice comprendiendo medios para combinar dichos primer y segundo sub-índices.
55. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 51, en el que, cuando X=5:
los medios para dividir las posiciones de dicha pista en dos secciones comprenden medios para dividir las posiciones de dicha pista en secciones de pista inferior e inferior, y
el procedimiento 5 comprende:
- cuando la sección de pista superior contiene las posiciones de los cinco pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en dicha sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista superior;
medios para calcular un segundo sub-índice de los dos pulsos restante de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de dicha pista, y
medios para producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, con los medios de producción de dicho índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene la posición de un pulso de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros cuatro pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista superior;
medios para calcular un segundo sub-índice de los dos pulsos restante de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de dicha pista, y
medios para producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, donde dichos medios e producción de índice comprenden medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista superior;
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de la citada pista completa, y
medios para producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, donde dichos medios de producción de índice comprenden medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior, utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice de los dos pulsos restante de amplitud distinta de cero localizados en la sección de pista superior, utilizando el procedimiento 2 aplicado a las posiciones de la citada pista en su totalidad, y
medios para producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de cuatro pulsos de amplitud distinta de cero y la sección de pista superior contiene la posición del otro pulso de amplitud distinta de cero:
medios para calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la totalidad de dicha pista, y
medios para producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de los cinco pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero utilizando el procedimiento 2 aplicado a las posiciones de la citada pista completa, y
medios para producir un índice de posición y amplitud de los cinco pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices.
56. Un dispositivo de indexación de posiciones y amplitudes de pulso según se ha definido en la reivindicación 55, en el que cuando X=6:
los medios para dividir las posiciones de dicha pista en dos secciones comprenden medios para dividir las posiciones de dicha pista en secciones inferior y superior de pista, y
el procedimiento 6 comprende:
- cuando la sección superior de pista contiene las posiciones de los seis pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de cinco pulsos de amplitud distinta de cero localizados en dicha sección de pista superior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista superior;
medios para calcular un segundo sub-índice del pulso restante de amplitud distinta de cero utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista superior, y
medios para producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para la combinación de dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene la posición de un pulso de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros cinco pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de los cinco pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista superior;
medios para calcular un segundo sub-índice del pulso de amplitud distinta de cero localizado en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de dicha sección de pista inferior, y
medios para producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de dos pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros cuatro pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de los cuatro pulsos de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 4 aplicado a las posiciones de dicha sección de pista superior;
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista inferior, y
medios para producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para la combinación de dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de tres pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros tres pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de dichos tres pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 3 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice de los tres pulsos restantes de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 3 aplicado a las posiciones de la sección de pista superior, y
medios para producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para la combinación de dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de cuatro pulsos de amplitud distinta de cero y la sección de pista superior contiene las posiciones de los otros dos pulsos de amplitud distinta de cero:
medios para calcular un primer sub-índice de los cuatro pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 4 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice de los dos pulsos restantes de amplitud distinta de cero localizados en la sección de pista superior utilizando el procedimiento 2 aplicado a las posiciones de dicha sección de pista superior, y
medios para producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para combinar dichos primer y segundo sub-índices;
- cuando la sección de pista inferior contiene las posiciones de cinco pulsos de amplitud distinta de cero y la sección de pista superior contiene la posición del pulso restante de amplitud distinta de cero:
medios para calcular un primer sub-índice de los cinco pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice del pulso restante de amplitud distinta de cero localizado en la sección de pista superior utilizando el procedimiento 1 aplicado a las posiciones de dicha sección de pista superior, y
medios para producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para la combinación de dichos primer y segundo sub-índices, y
- cuando la sección de pista inferior contiene las posiciones de los seis pulsos de amplitud distinta de cero:
medios para calcular un primer subíndice de cinco pulsos de amplitud distinta de cero localizados en la sección de pista inferior utilizando el procedimiento 5 aplicado a las posiciones de dicha sección de pista inferior;
medios para calcular un segundo sub-índice del pulso restante de amplitud distinta de cero localizado en la sección de pista inferior utilizando el procedimiento 1 aplicado a las posiciones de la sección de pista inferior, y
\newpage
medios para producir un índice de posición y amplitud de los seis pulsos de amplitud distinta de cero, con dichos medios de producción de índice comprendiendo medios para la combinación de dichos primer y segundo sub-índices.
57. Un sistema de comunicación celular para dar servicio a un área geográfica amplia dividida en una pluralidad de células, que comprende:
unidades transmisoras/receptoras móviles;
estaciones celulares de base situadas respectivamente en dichas células;
medios para controlar la comunicación entre las estaciones celulares de base;
un sub-sistema de comunicación inalámbrica bidireccional entre cada unidad móvil situada en una célula y la estación celular de base de dicha célula, comprendiendo dicho sub-sistema de comunicación inalámbrica bidireccional, tanto en la unidad móvil como en la estación celular de base (a) un transmisor que incluye medios para codificar una señal de palabra y medios para transmitir la señal de palabra codificada, y (b) un receptor que incluye medios para recibir una señal de palabra codificada transmitida y medios para decodificar la señal de palabra codificada recibida;
en el que dichos medios de codificación de señal de palabra comprenden medios de respuesta a la señal de palabra para producir parámetros de codificación de la señal de palabra, y en el que dichos medios de producción de parámetros de codificación de la señal de palabra comprenden medios para buscar un código de cifrado y descifrado algebraico con vistas a la producción de al menos uno de dichos parámetros de codificación de señal de palabra, y un dispositivo como el que se ha descrito en cualquiera de las reivindicaciones 29 a 56, para indexar posiciones y amplitudes de pulso en dicho código de cifrado y descifrado algebraico, constituyendo la citada señal de palabra dicha señal sonora.
58. Un elemento de red celular que comprende (a) un transmisor que incluye medios para codificar una señal de palabra y medios para transmitir la señal de palabra codificada, y (b) un receptor que incluye medios para recibir una señal de palabra codificada transmitida y medios para decodificar la señal de palabra codificada recibida;
en el que dichos medios de codificación de señal de palabra comprenden medios de respuesta a la señal de palabra para producir parámetros de codificación de señal de palabra, y en el que dichos medios de producción de parámetros de codificación de señal de palabra comprenden medios para buscar un código de cifrado y descifrado algebraico con vistas a producir al menos uno de dichos parámetros de codificación de señal de palabra, y un dispositivo como el descrito en cualquiera de las reivindicaciones 29 a 56, para indexar posiciones y amplitudes de pulso en el citado código de cifrado y descifrado algebraico, constituyendo dicha señal de palabra la citada señal sonora.
59. Una unidad transmisora/receptora móvil celular, que comprende (a) un transmisor que incluye medios para codificar una señal de palabra y medios para transmitir la señal de palabra codificada, y (b) un receptor que incluye medios para recibir una señal de palabra codificada transmitida y medios para decodificar la señal de palabra codificada recibida;
en el que dichos medios de codificación de señal de palabra comprenden medios de respuesta a la señal de palabra para producir parámetros de codificación de señal de palabra, y en el que dichos medios de producción de parámetros de codificación de señal de palabra comprenden medios para buscar un código de cifrado y descifrado algebraico con vistas a producir al menos uno de dichos parámetros de codificación de señal de palabra, y un dispositivo como se ha descrito en cualquiera de las reivindicaciones 29 a 56, para indexar posiciones y amplitudes de pulso en dicho código de cifrado y descifrado algebraico, constituyendo dicha señal de palabra la citada señal sonora.
60. Un sub-sistema de comunicación inalámbrica bidireccional para un sistema de comunicación celular, estando dicho sistema adaptado para dar servicio a un área geográfica dividida en una pluralidad de células, y que comprende:
unidades transmisoras/receptoras móviles;
estaciones celulares de base situadas respectivamente en dichas células, y
medios para controlar la comunicación entre las estaciones celulares de base;
estando dicho sub-sistema adaptado para operar entre cada unidad móvil situada en una célula y la estación celular de base de dicha célula, comprendiendo además dicho sub-sistema de comunicación inalámbrica bidireccional, tanto en la unidad móvil como en la estación celular de base:
(a)
un transmisor que incluye medios para codificar una señal de palabra y medios para transmitir la señal de palabra codificada, y
\newpage
(b)
un receptor que incluye medios para recibir una señal de palabra codificada transmitida y medios para decodificar la señal de palabra codificada recibida;
en el que dichos medios de codificación de señal de palabra comprenden medios de respuesta a la citada señal de palabra para producir parámetros de codificación de señal de palabra, y en el que dichos medios de producción de parámetros de codificación de señal de palabra comprenden medios para buscar un código de cifrado y descifrado algebraico con vistas a la producción de al menos uno de dichos parámetros de codificación de señal de palabra, y un dispositivo como el descrito en cualquiera de las reivindicaciones 29 a 56, para indexar posiciones y amplitudes de pulso en dicho código de cifrado y descifrado algebraico, constituyendo dicha señal de palabra la citada señal sonora.
61. Un codificador para codificar una señal sonora, que comprende medios de procesamiento de señal sonora en respuesta a la señal sonora para producir parámetros de codificación de señal de palabra, en el que los medios de procesamiento de señal sonora comprenden:
medios para buscar un código de cifrado y descifrado algebraico con vistas a la producción de al menos uno de los parámetros de codificación de señal de palabra, y
un dispositivo tal y como el que se ha descrito en cualquiera de las reivindicaciones 29 a 56, para indexar posiciones y amplitudes de pulso en el citado código de cifrado y descifrado algebraico.
62. Un decodificador para sintetizar una señal sonora en respuesta a parámetros de codificación de señal sonora, que comprende:
medios de procesamiento de parámetros de codificación en respuesta a dichos parámetros de codificación de señal sonora para producir una señal de excitación, en el que dichos medios de procesamiento de parámetros de codificación comprenden:
un código de cifrado y descifrado algebraico de respuesta a al menos uno de dichos parámetros de codificación de señal sonora para producir una porción de la citada señal de excitación, y
un dispositivo como el que se ha descrito en cualquiera de las reivindicaciones 29 a 56, para indexar posiciones y amplitudes de pulso en el citado código de cifrado y descifrado algebraico, y
medios de filtro de síntesis para sintetizar la citada señal sonora en respuesta a la citada señal de excitación.
ES01997803T 2000-11-22 2001-11-22 Indexacion de posiciones y señales de pulso en codigos de cifrado y descifrado algebraicos para la codificacion de señales de banda ancha. Expired - Lifetime ES2266312T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA2327041 2000-11-22
CA002327041A CA2327041A1 (en) 2000-11-22 2000-11-22 A method for indexing pulse positions and signs in algebraic codebooks for efficient coding of wideband signals

Publications (1)

Publication Number Publication Date
ES2266312T3 true ES2266312T3 (es) 2007-03-01

Family

ID=4167763

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01997803T Expired - Lifetime ES2266312T3 (es) 2000-11-22 2001-11-22 Indexacion de posiciones y señales de pulso en codigos de cifrado y descifrado algebraicos para la codificacion de señales de banda ancha.

Country Status (18)

Country Link
US (1) US7280959B2 (es)
EP (1) EP1354315B1 (es)
JP (1) JP4064236B2 (es)
KR (1) KR20020077389A (es)
CN (1) CN1205603C (es)
AT (1) ATE330310T1 (es)
AU (2) AU2002221389B2 (es)
BR (1) BR0107760A (es)
CA (1) CA2327041A1 (es)
DE (1) DE60120766T2 (es)
DK (1) DK1354315T3 (es)
ES (1) ES2266312T3 (es)
MX (1) MXPA03004513A (es)
NO (1) NO20023252L (es)
PT (1) PT1354315E (es)
RU (1) RU2003118444A (es)
WO (1) WO2002043053A1 (es)
ZA (1) ZA200205695B (es)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2388352A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for frequency-selective pitch enhancement of synthesized speed
US7249014B2 (en) * 2003-03-13 2007-07-24 Intel Corporation Apparatus, methods and articles incorporating a fast algebraic codebook search technique
CN1757060B (zh) * 2003-03-15 2012-08-15 曼德斯必德技术公司 Celp语音编码的话音指数控制
JP4047296B2 (ja) * 2004-03-12 2008-02-13 株式会社東芝 音声復号化方法及び音声復号化装置
WO2004090870A1 (ja) 2003-04-04 2004-10-21 Kabushiki Kaisha Toshiba 広帯域音声を符号化または復号化するための方法及び装置
JP4580622B2 (ja) * 2003-04-04 2010-11-17 株式会社東芝 広帯域音声符号化方法及び広帯域音声符号化装置
US7318035B2 (en) * 2003-05-08 2008-01-08 Dolby Laboratories Licensing Corporation Audio coding systems and methods using spectral component coupling and spectral component regeneration
KR100651712B1 (ko) * 2003-07-10 2006-11-30 학교법인연세대학교 광대역 음성 부호화기 및 그 방법과 광대역 음성 복호화기및 그 방법
US20050050119A1 (en) * 2003-08-26 2005-03-03 Vandanapu Naveen Kumar Method for reducing data dependency in codebook searches for multi-ALU DSP architectures
KR100656788B1 (ko) * 2004-11-26 2006-12-12 한국전자통신연구원 비트율 신축성을 갖는 코드벡터 생성 방법 및 그를 이용한 광대역 보코더
US7571094B2 (en) * 2005-09-21 2009-08-04 Texas Instruments Incorporated Circuits, processes, devices and systems for codebook search reduction in speech coders
US7602745B2 (en) * 2005-12-05 2009-10-13 Intel Corporation Multiple input, multiple output wireless communication system, associated methods and data structures
JP3981399B1 (ja) * 2006-03-10 2007-09-26 松下電器産業株式会社 固定符号帳探索装置および固定符号帳探索方法
US9454974B2 (en) * 2006-07-31 2016-09-27 Qualcomm Incorporated Systems, methods, and apparatus for gain factor limiting
KR101414341B1 (ko) * 2007-03-02 2014-07-22 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치 및 부호화 방법
EP2157573B1 (en) 2007-04-29 2014-11-26 Huawei Technologies Co., Ltd. An encoding and decoding method
CN100530357C (zh) 2007-07-11 2009-08-19 华为技术有限公司 固定码书搜索方法及搜索器
CN101765880B (zh) * 2007-07-27 2012-09-26 松下电器产业株式会社 语音编码装置和语音编码方法
CN100578619C (zh) 2007-11-05 2010-01-06 华为技术有限公司 编码方法和编码器
FR2934598B1 (fr) 2008-07-30 2012-11-30 Rhodia Poliamida E Especialidades Ltda Procede de fabrication de matrice polymerique thermoplastique
JP5223786B2 (ja) * 2009-06-10 2013-06-26 富士通株式会社 音声帯域拡張装置、音声帯域拡張方法及び音声帯域拡張用コンピュータプログラムならびに電話機
JP5002642B2 (ja) * 2009-11-09 2012-08-15 株式会社東芝 広帯域音声符号化方法及び広帯域音声符号化装置
US8280729B2 (en) * 2010-01-22 2012-10-02 Research In Motion Limited System and method for encoding and decoding pulse indices
CN102299760B (zh) 2010-06-24 2014-03-12 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN102623012B (zh) 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
US9767822B2 (en) * 2011-02-07 2017-09-19 Qualcomm Incorporated Devices for encoding and decoding a watermarked signal
MY159444A (en) 2011-02-14 2017-01-13 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E V Encoding and decoding of pulse positions of tracks of an audio signal
EP3471092B1 (en) * 2011-02-14 2020-07-08 FRAUNHOFER-GESELLSCHAFT zur Förderung der angewandten Forschung e.V. Decoding of pulse positions of tracks of an audio signal
AU2012217153B2 (en) 2011-02-14 2015-07-16 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for encoding and decoding an audio signal using an aligned look-ahead portion
BR112012029132B1 (pt) 2011-02-14 2021-10-05 Fraunhofer - Gesellschaft Zur Förderung Der Angewandten Forschung E.V Representação de sinal de informações utilizando transformada sobreposta
JP5969513B2 (ja) 2011-02-14 2016-08-17 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン 不活性相の間のノイズ合成を用いるオーディオコーデック
BR112013020587B1 (pt) 2011-02-14 2021-03-09 Fraunhofer-Gesellschaft Zur Forderung De Angewandten Forschung E.V. esquema de codificação com base em previsão linear utilizando modelagem de ruído de domínio espectral
MX2013009344A (es) 2011-02-14 2013-10-01 Fraunhofer Ges Forschung Aparato y metodo para procesar una señal de audio decodificada en un dominio espectral.
EP2661745B1 (en) 2011-02-14 2015-04-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus and method for error concealment in low-delay unified speech and audio coding (usac)
KR101525185B1 (ko) 2011-02-14 2015-06-02 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 트랜지언트 검출 및 품질 결과를 사용하여 일부분의 오디오 신호를 코딩하기 위한 장치 및 방법
EP2660811B1 (en) * 2011-02-16 2017-03-29 Nippon Telegraph And Telephone Corporation Encoding method, decoding method, encoder, decoder, program and recording medium
US9472199B2 (en) * 2011-09-28 2016-10-18 Lg Electronics Inc. Voice signal encoding method, voice signal decoding method, and apparatus using same
US9015044B2 (en) * 2012-03-05 2015-04-21 Malaspina Labs (Barbados) Inc. Formant based speech reconstruction from noisy signals
CA2979948C (en) * 2012-10-05 2019-10-22 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. An apparatus for encoding a speech signal employing acelp in the autocorrelation domain
WO2014118192A2 (en) 2013-01-29 2014-08-07 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Noise filling without side information for celp-like coders
US9728200B2 (en) * 2013-01-29 2017-08-08 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for adaptive formant sharpening in linear prediction coding
US9947335B2 (en) * 2013-04-05 2018-04-17 Dolby Laboratories Licensing Corporation Companding apparatus and method to reduce quantization noise using advanced spectral extension
US9384746B2 (en) * 2013-10-14 2016-07-05 Qualcomm Incorporated Systems and methods of energy-scaled signal processing
US10573326B2 (en) * 2017-04-05 2020-02-25 Qualcomm Incorporated Inter-channel bandwidth extension
CN110247714B (zh) * 2019-05-16 2021-06-04 天津大学 集伪装与加密于一体的仿生隐蔽水声通信编码方法及装置
CN117040663B (zh) * 2023-10-10 2023-12-22 北京海格神舟通信科技有限公司 一种用于估计宽带频谱噪底的方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754976A (en) * 1990-02-23 1998-05-19 Universite De Sherbrooke Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech
US5701392A (en) * 1990-02-23 1997-12-23 Universite De Sherbrooke Depth-first algebraic-codebook search for fast coding of speech
CA2010830C (en) 1990-02-23 1996-06-25 Jean-Pierre Adoul Dynamic codebook for efficient speech coding based on algebraic codes
US5751903A (en) * 1994-12-19 1998-05-12 Hughes Electronics Low rate multi-mode CELP codec that encodes line SPECTRAL frequencies utilizing an offset
SE504397C2 (sv) * 1995-05-03 1997-01-27 Ericsson Telefon Ab L M Metod för förstärkningskvantisering vid linjärprediktiv talkodning med kodboksexcitering
US6393391B1 (en) * 1998-04-15 2002-05-21 Nec Corporation Speech coder for high quality at low bit rates

Also Published As

Publication number Publication date
HK1050262A1 (en) 2003-06-13
CA2327041A1 (en) 2002-05-22
EP1354315A1 (en) 2003-10-22
ATE330310T1 (de) 2006-07-15
JP4064236B2 (ja) 2008-03-19
ZA200205695B (en) 2003-04-04
NO20023252L (no) 2002-09-12
DE60120766D1 (de) 2006-07-27
PT1354315E (pt) 2006-10-31
US7280959B2 (en) 2007-10-09
BR0107760A (pt) 2002-11-12
MXPA03004513A (es) 2004-12-03
JP2004514182A (ja) 2004-05-13
US20050065785A1 (en) 2005-03-24
KR20020077389A (ko) 2002-10-11
EP1354315B1 (en) 2006-06-14
DE60120766T2 (de) 2007-06-14
RU2003118444A (ru) 2004-12-10
DK1354315T3 (da) 2006-10-16
WO2002043053A1 (en) 2002-05-30
AU2002221389B2 (en) 2006-07-20
CN1205603C (zh) 2005-06-08
NO20023252D0 (no) 2002-07-04
AU2138902A (en) 2002-06-03
CN1395724A (zh) 2003-02-05

Similar Documents

Publication Publication Date Title
ES2266312T3 (es) Indexacion de posiciones y señales de pulso en codigos de cifrado y descifrado algebraicos para la codificacion de señales de banda ancha.
ES2212642T3 (es) Dispositivo de codificacion perceptual y metodo para la codificacion eficaz de señales de banda ancha.
ES2266003T3 (es) Suavizador de la ganancia en un descodificador de señal de habla y audio de banda ancha.
ES2321147T3 (es) Codificacion de habla de tasa de transmision variable.
ES2257098T3 (es) Codificacion periodica de vocales.
ES2225321T3 (es) Aparaato y procedimiento para el enmascaramiento de errores en tramas de datos.
AU2002221389A1 (en) Indexing pulse positions and signs in algebraic codebooks for coding of wideband signals
ES2217772T3 (es) Tecnicas mejoradas de recuperacion de tramas perdidas para sistemas parametricos de codificacion predictiva de voz.
ES2250197T3 (es) Codificador de voz armonico-lpc con estructura de supertrama.
ES2625895T3 (es) Método y dispositivo para la ocultación eficiente del borrado de tramas en códecs de voz basados en la predicción lineal
JP4334526B2 (ja) 可変時間/周波数分解能および時間/周波数切り替えを使用する効率的なスペクトルエンベロープ符号化
ES2207643T3 (es) Sintesis de señal de excitacion durante borrado de tramas o perdida de paquetes.
JPH10513571A (ja) スピーチ信号を高速符号化するための信号選択されたパルス振幅を備えた代数学的符号帳
EP2038883B1 (en) Vocoder and associated method that transcodes between mixed excitation linear prediction (melp) vocoders with different speech frame rates
ES2145737T5 (es) Codificador digital de voz con predictor a largo plazo mejorado por resolucion de submuestreos.
KR19980080463A (ko) 코드여기 선형예측 음성코더내에서의 벡터 양자화 방법
JPH0563000B2 (es)
JPH10214100A (ja) 音声合成方法
JPH06502930A (ja) 多重モード音声コーダのためのエラー保護
JP4460165B2 (ja) 情報信号を符号化する方法および装置
JPH028900A (ja) 音声符号化復号化方法並びに音声符号化装置及び音声復合化装置
GB2352949A (en) Speech coder for communications unit
Woodard Digital coding of speech using code excited linear prediction
Kumar et al. A 6.7 kbps vector sum excited linear prediction on TMS320C54X digital signal processor
Yao Low-delay speech coding