JP4554629B2 - Waveform generator, synthesizer for sound source - Google Patents

Waveform generator, synthesizer for sound source Download PDF

Info

Publication number
JP4554629B2
JP4554629B2 JP2007057740A JP2007057740A JP4554629B2 JP 4554629 B2 JP4554629 B2 JP 4554629B2 JP 2007057740 A JP2007057740 A JP 2007057740A JP 2007057740 A JP2007057740 A JP 2007057740A JP 4554629 B2 JP4554629 B2 JP 4554629B2
Authority
JP
Japan
Prior art keywords
value
pos
waveform
block
data
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 - Fee Related
Application number
JP2007057740A
Other languages
Japanese (ja)
Other versions
JP2008216916A (en
Inventor
憲昌 磯辺
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.)
Faith Inc
Original Assignee
Faith Inc
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
Application filed by Faith Inc filed Critical Faith Inc
Priority to JP2007057740A priority Critical patent/JP4554629B2/en
Publication of JP2008216916A publication Critical patent/JP2008216916A/en
Application granted granted Critical
Publication of JP4554629B2 publication Critical patent/JP4554629B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

本発明は、波形メモリに記憶されている波形データを読み出して所定の波形を生成する波形生成装置、およびそれを用いた音源用シンセサイザに関するものである。   The present invention relates to a waveform generation apparatus that reads waveform data stored in a waveform memory and generates a predetermined waveform, and a sound source synthesizer using the waveform generation apparatus.

一般に、音源用シンセサイザは、楽器の音をサンプリングして得られる波形データを記憶した波形メモリを備え、この波形メモリから読み出した波形データに対して所定の処理を行い、楽音を出力するように構成されている。波形データはデジタル値で表現されるが、波をデジタル表現する変調方式として代表的なものにPCM(Pulse Code Modulation)方式がある。PCM方式では、それぞれの時刻における波の高さが数値で表現される。このようなデジタル値で表現された波は、数学的手法によって波長の変換が可能である。波長変換は、楽音の音程を上げたり下げたりする場合に必要となる処理である。   Generally, a sound source synthesizer has a waveform memory that stores waveform data obtained by sampling the sound of a musical instrument, and is configured to perform predetermined processing on the waveform data read from the waveform memory and output a musical sound. Has been. Waveform data is expressed as a digital value, and a typical modulation method for digitally expressing a wave is a PCM (Pulse Code Modulation) method. In the PCM method, the wave height at each time is expressed by a numerical value. Waves represented by such digital values can be converted in wavelength by a mathematical method. Wavelength conversion is a process required when raising or lowering the pitch of a musical sound.

図10は、PCM方式により変調された波形を示す図であり、W1は波形メモリに記憶されているPCM波形、W2はW1を波長変換した場合のPCM波形である。W1の波長λに対して、W2の波長はλ×n(n倍)に変換されている。なお、ここでは便宜上、PCM波形W1,W2を連続波として描いてあるが、実際のPCM波形W1,W2はもちろん連続波ではなく、所定時間間隔でサンプリングされた離散的な信号となる。   FIG. 10 is a diagram showing a waveform modulated by the PCM method, where W1 is a PCM waveform stored in the waveform memory, and W2 is a PCM waveform when W1 is wavelength-converted. The wavelength of W2 is converted to λ × n (n times) with respect to the wavelength λ of W1. Here, for convenience, the PCM waveforms W1 and W2 are drawn as continuous waves, but the actual PCM waveforms W1 and W2 are not continuous waves, but are discrete signals sampled at predetermined time intervals.

このような波長変換を行うための代表的な手法として、もとの波形のサンプリング時間間隔を1/nにしてサンプル値を読み出す方法がある。この場合、サンプリングのタイミングによっては、サンプル値が波形メモリに存在しないことがあるので、サンプル総数が少なくなって波形の誤差が大きくなる。このため、補間処理によって仮想的なサンプル値を生成する必要がある。後掲の特許文献1には、このような補間処理の機能を備えた楽音生成装置が記載されている。   As a typical method for performing such wavelength conversion, there is a method of reading a sample value by setting the sampling time interval of the original waveform to 1 / n. In this case, depending on the sampling timing, the sample value may not exist in the waveform memory, so the total number of samples decreases and the waveform error increases. For this reason, it is necessary to generate a virtual sample value by interpolation processing. Japanese Patent Application Laid-Open No. 2004-133620 describes a musical tone generating apparatus having such an interpolation processing function.

補間の手法として最も単純なものは、波形上の2点の波の高さと時間間隔から幾何学的に2点間の補間点を求める2点直線補間である。しかし、この方法は単純な波形の場合には有効であるが、波形が複雑になると補間の精度が低下するという欠点がある。そこで、複雑な波形の場合には、もう少し高度な補間処理を行う必要がある。このための手法の1つに、Shannonのサンプリング定理を応用して、ローパスフィルタのインパルス応答による畳み込み演算を行うことにより補間を行う方法がある。しかしながら、畳み込み演算を行うには複雑な回路を必要とし、回路が大規模になってコストが増加するという問題がある。   The simplest interpolation method is two-point linear interpolation that geometrically finds an interpolation point between two points from the height and time interval of two waves on the waveform. However, this method is effective in the case of a simple waveform, but there is a drawback that the accuracy of interpolation is reduced when the waveform becomes complicated. Therefore, in the case of a complicated waveform, it is necessary to perform a slightly more advanced interpolation process. One method for this purpose is to apply Shannon's sampling theorem and perform interpolation by performing a convolution operation using an impulse response of a low-pass filter. However, there is a problem that a complicated circuit is required to perform the convolution operation, and the circuit becomes large and costs increase.

一方、波長変換の他の手法として、後掲の非特許文献1に示されているような一般調和解析を用いたピッチ変換方法がある。一般調和解析は、観測窓内で原波形から残差成分が最小となる正弦波を抽出し、残差成分に対して同様の処理を繰り返す解析方法であって、正確な周波数成分の抽出が可能であるという利点を有している。しかしながら、この方法では計算量が多くなり処理に時間がかかるという問題がある。   On the other hand, as another method of wavelength conversion, there is a pitch conversion method using general harmonic analysis as shown in Non-Patent Document 1 described later. General harmonic analysis is an analysis method that extracts the sine wave with the smallest residual component from the original waveform within the observation window, and repeats the same processing for the residual component, enabling accurate frequency component extraction. It has the advantage of being. However, this method has a problem that the amount of calculation increases and the processing takes time.

特開2003−233378号公報JP 2003-233378 A 「一般調和解析を用いた高速1bit音響信号の時間軸圧伸・ピッチ変換」(林雅尚・山崎芳男・及川靖広、日本音響学会講演論文集、603−604頁、1996年9月)"Time-axis companding and pitch conversion of high-speed 1-bit acoustic signals using general harmonic analysis" (Mayashi Hayashi, Yoshio Yamazaki, Akihiro Oikawa, Proc. Of the Acoustical Society of Japan, 603-604, September 1996)

以上のように、従来の波長変換方法では、回路が複雑になったり処理に時間を要するという問題があった。そこで、本発明は、簡単な手段によって高速で波長変換を行うことが可能な波形生成装置を提供することを目的とする。   As described above, the conventional wavelength conversion method has a problem that the circuit becomes complicated and the processing takes time. Accordingly, an object of the present invention is to provide a waveform generation apparatus capable of performing wavelength conversion at high speed by simple means.

本発明に係る波形生成装置は、波形データが記憶されている波形メモリと、その波形データに基づいて生成される波形のピッチをN/M倍に変換するためのピッチ変換部とを有する波形生成装置であって、ピッチ変換部は、補間手段と、合計値算出手段と、量子化手段とを備えている。補間手段は、波形データから得られるPDM(Pulse Density Modulation;パルス密度変調)信号を構成する各1ビット信号の間に、N−1個のゼロ値を補間する。合計値算出手段は、補間手段で補間された後のデータ列を、M個のビットを含むブロックを1単位として順次読み出し、各ブロックごとに、NおよびMの値で定まるビット位置のビット値とNの値との乗算値を合計した合計値Xを算出する。量子化手段は、当該ブロックにおける合計値Xと1つ前のブロックでの量子化で得られた余り値とを加算した合計値Yに対して、Mの値を閾値として量子化を行うことにより、各ブロックに1または0の値を割り当てて当該値を出力するとともに、当該量子化で得られた余り値を次のブロックの合計値Xに加算する。   A waveform generation device according to the present invention includes a waveform memory in which waveform data is stored, and a waveform generation unit having a pitch conversion unit for converting the pitch of a waveform generated based on the waveform data to N / M times The pitch conversion unit includes an interpolation unit, a total value calculation unit, and a quantization unit. The interpolation means interpolates N−1 zero values between each 1-bit signal constituting a PDM (Pulse Density Modulation) signal obtained from the waveform data. The total value calculation means sequentially reads out the data string after being interpolated by the interpolation means as a unit including a block including M bits, and for each block, the bit value at the bit position determined by the values of N and M A total value X obtained by summing the multiplication values with the value of N is calculated. The quantization means performs quantization using the value of M as a threshold for the total value Y obtained by adding the total value X in the block and the remainder value obtained by quantization in the previous block. , Assign a value of 1 or 0 to each block and output the value, and add the remainder value obtained by the quantization to the total value X of the next block.

このような本発明においては、PDM信号を構成する1ビット信号のピッチを補間処理によってずらし、補間後のデータ列をブロック単位で読み出してブロックごとに量子化を行うことにより、1ビット信号のままでピッチを変換することができる。このため、畳み込み演算や一般調和解析などの複雑な演算処理が不要となり、簡単な手段によってピッチ変換処理を高速に行うことができる。また、NおよびMの値を任意に設定することで、所望のピッチを有する波形を容易に得ることが可能となる。   In the present invention, the pitch of the 1-bit signal constituting the PDM signal is shifted by interpolation processing, the interpolated data string is read out in units of blocks, and quantization is performed for each block, thereby maintaining the 1-bit signal. Can change the pitch. For this reason, complicated arithmetic processing such as convolution calculation and general harmonic analysis is not required, and pitch conversion processing can be performed at high speed by simple means. Further, by arbitrarily setting the values of N and M, it is possible to easily obtain a waveform having a desired pitch.

本発明の好ましい実施形態では、量子化手段としてΔΣ変調器が用いられる。これによると、専用の演算回路を設計しなくても、既存のΔΣ変調器の機能を利用して、量子化や余り値の加算処理を容易に実現することができる。   In a preferred embodiment of the present invention, a ΔΣ modulator is used as the quantization means. According to this, even if a dedicated arithmetic circuit is not designed, it is possible to easily realize the quantization and the addition process of the remainder value by using the function of the existing ΔΣ modulator.

本発明に係る音源用シンセサイザは、上述した波形生成装置と、この波形生成装置で生成された音の波形に対して、所定の信号処理を行う信号処理部と、この信号処理部で処理された信号に基づいて音を出力する出力部とを備える。取り扱う音としては、楽音に限らず、人の声や擬似音など、あらゆる音を対象とすることができる。   A sound source synthesizer according to the present invention is processed by the above-described waveform generation device, a signal processing unit that performs predetermined signal processing on the sound waveform generated by the waveform generation device, and the signal processing unit. And an output unit that outputs sound based on the signal. The sound to be handled is not limited to a musical sound, and can be any sound such as a human voice or a pseudo sound.

本発明によれば、PDM信号の波形に対して、複雑な処理を必要とせずに高速で波長変換を行うことができる効果がある。   According to the present invention, there is an effect that wavelength conversion can be performed on a waveform of a PDM signal at high speed without requiring complicated processing.

図1は、本発明の実施形態による音源用シンセサイザの全体構成を示すブロック図である。1は、楽音の波形データを記憶した波形メモリであって、例えば、図3(a)に示すようなPCM信号の波形データが記憶されている。ここでも、便宜上PCM波形を連続波で描いてあるが、実際のPCM波形はサンプリングされた離散的な信号となる。なお、波形メモリ1に記憶される波形データは、PCM信号に限らず後述するPDM信号であってもよい。   FIG. 1 is a block diagram showing the overall configuration of a sound source synthesizer according to an embodiment of the present invention. Reference numeral 1 denotes a waveform memory that stores musical tone waveform data. For example, waveform data of a PCM signal as shown in FIG. Here too, the PCM waveform is drawn as a continuous wave for convenience, but the actual PCM waveform is a sampled discrete signal. The waveform data stored in the waveform memory 1 is not limited to the PCM signal but may be a PDM signal described later.

2は、信号変換を行うPCM/PDM変換部であって、波形メモリ1から読み出された図3(a)のPCM信号を図3(b)のような2値のPDM信号に変換する。この変換は、公知のデルタ・シグマ(ΔΣ)変調により行われる。なお、波形メモリ1に記憶されている波形データがPDM信号である場合は、このPCM/PDM変換部2は不要となる。   A PCM / PDM conversion unit 2 performs signal conversion, and converts the PCM signal of FIG. 3A read from the waveform memory 1 into a binary PDM signal as shown in FIG. This conversion is performed by a known delta-sigma (ΔΣ) modulation. When the waveform data stored in the waveform memory 1 is a PDM signal, the PCM / PDM conversion unit 2 is not necessary.

3は、本発明の要部であるピッチ変換部であって、PCM/PDM変換部2から出力されるPDM信号を構成する1ビット信号に対してピッチ変換を行う。図2は、ピッチ変換部3の構成を表した図である。実際には、ピッチ変換部3の各機能はソフトウェアにより実現されるが、ここでは便宜上ハードウェアで表してある。3aは重み付け部であって、PDM信号のピッチをN/M倍に変換する場合に、ユーザにより指定されたNの値の設定を行う。3bはゼロ値補間部であって、PDM信号の各1ビット信号間に、1ビット信号としてN−1個の0値を補間する。3cは合計値算出部であって、ゼロ値補間後のデータ列を、M個のビットを含むブロックを1単位として順次読み出し、各ブロックごとに、NとMの値で定まるビット位置のビット値とNの値との乗算値を合計した合計値を算出する。3dは量子化部であって、後述する量子化処理により各ブロックに1または0の値を割り当てて出力する。   Reference numeral 3 denotes a pitch converter which is a main part of the present invention, and performs pitch conversion on a 1-bit signal constituting a PDM signal output from the PCM / PDM converter 2. FIG. 2 is a diagram illustrating the configuration of the pitch conversion unit 3. Actually, each function of the pitch conversion unit 3 is realized by software, but here, it is represented by hardware for convenience. A weighting unit 3a sets the value of N specified by the user when the pitch of the PDM signal is converted to N / M times. Reference numeral 3b denotes a zero value interpolation unit which interpolates N−1 0 values as 1-bit signals between the 1-bit signals of the PDM signal. 3c is a total value calculation unit, which sequentially reads out the data string after the zero value interpolation as a unit including a block including M bits, and the bit value of the bit position determined by the values of N and M for each block And the sum of the product of N and the value of N is calculated. Reference numeral 3d denotes a quantization unit which assigns a value of 1 or 0 to each block and outputs the result by quantization processing described later.

上述した波形メモリ1、PCM/PDM変換部2およびピッチ変換部3によって、波形生成装置100が構成される。また、ピッチ変換部3におけるゼロ値補間部3b、合計値算出部3c、量子化部3dは、それぞれ本発明における補間手段、合計値算出手段、量子化手段の一実施形態を構成している。   The waveform generation device 100 is configured by the waveform memory 1, the PCM / PDM conversion unit 2, and the pitch conversion unit 3 described above. Further, the zero value interpolation unit 3b, the total value calculation unit 3c, and the quantization unit 3d in the pitch conversion unit 3 constitute an embodiment of the interpolation unit, the total value calculation unit, and the quantization unit in the present invention, respectively.

4は、波形生成装置100で生成された波形に対して所定の信号処理を行う信号処理部である。信号処理部4では、ピッチ変換部3でピッチ変換されたPDM信号をローパスフィルタに通すことによりPCM信号に変換する。また、信号処理部4には、PCM信号に対しカットオフ周波数を時間的に変化させて音色を制御する時変フィルタ部や、時変フィルタ部の出力に対してゲインを時間的に変化させて減衰処理を行う時変増幅部、複数の音を合成するためのミキシング処理を行うミキサなどが設けられる。   Reference numeral 4 denotes a signal processing unit that performs predetermined signal processing on the waveform generated by the waveform generation apparatus 100. The signal processor 4 converts the PDM signal pitch-converted by the pitch converter 3 into a PCM signal by passing through a low-pass filter. The signal processing unit 4 also includes a time-varying filter unit that controls the timbre by changing the cutoff frequency with respect to the PCM signal, and a gain that changes with time with respect to the output of the time-varying filter unit. A time-varying amplification unit that performs attenuation processing, a mixer that performs mixing processing for synthesizing a plurality of sounds, and the like are provided.

5は、信号処理部4で処理された信号に基づいて音を出力する出力部であって、例えば信号処理部4から出力されるPCM信号が楽音信号の場合は、図示しないスピーカから楽音を出力する。   Reference numeral 5 denotes an output unit that outputs sound based on the signal processed by the signal processing unit 4. For example, when the PCM signal output from the signal processing unit 4 is a musical sound signal, the musical sound is output from a speaker (not shown). To do.

ピッチ変換部3における量子化部3dは、デルタ・シグマ(ΔΣ)変換を行う公知のΔΣ変調器により構成することができる。図4は、ΔΣ変調器50の一例を示すブロック図である。51は入力値と出力フィードバック値との差分を演算する演算器、52は演算器51の出力と遅延回路53の出力とを加算する演算器である。遅延回路53は、入力される信号を1サンプリング期間だけ保持し、次のサンプリングで、保持した信号を出力する。演算器52と遅延回路53は積分器56を構成する。54は積分器56の出力に対してMを閾値として量子化を行う量子化回路であって、入力値がM以上であれば「1」を出力し、入力値がM未満であれば「0」を出力する。55はフィードバックゲインがτに設定されている乗算器である。   The quantization unit 3d in the pitch conversion unit 3 can be configured by a known ΔΣ modulator that performs delta-sigma (ΔΣ) conversion. FIG. 4 is a block diagram illustrating an example of the ΔΣ modulator 50. Reference numeral 51 denotes an arithmetic unit that calculates the difference between the input value and the output feedback value, and reference numeral 52 denotes an arithmetic unit that adds the output of the arithmetic unit 51 and the output of the delay circuit 53. The delay circuit 53 holds the input signal for one sampling period, and outputs the held signal in the next sampling. The arithmetic unit 52 and the delay circuit 53 constitute an integrator 56. Reference numeral 54 denotes a quantization circuit that performs quantization on the output of the integrator 56 using M as a threshold. If the input value is M or more, “1” is output, and if the input value is less than M, “0” is output. Is output. A multiplier 55 has a feedback gain set to τ.

図5は、本発明によるピッチ変換の原理を示した図である。図5を参照して、まず本発明の原理を説明する。   FIG. 5 is a diagram showing the principle of pitch conversion according to the present invention. First, the principle of the present invention will be described with reference to FIG.

図5の(a)は、波形メモリ1に記憶されている元のPCM信号の波形(波長λ1)と、これに対応するPDM信号の波形を示している。(b)は、ピッチ変換した後のPCM信号(波長λ2)と、これに対応するPDM信号の波形を示している。なお、図ではPDM信号の波形は簡略化して描かれている。(c)は、(a)のPCM信号の破線で囲んだ部分の拡大図であり、Q1〜Q6は、各サンプリング時点でのサンプル値を表している。点線は、サンプリング区間をM分割(例えばM=5)した場合の各時点における仮想サンプル値であって、実データではない。(d)は、(c)のPCM信号に対応するPDM信号のビット値を示しており、実線が1、破線が0を表している。便宜上、各ビット値はサンプル値Q1〜Q6と同じタイミングで図示してある。網掛で示した数字は、各サンプリング区間におけるビット値であり、実線と破線で示されるビット値と一致している。   FIG. 5A shows the waveform (wavelength λ1) of the original PCM signal stored in the waveform memory 1 and the waveform of the corresponding PDM signal. (B) shows the waveform of the PCM signal (wavelength λ2) after the pitch conversion and the corresponding PDM signal. In the figure, the waveform of the PDM signal is simplified. (C) is an enlarged view of a portion surrounded by a broken line of the PCM signal of (a), and Q1 to Q6 represent sample values at each sampling time point. A dotted line is a virtual sample value at each time point when the sampling interval is divided into M (for example, M = 5), and is not actual data. (D) has shown the bit value of the PDM signal corresponding to the PCM signal of (c), and the solid line represents 1 and the broken line represents 0. For convenience, each bit value is shown at the same timing as the sample values Q1 to Q6. The numbers shown by shading are the bit values in each sampling section, and coincide with the bit values shown by the solid line and the broken line.

図5(a)の波形から図5(b)の波形を得るには、まず、PDM信号を構成する各1ビット信号の間にゼロ値を補間する。今、波形のピッチをN/M倍(λ2=λ1×N/M)に変換する場合は、元のPDM信号の1ビット信号間に、N−1個の「0」を補間する。例えば、N=9とすると、(f)で示したように、1ビット信号間に8個の「0」が挿入される。この結果、(d)における実線と破線のビット値が、(f)のようにずれてゆく。但し、各ビット間の間隔は一定(N=9)である。   To obtain the waveform of FIG. 5B from the waveform of FIG. 5A, first, a zero value is interpolated between each 1-bit signal constituting the PDM signal. If the waveform pitch is converted to N / M times (λ2 = λ1 × N / M), N−1 “0” s are interpolated between 1-bit signals of the original PDM signal. For example, if N = 9, as shown in (f), eight “0” s are inserted between 1-bit signals. As a result, the bit values of the solid line and the broken line in (d) shift as shown in (f). However, the interval between each bit is constant (N = 9).

次に、図5(f)において、各サンプリング区間のデータ列(補間ゼロ値を含むM個のデータ)を1ブロックとして、ブロック単位で順次データ列を読み出す。そして、各ブロックに含まれる実線と破線のビット値(1または0)とNの値を用いて後述する演算を行い、その演算結果に基づき各ブロックに1または0を割り当てる。網掛で示した数字が、この割り当てられたビット値を表している。ピッチを伸長する場合は、同じサンプリング時点でのPCM信号の波の高さが小さくなるので、これに応じてPDM信号のビット値も元のPDM信号のビット値から変化する。この変化後のビット値から構成されるPDM信号に対応したPCM信号は図5(e)のようになり、これは(b)に示したPCM信号の破線で囲んだ部分に該当する。したがって、(f)で得られた網掛のデータ列からなるPDM信号をローパスフィルタに通してPCM信号に戻すことによって、波長がN/M倍に変換された(b)のPCM信号を得ることができる。   Next, in FIG. 5F, the data string in each sampling interval (M data including the interpolation zero value) is taken as one block, and the data string is sequentially read out in units of blocks. Then, the calculation described later is performed using the bit values (1 or 0) of the solid line and the broken line included in each block and the value of N, and 1 or 0 is assigned to each block based on the calculation result. The numbers indicated by shading represent the assigned bit values. When extending the pitch, the wave height of the PCM signal at the same sampling time is reduced, and accordingly, the bit value of the PDM signal also changes from the bit value of the original PDM signal. The PCM signal corresponding to the PDM signal composed of the bit values after the change is as shown in FIG. 5E, which corresponds to the portion surrounded by the broken line of the PCM signal shown in FIG. Therefore, the PCM signal of (b) whose wavelength is converted to N / M times can be obtained by passing the PDM signal composed of the shaded data sequence obtained in (f) through the low-pass filter and returning it to the PCM signal. it can.

図6は、ゼロ値補間の様子を詳細に示した図である。ここでは、M=8、N=9として、ピッチをN/M=9/8倍に伸長する場合の例を挙げている。(a)はもとのPDM信号を構成するビット信号のデータ列、(b)は(a)のデータ列の各ビット信号間にN−2=7個の「0」を補間したデータ列、(c)は(a)のデータ列の各ビット信号間にN−1=8個の「0」を補間したデータ列を示している。(b)は参考例として挙げたもので、本発明ではこのデータ列は用いない。また、(c)のデータ列に補間された「0」は、PDM信号のビット信号(網掛部分)を所定ビットずらすためだけに挿入されたものであり、後述する演算処理には用いられない。図5でも述べたように、補間後の(c)のデータ列は、サンプリング区間に相当するM個(=8個)のビットを含むブロックを1ブロックとして、ブロック単位で読み出される。   FIG. 6 is a diagram showing in detail the state of zero value interpolation. Here, an example is given in which M = 8 and N = 9, and the pitch is extended to N / M = 9/8 times. (A) is a data string of bit signals constituting the original PDM signal, (b) is a data string obtained by interpolating N−2 = 7 “0” s between the bit signals of the data string of (a), (C) shows a data string obtained by interpolating N−1 = 8 “0” s between the bit signals of the data string of (a). (B) is given as a reference example, and this data string is not used in the present invention. Further, “0” interpolated in the data string of (c) is inserted only to shift the bit signal (shaded portion) of the PDM signal by a predetermined bit, and is not used in the arithmetic processing described later. As described in FIG. 5, the interpolated data sequence (c) is read in block units, with one block including M (= 8) bits corresponding to the sampling period.

次に、上述した原理に基づく本発明のピッチ変換方法の詳細について、具体例に即して説明する。図7は、図1のピッチ変換部3におけるピッチ変換の手順を示したフローチャートである。図8はピッチを伸ばす場合のデータ演算の例を示した図、図9はピッチを縮める場合のデータ演算の例を示した図である。   Next, details of the pitch conversion method of the present invention based on the above-described principle will be described with reference to specific examples. FIG. 7 is a flowchart showing a pitch conversion procedure in the pitch converter 3 of FIG. FIG. 8 is a diagram showing an example of data calculation when the pitch is extended, and FIG. 9 is a diagram showing an example of data calculation when the pitch is reduced.

最初に、ピッチを伸ばす場合につき、図8(A)を例に挙げてピッチ変換手順を説明する。図8(A)において、(a)は第1ブロック、(b)は第2ブロック、(c)は第3ブロック、(d)は第4ブロックを表している。   First, the pitch conversion procedure will be described with reference to FIG. 8A, (a) represents the first block, (b) represents the second block, (c) represents the third block, and (d) represents the fourth block.

図7のステップS1では、変数の初期化を行う。変数としては、ピッチ変換部3に入力される入力値in、ピッチ変換部3から出力される出力値out、図8の各ブロック内におけるビット位置を指定するカーソル値pos、および各ブロックごとに算出される後述の合計値sumがある。初期化により、これらの変数は全て0となる。   In step S1 of FIG. 7, the variables are initialized. As variables, an input value in input to the pitch conversion unit 3, an output value out output from the pitch conversion unit 3, a cursor value pos specifying a bit position in each block in FIG. 8, and a calculation for each block There is a sum value sum to be described later. By initialization, all these variables become zero.

ステップS2では、カーソル値posがM以上か否かが判定される。図8(A)は、ピッチを9/8倍にする場合であり、NとMの値はそれぞれN=9、M=8に設定される。最初はpos=0であるから、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第1ブロック(a)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値posにN(=9)を加算する。これにより、第1ブロック(a)におけるposは0+9=9となる。次に、ステップS11で、読み込んだ第1ブロック(a)の先頭(pos=0)のビット値「1」とN(=9)を乗算し、これを合計値sum(=0)に加算して、合計値sumを更新する。これにより、第1ブロック(a)におけるsumは、0+1×9=9となる。その後、ステップS7で後続のデータの有無をみて、データがあれば(ステップS7:YES)ステップS2へ戻り、データがなければ(ステップS7:NO)処理を終了する。   In step S2, it is determined whether or not the cursor value pos is greater than or equal to M. FIG. 8A shows a case where the pitch is 9/8 times, and the values of N and M are set to N = 9 and M = 8, respectively. Since pos = 0 initially, pos <M (step S2: NO), the process proceeds to step S9, and the data of the first block (a) is read into the input value in. In step S10, N (= 9) is added to the cursor value pos. Thereby, pos in the first block (a) becomes 0 + 9 = 9. Next, in step S11, the bit value “1” at the head (pos = 0) of the read first block (a) is multiplied by N (= 9), and this is added to the total value sum (= 0). The total value sum is updated. Thereby, sum in the first block (a) becomes 0 + 1 × 9 = 9. Thereafter, in step S7, the presence or absence of subsequent data is checked. If there is data (step S7: YES), the process returns to step S2, and if there is no data (step S7: NO), the process is terminated.

今の場合は、後続データがあるのでステップS2へ戻り、再びposがM(=8)以上か否かが判定される。上述したように、この時点ではpos=9となっているので、pos≧Mとなり(ステップS2:YES)、ステップS3へ移行する。ステップS3では、pos(=9)からM(=8)を減算して、posの値を更新する。これにより、pos=1となる。続いて、ステップS4へ進み、合計値sumがM(=8)以上か否かが判定される。上述したように、この時点ではsum=9となっているので、sum≧Mとなり(ステップS4:YES)、ステップS5へ移行する。ステップS5では、出力値outに「1」を書き込むとともに、sum(=9)からM(=8)を減算して、合計値を更新する。これにより、sum=1となる。この値は本発明における余り値に相当している。余り値は、次のブロックへ繰り越されて加算される。また、ステップS4、S5、S8の処理は、本発明における量子化に相当している。続くステップS6では、出力値out(=1)を出力する。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In this case, since there is subsequent data, the process returns to step S2 to determine again whether pos is equal to or greater than M (= 8). As described above, pos = 9 at this time, so pos ≧ M (step S2: YES), and the process proceeds to step S3. In step S3, M (= 8) is subtracted from pos (= 9) to update the value of pos. As a result, pos = 1. Then, it progresses to step S4 and it is determined whether the total value sum is more than M (= 8). As described above, sum = 9 at this time, so sum ≧ M (step S4: YES), and the process proceeds to step S5. In step S5, “1” is written to the output value out, and M (= 8) is subtracted from sum (= 9) to update the total value. As a result, sum = 1. This value corresponds to the remainder value in the present invention. The remainder value is carried over to the next block and added. Further, the processes in steps S4, S5, and S8 correspond to quantization in the present invention. In the subsequent step S6, the output value out (= 1) is output. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=1となっているので、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第2ブロック(b)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値pos(=1)にN(=9)を加算する。これにより、第2ブロック(b)におけるposは1+9=10となる。次に、ステップS11で、読み込んだ第2ブロック(b)の先頭から2ビット目(pos=1)のビット値「0」とN(=9)を乗算し、これを合計値sum(=1)に加算して、合計値sumを更新する。これにより、第2ブロック(b)におけるsumは、1+0×9=1となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 1 at this point, pos <M (step S2: NO), and the process proceeds to step S9. Then, the data of the second block (b) is read into the input value in. Subsequently, in step S10, N (= 9) is added to the cursor value pos (= 1). Thereby, pos in the second block (b) becomes 1 + 9 = 10. Next, in step S11, the bit value “0” of the second bit (pos = 1) from the top of the read second block (b) is multiplied by N (= 9), and this is summed (sum = 1). ) To update the total value sum. Thereby, sum in the second block (b) becomes 1 + 0 × 9 = 1. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=10となっているので、pos≧Mとなり(ステップS2:YES)、ステップS3へ移行する。ステップS3では、pos(=10)からM(=8)を減算して、posの値を更新する。これにより、pos=2となる。続いて、ステップS4へ進み、合計値sumがM(=8)以上か否かが判定される。この時点ではsum=1となっているので、sum<Mとなり(ステップS4:NO)、ステップS8へ移行する。ステップS8では、出力値outに「0」を書き込み、続くステップS6で、出力値out(=0)を出力する。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). At this time, pos = 10, so pos ≧ M (step S2: YES), and the process proceeds to step S3. . In step S3, M (= 8) is subtracted from pos (= 10) to update the value of pos. As a result, pos = 2. Then, it progresses to step S4 and it is determined whether the total value sum is more than M (= 8). Since sum = 1 at this time, sum <M (step S4: NO), and the process proceeds to step S8. In step S8, “0” is written in the output value out, and in step S6, the output value out (= 0) is output. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=2となっているので、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第3ブロック(c)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値pos(=2)にN(=9)を加算する。これにより、第3ブロック(c)におけるposは2+9=11となる。次に、ステップS11で、読み込んだ第3ブロック(c)の先頭から3ビット目(pos=2)のビット値「1」とN(=9)を乗算し、これを合計値sum(=1)に加算して、合計値sumを更新する。これにより、第3ブロック(c)におけるsumは、1+1×9=10となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is greater than or equal to M (= 8). Since pos = 2 at this time, pos <M (step S2: NO), and the process proceeds to step S9. Then, the data of the third block (c) is read into the input value in. In step S10, N (= 9) is added to the cursor value pos (= 2). Thereby, pos in the third block (c) becomes 2 + 9 = 11. Next, in step S11, the bit value “1” of the third bit (pos = 2) from the top of the read third block (c) is multiplied by N (= 9), and this is summed (sum = 1). ) To update the total value sum. Thereby, the sum in the third block (c) becomes 1 + 1 × 9 = 10. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=11となっているので、pos≧Mとなり(ステップS2:YES)、ステップS3へ移行する。ステップS3では、pos(=11)からM(=8)を減算して、posの値を更新する。これにより、pos=3となる。続いて、ステップS4へ進み、合計値sumがM(=8)以上か否かが判定される。この時点ではsum=10となっているので、sum≧Mとなり(ステップS4:YES)、ステップS5へ移行する。ステップS5では、出力値outに「1」を書き込むとともに、sum(=10)からM(=8)を減算して、合計値を更新する。これにより、sum=2となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is greater than or equal to M (= 8). Since pos = 11 at this time, pos ≧ M (step S2: YES), and the process proceeds to step S3. . In step S3, M (= 8) is subtracted from pos (= 11) to update the value of pos. As a result, pos = 3. Then, it progresses to step S4 and it is determined whether the total value sum is more than M (= 8). Since sum = 10 at this time, it becomes sum ≧ M (step S4: YES), and the process proceeds to step S5. In step S5, “1” is written to the output value out, and M (= 8) is subtracted from sum (= 10) to update the total value. As a result, sum = 2. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=3となっているので、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第4ブロック(d)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値pos(=3)にN(=9)を加算する。これにより、第4ブロック(d)におけるposは3+9=12となる。次に、ステップS11で、読み込んだ第4ブロック(d)の先頭から4ビット目(pos=3)のビット値「0」とN(=9)を乗算し、これを合計値sum(=2)に加算して、合計値sumを更新する。これにより、第4ブロック(d)におけるsumは、2+0×9=2となる。その後、ステップS7で後続のデータの有無をみて、データがあれば(ステップS7:YES)ステップS2へ戻り、データがなければ(ステップS7:NO)処理を終了する。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 3 at this point, pos <M (step S2: NO), and the process proceeds to step S9. Then, the data of the fourth block (d) is read into the input value in. Subsequently, in step S10, N (= 9) is added to the cursor value pos (= 3). As a result, pos in the fourth block (d) is 3 + 9 = 12. Next, in step S11, the bit value “0” of the fourth bit (pos = 3) from the top of the read fourth block (d) is multiplied by N (= 9), and this is summed sum (= 2). ) To update the total value sum. As a result, the sum in the fourth block (d) is 2 + 0 × 9 = 2. Thereafter, in step S7, the presence or absence of subsequent data is checked. If there is data (step S7: YES), the process returns to step S2, and if there is no data (step S7: NO), the process is terminated.

以上述べたような要領で、後続する第5ブロック以降の各ブロックについても同様の処理を行う。この結果、ピッチ変換部3からは、PDM信号を構成する「1010・・・」のビット信号が出力される。そして、このPDM信号をローパスフィルタに通すことにより、ピッチ(波長)が9/8倍に変換されたPCM信号が得られる。   In the manner as described above, the same processing is performed for the subsequent blocks after the fifth block. As a result, a bit signal “1010...” Constituting the PDM signal is output from the pitch conversion unit 3. Then, by passing this PDM signal through a low-pass filter, a PCM signal having a pitch (wavelength) converted to 9/8 times is obtained.

次に、図8(B)の例について説明する。図8(B)においても、(a)〜(d)は第1ブロック〜第4ブロックを表している。   Next, an example of FIG. 8B will be described. In FIG. 8B as well, (a) to (d) represent the first block to the fourth block.

最初、図7のステップS1で変数の初期化を行う。次のステップS2では、カーソル値posがM以上か否かが判定される。図8(B)はピッチを17/8倍にする場合であり、NとMの値はそれぞれN=17、M=8に設定される。最初はpos=0であるから、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第1ブロック(a)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値posにN(=17)を加算する。これにより、第1ブロック(a)におけるposは0+17=17となる。次に、ステップS11で、読み込んだ第1ブロック(a)の先頭(pos=0)のビット値「1」とN(=17)を乗算し、これを合計値sum(=0)に加算して、合計値sumを更新する。これにより、第1ブロック(a)におけるsumは、0+1×17=17となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   Initially, the variables are initialized in step S1 of FIG. In the next step S2, it is determined whether or not the cursor value pos is greater than or equal to M. FIG. 8B shows a case where the pitch is 17/8 times, and the values of N and M are set to N = 17 and M = 8, respectively. Since pos = 0 initially, pos <M (step S2: NO), the process proceeds to step S9, and the data of the first block (a) is read into the input value in. In step S10, N (= 17) is added to the cursor value pos. Thereby, pos in the first block (a) becomes 0 + 17 = 17. Next, in step S11, the bit value “1” at the head (pos = 0) of the read first block (a) is multiplied by N (= 17), and this is added to the total value sum (= 0). The total value sum is updated. Thereby, the sum in the first block (a) becomes 0 + 1 × 17 = 17. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2では、再びposがM(=8)以上か否かが判定され、この時点ではpos=17となっているので、pos≧Mとなり(ステップS2:YES)、ステップS3へ移行する。ステップS3では、pos(=17)からM(=8)を減算して、posの値を更新する。これにより、pos=9となる。続いて、ステップS4へ進み、合計値sumがM(=8)以上か否かが判定される。この時点ではsum=17となっているので、sum≧Mとなり(ステップS4:YES)、ステップS5へ移行する。ステップS5では、出力値outに「1」を書き込むとともに、sum(=17)からM(=8)を減算して、合計値を更新する。これにより、sum=9となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 17 at this time, pos ≧ M (step S2: YES), and the process proceeds to step S3. In step S3, M (= 8) is subtracted from pos (= 17) to update the value of pos. As a result, pos = 9. Then, it progresses to step S4 and it is determined whether the total value sum is more than M (= 8). Since sum = 17 at this time, sum ≧ M (step S4: YES), and the process proceeds to step S5. In step S5, “1” is written to the output value out, and M (= 8) is subtracted from sum (= 17) to update the total value. As a result, sum = 9. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=9となっているので、pos≧Mであり(ステップS2:YES)、ステップS3へ移行する。ステップS3では、pos(=9)からM(=8)を減算して、posの値を更新する。これにより、pos=1となる。続いて、ステップS4へ進み、合計値sumがM(=8)以上か否かが判定される。この時点ではsum=9となっているので、sum≧Mとなり(ステップS4:YES)、ステップS5へ移行する。ステップS5では、出力値outに「1」を書き込む(図7のフローチャートでは、pos≧M(=8)になれば、その後pos<M(=8)になるまでoutの出力を続けることになる)。また、sum(=9)からM(=8)を減算して、合計値を更新する。これにより、sum=1となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 9 at this time, pos ≧ M (step S2: YES), and the process proceeds to step S3. To do. In step S3, M (= 8) is subtracted from pos (= 9) to update the value of pos. As a result, pos = 1. Then, it progresses to step S4 and it is determined whether the total value sum is more than M (= 8). Since sum = 9 at this time, sum ≧ M (step S4: YES), and the process proceeds to step S5. In step S5, “1” is written in the output value out (in the flowchart of FIG. 7, if pos ≧ M (= 8), then the output of out is continued until pos <M (= 8). ). Further, M (= 8) is subtracted from sum (= 9) to update the total value. As a result, sum = 1. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=1となっているので、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第3ブロック(c)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値pos(=1)にN(=17)を加算する。これにより、第3ブロック(c)におけるposは1+17=18となる。次に、ステップS11で、読み込んだ第3ブロック(c)の先頭から2ビット目(pos=1)のビット値「0」とN(=17)を乗算し、これを合計値sum(=1)に加算して、合計値sumを更新する。これにより、第3ブロック(c)におけるsumは、1+0×17=1となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 1 at this point, pos <M (step S2: NO), and the process proceeds to step S9. Then, the data of the third block (c) is read into the input value in. Subsequently, N (= 17) is added to the cursor value pos (= 1) in step S10. Thereby, pos in the third block (c) becomes 1 + 17 = 18. Next, in step S11, the bit value “0” of the second bit (pos = 1) from the top of the read third block (c) is multiplied by N (= 17), and this is summed (sum = 1). ) To update the total value sum. As a result, the sum in the third block (c) is 1 + 0 × 17 = 1. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

以上述べたような要領で、以降の各ブロックについても同様の処理を行う。この結果、ピッチ変換部3からは、PDM信号を構成する「1100・・・」のビット信号が出力される。そして、このPDM信号をローパスフィルタに通すことにより、ピッチ(波長)が17/8倍に変換されたPCM信号が得られる。   The same processing is performed for the subsequent blocks in the manner described above. As a result, a bit signal “1100...” Constituting the PDM signal is output from the pitch converter 3. Then, by passing this PDM signal through a low-pass filter, a PCM signal whose pitch (wavelength) is converted to 17/8 times is obtained.

次に、ピッチを縮める場合につき、図9(A)を例に挙げてピッチ変換手順を説明する。図9(A)においても、(a)〜(d)は第1ブロック〜第4ブロックを表している。   Next, the pitch conversion procedure will be described with reference to FIG. 9A also, (a) to (d) represent the first block to the fourth block.

最初、図7のステップS1で変数の初期化を行う。次のステップS2では、カーソル値posがM以上か否かが判定される。図9(A)はピッチを7/8倍にする場合であり、NとMの値はそれぞれN=7、M=8に設定される。最初はpos=0であるから、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第1ブロック(a)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値posにN(=7)を加算する。これにより、posは0+7=7となる。次に、ステップS11で、読み込んだ第1ブロック(a)の先頭(pos=0)のビット値「1」とN(=7)を乗算し、これを合計値sum(=0)に加算して、合計値sumを更新する。これにより、sumは0+1×7=7となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   Initially, the variables are initialized in step S1 of FIG. In the next step S2, it is determined whether or not the cursor value pos is greater than or equal to M. FIG. 9A shows a case where the pitch is 7/8 times, and the values of N and M are set to N = 7 and M = 8, respectively. Since pos = 0 initially, pos <M (step S2: NO), the process proceeds to step S9, and the data of the first block (a) is read into the input value in. In step S10, N (= 7) is added to the cursor value pos. As a result, pos becomes 0 + 7 = 7. Next, in step S11, the bit value “1” at the head (pos = 0) of the read first block (a) is multiplied by N (= 7), and this is added to the total value sum (= 0). The total value sum is updated. Thereby, sum becomes 0 + 1 × 7 = 7. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2では、再びposがM(=8)以上か否かが判定され、この時点ではpos=7なので、pos<Mとなり(ステップS2:NO)、ステップS9へ移行して再び第1ブロック(a)のデータを入力値inに読み込む(図7のフローチャートでは、pos≧M(=8)になるまでは、データの読み込みを続けることになる)。そして、ステップS10でカーソル値posにN(=7)を加算する。これにより、第1ブロック(a)におけるposは7+7=14となる。次に、ステップS11で、読み込んだ第1ブロック(a)の先頭から8ビット目(pos=7)のビット値「0」とN(=7)を乗算し、これを合計値sum(=7)に加算して、合計値sumを更新する。これにより、第1ブロック(a)におけるsumは7+0=7となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 7 at this time, pos <M (step S2: NO), the process proceeds to step S9 and the first block ( The data of a) is read into the input value in (in the flowchart of FIG. 7, the data reading is continued until pos ≧ M (= 8)). In step S10, N (= 7) is added to the cursor value pos. Thereby, pos in the first block (a) becomes 7 + 7 = 14. Next, in step S11, the bit value “0” of the eighth bit (pos = 7) from the top of the read first block (a) is multiplied by N (= 7), and this is summed (sum == 7). ) To update the total value sum. As a result, sum in the first block (a) becomes 7 + 0 = 7. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=14となっているので、pos≧Mであり(ステップS2:YES)、ステップS3へ移行する。ステップS3では、pos(=14)からM(=8)を減算して、posの値を更新する。これにより、pos=6となる。続いて、ステップS4へ進み、合計値sumがM(=8)以上か否かが判定される。この時点ではsum=7となっているので、sum<Mとなり(ステップS4:YES)、ステップS8へ移行する。ステップS8では、出力値outに「0」を書き込み、続くステップS6で、出力値out(=0)を出力する。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is greater than or equal to M (= 8). Since pos = 14 at this time, pos ≧ M (step S2: YES), and the process proceeds to step S3. To do. In step S3, M (= 8) is subtracted from pos (= 14) to update the value of pos. As a result, pos = 6. Then, it progresses to step S4 and it is determined whether the total value sum is more than M (= 8). Since sum = 7 at this point, sum <M (step S4: YES), and the process proceeds to step S8. In step S8, “0” is written in the output value out, and in step S6, the output value out (= 0) is output. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=6となっているので、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第2ブロック(b)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値pos(=6)にN(=7)を加算する。これにより、第2ブロック(b)におけるposは6+7=13となる。次に、ステップS11で、読み込んだ第2ブロック(b)の先頭から7ビット目(pos=6)のビット値「1」とN(=7)を乗算し、これを合計値sum(=7)に加算して、合計値sumを更新する。これにより、第2ブロック(b)におけるsumは、7+1×7=14となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 6 at this time, pos <M (step S2: NO), and the process proceeds to step S9. Then, the data of the second block (b) is read into the input value in. Subsequently, in step S10, N (= 7) is added to the cursor value pos (= 6). Thereby, pos in the second block (b) becomes 6 + 7 = 13. Next, in step S11, the bit value “1” of the seventh bit (pos = 6) from the top of the read second block (b) is multiplied by N (= 7), and this is summed (sum == 7). ) To update the total value sum. As a result, the sum in the second block (b) becomes 7 + 1 × 7 = 14. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=13となっているので、pos≧Mとなり(ステップS2:YES)、ステップS3へ移行する。ステップS3では、pos(=13)からM(=8)を減算して、posの値を更新する。これにより、pos=5となる。続いて、ステップS4へ進み、合計値sumがM(=8)以上か否かが判定される。この時点ではsum=14となっているので、sum≧Mとなり(ステップS4:YES)、ステップS5へ移行する。ステップS5では、出力値outに「1」を書き込むとともに、sum(=14)からM(=8)を減算して、合計値を更新する。これにより、sum=6となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). At this time, pos = 13, so pos ≧ M (step S2: YES), and the process proceeds to step S3. . In step S3, M (= 8) is subtracted from pos (= 13) to update the value of pos. As a result, pos = 5. Then, it progresses to step S4 and it is determined whether the total value sum is more than M (= 8). At this time, sum = 14, so sum ≧ M (step S4: YES), and the process proceeds to step S5. In step S5, “1” is written to the output value out, and M (= 8) is subtracted from sum (= 14) to update the total value. As a result, sum = 6. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=5となっているので、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第3ブロック(c)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値pos(=5)にN(=7)を加算する。これにより、第3ブロック(c)におけるposは5+7=12となる。次に、ステップS11で、読み込んだ第3ブロック(c)の先頭から6ビット目(pos=5)のビット値「0」とN(=7)を乗算し、これを合計値sum(=6)に加算して、合計値sumを更新する。これにより、第3ブロック(c)におけるsumは、6+0×7=6となる。その後、ステップS7で後続のデータの有無をみて、データがあるので(ステップS7:YES)、ステップS2へ戻る。   In step S2, it is determined again whether or not pos is equal to or greater than M (= 8). Since pos = 5 at this time, pos <M (step S2: NO), and the process proceeds to step S9. Then, the data of the third block (c) is read into the input value in. Subsequently, in step S10, N (= 7) is added to the cursor value pos (= 5). Thereby, pos in the third block (c) becomes 5 + 7 = 12. Next, in step S11, the bit value “0” of the sixth bit (pos = 5) from the top of the read third block (c) is multiplied by N (= 7), and this is summed (sum == 6). ) To update the total value sum. Thereby, the sum in the third block (c) is 6 + 0 × 7 = 6. Thereafter, the presence or absence of subsequent data is checked in step S7, and there is data (step S7: YES), the process returns to step S2.

ステップS2で、再びposがM(=8)以上か否かが判定されるが、この時点ではpos=4となっているので、pos<Mであり(ステップS2:NO)、ステップS9へ移行して第4ブロック(d)のデータを入力値inに読み込む。続いて、ステップS10でカーソル値pos(=4)にN(=7)を加算する。これにより、第4ブロック(d)におけるposは4+7=11となる。次に、ステップS11で、読み込んだ第4ブロック(d)の先頭から5ビット目(pos=4)のビット値「1」とN(=7)を乗算し、これを合計値sum(=6)に加算して、合計値sumを更新する。これにより、第4ブロック(d)におけるsumは、6+1×7=13となる。その後、ステップS7で後続のデータの有無をみて、データがあれば(ステップS7:YES)ステップS2へ戻り、データがなければ(ステップS7:NO)処理を終了する。   In step S2, it is determined again whether or not pos is greater than or equal to M (= 8). At this time, pos = 4, so pos <M (step S2: NO), and the process proceeds to step S9. Then, the data of the fourth block (d) is read into the input value in. Subsequently, in step S10, N (= 7) is added to the cursor value pos (= 4). Thereby, pos in the fourth block (d) is 4 + 7 = 11. Next, in step S11, the bit value “1” of the fifth bit (pos = 4) from the head of the read fourth block (d) is multiplied by N (= 7), and this is summed (sum == 6). ) To update the total value sum. As a result, the sum in the fourth block (d) is 6 + 1 × 7 = 13. Thereafter, in step S7, the presence or absence of subsequent data is checked. If there is data (step S7: YES), the process returns to step S2, and if there is no data (step S7: NO), the process is terminated.

以上述べたような要領で、後続する第5ブロック以降の各ブロックについても同様の処理を行う。この結果、ピッチ変換部3からは、PDM信号を構成する「0101・・・」のビット信号が出力される。そして、このPDM信号をローパスフィルタに通すことにより、ピッチ(波長)が7/8倍に変換されたPCM信号が得られる。   In the manner as described above, the same processing is performed for the subsequent blocks after the fifth block. As a result, the pitch converter 3 outputs a bit signal “0101...” Constituting the PDM signal. Then, by passing this PDM signal through a low-pass filter, a PCM signal whose pitch (wavelength) is converted to 7/8 times is obtained.

同様にして、ピッチを3/8倍にする図9(B)の場合も、上述した図9(A)と同じ要領にしたがって、ピッチ変換を行うことができる(詳細は省略)。   Similarly, in the case of FIG. 9B in which the pitch is 3/8 times, pitch conversion can be performed according to the same procedure as in FIG. 9A described above (details are omitted).

以上のように、上述した実施形態においては、PDM信号を構成する1ビット信号のピッチを補間処理によってずらし、補間後のデータ列をブロック単位で読み出してブロックごとに量子化を行うことにより、1ビット信号のままでピッチを変換することができる。このため、畳み込み演算や一般調和解析などの複雑な演算処理が不要となり、簡単な手段によってピッチ変換処理を高速に行うことができる。また、NおよびMの値を任意に設定することで、所望のピッチを有する波形を容易に得ることが可能となる。   As described above, in the above-described embodiment, the pitch of the 1-bit signal constituting the PDM signal is shifted by the interpolation process, the interpolated data sequence is read out in units of blocks, and quantization is performed for each block. The pitch can be converted without changing the bit signal. For this reason, complicated arithmetic processing such as convolution calculation and general harmonic analysis is not required, and pitch conversion processing can be performed at high speed by simple means. Further, by arbitrarily setting the values of N and M, it is possible to easily obtain a waveform having a desired pitch.

また、上述した実施形態においては、量子化手段としてΔΣ変調器50を用いているので、専用の演算回路を設計しなくても、既存のΔΣ変調器の機能を利用して、量子化や余り値の加算処理を容易に実現することができる。   In the above-described embodiment, since the ΔΣ modulator 50 is used as the quantizing means, the quantization and the remainder can be obtained by utilizing the function of the existing ΔΣ modulator without designing a dedicated arithmetic circuit. Value addition processing can be easily realized.

本発明は、アナログの楽音信号を出力する場合に限らず、デジタルの楽音信号を出力する場合にも適用が可能である。   The present invention is not limited to the case of outputting an analog tone signal, but can also be applied to the case of outputting a digital tone signal.

また、上記実施形態においては、波形メモリ1に記憶されている楽音信号としてPCM信号を例に挙げたが、本発明は、PCM信号以外の楽音信号を用いる場合においても適用することができる。   In the above embodiment, the PCM signal is taken as an example of the musical sound signal stored in the waveform memory 1, but the present invention can also be applied to the case where a musical sound signal other than the PCM signal is used.

さらに、本発明は楽音に限らず、人の声(ボイス)や擬似音なども含むあらゆる音を生成する場合に適用することができ、さらには、音以外の波形を生成する場合にも適用することができる。   Furthermore, the present invention is not limited to musical sounds, and can be applied to the generation of all sounds including human voices and pseudo sounds, and is also applied to the generation of waveforms other than sounds. be able to.

本発明の実施形態による音源用シンセサイザの全体構成を示すブロック図である。It is a block diagram which shows the whole structure of the synthesizer for sound sources by embodiment of this invention. ピッチ変換部の構成を表した図である。It is a figure showing the structure of the pitch conversion part. PCM信号とPDM信号を示す図である。It is a figure which shows a PCM signal and a PDM signal. ΔΣ変調器の一例を示すブロック図である。It is a block diagram which shows an example of a delta-sigma modulator. 本発明によるピッチ変換の原理を示した図である。It is the figure which showed the principle of the pitch conversion by this invention. ゼロ値補間の様子を詳細に示した図である。It is the figure which showed the mode of the zero value interpolation in detail. ピッチ変換の手順を示したフローチャートである。It is the flowchart which showed the procedure of pitch conversion. ピッチを伸ばす場合のデータ演算の例を示した図である。It is the figure which showed the example of the data calculation in the case of extending pitch. ピッチを縮める場合のデータ演算の例を示した図である。It is the figure which showed the example of the data calculation in the case of shortening a pitch. 波長変換を説明する図である。It is a figure explaining wavelength conversion.

符号の説明Explanation of symbols

1 波形メモリ
2 PCM/PDM変換部
3 ピッチ変換部
3b ゼロ値補間部
3c 合計値算出部
3d 量子化部
4 信号処理部
5 出力部
50 ΔΣ変調器
100 波形生成装置
DESCRIPTION OF SYMBOLS 1 Waveform memory 2 PCM / PDM conversion part 3 Pitch conversion part 3b Zero value interpolation part 3c Total value calculation part 3d Quantization part 4 Signal processing part 5 Output part 50 ΔΣ modulator 100 Waveform generator

Claims (3)

波形データが記憶されている波形メモリと、前記波形データに基づいて生成される波形のピッチをN/M倍に変換するためのピッチ変換部とを有する波形生成装置において、
前記ピッチ変換部は、
前記波形データから得られるPDM(Pulse Density Modulation;パルス密度変調)信号を構成する各1ビット信号の間に、N−1個のゼロ値を補間する補間手段と、
前記補間手段で補間された後のデータ列を、M個のビットを含むブロックを1単位として順次読み出し、各ブロックごとに、NおよびMの値で定まるビット位置のビット値とNの値との乗算値を合計した合計値Xを算出する合計値算出手段と、
当該ブロックにおける合計値Xと1つ前のブロックでの量子化で得られた余り値とを加算した合計値Yに対して、Mの値を閾値として量子化を行うことにより、各ブロックに1または0の値を割り当てて当該値を出力するとともに、当該量子化で得られた余り値を次のブロックの合計値Xに加算する量子化手段と、
を備えたことを特徴とする波形生成装置。
In a waveform generation apparatus having a waveform memory in which waveform data is stored, and a pitch conversion unit for converting the pitch of a waveform generated based on the waveform data to N / M times,
The pitch converter is
Interpolating means for interpolating N−1 zero values between each 1-bit signal constituting a PDM (Pulse Density Modulation) signal obtained from the waveform data;
The data string after being interpolated by the interpolating means is sequentially read out with a block containing M bits as one unit, and for each block, the bit value at the bit position determined by the values of N and M and the value of N A total value calculating means for calculating a total value X obtained by summing the multiplication values;
By performing quantization using the value of M as a threshold for the total value Y obtained by adding the total value X in the block and the remainder value obtained by quantization in the previous block, 1 is assigned to each block. Or a quantization unit that assigns a value of 0 and outputs the value, and adds the remainder value obtained by the quantization to the total value X of the next block;
A waveform generation apparatus comprising:
請求項1に記載の波形生成装置において、
前記量子化手段をΔΣ変調器から構成したことを特徴とする波形生成装置。
The waveform generation device according to claim 1,
A waveform generating apparatus characterized in that the quantizing means comprises a ΔΣ modulator.
請求項1または請求項2に記載の波形生成装置と、
前記波形生成装置で生成された音の波形に対して、所定の信号処理を行う信号処理部と、
前記信号処理部で処理された信号に基づいて音を出力する出力部と、
を備えたことを特徴とする音源用シンセサイザ。
The waveform generation device according to claim 1 or 2,
A signal processing unit that performs predetermined signal processing on the waveform of the sound generated by the waveform generation device;
An output unit that outputs sound based on the signal processed by the signal processing unit;
A synthesizer for sound sources characterized by comprising
JP2007057740A 2007-03-07 2007-03-07 Waveform generator, synthesizer for sound source Expired - Fee Related JP4554629B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007057740A JP4554629B2 (en) 2007-03-07 2007-03-07 Waveform generator, synthesizer for sound source

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007057740A JP4554629B2 (en) 2007-03-07 2007-03-07 Waveform generator, synthesizer for sound source

Publications (2)

Publication Number Publication Date
JP2008216916A JP2008216916A (en) 2008-09-18
JP4554629B2 true JP4554629B2 (en) 2010-09-29

Family

ID=39836981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007057740A Expired - Fee Related JP4554629B2 (en) 2007-03-07 2007-03-07 Waveform generator, synthesizer for sound source

Country Status (1)

Country Link
JP (1) JP4554629B2 (en)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62115194A (en) * 1985-11-14 1987-05-26 ロ−ランド株式会社 Waveform generator for electronic musical apparatus
JPH0336068B2 (en) * 1984-01-26 1991-05-30 Marktec Corp
JPH09289453A (en) * 1996-04-24 1997-11-04 Sony Corp Signal processor, signal recording device, and signal reproducing device
JPH1039886A (en) * 1996-07-26 1998-02-13 Sony Corp Special effect processing device
JPH10198381A (en) * 1996-12-30 1998-07-31 Casio Comput Co Ltd Music sound creating device
JP2002252562A (en) * 2001-02-23 2002-09-06 Sony Corp Device and method for digital signal processing
JP2003202882A (en) * 2002-01-07 2003-07-18 Seiko Epson Corp Method and device for sound synthesis
JP2003233378A (en) * 2002-02-13 2003-08-22 Yamaha Corp Device and method for musical sound generation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0336068B2 (en) * 1984-01-26 1991-05-30 Marktec Corp
JPS62115194A (en) * 1985-11-14 1987-05-26 ロ−ランド株式会社 Waveform generator for electronic musical apparatus
JPH09289453A (en) * 1996-04-24 1997-11-04 Sony Corp Signal processor, signal recording device, and signal reproducing device
JPH1039886A (en) * 1996-07-26 1998-02-13 Sony Corp Special effect processing device
JPH10198381A (en) * 1996-12-30 1998-07-31 Casio Comput Co Ltd Music sound creating device
JP2002252562A (en) * 2001-02-23 2002-09-06 Sony Corp Device and method for digital signal processing
JP2003202882A (en) * 2002-01-07 2003-07-18 Seiko Epson Corp Method and device for sound synthesis
JP2003233378A (en) * 2002-02-13 2003-08-22 Yamaha Corp Device and method for musical sound generation

Also Published As

Publication number Publication date
JP2008216916A (en) 2008-09-18

Similar Documents

Publication Publication Date Title
EP0337458B1 (en) Apparatus for synthesizing analog signals in PCM
JP4661745B2 (en) Filter device and electronic musical instrument
JP2004287171A (en) Vocoder device
EP0177934B1 (en) Musical tone generating apparatus
JP4554629B2 (en) Waveform generator, synthesizer for sound source
TWI275245B (en) Bi-quad digital filter configured with a bit binary rate multiplier
JP6543895B2 (en) Effect adding device, method, and program, electronic musical instrument
US6208969B1 (en) Electronic data processing apparatus and method for sound synthesis using transfer functions of sound samples
JP2008181020A (en) Waveform creating apparatus and synthesizer for sound source
JP2751262B2 (en) Signal recording method and apparatus
US6314403B1 (en) Apparatus and method for generating a special effect on a digital signal
JPS58200297A (en) Envelope signal generator
JP2932481B2 (en) Pitch detection method
JP2019016002A (en) Data interpolation apparatus and data interpolation method
JP2008141470A (en) Device and program for converting one-bit bit stream into multibit digital signal
JP2864508B2 (en) Waveform data compression encoding method and apparatus
JP2674155B2 (en) Data compression coding method
JP2671648B2 (en) Digital data interpolator
JP2730104B2 (en) Digital signal generation method
JP2008083525A (en) Synthesizer for sound source
JPH0484784A (en) Ship cruising simulation noise generator
JP2001175264A (en) Musical sound signal synthesizer
JP5014312B2 (en) Apparatus and method for real-time interpolation of discrete signals
JPS58200294A (en) Envelope signal generator
JPS58159586A (en) Reverberator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100622

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100714

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130723

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4554629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees