JP4330381B2 - Noise removal device - Google Patents

Noise removal device Download PDF

Info

Publication number
JP4330381B2
JP4330381B2 JP2003175638A JP2003175638A JP4330381B2 JP 4330381 B2 JP4330381 B2 JP 4330381B2 JP 2003175638 A JP2003175638 A JP 2003175638A JP 2003175638 A JP2003175638 A JP 2003175638A JP 4330381 B2 JP4330381 B2 JP 4330381B2
Authority
JP
Japan
Prior art keywords
block
smoothing
blocks
sample
variable
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
JP2003175638A
Other languages
Japanese (ja)
Other versions
JP2005010544A (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.)
Korg Inc
Original Assignee
Korg 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 Korg Inc filed Critical Korg Inc
Priority to JP2003175638A priority Critical patent/JP4330381B2/en
Publication of JP2005010544A publication Critical patent/JP2005010544A/en
Application granted granted Critical
Publication of JP4330381B2 publication Critical patent/JP4330381B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、アナログ信号を順次サンプリングして生成されたデジタル信号を所定数個のサンプル値から成るブロック毎に分割したブロック群のうちの或るブロックと、窓をかけた結果これと時間軸上で隣接するようになった後側に所定ブロック数離れたブロックとの両ブロック間を接続した場合における接続点での不連続を解消するスムージング処理を行うノイズ除去装置に関する。
【0002】
【従来の技術】
従来より、楽音信号等としてのアナログ信号をデジタル化したデジタル信号を、コンピュータにより複数のブロック毎に分割して処理すると、隣接する各ブロック間の接続点で不連続が生じていた。この不連続を解消する方法としては、まず、複数のブロックを高速フーリエ変換(FFT)する前に窓をかける際の窓関数と、その後、逆高速フーリエ変換(逆FFT)した後に窓をかける際の窓関数とをかけ合わせて三角窓やハニング窓となるようにそれぞれの窓関数を設計する方法等があった。また、従来の雑音低減システムでは、デジタル信号を複数のブロック毎に分割して処理しても因果性が保持されるように、ブロック内のFFTする処理を行うサンプルの個数を変更するものが提案されている(例えば、特許文献1参照。)。
【0003】
【特許文献1】
特表2002−517021号公報(第13頁、第1図)
【0004】
【発明が解決しようとする課題】
しかしながら、上述のような窓関数を設計して不連続を解消する方法では、高速フーリエ変換(FFT)する前と逆高速フーリエ変換(逆FFT)した後とに窓をかける処理を行うため、コンピュータが処理する演算量が膨大となるという問題があった。
【0005】
また、ブロック内のFFTする処理を行うサンプルの個数を変更する方法でも、サンプルの個数を変更することによりコンピュータが処理する演算量が膨大となり、演算能力の低いコンピュータ等では対応できないという問題があった。
【0006】
そこで、本発明は、かかる事情を考慮してなされたもので、窓をかけた結果、時間軸上で隣接するようになった所定ブロック数離れた2つのブロック間を接続した際に、それらの両ブロック間の接続点で不連続が生じた場合には、それら両ブロックの波形が近付くように補正することによって、サンプルの個数を元のままで演算量を殆ど増やさずに不連続を解消することが可能なノイズ除去装置を提供することを目的とする。
【0007】
【課題を解決するための手段】
上記課題を解決するために、本発明は、アナログ信号を順次サンプリングして生成されたデジタル信号を所定数個のサンプル値から成るブロック毎に分割したブロック群のうちの或るブロック(前側ブロック)と、窓をかけた結果これと時間軸上で隣接するようになった後側に所定ブロック数離れたブロック(後側ブロック)との両ブロック間を接続した場合における接続点での不連続を解消するスムージング処理を行うノイズ除去装置であって、
前記2つのブロック間の不連続が生じた接続点での前記スムージング処理を行う際の補正量を求める補正量算出手段と、
ブロック内のサンプル値のうち、前記スムージング処理の対象となるサンプル値の個数を示すスムージング点数で前記求めた補正量を除算して1サンプル当りの差分値を求める差分算出手段と、
前記後側ブロック内における或る変数に応じた位置のサンプル値に、前記差分値と前記或る変数とに基づいて算出した数値を加算する処理を加算処理と定め、前記後側ブロックの先頭から前記スムージング点数で示す個数番目までのサンプル値のそれぞれに対して、前記スムージング点数で示す個数番目から先頭側に向かって前記或る変数を順次変更して、前記加算処理を繰り返し行っていく加算手段と、
前記前側ブロック内における前記或る変数に応じた位置のサンプル値から、前記差分値と前記或る変数とに基づいて算出した数値を減算する処理を減算処理と定め、前記前側ブロックの最後から前記スムージング点数で示す個数番目手前までのサンプル値のそれぞれに対して、最後から前記スムージング点数で示す個数番目手前から末尾側に向かって前記或る変数を順次変更して、前記減算処理を繰り返し行っていく減算手段と、を備えたことを特徴とする。
【0008】
このような発明によれば、加算手段が、後側ブロックの先頭からスムージング点数で示す個数番目までのサンプル値のそれぞれに対して、スムージング点数で示す個数番目から先頭側に向かって或る変数を順次変更して、加算処理を繰り返し行っていくと共に、減算手段が、前側ブロックの最後からスムージング点数で示す個数番目手前までのサンプル値のそれぞれに対して、最後からスムージング点数で示す個数番目手前から末尾側に向かって或る変数を順次変更して、減算処理を繰り返し行っていくので、後側ブロック、前側ブロックにおいて、後側ブロックの先頭からスムージング点数で示す個数番目までのサンプル値、前側ブロックの最後からスムージング点数で示す個数番目手前までのサンプル値に対応する波形が補正されて接続点での不連続を解消することが可能である。
【0009】
また、上述のノイズ除去装置において、
前記補正量算出手段は、
前記2つのブロック間の不連続が生じた接続点での振幅差を求める手段と、前記求めた振幅差を2で除算して前記スムージング処理を行う際の補正量を求める手段と、を含むようにしても良い。
【0010】
このような発明によれば、2つのブロック間の不連続が生じた接続点での振幅差を2で除算してスムージング処理を行う際の補正量を求めるので、振幅差の分離れていたそれぞれのブロックの波形が近付くように補正されるので、振幅差が無くなり接続点での不連続が解消することが可能である。
【0011】
更に、上述のノイズ除去装置において、前記デジタル信号は、楽音信号であるとしても良い。このような発明によれば、楽音信号としてのデジタル信号において生じた不連続を解消することが可能となる。
【0012】
また、本発明に係る他のノイズ除去装置として、アナログ信号を順次サンプリングして生成されたデジタル信号を所定数個のサンプル値から成るブロック毎に分割したブロック群のうちの或るブロック(前側ブロック)とこれと時間軸上で後側に所定ブロック数離れたブロック(後側ブロック)との両ブロック間を接続することを想定した場合における接続点での不連続を解消するスムージング処理を行うノイズ除去装置であって、
前記2つのブロック間において不連続が生じる接続点での、前記スムージング処理を行う際に用いる補正量を求める補正量算出手段と、
1つのブロックにおいて前記スムージング処理対象となる部分に属するサンプルに対応する点(スムージング点)、の数であるスムージング点数で前記求めた補正量を除算して1サンプル当りの差分値を求める差分算出手段と、
前記後側ブロックにおける複数のスムージング点の夫々に対して、スムージング点位置に応じて変化する変数値と前記差分値とを乗算した値を当該スムージング点位置に対応するサンプル値に対して加算する処理を行う加算処理手段と、
前記前側ブロックにおける複数のスムージング点の夫々に対して、スムージング点位置に応じて変化する変数値と前記差分値とを乗算した値を当該スムージング点位置に対応するサンプル値に対して減算する処理を行う減算処理手段と、を備えたことを特徴とするようにしても良い。
【0013】
上述のノイズ除去装置において、
前記加算処理手段は、
前記後側ブロックの先頭から「スムージング点数−J(Jは1から最大スムージング点数まで変化する自然数変数)」番目の位置に対応するサンプル値に対して当該変数Jに前記差分値を乗じた値を加算する処理を、変数Jを1から最大スムージング点数まで変化させて行うように構成され、
前記減算処理手段は、
前記前側ブロックの最後から「スムージング点数−J(Jは1から最大スムージング点数まで変化する自然数変数)」番目手前の位置に対応するサンプル値に対して当該変数Jに前記差分値を乗じた値を減算する処理を、変数Jを1から最大スムージング点数まで変化させて行うように構成された、ことを特徴とするようにしても良い。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しつつ説明する。図1は、本実施の形態におけるノイズ除去装置10のブロック構成図である。ノイズ除去装置10は、CPU100、ROM110、RAM120、A/D(アナログ/デジタル変換器)130、D/A(デジタル/アナログ変換器)140を備えている。
【0015】
CPU100は、ROM110に格納されたプログラムを実行することで、A/D130によりデジタル信号化された楽音信号に対して、周波数領域での処理により音響効果の効果付加等を行う。
【0016】
また、CPU100は、ROM110に格納されたプログラムを実行することで、窓をかけた楽音信号としてのデジタル信号に対して後述するスムージング処理を行う。即ち、楽音信号としてのデジタル信号を所定数個のサンプル値から成るブロック毎に分割したブロック群のうち或るブロックと、窓をかけた結果これと時間軸上で隣接するようになった後側に所定ブロック数離れたブロックとの両ブロック間を接続した場合における、それらの両ブロック間の接続点での不連続を解消するスムージング処理を行う。
【0017】
例えば、楽音信号としてのデジタル信号に対して2分の1オーバーラップを持たせて窓をかけた結果、図4に示すように、1番目のブロックと3番目のブロック、2番目のブロックと4番目のブロックがそれぞれ時間軸上で隣接した場合には、1番目と3番目のブロック間、2番目と4番目のブロック間の接続点で生じる不連続を解消するスムージング処理を行う。
【0018】
ROM110には、楽音信号としてのデジタル信号に対して窓をかける処理、高速フーリエ変換(以下、FFTと称する。)する処理、逆高速フーリエ変換(以下、逆FFTと称する。)する処理、周波数領域での処理により音響効果の効果付加等を行う処理等をCPU100に実行させるためのプログラムが格納されている。また、CPU100にスムージング処理を実行させるためのプログラムが格納されている。
【0019】
RAM120には、楽音信号としてのデジタル信号からノイズ波形を除去するために検出したそのノイズ波形のスペクトラム等が格納されるようになっている。 また、スムージング処理においてCPU100が算出した、時間軸上で隣接するようになった2つのブロック間の接続点で生じた不連続な接続点での振幅差やスムージング処理する際の補正量等が格納されるようになっている。
【0020】
A/D130は、ノイズ除去装置10外部から受け取った楽音信号としてのアナログ信号を時間軸上で順次サンプリングすることにより、楽音信号としてのデジタル信号を生成する機能を有する。また、生成したこのデジタル信号をCPU100に入力する機能を有する。
【0021】
D/A140は、CPU100から出力された楽音信号としてのデジタル信号を、楽音信号としてのアナログ信号に変換する機能を有する。また、この楽音信号としてのアナログ信号をノイズ除去装置10外部に送出する機能を有する。
【0022】
続いて、上述のような構成を有するノイズ除去装置10における処理について、図2、3に示すフローチャート図を用いて説明する。まず、図2を用いてノイズ除去装置10における全体の処理について説明する。ノイズ除去装置10外部から受け取った楽音信号がA/D130によりデジタル信号化され、この楽音信号としてのデジタル信号(以下単にデジタル信号と称する。)をCPU100に入力されると、CPU100は、デジタル信号の波形を所定数個のサンプル値から成る複数のブロック毎に分割しRAM120に格納する。そして、CPU100は、デジタル信号のノイズ波形のスペクトラムを求め、この求めたノイズ波形のスペクトラムをRAM120に格納する(ステップS2000)。
【0023】
次に、CPU100は、デジタル信号を分割した複数のブロックのうち、周波数領域での処理により音響効果の効果付加等を行う対象となるブロックを指定する変数Iを「1」に設定する(ステップS2010)。CPU100は、「1」に設定した変数IをRAM120に格納する。
【0024】
次に、CPU100は、変数Iで指定したブロックを読み込む処理を実行する(ステップS2020)。CPU100は、RAM120を検索して変数Iを読出す。そして、この変数Iが「1」となっていると判断し、RAM120を検索してデジタル信号を分割した複数のブロックの内、時間軸上の前から1番目のブロックを読み出す。
【0025】
次に、CPU100は、デジタル信号に対して窓をかける処理を実行する(ステップS2030)。CPU100は、RAM120から各ブロックを読み出し、これらの各ブロックに対して窓をかける処理を実行する。ここでは、窓をかける処理の一例として、図4に示すように、デジタル信号を分割した複数のブロックのそれぞれを、時間軸上でブロックの2分の1長さ分のオーバーラップを持たせて窓をかける処理を実行する。
【0026】
次に、CPU100は、デジタル信号をFFTする処理を実行する(ステップS2040)。CPU100は、RAM120を検索して各ブロックを読み出し、これらの各ブロックに対してFFTする処理を実行する。
【0027】
次に、CPU100は、変数Iで指定したブロックからノイズ波形を除去する処理を実行する(ステップS2050)。CPU100は、RAM120を検索して、ステップS2000において検出したノイズ波形のスペクトラムを読出す。そして、ステップS2020で読み出したブロックのスペクトラムから、このノイズ波形のスペクトラムを減算する。この処理によって、ノイズ波形が除去されたブロックの波形が取得される。
【0028】
次に、CPU100は、周波数領域での処理を実行する(ステップS2060)。CPU100は、ステップS2050で取得したブロックの波形に対して周波数領域での処理を実行することにより、様々な音響効果等の効果付加を行う。音響効果の例としては、例えば、ローパスフィルター、フェイザ−、ディレイ・リバーブ等が挙げられる。そして、CPU100は、この周波数領域での処理を実行したブロックをRAM120に格納する。
【0029】
次に、CPU100は、デジタル信号を逆FFTする処理を実行する(ステップS2070)。CPU100は、RAM120を検索して各ブロックを読み出し、これらの各ブロックに対して逆FFTする処理を実行する。
【0030】
次に、CPU100は、変数Iが3以上であるか否かを判定する(ステップS2080)。CPU100は、RAM120を検索して変数Iを読出し、変数Iが3以上である場合には(ステップS2080のYes)、ステップS2090の処理を実行する。変数Iが3以上でない場合には(ステップS2080のNo)、時間軸上で前側に隣接するブロックが存在しないためスムージング処理を行わないものとして、ステップS3100を実行する。
【0031】
次に、CPU100は、変数Iで指定したブロックに対してスムージング処理を実行する(ステップS2090)。このスムージング処理ついては、後に詳細に説明する。
【0032】
次に、CPU100は、ブロックの波形を出力波形として書き出す処理を実行する(ステップS3100)。CPU100は、RAM120を検索して、ステップS2060において周波数領域での処理を実行したブロック、即ち、変数Iで指定したブロックを読み出し、このブロックの波形をD/A140を介してノイズ除去装置10外部に送出する出力波形として設定する。
【0033】
次に、CPU100は、変数Iがデジタル信号を分割した複数のブロックの内、最終ブロックを示す数値であるか否かを判定する(ステップS2110)。CPU100は、RAM120を検索して変数Iを読み出す。そして、変数Iが最終ブロックを示す数値である場合には(ステップS2110のYes)、CPU100は、RAM120に格納された全てのブロック、即ち、ステップS3100において出力波形として設定されたブロックをすべて読み出す。そして、これらのブロックをD/A140により楽音信号としてのアナログ信号に変換し、ノイズ除去装置10外部に送出する。
【0034】
変数Iが最終ブロックを示す数値でない場合には(ステップS2110のNo)、CPU100は、変数Iを変更して「1」を加え、この変更した変数IをRAM120に格納する(ステップS2120)。そして、CPU100は、ステップS2020以降の処理を繰り返し実行する。
【0035】
続いて、上述のステップS2090におけるスムージング処理について、図3に示すフローチャート図を用いて詳細に説明するが、ここでまず、RAM120に格納された各ブロックのそれぞれは、ステップS2030における窓をかける処理を実行した結果、時間軸上でブロックの2分の1長さ分オーバーラップされている。このため、時間軸上の前側から1番目のブロックと、この1番目の後側に2個離れた3番目のブロック、また、2番目と4番目のブロック…等のように2個離れたブロック同士が互いに時間軸上で隣接するようになっている。
【0036】
そして、例えば隣接した1番目と3番目のブロック間を接続した場合の接続点においては、1番目のブロックの最後の振幅値と、3番目のブロックの先頭の振幅値とが一致せず、不連続が生じている。また、2番目と4番目のブロック間…等の接続点においても同様に不連続が生じている。
【0037】
上述のステップS2090におけるスムージング処理は、1番目と3番目のブロック等を補正して、これらの両ブロック間の接続点での不連続を解消するために実行される。ここでは、変数Iが「3」である場合のスムージング処理について説明するが、変数Iが「3」以外の場合であっても、同様の処理が行われる。
【0038】
CPU100は、時間軸上で隣接するブロック間の接続点の振幅差を求める処理を行う(ステップS3000)。CPU100は、RAM120を検索して、変数Iで指定したブロック、即ち、各ブロックの内時間軸上の前から3番目のブロックを読み出し、また、この3番目のブロックの2個前のブロック、即ち、1番目のブロックとを読み出す。そして、図5に示すように、1番目のブロックの波形上の最後の位置のサンプルの振幅値(以下、サンプル値と称する。)から、3番目のブロックの波形上の先頭の位置(1番目)のサンプル値を減算し、振幅差を求める。
【0039】
例えば、図5に示すように、3番目のブロックの先頭の位置のサンプル値が「0」であり、1番目のブロックの最後の位置のサンプル値が「−0.3」である場合には、振幅差は「−0.3」となる。
【0040】
次に、CPU100は、スムージング処理における補正量を求める処理を行う(ステップS3010)。CPU100は、図6に示すように、ステップS3000において求めた振幅差を2で除算し、この除算して求めた数値を1番目と3番目のブロックのそれぞれに対応する補正量としてRAM120に格納する。即ち、振幅差が「−0.3」である場合には、補正量は「−0.15」となる。
【0041】
次に、CPU100は、補正量をスムージング点数で除算し1サンプル当りの差分値(dBlockSmtDiff)を求める(ステップS3020)。ここで、スムージング点数とは、ブロック内のサンプル値のうち、スムージング処理の対象となるサンプルの個数を示す数値である。即ち、スムージング点数とは、図6に示すように、スムージング処理を実行するブロックの部分を示すスムージング長の範囲内に含まれるサンプル値の個数を示す数値であり、スムージング長の範囲内においてスムージング点数で示す個数のサンプル値に対して補正が行われるようになっている。
【0042】
CPU100は、RAM120を検索して補正量を読み出し、この補正量をスムージング点数で除算して、スムージング処理の対象となるサンプルについての1サンプル当りの差分値(dBlockSmtDiff)を求める。差分値とは、1つのサンプルのサンプル値を修正するために用いる数値である。そして、この求めた差分値(dBlockSmtDiff)をRAM120に格納する。即ち、補正量が「−0.15」であり、スムージング点数が「30」である場合には、1サンプル当りの差分値(dBlockSmtDiff)は、「−0.005」となる。
【0043】
次に、CPU100は、修正を行うサンプルを指定するための或る変数Jを「1」に設定する(ステップS3030)。CPU100は、「1」に設定した変数JをRAM120に格納する。
【0044】
次に、CPU100は、3番目のブロック内において変数Jに応じた位置のサンプルのサンプル値に、差分値と変数Jとに基づいて算出した数値を加算する処理を実行する(ステップS3040)。CPU100は、RAM120を検索して変数Jを読み出し、この変数Jを用いて「スムージング点数−J」で求められる数値(以下、「J’」とする。)を求める。また、RAM120を検索して差分値(dBlockSmtDiff)を読み出し、この差分値(dBlockSmtDiff)を用いて「差分値(dBlockSmtDiff)×J」で求められる数値(以下、「J’’」とする。)を求める。即ち、スムージング点数が「30」であり、差分値(dBlockSmtDiff)が「−0.005」である場合には、変数Jが「1」であることに応じて、「J’」は「29」となり、「J’’」は「−0.05」となる。
【0045】
そして、CPU100は、3番目のブロックの時間軸上の先頭から「J’」番目のサンプルのサンプル値に、「J’’」を加算する。CPU100は、この求めた加算後のサンプル値を用いて3番目のブロックの波形を補正し、この補正した後の3番目のブロックをRAM120に格納する。即ち、「J’」が「29」であり、「J’’」が「−0.05」である場合には、3番目のブロックの時間軸上の先頭から29番目のサンプルのサンプル値に「−0.05」が加算され、この加算された後のサンプル値を用いて、3番目のブロックの先頭から29番目のサンプルの振幅値が「0.05」分少なくなるように、3番目のブロックの波形を補正する。
【0046】
次に、CPU100は、1番目のブロック内において変数Jに応じた位置のサンプルのサンプル値から、差分値と変数Jとに基づいて算出した数値を減算する処理を実行する(ステップS3050)。CPU100は、1番目のブロックの時間軸上の最後から「J’」番目手前のサンプルのサンプル値から、「J’’」を減算する。CPU100は、この求めた減算後のサンプル値を用いて1番目のブロックの波形を補正し、この補正した後の1番目のブロックをRAM120に格納する。即ち、「J’」が「29」であり、「J’’」が「−0.05」である場合には、1番目のブロックの時間軸上の最後から29番目手前のサンプルのサンプル値から「−0.05」が減算され、この減算された後のサンプル値を用いて、1番目のブロックの最後から29番目のサンプルの振幅値が「0.05」分大きくなるように、1番目のブロックの波形を補正する。
【0047】
次に、CPU100は、変数Jを変更して「1」を加え、この変更した変数JをRAM120に格納する(ステップS3060)。
【0048】
次に、CPU100は、変数Jがスムージング点数と同値であるか否かを判定する(ステップS3070)。CPU100は、RAM120を検索して変数Jを読み出し、変数Jがスムージング点数と同値である場合には(ステップS3070のYes)、スムージング点数で示す個数のサンプルのサンプル値全てが修正され、1番目、3番目のブロックの波形の補正が終了したものとして処理を終了する。スムージング点数で示す個数のサンプルのサンプル値全てが修正されると、図8に示すように、1番目、3番目のブロックのスムージング長の範囲内において、振幅差の分離れていたそれぞれの波形が近付くように補正されるので、振幅差が無くなり1番目、3番目のブロック間の接続点での不連続が解消される。また、図9に示すスムージング処理前の波形のように、時間軸上で隣接するブロック間で不連続が生じていても、スムージング処理後の波形のように、それぞれの波形が近付くように補正されるので、振幅差が無くなり不連続が解消される。
【0049】
一方、変数Jがスムージング点数と同値でない場合には(ステップS3070のYes)、CPU100は、スムージング点数で示す個数のサンプルのサンプル値全てが修正されていないものとして、RAM120を検索して変数Jを読み出し、この変数Jを用いて、ステップS3040以降の処理を繰り返し行う。即ち、CPU100は、3番目のブロックの先頭から30番目までのサンプル値のそれぞれに対して、30番目から先頭側に向かって変数Jを順次変更して、差分値と変数Jとに基づいて算出した数値を加算する処理を繰り返し行う。また、1番目のブロックに対しても、1番目のブロックの最後から30番目までのサンプル値のそれぞれに対して、30番目から最後側に向かって変数Jを順次変更して、差分値と変数Jとに基づいて算出した数値を減算する処理を繰り返し行う。
【0050】
なお、変数Jを「1」からスムージング点数と同値となるまで順次変更してステップS3040およびステップS3050における処理を繰り返し行っていくことは、図7に示すように、「差分値(dBlockSmtDiff)×J」で求められる数値を変数Jを順次変更して得られる波形を1番目、3番目のブロックの波形に加算することと同等となっている。
【0051】
このように、楽音信号としてのデジタル信号を所定数個のサンプル値から成るブロック毎に分割したブロック群のうち或るブロックと、窓をかけた結果これと時間軸上で隣接するようになった後側に所定ブロック数離れたブロックとの両ブロック間を接続した場合において、それらの両ブロック間の接続点で不連続が生じた場合には、CPU100はスムージング処理を行う。
【0052】
そして、CPU100が、スムージング処理として、時間軸上の1番目、3番目のブロック内におけるスムージング点数で示す個数のサンプルのサンプル値全てを減算、加算する処理を実行し、減算、加算後のサンプル値を用いて1番目、3番目のブロックの波形の補正することにより、1番目、3番目のブロックのスムージング長の範囲内において、振幅差の分離れていたそれぞれの波形が近付くように補正されるので、振幅差が無くなり1番目、3番目のブロック間の接続点での不連続が解消される。
【0053】
また、1番目、3番目のブロックの波形上のサンプルのサンプル値を修正するようにしているため、特表2002−517021号公報に記載された発明のように、ブロック内のFFTする処理を行うサンプルの個数を変更せずに、サンプルの個数を元のままで不連続を解消することが可能である。
【0054】
更に、FFTする前に窓をかける処理を行い、そして、逆FFTした後に窓をかける処理を行うことによって三角窓やハニング窓となるように処理を行っていく場合と異なり、スムージング長で示す範囲内においてのみスムージング処理を行うようにしているので、演算量を殆ど増やさずに不連続を解消することが可能である。
【0055】
(その他の実施の形態)
なお、以上本発明の実施の形態について説明したが、本発明の要旨を逸脱しない範囲内で上記実施形態に種々の変形や変更を施すことが可能となる。例えば、スムージング長やスムージング点数を必要に応じて適宜変更すること、等が挙げられる。
【0056】
また、本実施の形態では、窓をかける処理として、ブロックの2分の1の長さ分オーバーラップを持たせて窓をかけた場合について説明したが、これに限られず、ブロックの3分の2の長さ分オーバーラップを持たせて窓をかけた場合若しくは他の方法により窓をかけた場合等であっても、窓をかけた結果所定ブロック数離れた2つのブロック同士が隣接した際に、それらの両ブロック間の接続点で不連続が生じた場合には、本実施の形態におけるノイズ除去装置10を適用することが可能である。
【0057】
【発明の効果】
以上説明したように、本発明によれば、窓をかけた結果、時間軸上で隣接するようになった所定ブロック数離れた2つのブロック間を接続した際に、それらの両ブロック間の接続点で不連続が生じた場合には、それら両ブロックの波形が近付くように補正することによって、サンプルの個数を元のままで演算量を殆ど増やさずに不連続を解消することが可能なノイズ除去装置を提供することができる。
【図面の簡単な説明】
【図1】ノイズ除去装置10のブロック構成図である。
【図2】ノイズ除去装置10における全体の処理を示すフローチャート図である。
【図3】ステップS2090におけるスムージング処理を示すフローチャート図である。
【図4】各ブロックに窓をかける処理として、ブロックの2分の1の長さ分オーバーラップを持たせて窓をかけた状態を示す図である。
【図5】1番目、3番目のブロックが時間軸上で隣接している状態を示す波形図である。
【図6】図5における1番目、3番目のブロック間の接続点付近を示す拡大図である。
【図7】1番目、3番目のブロックの波形を補正するための波形を示す波形図である。
【図8】1番目、3番目のブロック間の接続点での不連続を解消した状態を示す波形図である。
【図9】時間軸上で隣接するブロック間の接続点での不連続を解消した状態を示すグラフである。
【符号の説明】
10 ノイズ除去装置
100 CPU
110 ROM
120 RAM
130 A/D(アナログ/デジタル変換器)
140 D/A(デジタル/アナログ変換器)
[0001]
BACKGROUND OF THE INVENTION
According to the present invention, a digital signal generated by sequentially sampling an analog signal is divided into blocks each having a predetermined number of sample values, and a result of applying a window to this block and the time axis. The present invention relates to a noise removing apparatus that performs a smoothing process for eliminating discontinuity at a connection point when both blocks are connected to a block separated by a predetermined number of blocks on the rear side.
[0002]
[Prior art]
Conventionally, when a digital signal obtained by digitizing an analog signal as a musical sound signal or the like is processed by being divided into a plurality of blocks by a computer, discontinuity occurs at connection points between adjacent blocks. As a method for eliminating this discontinuity, first, a window function for applying a window before performing fast Fourier transform (FFT) on a plurality of blocks, and then applying a window after performing inverse fast Fourier transform (inverse FFT). There is a method of designing each window function so as to be a triangular window or a Hanning window by multiplying with the above window functions. In addition, a conventional noise reduction system is proposed in which the number of samples subjected to FFT processing in a block is changed so that the causality is maintained even if the digital signal is divided into a plurality of blocks and processed. (For example, refer to Patent Document 1).
[0003]
[Patent Document 1]
Japanese translation of PCT publication No. 2002-517021 (page 13, FIG. 1)
[0004]
[Problems to be solved by the invention]
However, in the method of eliminating the discontinuity by designing the window function as described above, the computer performs processing for applying a window before the fast Fourier transform (FFT) and after the inverse fast Fourier transform (inverse FFT). However, there is a problem that the amount of calculation to be processed becomes enormous.
[0005]
In addition, the method of changing the number of samples to be subjected to FFT processing in a block has a problem that the amount of calculation processed by the computer becomes enormous by changing the number of samples, which cannot be handled by a computer having low calculation capability. It was.
[0006]
Therefore, the present invention has been made in consideration of such circumstances, and as a result of applying a window, when two blocks separated by a predetermined number of blocks that are adjacent on the time axis are connected, those When discontinuity occurs at the connection point between both blocks, the discontinuity is eliminated without increasing the amount of computation while maintaining the original number of samples by correcting the waveforms of the two blocks to approach each other. An object of the present invention is to provide a noise removing device that can perform the above-described operation.
[0007]
[Means for Solving the Problems]
In order to solve the above problems, the present invention provides a certain block (front block) in a block group obtained by dividing a digital signal generated by sequentially sampling analog signals into blocks each having a predetermined number of sample values. As a result of applying a window, the discontinuity at the connection point when both blocks are connected with the block (rear block) separated by a predetermined number of blocks on the rear side that became adjacent on the time axis. A noise removal device that performs smoothing processing to eliminate,
Correction amount calculation means for obtaining a correction amount when performing the smoothing process at a connection point where discontinuity between the two blocks has occurred;
A difference calculating means for dividing the obtained correction amount by a smoothing score indicating the number of sample values to be subjected to the smoothing processing among the sample values in the block to obtain a difference value per sample;
A process of adding a numerical value calculated based on the difference value and the certain variable to a sample value at a position corresponding to a certain variable in the rear block is defined as an addition process, and from the head of the rear block For each of up to the number of sample values indicated by the number of smoothing points, an addition means for sequentially changing the certain variable from the number of times indicated by the number of smoothing points to the top side and repeatedly performing the addition process When,
A process of subtracting a numerical value calculated based on the difference value and the certain variable from a sample value at a position corresponding to the certain variable in the front block is defined as a subtraction process, and from the end of the front block, For each sample value up to the number before the number indicated by the number of smoothing points, the certain variable is sequentially changed from the number before the number indicated by the number of smoothing points to the end side, and the subtraction process is repeated. And a subtracting means.
[0008]
According to such an invention, the adding means sets a certain variable from the number indicated by the smoothing point to the head side for each of the sample values indicated by the smoothing point from the beginning of the rear block. Sequentially change and repeat the addition process, and the subtracting means starts from the last number of smoothing points from the last for each sample value from the end of the previous block to the number of smoothing points. Since a certain variable is sequentially changed toward the end side and the subtraction process is repeated, in the rear block and the front block, up to the number of sample values indicated by the smoothing points from the head of the rear block, the front block The waveform corresponding to the sample value from the end to the number before the number of smoothing points is corrected and connected It is possible to eliminate discontinuity at.
[0009]
In the above-described noise removing device,
The correction amount calculating means includes
Means for obtaining an amplitude difference at a connection point where the discontinuity between the two blocks has occurred, and means for obtaining a correction amount when performing the smoothing process by dividing the obtained amplitude difference by 2 Also good.
[0010]
According to such an invention, the amplitude difference at the connection point where the discontinuity between the two blocks occurs is divided by 2 to obtain the correction amount when performing the smoothing process. Since the waveform of the block is corrected so as to approach, the amplitude difference is eliminated and the discontinuity at the connection point can be eliminated.
[0011]
Furthermore, in the above-described noise removing apparatus, the digital signal may be a musical tone signal. According to such an invention, it is possible to eliminate the discontinuity generated in the digital signal as the musical sound signal.
[0012]
As another noise removing apparatus according to the present invention, a certain block (front block) in a block group obtained by dividing a digital signal generated by sequentially sampling an analog signal into blocks each having a predetermined number of sample values. ) And this and a block that is a predetermined number of blocks away on the time axis (rear side block) is assumed to be connected, and noise that performs smoothing processing to eliminate discontinuity at the connection point A removal device,
Correction amount calculating means for obtaining a correction amount used when performing the smoothing process at a connection point where discontinuity occurs between the two blocks;
Difference calculation means for obtaining a difference value per sample by dividing the obtained correction amount by the number of smoothing points which is the number of points (smoothing points) corresponding to samples belonging to the portion to be smoothed in one block. When,
A process of adding a value obtained by multiplying a variable value that changes according to a smoothing point position and the difference value to a sample value corresponding to the smoothing point position for each of a plurality of smoothing points in the rear block. Addition processing means for performing
A process of subtracting, for each of a plurality of smoothing points in the front block, a sample value corresponding to the smoothing point position, a value obtained by multiplying the variable value that changes according to the smoothing point position and the difference value. And a subtracting means for performing the processing.
[0013]
In the above-described noise removing apparatus,
The addition processing means includes
A value obtained by multiplying the variable J by the difference value with respect to the sample value corresponding to the “smoothing point−J (J is a natural number variable that changes from 1 to maximum smoothing point)” position from the head of the rear block. The process of adding is configured to change the variable J from 1 to the maximum number of smoothing points,
The subtraction processing means includes
A value obtained by multiplying the variable J by the difference value with respect to the sample value corresponding to the position “Smoothing point-J (J is a natural number variable that changes from 1 to the maximum smoothing point)” from the end of the front block. The subtracting process may be performed by changing the variable J from 1 to the maximum number of smoothing points.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block configuration diagram of a noise removing device 10 according to the present embodiment. The noise removal apparatus 10 includes a CPU 100, a ROM 110, a RAM 120, an A / D (analog / digital converter) 130, and a D / A (digital / analog converter) 140.
[0015]
The CPU 100 executes a program stored in the ROM 110 to add an effect of an acoustic effect to the musical sound signal converted into a digital signal by the A / D 130 by processing in the frequency domain.
[0016]
Further, the CPU 100 executes a program stored in the ROM 110 to perform a smoothing process, which will be described later, on a digital signal as a musical signal with a window. That is, the rear side of a block group obtained by dividing a digital signal as a musical sound signal into blocks each composed of a predetermined number of sample values and adjacent to this on the time axis as a result of applying a window When both blocks are connected to a block separated by a predetermined number of blocks, smoothing processing is performed to eliminate discontinuities at the connection point between those blocks.
[0017]
For example, as a result of applying a window to a digital signal as a musical sound signal with a half overlap, as shown in FIG. 4, the first block, the third block, the second block, and 4 When the second blocks are adjacent to each other on the time axis, smoothing processing is performed to eliminate the discontinuity that occurs between the first and third blocks and the connection point between the second and fourth blocks.
[0018]
In the ROM 110, processing for applying a window to a digital signal as a musical sound signal, processing for fast Fourier transform (hereinafter referred to as FFT), processing for inverse fast Fourier transform (hereinafter referred to as inverse FFT), frequency domain A program for causing the CPU 100 to execute a process for adding an effect of an acoustic effect or the like by the process in is stored. In addition, a program for causing the CPU 100 to execute the smoothing process is stored.
[0019]
The RAM 120 stores the spectrum of the noise waveform detected in order to remove the noise waveform from the digital signal as the musical sound signal. Also, the amplitude difference at the discontinuous connection point generated at the connection point between the two blocks that are adjacent on the time axis, the correction amount at the time of the smoothing process, and the like calculated by the CPU 100 in the smoothing process are stored. It has come to be.
[0020]
The A / D 130 has a function of generating a digital signal as a musical tone signal by sequentially sampling an analog signal as a musical tone signal received from the outside of the noise removing device 10 on the time axis. In addition, it has a function of inputting the generated digital signal to the CPU 100.
[0021]
The D / A 140 has a function of converting a digital signal as a musical sound signal output from the CPU 100 into an analog signal as a musical sound signal. Further, it has a function of sending out an analog signal as a musical tone signal to the outside of the noise removing device 10.
[0022]
Subsequently, processing in the noise removing apparatus 10 having the above-described configuration will be described with reference to flowcharts shown in FIGS. First, the overall processing in the noise removal apparatus 10 will be described with reference to FIG. When a musical sound signal received from the outside of the noise removing apparatus 10 is converted into a digital signal by the A / D 130 and a digital signal (hereinafter simply referred to as a digital signal) as the musical sound signal is input to the CPU 100, the CPU 100 The waveform is divided into a plurality of blocks each consisting of a predetermined number of sample values and stored in the RAM 120. Then, CPU 100 obtains the spectrum of the noise waveform of the digital signal and stores the obtained spectrum of the noise waveform in RAM 120 (step S2000).
[0023]
Next, the CPU 100 sets a variable I for designating a target block to which an effect of an acoustic effect is added by processing in the frequency domain among a plurality of blocks obtained by dividing the digital signal to “1” (step S2010). ). The CPU 100 stores the variable I set to “1” in the RAM 120.
[0024]
Next, the CPU 100 executes a process for reading the block specified by the variable I (step S2020). CPU 100 searches RAM 120 and reads variable I. Then, it is determined that the variable I is “1”, and the RAM 120 is searched to read the first block from the front on the time axis among the plurality of blocks obtained by dividing the digital signal.
[0025]
Next, the CPU 100 executes processing for applying a window to the digital signal (step S2030). The CPU 100 reads each block from the RAM 120 and executes a process for setting a window for each block. Here, as an example of the windowing process, as shown in FIG. 4, each of a plurality of blocks obtained by dividing a digital signal is given an overlap corresponding to a half length of the block on the time axis. Executes the process of applying a window.
[0026]
Next, the CPU 100 executes processing for FFT of the digital signal (step S2040). The CPU 100 searches the RAM 120, reads each block, and executes a process of performing FFT on each block.
[0027]
Next, the CPU 100 executes processing for removing the noise waveform from the block designated by the variable I (step S2050). CPU 100 searches RAM 120 and reads the spectrum of the noise waveform detected in step S2000. The noise waveform spectrum is subtracted from the block spectrum read in step S2020. By this process, the waveform of the block from which the noise waveform is removed is acquired.
[0028]
Next, the CPU 100 executes processing in the frequency domain (step S2060). The CPU 100 adds various effects such as acoustic effects by executing processing in the frequency domain on the waveform of the block acquired in step S2050. Examples of the acoustic effect include a low-pass filter, a phaser, a delay reverb, and the like. Then, the CPU 100 stores in the RAM 120 the block that has been processed in this frequency domain.
[0029]
Next, the CPU 100 executes a process of performing inverse FFT on the digital signal (step S2070). The CPU 100 searches the RAM 120, reads each block, and executes a process of performing inverse FFT on each block.
[0030]
Next, the CPU 100 determines whether or not the variable I is 3 or more (step S2080). The CPU 100 searches the RAM 120 to read the variable I, and when the variable I is 3 or more (Yes in step S2080), executes the process in step S2090. If the variable I is not 3 or more (No in step S2080), step S3100 is executed on the assumption that no smoothing process is performed because there is no adjacent block on the front side on the time axis.
[0031]
Next, the CPU 100 executes a smoothing process on the block specified by the variable I (step S2090). The smoothing process will be described in detail later.
[0032]
Next, the CPU 100 executes a process of writing the block waveform as an output waveform (step S3100). The CPU 100 searches the RAM 120, reads the block that has been processed in the frequency domain in step S2060, that is, the block specified by the variable I, and outputs the waveform of this block to the outside of the noise removal apparatus 10 via the D / A 140. Set as output waveform to be sent.
[0033]
Next, the CPU 100 determines whether or not the variable I is a numerical value indicating the final block among a plurality of blocks obtained by dividing the digital signal (step S2110). The CPU 100 searches the RAM 120 and reads the variable I. When the variable I is a numerical value indicating the final block (Yes in step S2110), the CPU 100 reads all the blocks stored in the RAM 120, that is, all the blocks set as output waveforms in step S3100. Then, these blocks are converted into analog signals as musical sound signals by the D / A 140 and transmitted to the outside of the noise removing apparatus 10.
[0034]
When the variable I is not a numerical value indicating the final block (No in step S2110), the CPU 100 changes the variable I, adds “1”, and stores the changed variable I in the RAM 120 (step S2120). And CPU100 repeatedly performs the process after step S2020.
[0035]
Subsequently, the smoothing process in step S2090 described above will be described in detail with reference to the flowchart shown in FIG. 3. First, each of the blocks stored in the RAM 120 performs a windowing process in step S2030. As a result of execution, the blocks are overlapped by a half length on the time axis. For this reason, the first block from the front side on the time axis, the third block separated by two on the first rear side, the second block, the second block, etc. They are adjacent to each other on the time axis.
[0036]
For example, at the connection point when the adjacent first and third blocks are connected, the last amplitude value of the first block does not match the first amplitude value of the third block, which is not valid. There is continuity. Similarly, discontinuities occur at connection points such as between the second and fourth blocks.
[0037]
The smoothing process in step S2090 described above is executed to correct the first and third blocks and the like, and eliminate discontinuities at the connection points between these two blocks. Here, the smoothing process when the variable I is “3” will be described, but the same process is performed even when the variable I is other than “3”.
[0038]
CPU100 performs the process which calculates | requires the amplitude difference of the connection point between the blocks adjacent on a time-axis (step S3000). The CPU 100 searches the RAM 120 to read the block specified by the variable I, that is, the third block from the front on the internal time axis of each block, and the block two blocks before the third block, that is, Read the first block. Then, as shown in FIG. 5, from the amplitude value of the sample at the last position on the waveform of the first block (hereinafter referred to as a sample value), the leading position (first position) on the waveform of the third block. ) Is subtracted to determine the amplitude difference.
[0039]
For example, as shown in FIG. 5, when the sample value at the beginning of the third block is “0” and the sample value at the end of the first block is “−0.3”. The amplitude difference is “−0.3”.
[0040]
Next, the CPU 100 performs a process for obtaining a correction amount in the smoothing process (step S3010). As shown in FIG. 6, the CPU 100 divides the amplitude difference obtained in step S3000 by 2, and stores the numerical value obtained by the division in the RAM 120 as the correction amount corresponding to each of the first and third blocks. . That is, when the amplitude difference is “−0.3”, the correction amount is “−0.15”.
[0041]
Next, the CPU 100 divides the correction amount by the number of smoothing points to obtain a difference value (dBlockSmtDiff) per sample (step S3020). Here, the number of smoothing points is a numerical value indicating the number of samples to be subjected to the smoothing process among the sample values in the block. That is, as shown in FIG. 6, the smoothing score is a numerical value indicating the number of sample values included in the range of the smoothing length indicating the portion of the block on which the smoothing process is performed, and the smoothing score is within the range of the smoothing length. Correction is performed on the number of sample values indicated by.
[0042]
The CPU 100 searches the RAM 120, reads the correction amount, and divides the correction amount by the number of smoothing points to obtain a difference value (dBlockSmtDiff) per sample for the sample to be smoothed. The difference value is a numerical value used for correcting the sample value of one sample. Then, the obtained difference value (dBlockSmtDiff) is stored in the RAM 120. That is, when the correction amount is “−0.15” and the smoothing score is “30”, the difference value per sample (dBlockSmtDiff) is “−0.005”.
[0043]
Next, the CPU 100 sets a variable J for designating a sample to be corrected to “1” (step S3030). The CPU 100 stores the variable J set to “1” in the RAM 120.
[0044]
Next, the CPU 100 executes processing for adding the numerical value calculated based on the difference value and the variable J to the sample value of the sample at the position corresponding to the variable J in the third block (step S3040). The CPU 100 searches the RAM 120 to read the variable J, and uses the variable J to obtain a numerical value (hereinafter referred to as “J ′”) obtained by “smoothing score−J”. Further, the RAM 120 is searched to read a difference value (dBlockSmtDiff), and a numerical value (hereinafter referred to as “J ″”) obtained by “difference value (dBlockSmtDiff) × J” using the difference value (dBlockSmtDiff). Ask. That is, when the smoothing score is “30” and the difference value (dBlockSmtDiff) is “−0.005”, “J ′” is “29” in response to the variable J being “1”. “J ″” becomes “−0.05”.
[0045]
Then, the CPU 100 adds “J ″” to the sample value of the “J ′”-th sample from the top on the time axis of the third block. The CPU 100 corrects the waveform of the third block using the obtained sample value after addition, and stores the corrected third block in the RAM 120. That is, when “J ′” is “29” and “J ″” is “−0.05”, the sample value of the 29th sample from the top on the time axis of the third block is set. “−0.05” is added, and the sample value after this addition is used so that the amplitude value of the 29th sample from the beginning of the third block is reduced by “0.05”. Correct the waveform of the block.
[0046]
Next, the CPU 100 executes a process of subtracting the numerical value calculated based on the difference value and the variable J from the sample value of the sample at the position corresponding to the variable J in the first block (step S3050). The CPU 100 subtracts “J ″” from the sample value of the sample “J ′” before the last on the time axis of the first block. The CPU 100 corrects the waveform of the first block using the obtained sample value after subtraction, and stores the corrected first block in the RAM 120. That is, when “J ′” is “29” and “J ″” is “−0.05”, the sample value of the 29th previous sample from the last on the time axis of the first block “−0.05” is subtracted from the sample value, and the sample value after the subtraction is used so that the amplitude value of the 29th sample from the end of the first block is increased by “0.05”. Correct the waveform of the second block.
[0047]
Next, the CPU 100 changes the variable J, adds “1”, and stores the changed variable J in the RAM 120 (step S3060).
[0048]
Next, the CPU 100 determines whether or not the variable J has the same value as the smoothing score (step S3070). The CPU 100 searches the RAM 120 and reads the variable J. If the variable J has the same value as the smoothing score (Yes in step S3070), all the sample values of the number of samples indicated by the smoothing score are corrected. The process is terminated assuming that the correction of the waveform of the third block has been completed. When all the sample values of the number of samples indicated by the number of smoothing points are corrected, as shown in FIG. 8, the respective waveforms having separated amplitude differences are within the smoothing length range of the first and third blocks. Since the correction is made so as to approach, the amplitude difference is eliminated, and the discontinuity at the connection point between the first and third blocks is eliminated. Further, even if discontinuity occurs between adjacent blocks on the time axis as shown in the waveform before the smoothing process shown in FIG. 9, each waveform is corrected so as to approach each other like the waveform after the smoothing process. Therefore, the amplitude difference disappears and the discontinuity is eliminated.
[0049]
On the other hand, if the variable J is not the same value as the smoothing score (Yes in step S3070), the CPU 100 searches the RAM 120 and searches for the variable J, assuming that all the sample values of the number of samples indicated by the smoothing score are not modified. Reading and using this variable J, the processing after step S3040 is repeated. That is, the CPU 100 sequentially changes the variable J from the 30th to the top side for each of the sample values from the top to the 30th of the third block, and calculates based on the difference value and the variable J. Repeat the process of adding the numerical values. Also for the first block, the variable J is sequentially changed from the 30th to the last side for each of the sample values from the last to the 30th of the first block, and the difference value and the variable The process of subtracting the numerical value calculated based on J is repeated.
[0050]
It should be noted that the variable J is sequentially changed from “1” until the value becomes equal to the number of smoothing points, and the processing in step S3040 and step S3050 is repeated, as shown in FIG. Is equivalent to adding the waveform obtained by sequentially changing the variable J to the waveforms of the first and third blocks.
[0051]
In this way, as a result of applying a window to a certain block of blocks obtained by dividing a digital signal as a musical sound signal into blocks each having a predetermined number of sample values, the block becomes adjacent on the time axis. In the case where both blocks are connected to a block separated by a predetermined number of blocks on the rear side, if discontinuity occurs at the connection point between these two blocks, the CPU 100 performs a smoothing process.
[0052]
Then, as the smoothing process, the CPU 100 executes a process of subtracting and adding all the sample values of the number of samples indicated by the number of smoothing points in the first and third blocks on the time axis. Is used to correct the waveforms of the first and third blocks so that the waveforms with the separated amplitude difference approach each other within the smoothing length range of the first and third blocks. Therefore, the amplitude difference disappears and the discontinuity at the connection point between the first and third blocks is eliminated.
[0053]
In addition, since the sample values of the samples on the waveforms of the first and third blocks are corrected, the processing of performing FFT in the block is performed as in the invention described in JP-T-2002-517021. Without changing the number of samples, it is possible to eliminate the discontinuity without changing the number of samples.
[0054]
Furthermore, unlike the case where processing is performed to form a triangular window or a Hanning window by performing processing for applying a window before performing FFT and performing processing for applying a window after performing inverse FFT, the range indicated by the smoothing length Since the smoothing process is performed only inside, it is possible to eliminate the discontinuity without increasing the amount of calculation.
[0055]
(Other embodiments)
Although the embodiment of the present invention has been described above, various modifications and changes can be made to the above-described embodiment without departing from the gist of the present invention. For example, the smoothing length and the number of smoothing points may be changed as necessary.
[0056]
In the present embodiment, as a process for applying a window, a case has been described in which the window is applied with an overlap corresponding to the length of one half of the block. However, the present invention is not limited to this. When two blocks that are a predetermined number of blocks apart are adjacent to each other even when the window is overlapped by the length of 2 or when the window is opened by another method, etc. In addition, when discontinuity occurs at the connection point between these two blocks, it is possible to apply the noise removal apparatus 10 in the present embodiment.
[0057]
【The invention's effect】
As described above, according to the present invention, when two blocks separated by a predetermined number of blocks that are adjacent on the time axis as a result of applying a window are connected, the connection between those two blocks is connected. When discontinuity occurs at a point, noise that can eliminate the discontinuity without increasing the amount of computation while maintaining the original number of samples by correcting the waveform of both blocks to approach each other A removal device can be provided.
[Brief description of the drawings]
FIG. 1 is a block configuration diagram of a noise removal apparatus 10;
FIG. 2 is a flowchart showing overall processing in the noise removal apparatus 10;
FIG. 3 is a flowchart showing smoothing processing in step S2090.
FIG. 4 is a diagram illustrating a state in which windows are provided with an overlap of a half length of a block as a process of applying a window to each block.
FIG. 5 is a waveform diagram showing a state in which the first and third blocks are adjacent on the time axis.
FIG. 6 is an enlarged view showing the vicinity of a connection point between the first and third blocks in FIG. 5;
FIG. 7 is a waveform diagram showing waveforms for correcting the waveforms of the first and third blocks.
FIG. 8 is a waveform diagram showing a state in which discontinuities are eliminated at connection points between the first and third blocks.
FIG. 9 is a graph showing a state in which discontinuities at connection points between adjacent blocks on the time axis are eliminated.
[Explanation of symbols]
10 Noise removal device
100 CPU
110 ROM
120 RAM
130 A / D (analog / digital converter)
140 D / A (digital / analog converter)

Claims (3)

アナログ信号を順次サンプリングして生成されたデジタル信号を所定数個のサンプル値から成るブロック毎に分割したブロック群のうちの或るブロック(前側ブロック)と、窓をかけた結果これと時間軸上で隣接するようになった後側に所定ブロック数離れたブロック(後側ブロック)との両ブロック間を接続した場合における接続点での不連続を解消するスムージング処理を行うノイズ除去装置であって、
前記2つのブロック間の不連続が生じた接続点での前記スムージング処理を行う際の補正量を求める補正量算出手段と、
ブロック内のサンプル値のうち、前記スムージング処理の対象となるサンプル値の個数を示すスムージング点数で前記求めた補正量を除算して1サンプル当りの差分値を求める差分算出手段と、
前記後側ブロック内における或る変数に応じた位置のサンプル値に、前記差分値と前記或る変数とに基づいて算出した数値を加算する処理を加算処理と定め、前記後側ブロックの先頭から前記スムージング点数で示す個数番目までのサンプル値のそれぞれに対して、前記スムージング点数で示す個数番目から先頭側に向かって前記或る変数を順次変更して、前記加算処理を繰り返し行っていく加算手段と、
前記前側ブロック内における前記或る変数に応じた位置のサンプル値から、前記差分値と前記或る変数とに基づいて算出した数値を減算する処理を減算処理と定め、前記前側ブロックの最後から前記スムージング点数で示す個数番目手前までのサンプル値のそれぞれに対して、最後から前記スムージング点数で示す個数番目手前から末尾側に向かって前記或る変数を順次変更して、前記減算処理を繰り返し行っていく減算手段と、を備えたことを特徴とするノイズ除去装置。
A block (front block) in a block group obtained by dividing a digital signal generated by sequentially sampling analog signals into blocks each having a predetermined number of sample values, and a result of applying a window to this block and the time axis A noise removing device for performing a smoothing process for eliminating discontinuities at a connection point when both blocks are connected to a block (rear block) that is separated by a predetermined number of blocks on the rear side that comes to be adjacent to each other ,
Correction amount calculation means for obtaining a correction amount when performing the smoothing process at a connection point where discontinuity between the two blocks has occurred;
A difference calculating means for dividing the obtained correction amount by a smoothing score indicating the number of sample values to be subjected to the smoothing processing among the sample values in the block to obtain a difference value per sample;
A process of adding a numerical value calculated based on the difference value and the certain variable to a sample value at a position corresponding to a certain variable in the rear block is defined as an addition process, and from the head of the rear block For each of up to the number of sample values indicated by the number of smoothing points, an addition means for sequentially changing the certain variable from the number of times indicated by the number of smoothing points to the top side and repeatedly performing the addition process When,
A process of subtracting a numerical value calculated based on the difference value and the certain variable from a sample value at a position corresponding to the certain variable in the front block is defined as a subtraction process, and from the end of the front block, For each sample value up to the number before the number indicated by the number of smoothing points, the certain variable is sequentially changed from the number before the number indicated by the number of smoothing points to the end side, and the subtraction process is repeated. And a subtracting means.
請求項1に記載のノイズ除去装置において、
前記補正量算出手段は、
前記2つのブロック間の不連続が生じた接続点での振幅差を求める手段と、前記求めた振幅差を2で除算して前記スムージング処理を行う際の補正量を求める手段と、を含むことを特徴とするノイズ除去装置。
In the noise removal apparatus of Claim 1,
The correction amount calculating means includes
Means for obtaining an amplitude difference at a connection point where the discontinuity between the two blocks has occurred, and means for obtaining a correction amount when performing the smoothing process by dividing the obtained amplitude difference by two. A noise removing device characterized by the above.
請求項1および2の内のいずれか1つに記載のノイズ除去装置において、
前記デジタル信号は、楽音信号であることを特徴とするノイズ除去装置。
In the noise removal apparatus as described in any one of Claim 1 and 2,
The noise removal apparatus according to claim 1, wherein the digital signal is a musical tone signal.
JP2003175638A 2003-06-20 2003-06-20 Noise removal device Expired - Fee Related JP4330381B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003175638A JP4330381B2 (en) 2003-06-20 2003-06-20 Noise removal device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003175638A JP4330381B2 (en) 2003-06-20 2003-06-20 Noise removal device

Publications (2)

Publication Number Publication Date
JP2005010544A JP2005010544A (en) 2005-01-13
JP4330381B2 true JP4330381B2 (en) 2009-09-16

Family

ID=34098722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003175638A Expired - Fee Related JP4330381B2 (en) 2003-06-20 2003-06-20 Noise removal device

Country Status (1)

Country Link
JP (1) JP4330381B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2426168B (en) * 2005-05-09 2008-08-27 Sony Comp Entertainment Europe Audio processing
JP2011239036A (en) * 2010-05-06 2011-11-24 Sharp Corp Audio signal converter, method, program, and recording medium

Also Published As

Publication number Publication date
JP2005010544A (en) 2005-01-13

Similar Documents

Publication Publication Date Title
US8391471B2 (en) Echo suppressing apparatus, echo suppressing system, echo suppressing method and recording medium
US8331583B2 (en) Noise reducing apparatus and noise reducing method
WO2020134851A1 (en) Audio signal transformation method, device, apparatus, and storage medium
JP6552462B2 (en) How to model musical instrument characteristics
EP3633668A1 (en) Delay loop model for stringed instrument waveform synthesizer
JPWO2006070560A1 (en) Noise suppression device, noise suppression method, noise suppression program, and computer-readable recording medium
CN106057220B (en) High-frequency extension method of audio signal and audio player
US5204906A (en) Voice signal processing device
JP2007232492A (en) Method and apparatus for measuring transfer characteristic
CN110503967B (en) Voice enhancement method, device, medium and equipment
JP4076887B2 (en) Vocoder device
JP4330381B2 (en) Noise removal device
US20180268794A1 (en) Signal processing apparatus
JP4070835B2 (en) Method and apparatus for filtering audio signals
JP5093108B2 (en) Speech synthesizer, method, and program
JP2022038611A5 (en)
KR20060081500A (en) Method on automatic detection of vibrato in music
JP2016038543A (en) Effect addition device, method, and program, and electric musical instrument
JP2015040963A (en) Acoustic filter device, acoustic filtering method, and program
JP2002044793A (en) Method and apparatus for sound signal processing
JP6589404B2 (en) Acoustic signal encoding device
JP4868042B2 (en) Data conversion apparatus and data conversion program
JP2019203912A (en) Emulation sound signal generation device, electronic musical instrument and non-linear system identification method
CN112420004A (en) Method and device for generating songs, electronic equipment and computer readable storage medium
CN115602182B (en) Sound conversion method, system, computer device and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090609

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: 20090616

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: 20090616

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees