JP7334206B2 - direct digital synthesizer - Google Patents
direct digital synthesizer Download PDFInfo
- Publication number
- JP7334206B2 JP7334206B2 JP2021064413A JP2021064413A JP7334206B2 JP 7334206 B2 JP7334206 B2 JP 7334206B2 JP 2021064413 A JP2021064413 A JP 2021064413A JP 2021064413 A JP2021064413 A JP 2021064413A JP 7334206 B2 JP7334206 B2 JP 7334206B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- value
- output
- overflow
- accumulated
- 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.)
- Active
Links
Images
Landscapes
- Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
Description
本発明は、無線通信機器等に用いられるダイレクトデジタルシンセサイザ(Direct Digital Synthesizer:以下「DDS」と略称する)に関し、より詳細には、基準周波数以下の分解能が得られるダイレクトデジタルシンセサイザに関する。 The present invention relates to a direct digital synthesizer (hereinafter abbreviated as "DDS") used in wireless communication equipment and the like, and more particularly to a direct digital synthesizer capable of obtaining a resolution of a reference frequency or less.
無線通信機器の分野では、高周波信号発生手段として、DDSが広く用いられている。従来のDDSは、図11に示すように、位相アキュムレータ100、正弦波変換テーブル101及びデジタル/アナログ変換器(Digital/Analog Convertor;以下「DAC」と略称する)102を備えている。位相アキュムレータ100は、例えば、加算器及びラッチ回路を備えており、クロック信号CLがラッチ回路に入力される毎に加算器で累算していき、加算器の累算値がオーバーフロー設定値に到達したタイミングでオーバーフローするようになっている。そのため、オーバーフロー設定値に対応したノコギリ波状の出力信号が出力されるようになる。そして、正弦波変換テーブル101には、正弦波に関する波形データが書き込まれており、加算器の累算値をアドレスとして波形データを読み出してDACによりデータ変換することで正弦波の波形データが得られるようになる。得られた波形データは、周波数設定値に対応した周波数でクロック信号に対応した階段状に形成されており、ローパスフィルタ等のフィルタ回路を用いることでクロック成分を除去した正弦波の波形を出力することができる。
In the field of wireless communication equipment, DDS is widely used as high-frequency signal generating means. A conventional DDS includes a
こうしたDDSとしては、例えば、特許文献1には、外部から与える任意の整数Mと、全加算器の出力データA=K+Dとをコンパレータで比較し、このコンパレータの出力信号に従ってラッチに入力されるデータを強制的に書き換えることにより、任意の閾値Mにおいてオーバーフローが起こったものと同等な働きをさせる周波数シンセサイザが記載されている。また、特許文献2には、位相信号を加算する累積部からの出力を除算器で固定の整数値Mにより除算処理し、除算処理した出力信号に基づいてルックアップテーブルから出力する数値制御発振器が記載されている。
As such a DDS, for example, Japanese Unexamined Patent Application Publication No. 2002-200000 discloses data input to a latch according to an output signal of a comparator that compares an arbitrary integer M given from the outside with output data A=K+D of a full adder. A frequency synthesizer is described that forces the rewriting of to make it behave like an overflow at an arbitrary threshold M. Further,
従来のDDSでは、位相アキュムレータは、加算器がnビットで構成されている場合にオーバーフロー値が2nとなるため、周波数分解能は1/2nとなり、出力信号の周波数を正確に設定できない場合が生じる。例えば、n=10とすると、オーバーフロー値が1024に設定された位相アキュムレータとなる。クロック信号の周波数が1kHzである場合に、1クロック当りの加算値Δ=100のとき、出力周波数は、以下の通り求められる。
1000Hz×100/1024=97.65625Hz
したがって、出力周波数を正確に100Hzに設定することができない。そのため、100Hzを出力する場合、Δ=102(出力周波数;99.609375Hz)及びΔ=103(出力周波数;100.5859375Hz)での出力信号を一定の比率で交互に出力することで出力周波数を100Hzに近似させている。しかしながら、出力周波数に揺らぎが生じるのは避けられない。
In a conventional DDS, the phase accumulator has an overflow value of 2 n when the adder consists of n bits, so the frequency resolution is 1/2 n , and the frequency of the output signal may not be set accurately. occur. For example, n=10 would result in a phase accumulator with an overflow value set to 1024. When the frequency of the clock signal is 1 kHz and the additional value Δ per clock is 100, the output frequency is obtained as follows.
1000Hz x 100/1024 = 97.65625Hz
Therefore, the output frequency cannot be set exactly at 100 Hz. Therefore, when outputting 100 Hz, the output frequency is set to 100 Hz by alternately outputting the output signals at Δ = 102 (output frequency; 99.609375 Hz) and Δ = 103 (output frequency; 100.5859375 Hz) at a constant ratio. is approximated to However, it is inevitable that the output frequency fluctuates.
特許文献1では、加算器からの出力を処理することで出力周波数を調整するようにしているが、設定値Mを変化させる場合、同じハードウェアで動作させるにはそれに対応した波形データが必要となり、実用化を図る上で課題がある。
In
そこで、本発明は、波形データを変化させることなく基準周波数以下の分解能が得られるダイレクトデジタルシンセサイザを提供することを目的とするものである。 SUMMARY OF THE INVENTION Accordingly, it is an object of the present invention to provide a direct digital synthesizer capable of obtaining a resolution equal to or lower than a reference frequency without changing waveform data.
本発明に係るダイレクトデジタルシンセサイザは、所定個数Moのアドレスデータに対応して1周期分の波形データが記憶されている波形変換処理部と、周波数設定値を累算した累算処理値に基づいてオーバーフロー設定値によるオーバーフロー処理を行う累算処理部と、Moの桁数分に相当するオーバーフロー設定値の上位有効桁数分について累算処理値から得た累算データに基づいて前記アドレスデータを出力するアドレス変換処理部とを備え、前記累算処理部は、オーバーフロー設定値M max によるオーバーフロー処理を行うようになっており、前記アドレス変換処理部は、前記累算処理値を(M max /M o )で除算して前記累算データを得るようになっており、前記波形変換処理部は、前記アドレス変換処理部から出力された前記アドレスデータに対応して前記波形データを出力する。さらに、出力する波形データの位相量を変化させる位相変調処理部を備えている。 A direct digital synthesizer according to the present invention includes a waveform conversion processing unit in which one cycle of waveform data is stored corresponding to a predetermined number of address data, and based on an accumulated processed value obtained by accumulating frequency setting values. and an accumulating section for performing overflow processing based on the overflow set value, and the address data based on the accumulated data obtained from the accumulated processing value for the number of significant significant digits of the overflow set value corresponding to the number of digits of Mo. and an address conversion processing unit for outputting a value of ( M max /M o ) to obtain the accumulated data, and the waveform conversion processing section outputs the waveform data corresponding to the address data output from the address conversion processing section. Further, it has a phase modulation processing section that changes the phase amount of the waveform data to be output.
本発明は、上記のような構成を有することで、波形変換処理部のアドレスデータの個数Moの桁数分に相当するオーバーフロー設定値の上位有効桁数分について累算処理値から得た累算データに基づいてアドレスデータを出力するように処理しているので、波形データを変化させることなく基準周波数以下の分解能を得ることができる。 With the configuration as described above, the present invention provides an accumulated value obtained from the accumulated value for the number of upper significant digits of the overflow set value corresponding to the number of digits of the number M o of the address data of the waveform conversion processing section. Since the address data is output based on the calculated data, a resolution equal to or lower than the reference frequency can be obtained without changing the waveform data.
以下、本発明の実施形態を図面を用いて説明する。なお、以下に説明する実施形態は、本発明を実施するにあたって好ましい具体例であるから、技術的に種々の限定がなされているが、本発明は、以下の説明において特に本発明を限定する旨明記されていない限り、これらの形態に限定されるものではない。 An embodiment of the present invention will be described below with reference to the drawings. It should be noted that the embodiments described below are preferred specific examples for carrying out the present invention, and thus various technical limitations are made, but the present invention is particularly limited in the following description. These forms are not intended to be limiting unless specified.
図1は、本発明に係るダイレクトデジタルシンセサイザの基本的な構成を示すブロック図である。DDSは、オーバーフロー設定値Mmax及び周波数設定値Mincを設定する設定処理部10、設定処理部10で設定されたデータに基づいて累算処理を行う累算処理部20、累算処理により算出された累算処理値から累算データを得るアドレス変換処理部30、所定個数Moのアドレスデータに対応して1周期分の波形データが記憶されている波形変換処理部(LUT)40及びデジタル/アナログ変換処理部(DAC)50を備えており、波形変換処理部40は、アドレス変換処理部30から出力されたアドレスデータに対応して波形データを出力するようになっている。
FIG. 1 is a block diagram showing the basic configuration of a direct digital synthesizer according to the present invention. DDS is calculated by a
累算処理部20では、少なくとも1つの位相アキュムレータを備えており、設定処理部10において設定されたオーバーフロー設定値Mmax及び周波数設定値Mincに基づいて、基準周波数fsのクロック信号CLの入力タイミング毎に周波数設定値Mincを累算していき累算処理値Mを入力タイミング毎に出力するようになっている。
The
また、累算処理部20では、累算処理値Mをオーバーフロー設定値Mmaxと比較して、累積値Mが小さい場合には累積値Mをそのまま出力し、累算処理値Mが等しいか大きい場合には差分値を累算処理値Mとして出力するようになっている。また、後述するように、複数の位相アキュムレータを備えている場合には、累算処理値Mが等しいか大きい場合に繰り上げデータを上位側の位相アキュムレータに出力するようになっている。
The
アドレス変換処理部30は、累算処理により算出された累算処理値から累算データを得て波形変換処理部40にアドレスデータを出力するようになっている。
The address
図2は、累算処理値から累算データを得る処理に関する説明図である。この例では、オーバーフロー設定値Mmax=1010とし、具体的な累算処理値を2進数、10進数及び16進数で表記している。また、波形変換処理部のアドレスデータの個数をMo=1,000とし、アドレスデータは10進数で0~999の値をとり、具体的なアドレスデータを10進数及び2進数で表記している。そのため、累算処理値の最大値となる1010を1,000分割することでアドレスデータと対応させることができる。 FIG. 2 is an explanatory diagram of the process of obtaining accumulated data from accumulated processed values. In this example, the overflow setting value M max =10 10 is used, and specific accumulated values are expressed in binary, decimal and hexadecimal numbers. Also, the number of address data in the waveform conversion processing unit is M o =1,000, the address data takes decimal values from 0 to 999, and the specific address data are expressed in decimal and binary numbers. . Therefore, by dividing 10 10 , which is the maximum value of the accumulated process value, by 1,000, it is possible to correspond to the address data.
そして、1,000分割を処理する場合、図2に示すように、アドレスデータの個数の桁数に相当するオーバーフロー設定値の上位有効桁数分について累算処理値から累算データを取得する処理を行うことで、アドレスデータに対応する累算データを得ることができる。この例では、アドレスデータの個数の桁数は3桁となるので、累算処理値の最大桁数の10桁のうち上位3桁のデータを取得して3桁の累算データとすることで、アドレスデータに対応したデータを得ることが可能となる。 When processing division into 1,000, as shown in FIG. 2, the process of acquiring accumulated data from the accumulated processed value for the number of significant significant digits of the overflow set value corresponding to the number of digits of the number of address data. can obtain accumulated data corresponding to the address data. In this example, the number of digits of the address data is 3 digits. , it is possible to obtain data corresponding to the address data.
したがって、累算処理値が2進数の場合には10進数に変換処理し、10進数における上位有効桁数分をアドレスデータとして得ることができる。 Therefore, when the accumulated value is a binary number, it is converted into a decimal number, and the number of significant significant digits in the decimal number can be obtained as address data.
アドレスデータの個数Moの桁数分に相当するオーバーフロー設定値Mmaxの上位有効桁数分について累算処理値Mから累算データを得る具体的な処理としては、累算処理値Mを(Mmax/Mo)で除算して累算データLを得ることができる。具体的な算出式は以下の通りである。
L=M/(Mmax/Mo)
こうしたアドレス変換処理を行うことで、10進数での処理を行うことが可能となり、基準周波数の分解能を向上させることができる。上述した例では、
Mmax/Mo=1010/103=107
となり、累算処理値Mを107で除算処理を行うことで、上位有効桁数分である上位3桁分の累算データを得ることができる。そして、周波数設定値Mincを10進数のデータで設定した場合に、周波数設定値Mincを累算した累算処理値Mが10進数のデータとなるため、10進数の基準周波数fsに対して10進数の出力周波数を設定することができ、10進数の基準周波数に対する分解能を向上させることが可能となる。
As a specific process of obtaining accumulated data from the accumulated value M for the number of significant significant digits of the overflow setting value Mmax , which corresponds to the number of digits of the number of address data M o , the accumulated value M is changed to ( M max /M o ) to obtain accumulated data L. A specific calculation formula is as follows.
L=M/( Mmax / Mo )
By performing such address conversion processing, it becomes possible to perform processing in decimal numbers, and the resolution of the reference frequency can be improved. In the example above,
M max /M o =10 10 /10 3 =10 7
By dividing the accumulated value M by 10 7 , the accumulated data for the upper three digits, which is the number of upper significant digits, can be obtained. When the frequency setting value M inc is set in decimal data, the cumulative processing value M obtained by accumulating the frequency setting value M inc becomes decimal data. A decimal output frequency can be set, allowing improved resolution relative to the decimal reference frequency.
こうした除算処理を行わずに累算データを得ることもできる。図3は、累算処理及びアドレス変換処理を複数の位相アキュムレータを接続して行うブロック構成図である。図4は、こうした処理に用いる位相アキュムレータに関する回路構成を示すブロック構成図である。 Accumulated data can also be obtained without performing such division processing. FIG. 3 is a block configuration diagram for performing accumulation processing and address conversion processing by connecting a plurality of phase accumulators. FIG. 4 is a block diagram showing the circuit configuration of the phase accumulator used for such processing.
位相アキュムレータPは、加算器20a、減算器20b、切換器20c、オーバーフロー検出器20d及びラッチ回路(FF)20eを備えている。加算器20aには、設定部により設定された周波数設定値Δが入力される入力端子20g及び他の位相アキュムレータから出力された繰り上げデータCが入力される入力端子20hに接続されており、ラッチ回路20eから入力される累算処理値Mに周波数設定値Δ及び繰り上げデータCを加算した加算値(M+Δ+C)を出力する。減算器20bは、設定部によりオーバーフロー設定値Mmaxが入力される入力端子20iに接続されており、加算器20aより入力された加算値(M+Δ+C)からオーバーフロー設定値Mmaxを減算した減算値(M+Δ+C-Mmax)を出力する。
The phase accumulator P comprises an
切換器20cは、オーバーフロー検出器20dからの検出信号に基づいて、加算器20aから出力される加算値(M+Δ+C)又は減算器20bから出力される減算値(M+Δ+C-Mmax)のいずれかをラッチ回路20eに入力するように切換処理を行う。オーバーフロー検出器20dは、加算器20aから出力される加算値(M+Δ+C)がオーバーフロー設定値Mmaxよりも小さい場合又はオーバーフロー設定値Mmaxと等しいか又は大きい場合のいずれかを示す検出信号を切換器20cに出力する。そして、オーバーフロー設定値Mmaxと等しいか又は大きい場合には、出力端子20kより繰り上げデータCを他の位相アキュムレータに出力するようになっている。
The
切換器20cは、オーバーフロー検出器20dからの検出信号がオーバーフロー設定値Mmaxよりも小さい場合には、加算値(M+Δ+C)を出力する側に切換処理し、オーバーフロー設定値Mmaxと等しいか又は大きい場合には、減算値(M+Δ+C-Mmax)を出力する側に切換処理する。
When the detection signal from the
ラッチ回路20eは、クロック信号CLが入力される入力端子20fに接続されており、切換器20cから入力された加算値(M+Δ+C)又は減算値(M+Δ+C-Mmax)を、入力されるクロック信号CLの入力タイミングで累算データL又は累算処理値Mとして出力する。出力された累算データL又は累算処理値Mは、出力端子20jより外部に出力されるとともに加算器20aに入力されて加算器20aによる加算処理が繰り返し行われるようになる。
The
図3に示す例では、こうした位相アキュムレータを2個用いて構成されており、上位有効桁数分に対応する上位側位相アキュムレータP1及び上位有効桁数以外の桁数分に対応する下位側位相アキュムレータP2を備えている。そして、下位側位相アキュムレータP2から出力された繰り上げデータC2が上位側位相アキュムレータP1に入力されるように接続されている。この場合、上位側位相アキュムレータP1がアドレス変換処理を行い、下位側位相アキュムレータP2が累算処理を行うようになっている。 In the example shown in FIG. 3, two such phase accumulators are used, a high-order phase accumulator P1 corresponding to the number of high-order significant digits, and a low-order phase accumulator P1 corresponding to the number of digits other than the number of high-order significant digits. It has P2. Then, they are connected so that the carry-up data C2 outputted from the lower side phase accumulator P2 is inputted to the upper side phase accumulator P1. In this case, the upper side phase accumulator P1 performs address conversion processing, and the lower side phase accumulator P2 performs accumulation processing.
下位側位相アキュムレータP2は、周波数設定値M2incを累算した累算処理値M2をオーバーフロー設定値M2maxと比較して累算処理値M2がオーバーフロー設定値M2maxと等しいか大きい場合には繰り上げデータC2を出力する。 The lower-side phase accumulator P2 compares the accumulated processed value M2 obtained by accumulating the frequency set value M2 inc with the overflow set value M2 max , and if the accumulated processed value M2 is equal to or greater than the overflow set value M2 max , it is carried up. Output data C2.
上位側位相アキュムレータP1は、オーバーフロー設定値M1maxとして上位有効桁数に対応するオーバーフロー値Moが設定されている。そして、周波数設定値M1inc及び繰り上げデータC2を累算した累算データLをオーバーフロー値Moと比較して、累算データLがオーバーフロー値Moよりも小さい場合には累算データLをアドレスデータとして出力し、累算データLがオーバーフロー値Moと等しいか大きい場合には両者の差分値をアドレスデータとして出力する。 The upper-side phase accumulator P1 is set with an overflow value M 0 corresponding to the number of upper significant digits as an overflow set value M1 max . Then, the accumulated data L obtained by accumulating the frequency set value M1 inc and the carry-up data C2 is compared with the overflow value Mo , and if the accumulated data L is smaller than the overflow value Mo , the accumulated data L is addressed. If the accumulated data L is equal to or greater than the overflow value Mo , the difference between the two is output as address data.
下位側位相アキュムレータP2は、オーバーフロー処理により繰り上げデータC2=1が出力されるようになっており、そのため、上位側位相アキュムレータP1に繰り上げデータC2を加算処理することは、下位側位相アキュムレータP2のオーバーフロー設定値M2maxを加算することと等価の処理となる。したがって、2個の位相アキュムレータP1及びP2を合成した合成位相アキュムレータPcを想定した場合、合成周波数設定値Mcinc及び合成オーバーフロー設定値Mcmaxは、以下の式で示すことができる。
Mcinc=M1inc×M2max+M2inc
Mcmax=Mo×M2max
The lower-side phase accumulator P2 is designed to output the carry-up data C2=1 by overflow processing. The processing is equivalent to adding the set value M2 max . Therefore, assuming a composite phase accumulator Pc obtained by combining the two phase accumulators P1 and P2, the composite frequency setting value Mc inc and the composite overflow setting value Mc max can be expressed by the following equations.
Mc inc =M1 inc ×M2 max +M2 inc
Mc max =M o ×M2 max
合成位相アキュムレータPcの1周期に要するクロック数ncは、
nc=Mcmax/Mcinc=(Mo×M2max)/(M1inc×M2max+M2inc)
で求めることができることから、合成アキュムレータPcの出力する累算データの出力周期Tcは、基準周期Tsとすると、
Tc=Ts×nc
で求めることができる。そのため、累算データの出力周波数fcは、基準周波数fsとすると、
fc=1/Tc=1/(Ts×nc)=fs×(M1inc×M2max+M2inc)/(Mo×M2max)
で求めることができる。したがって、上位側位相アキュムレータP1及び下位側位相アキュムレータP2の周波数設定値及びオーバーフロー設定値を出力したい周波数に対応して設定することで、希望の周波数で波形データを出力することが可能となる。
The number of clocks nc required for one cycle of the synthetic phase accumulator Pc is
nc= Mcmax / Mcinc =( Mo * M2max )/( M1inc * M2max + M2inc )
Assuming that the output cycle Tc of the accumulated data output from the combined accumulator Pc is the reference cycle Ts,
Tc = Ts x nc
can be found at Therefore, assuming that the output frequency fc of the accumulated data is the reference frequency fs,
fc=1/Tc=1/(Ts×nc)=fs×( M1inc × M2max + M2inc )/( Mo × M2max )
can be found at Therefore, by setting the frequency setting value and overflow setting value of the upper side phase accumulator P1 and the lower side phase accumulator P2 corresponding to the desired output frequency, it is possible to output waveform data at the desired frequency.
こうした複数の位相アキュムレータを用いることで、1つの位相アキュムレータを波形変換処理部のアドレスデータの個数に対応させて設定し、別の位相アキュムレータとともに用いることで分解能を向上させることができる。そのため、複数の位相アキュムレータを目的に応じて組み合わせることで、位相分解能の向上以外にも波形データの解像度の向上及びひずみ特性の改善といった様々な機能を備えたDDSを構成することが可能となる。 By using such a plurality of phase accumulators, one phase accumulator can be set corresponding to the number of address data of the waveform conversion processing section and used together with another phase accumulator to improve resolution. Therefore, by combining a plurality of phase accumulators according to the purpose, it is possible to construct a DDS having various functions such as improvement of resolution of waveform data and improvement of distortion characteristics in addition to improvement of phase resolution.
図5は、複数の位相アキュムレータを用いた場合の分解能をさらに向上させる回路構成に関するブロック構成図である。この例では、図3に示す構成において、下位側位相アキュムレータP2の出力側に補正データ変換処理部60を接続して波形変換処理部40から出力される波形データに対する補正データを生成するようになっている。
FIG. 5 is a block diagram of a circuit configuration for further improving resolution when multiple phase accumulators are used. In this example, in the configuration shown in FIG. 3, the correction data
波形変換処理部40は、波形データとしてsinθ1及びcosθ1を出力するようになっており、補正データ変換処理部60は、下位側位相アキュムレータP2から出力された累算処理値M2に基づいて補正データsinθ2及びcosθ2を出力するようになっている。この例では、補正データ変換処理部60は、補正データを以下のように算出することができる。
The waveform
θ2の最大値は、上述した2つの位相アキュムレータの関係に基づいて、θ1の最大値2πの1/Moとなるから、θ2は、以下の式により求められる。
θ2=2π×(1/Mo)×(M2/M2max)
補正データsinθ2及びcosθ2は、それぞれ級数展開による以下の近似式で算出することができる。
sinθ2=θ2-θ2
3/3!
cosθ2=1-θ2
2/2!
補正データを用いることで、波形データを以下の通り補正することができる。
sin(θ1+θ2)=sinθ1×cosθ2+cosθ1×sinθ2
=sinθ1×(1-θ2
2/2!)+cosθ1×(θ2-θ2
3/3!)
cos(θ1+θ2)=cosθ1×cosθ2+sinθ1×sinθ2
=cosθ1×(1-θ2
2/2!)+sinθ1×(θ2-θ2
3/3!)
Since the maximum value of θ 2 is 1/M o of the maximum value 2π of θ 1 based on the relationship between the two phase accumulators described above, θ 2 is obtained by the following equation.
θ 2 =2π×(1/M o )×(M2/M2 max )
The correction data sin θ 2 and cos θ 2 can be calculated by the following approximate expressions based on series expansion.
sin θ 2 = θ 2 - θ 2 3/3 !
cos θ 2 =1−θ 2 2 /2!
By using the correction data, the waveform data can be corrected as follows.
sin (θ 1 + θ 2 ) = sin θ 1 × cos θ 2 + cos θ 1 × sin θ 2
= sin θ 1 × (1−θ 2 2 /2!) + cos θ 1 × (θ 2 − θ 2 3 /3!)
cos (θ 1 + θ 2 ) = cos θ 1 × cos θ 2 + sin θ 1 × sin θ 2
= cos θ 1 × (1 - θ 2 2 /2!) + sin θ 1 × (θ 2 - θ 2 3 / 3!)
以上説明したように、sinθ1及びcosθ1は、波形変換処理部40から出力される波形データを用い、累算処理値M2、オーバーフロー設定値M2max及びオーバーフロー値Moから求めたθ2により補正処理を行うことができる。
As described above, sin θ 1 and cos θ 1 are corrected by θ 2 obtained from the accumulated processing value M2, the overflow set value M2 max , and the overflow value M o using the waveform data output from the waveform
こうした補正処理を行うことで、波形変換処理部40においてアドレスデータの個数Moに対応して予め設定された波形データの中間の値を補正データにより生成することが可能となり、位相精度を高めるとともにビット精度を高めることができる。そのため、1つのパターンの波形データを高精度で設定しておかなくても、位相精度の高い波形データを高速で出力することが可能となる。
By performing such a correction process, it is possible to generate an intermediate value of the waveform data preset corresponding to the number M o of the address data in the waveform
また、DDSを備える周波数コンバータでは、論理回路の中で処理されるビット精度及びビット長によりダイナミックレンジ・ひずみ特性が影響を受けるが、上述した補正処理を行うことで、こうした特性を高精度で処理することができる。 In frequency converters equipped with DDS, the dynamic range and distortion characteristics are affected by the bit precision and bit length processed in the logic circuit. can do.
図6は、3個の位相アキュムレータを用いて有理分数に対応した分解能を実現する回路構成に関するブロック構成図である。この例では、図4に示す位相アキュムレータを3個用いて構成されており、上位有効桁数分に対応する上位側位相アキュムレータP1、上位有効桁数以外の桁数分のうち上位桁数に対応する中位側位相アキュムレータP2と、上位有効桁数以外の桁数分のうち上位桁数以外の下位桁数に対応する下位側位相アキュムレータP3を備えている。そして、下位側位相アキュムレータP3から出力された繰り上げデータC3が中位側位相アキュムレータP2に入力されるように接続され、中位側位相アキュムレータP2から出力された繰り上げデータC2が上位側位相アキュムレータP1に入力されるように接続されている。この場合、上位側位相アキュムレータP1がアドレス変換処理を行い、中位側位相アキュムレータP2及び下位側位相アキュムレータP3が累算処理を行うようになっている。 FIG. 6 is a block diagram of a circuit configuration that achieves resolution corresponding to rational fractions using three phase accumulators. In this example, three phase accumulators shown in FIG. and a low-order phase accumulator P3 corresponding to the number of low-order digits other than the number of high-order digits out of the number of digits other than the number of high-order significant digits. Then, the carry-up data C3 output from the lower-side phase accumulator P3 is connected to be input to the middle-side phase accumulator P2, and the carry-up data C2 output from the middle-side phase accumulator P2 is supplied to the upper-side phase accumulator P1. connected to be input. In this case, the upper side phase accumulator P1 performs address conversion processing, and the middle side phase accumulator P2 and the lower side phase accumulator P3 perform accumulation processing.
下位側位相アキュムレータP3は、周波数設定値M3incを累算した累算処理値M3をオーバーフロー設定値M3maxと比較して、累算処理値M3がオーバーフロー設定値M3maxと等しいか大きい場合には繰り上げデータC3を出力する。 The low -order phase accumulator P3 compares the accumulated processed value M3 obtained by accumulating the frequency set value M3 inc with the overflow set value M3 max . Carry-up data C3 is output.
中位側位相アキュムレータP2は、周波数設定値M2inc及び繰り上げデータC3を累算した累算処理値M2をオーバーフロー設定値M2maxと比較して、累算処理値M2がオーバーフロー設定値M2maxと等しいか大きい場合には繰り上げデータC2を出力し、 The middle-order phase accumulator P2 compares the accumulated value M2 obtained by accumulating the frequency setting value M2 inc and the carry-up data C3 with the overflow setting value M2 max , and the accumulated value M2 is equal to the overflow setting value M2 max . If it is larger, it outputs rounding data C2,
上位側位相アキュムレータP1は、周波数設定値M1inc及び繰り上げデータC2を累算した累算データLをオーバーフロー値Moと比較して、累算データLがオーバーフロー値Moよりも小さい場合には累算データLをアドレスデータとして出力し、累算データLがオーバーフロー値Moと等しいか大きい場合には両者の差分値をアドレスデータとして出力する。 The high-order phase accumulator P1 compares the accumulated data L obtained by accumulating the frequency setting value M1 inc and the carry-up data C2 with the overflow value Mo , and if the accumulated data L is smaller than the overflow value Mo , the accumulated data L is accumulated. The calculated data L is output as address data, and when the accumulated data L is equal to or greater than the overflow value Mo , the difference value between the two is output as address data.
3個の位相アキュムレータP1~P3を合成した合成位相アキュムレータPcは、図3に示す場合と同様の動作原理で取り扱うことができ、合成周波数設定値Mcinc及び合成オーバーフロー設定値Mcmaxは、以下の式で示すことができる。
Mcinc=M1inc×M2max×M3max+M2inc×M3max+M3inc
Mcmax=Mo×M2max×M3max
そして、累算データの出力周波数fcは、基準周波数fsとすると、
fc=1/Tc=1/(Ts×nc)=fs×(M1inc×M2max×M3max+M2inc×M3max+M3inc)/(Mo×M2max×M3max)
となり、Mo=10n及びM2max=10mで固定値とすることで、分母のM3maxの値により有理分数の周波数を出力することができる。
The synthesized phase accumulator Pc obtained by synthesizing the three phase accumulators P1 to P3 can be handled on the same operating principle as the case shown in FIG . can be expressed by the formula
Mc inc =M1 inc ×M2 max ×M3 max +M2 inc ×M3 max +M3 inc
Mc max =M o ×M2 max ×M3 max
Assuming that the output frequency fc of the accumulated data is the reference frequency fs,
fc=1/Tc=1/(Ts×nc)=fs×( M1inc × M2max × M3max + M2inc × M3max + M3inc )/( Mo × M2max × M3max )
By setting M o =10 n and M2 max =10 m to fixed values, the rational fraction frequency can be output according to the value of M3 max in the denominator.
例えば、Mo=103、M2max=107で固定した場合、合成オーバーフロー設定値Mcmaxは上記の式より
Mcmax=M3max×1010
となる。
For example, when M o =10 3 and M2 max =10 7 are fixed, the combined overflow set value Mc max is Mc max =M3 max ×10 10 from the above equation.
becomes.
また、合成周波数設定値Mcincは上記の式より
Mcinc=M1inc×107×M3max+M2inc×M3max+M3inc
となる。出力周波数fcは上記の式より
fc=fs×(Mcinc/Mcmax)
=(fs/1010)×(M1inc×107+M2inc+M3inc/M3max)
となり、出力周波数fcは1/M3maxの周波数成分を含むようになる。
Also, the synthetic frequency setting value Mc inc is Mc inc =M1 inc ×10 7 ×M3 max +M2 inc ×M3 max +M3 inc from the above equation.
becomes. The output frequency fc is fc=fs×(Mc inc /Mc max ) from the above formula.
= (fs/10 10 ) x (M1 inc x 10 7 + M2 inc + M3 inc /M3 max )
Thus, the output frequency fc comes to include a frequency component of 1/M3 max .
例えば、M3max=7として、M3incを0~6の間で変化させることで、出力周波数fcは、上記算出式により、0/7から6/7の有理分数を含む周波数とすることができ、基準周波数の分解能を精度よく高めることが可能となる。 For example, by setting M3 max =7 and changing M3 inc between 0 and 6, the output frequency fc can be a frequency containing rational fractions from 0/7 to 6/7 according to the above formula. , it is possible to improve the resolution of the reference frequency with high accuracy.
以上説明したように、1つの波形データに基づいて基準周波数の分解能を高めた出力周波数を得ることができる。 As described above, it is possible to obtain an output frequency with improved resolution of the reference frequency based on one waveform data.
DDSでは、外部信号及びデータに応じて位相量を変化させて出力する場合に、位相変調処理を行うことが必要となるが、上述した例では、累算処理部において外部より位相変調信号に対応するデータを加算又は減算することで処理することができる。 In the DDS, it is necessary to perform phase modulation processing when changing the phase amount according to the external signal and data for output. can be processed by adding or subtracting the data to be
図7は、位相変調処理部を備えたDDSの基本構成を示すブロック図である。図1で説明した各処理部については、同様の処理を行うため説明を省略する。この例では、位相変調処理部70は、入力側が累算処理部20の出力側に接続されて累算処理値が入力されるようになっており、出力側がアドレス変換処理部30の入力側に接続されて変調処理されたデータが出力されるようになっている。そして、位相変調処理部70には、外部より位相の変化量に対応して位相変調データMODが入力されるようになっている。
FIG. 7 is a block diagram showing the basic configuration of a DDS having a phase modulation processing section. Since each processing unit described in FIG. 1 performs the same processing, the description is omitted. In this example, the input side of the phase
位相変調データMODは、正(プラス)の値又は負(マイナス)の値に設定されており、位相変調処理部70は、累算処理部20から出力された累算処理値Mに位相変調データMODを加算又は減算することで位相変調処理を行う。具体的な処理方法としては、例えば、MODを符号付き2進数形式のデータとして補数2進数形式に変換して用いることで、他の符号なしの累算処理値M及びオーバーフロー設定値Mmaxとともに2進数形式で加算及び減算の演算処理をすることができる。出力される変調処理値Mmは、累算処理値Mと同じ上位有効桁数を有する形式に処理する。演算結果が負の値となった場合には、負の値にオーバーフロー設定値Mmaxを加算して変調処理値Mmを正の値として出力するように処理する。そのため、位相変調データMODは以下の範囲の値に設定するとよい。
-Mmax+1<MOD<Mmax-1
The phase modulation data MOD is set to a positive (plus) value or a negative (minus) value. Phase modulation processing is performed by adding or subtracting MOD. As a specific processing method, for example, by converting MOD as signed binary format data into complementary binary format and using it , 2 Arithmetic processing of addition and subtraction can be performed in base form. The modulation processed value Mm to be output is processed into a format having the same number of significant digits as the accumulated processed value M. If the calculation result is a negative value, the overflow set value Mmax is added to the negative value to output the modulation processing value Mm as a positive value. Therefore, the phase modulation data MOD should be set to values within the following range.
−M max +1<MOD<M max −1
なお、上述した例では、累算処理部20とアドレス変換処理部30との間に位相変調処理部70を接続し、累算処理値Mを位相変調データMODに基づいて処理して変調処理値Mmをアドレス変換処理部30に出力するようにしているが、アドレス変換処理部30と波形変換処理部40との間に位相変調処理部70を接続することもできる。この場合には、アドレス変換処理部30から出力される累算データを位相変調データMODに基づいて変調処理して波形変換処理部40に出力する。アドレス変換処理された累算データについて位相変調処理を行うため、上述した例よりも分解能が低下することが考えられるが、実用上問題のないレベルであれば、このように構成することも可能である。
In the above-described example, the phase
図8は、位相変調処理部70に関する回路構成を示すブロック図である。位相変調処理部70は、加算器70a及び70b、減算器70c、符号検出器70d、切換器70e及び70f、オーバーフロー及びアンダーフロー検出器70g及びラッチ回路(FF)70hを備えている。
FIG. 8 is a block diagram showing the circuit configuration of the phase
加算器70aは、累算処理部20から出力された累算処理値Mが入力される入力端子70k、他の位相変調処理部から出力された繰り上げデータCMが入力される入力端子70j及び位相変調データMODが入力される入力端子70mに接続されており、累算処理値Mに位相変調データMOD及び繰り上げデータCMを加算した加算値(M+MOD+CM)を出力する。位相変調データMOD及び繰り上げデータCMは正又は負の値となる付号付きのデータであるため、加算器70aから出力されるデータについても符号付きのデータとなる。
The
加算器70bは、設定部によりオーバーフロー設定値Mmaxが入力される入力端子70nに接続されており、加算器70aより入力された加算値(M+MOD+CM)にオーバーフロー設定値Mmaxを加算した加算値(M+MOD+CM+Mmax)を切換器70e及びオーバーフロー及びアンダーフロー検出器70gに出力する。
The
減算器70cは、設定部によりオーバーフロー設定値Mmaxが入力される入力端子70nに接続されており、加算器70aより入力された加算値(M+MOD+CM)からオーバーフロー設定値Mmaxを減算した減算値(M+MOD+CM-Mmax)を切換器70e及びオーバーフロー及びアンダーフロー検出器70gに出力する。
The
符号検出器70dは、加算器70aから出力されたデータの符号を検出して切換器70e及びオーバーフロー及びアンダーフロー検出器70gに出力する。
The
切換器70eは、符号検出器70dからの検出信号に基づいて、加算器70b又は減算器70cからのいずれかの出力を切り換えて切換器70fに入力するように切換処理を行う。
The
切換器70fは、オーバーフロー及びアンダーフロー検出器70gからの検出信号に基づいて、加算器70aから出力される加算値(M+MOD+CM)又は切換器70eから出力される加算器70bの加算値若しくは減算器70cの減算値のいずれかをラッチ回路70hに入力するように切換処理を行う。
Based on the detection signal from the overflow/
オーバーフロー及びアンダーフロー検出器70gは、符号検出器70dからの検出信号に基づき加算器70aから出力される加算値(M+MOD+CM)が正の値の場合、加算値がオーバーフロー設定値Mmaxよりも小さい場合又はオーバーフロー設定値Mmaxと等しいか又は大きい場合のいずれかを示す検出信号を切換器70fに出力する。
The overflow and
そして、加算値がオーバーフロー設定値Mmaxと等しいか又は大きい場合には、出力端子70qより繰り上げデータCMとして+1を他の位相変調処理部に出力し、加算値がオーバーフロー設定値Mmaxよりも小さい場合には、繰り上げデータCMとして0を出力する。 Then, when the added value is equal to or greater than the overflow set value Mmax , +1 is output to the other phase modulation processing units as carry-up data CM from the output terminal 70q, and the added value is smaller than the overflow set value Mmax . In this case, 0 is output as carry-up data CM.
加算器70aから出力される加算値(M+MOD+CM)が負の値の場合、加算値がオーバーフロー設定値Mmaxよりも小さい場合又はオーバーフロー設定値Mmaxと等しいか又は大きい場合のいずれかを示す検出信号を切換器70fに出力する。そして、加算値が負の場合には、出力端子70qより繰り上げデータCMとして-1を他の位相変調処理部に出力する。
A detection signal indicating whether the addition value (M+MOD+CM) output from the
ラッチ回路70hは、クロック信号CLが入力される入力端子70iに接続されており、切換器70fから出力された加算値又は減算値を、入力されるクロック信号CLの入力タイミングで、変調処理値Mmとして出力する。出力された変調処理値Mmは、出力端子70pより外部に出力されるようになる。
The
以上説明したように、加算器70aの加算値が以下の3つの状態である場合に分けて処理を行う。
(1)加算値が正の値でオーバーフロー設定値Mmaxより小さい場合
(2)加算値が正の値でオーバーフロー設定値Mmaxに等しいか大きい場合
(3)加算値が負の場合(加算値の絶対値がオーバーフロー設定値Mmaxより小さい)
As described above, processing is performed separately for the following three states of the added value of the
(1) When the added value is positive and smaller than the overflow set value Mmax (2) When the added value is positive and equal to or greater than the overflow set value Mmax (3) When the added value is negative (additional value is smaller than the overflow set value Mmax )
(1)の状態では、加算器70aの出力が切換器70fを経由してラッチ回路FFに入力され、出力端子70pから出力される。(2)の状態では、減算器70cの出力が切換器70e及び切換器70fを経由してラッチ回路FFに入力され、出力端子70pから出力される。(3)の状態では、加算器70bの出力が切換器70e及び切換器70fを経由してラッチ回路FFに入力され、出力端子70pから出力される。
In the state (1), the output of the
図9は、図5に示すDDSに位相変調処理部を接続した例に関するブロック図である。この例では、上位側位相アキュムレータP1と波形変換処理部40との間に位相変調処理部70を接続して位相変調処理を行うようにしている。中位側位相アキュムレータP2と補正データ変換処理部60の間には、ラッチ回路FFを接続し、位相変調処理部70の処理のタイミングに合わせて補正データ変換処理部60にデータが入力されるようになっている。
FIG. 9 is a block diagram relating to an example in which a phase modulation processing section is connected to the DDS shown in FIG. In this example, a phase
図10は、図6に示すDDSに位相変調処理部を接続した例に関するブロック図である。この例では、上位側位相アキュムレータP1、中位側位相アキュムレータP2及び下位側位相アキュムレータP3のそれぞれの出力側に、上位側位相変調処理部P1mod、中位側位相変調処理部P2mod及び下位側位相変調処理部P3modを接続している。そして、下位側位相変調処理部P3modから出力される繰り上げデータCMが中位側位相変調処理部P2modに入力されるように接続され、中位側位相変調処理部P2modから出力される繰り上げデータCMが上位側位相変調処理部P1modに入力されるように接続されるようになっている。 FIG. 10 is a block diagram of an example in which a phase modulation processor is connected to the DDS shown in FIG. In this example, on the output side of each of the upper phase accumulator P1, middle phase accumulator P2 and lower phase accumulator P3, upper phase modulation processing section P1 mod , middle phase modulation processing section P2 mod and lower side phase accumulator P1 mod are connected. A phase modulation processor P3 mod is connected. Then, the round-up data CM output from the lower-order phase modulation processing unit P3 mod is connected to be input to the middle-order phase modulation processing unit P2 mod , and the round-up data CM output from the middle-order phase modulation processing unit P2 mod is connected. Data CM is connected so as to be input to the higher-order phase modulation processing section P1 mod .
上述した例では、各位相アキュムレータの出力を対応する各位相変調処理部で変調処理を行って処理結果を繰り上げデータで反映させるようにしているので、図6に示すDDSの処理に対応した位相変調処理を行うことができる。 In the above example, since the output of each phase accumulator is modulated by each corresponding phase modulation processing unit and the processing result is reflected in the carry-up data, the phase modulation corresponding to the DDS processing shown in FIG. can be processed.
なお、位相変調処理部に必要とされる位相分解能・精度が高くない場合には、中位側位相変調処理部P2mod及び下位側位相変調処理部P3modを省略して簡略することができる。例えば、波形変換処理部が1,000個のデータを有し、上位側位相変調処理部P1modだけで構成される場合、
360度/1,000=0.36度
の位相分解能・精度を持つ位相変調器を得ることができ、0.36度の位相分解能の位相シフトを作ることが可能となる。
If the phase resolution/accuracy required for the phase modulation processing section is not high, the middle-side phase modulation processing section P2 mod and the low-order phase modulation processing section P3 mod can be omitted for simplification. For example, when the waveform conversion processing unit has 1,000 pieces of data and is composed only of the upper side phase modulation processing unit P1 mod ,
A phase modulator with a phase resolution/accuracy of 360 degrees/1,000=0.36 degrees can be obtained, making it possible to produce a phase shift with a phase resolution of 0.36 degrees.
10・・・設定処理部、20・・・累算処理部、30・・・アドレス変換処理部、40・・・波形変換処理部(LUT)、50・・・デジタル/アナログ変換処理部(DAC)、60・・・補正データ変換処理部、70・・・位相変調処理部 Reference numerals 10: setting processing unit, 20: accumulation processing unit, 30: address conversion processing unit, 40: waveform conversion processing unit (LUT), 50: digital/analog conversion processing unit (DAC ), 60... correction data conversion processing unit, 70... phase modulation processing unit
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021064413A JP7334206B2 (en) | 2021-04-05 | 2021-04-05 | direct digital synthesizer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021064413A JP7334206B2 (en) | 2021-04-05 | 2021-04-05 | direct digital synthesizer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022159932A JP2022159932A (en) | 2022-10-18 |
JP7334206B2 true JP7334206B2 (en) | 2023-08-28 |
Family
ID=83641458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021064413A Active JP7334206B2 (en) | 2021-04-05 | 2021-04-05 | direct digital synthesizer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7334206B2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007189506A (en) | 2006-01-13 | 2007-07-26 | Yokogawa Electric Corp | Dds signal generation apparatus |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6434004A (en) * | 1987-07-30 | 1989-02-03 | Jeol Ltd | Digital frequency generator |
JPS6490611A (en) * | 1987-09-30 | 1989-04-07 | Yokogawa Electric Corp | Waveform generator |
JPH01267713A (en) * | 1988-04-20 | 1989-10-25 | Hitachi Ltd | Digital periodic wave generator |
JP2561394Y2 (en) * | 1989-08-10 | 1998-01-28 | アンリツ株式会社 | Digital synthesizer |
US5187677A (en) * | 1991-08-23 | 1993-02-16 | Hewlett-Packard Company | Waveform synthesizer through simulating multiplication |
US5371765A (en) * | 1992-07-10 | 1994-12-06 | Hewlett-Packard Company | Binary phase accumulator for decimal frequency synthesis |
-
2021
- 2021-04-05 JP JP2021064413A patent/JP7334206B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007189506A (en) | 2006-01-13 | 2007-07-26 | Yokogawa Electric Corp | Dds signal generation apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP2022159932A (en) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2212757C2 (en) | Device for generating analog signals using digital-to-analog converters, primarily for direct digital synthesis | |
US7577695B2 (en) | High-order delta-sigma noise shaping in direct digital frequency synthesis | |
JP4620931B2 (en) | Noise shaping and digital frequency synthesis | |
US5931891A (en) | Digital frequency synthesizer | |
JP4405620B2 (en) | Digital signal generator | |
JP7334206B2 (en) | direct digital synthesizer | |
US5864492A (en) | Randomized digital waveshape samples from a look up table | |
CN113985361A (en) | System and method for improving frequency spectrum quality of DDS output signal | |
JPH02292911A (en) | Pulse generator | |
JPH0199322A (en) | Frequency divider | |
JP4344948B2 (en) | DDS circuit | |
EP0452031A2 (en) | Signal generation using digital-to-analogue conversion | |
JP2715211B2 (en) | Partial-integral superposition type reference frequency generation method for phase locked loop, and reference frequency generation circuit thereof | |
JP2715210B2 (en) | Partial-integral switching type reference frequency generation method for phase locked loop, and reference frequency generation circuit thereof | |
JPH11346152A (en) | Clock signal generating device | |
JPS62225027A (en) | Variable frequency divider | |
JPH0983250A (en) | Direct digital synthesizer | |
JP3634934B2 (en) | Modulation circuit, demodulation circuit, and modulation / demodulation system | |
JPH05160640A (en) | Direct digital synthesizer | |
JPH06104750A (en) | Bit number reduction circuit and frequency synthesizer using the same | |
JP2010522496A (en) | Methods for use in digital frequency synthesizers | |
US6518801B1 (en) | Alias suppression method for 1-bit precision direct digital synthesizer | |
JP3523369B2 (en) | Direct digital synthesizer | |
JP4181964B2 (en) | Digital DC component control circuit | |
KR970009690B1 (en) | Digital phase mapper for quadruple phase shift keying modulator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220118 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230308 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230502 |
|
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: 20230808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230816 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7334206 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |