• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ノイズの入った波形をきれいな波形にする方法)

ノイズの入った波形をきれいな波形にする方法

このQ&Aのポイント
  • ノイズの入った波形をきれいな波形にする方法について教えてください。
  • ノイズの入った波形をきれいにするための方法を知りたいです。
  • ノイズの入った波形のノイズを取り除き、きれいな波形にする方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • toshi_yn
  • ベストアンサー率50% (5/10)
回答No.3

No.1の方の回答が一番適切だと思いますが、それに対する質問者の反応がいまいちだったので補足します。 FFT(高速フーリエ変換)をご存知でしょうか。 今提示されている式は「信号成分」と「ノイズ分」は時間軸で記載されていますがこれをFFT解析することで周波数軸のデータに変換できます。ノイズは例えば信号成分に対し離れた周波数の場合に多いのでこの特性を利用して、周波数軸データからノイズの周波数成分をフィルタ関数などで取り除きます。 この後元の時間軸データに戻す作業がiFFT解析です。 もし、ノイズ成分が信号成分の周波数と近いならばNo.2の方の平均方法が適切です。 ノイズは一般にランダム性が強いので平均化でかなり取り除けるはずです。 前者のFFTソフトについてはVectorなど紹介されていますので探してみてください。 以上、参考まで。

izumi_charis
質問者

お礼

ご親切な回答ありがとうございます。フーリエは軸を変えてしまう方法だったのですね<名前しか知らなかったので、、、(^^; 実際のノイズ成分はまだ解析していないので欲しいデータの周波数に近いかどうかわかりませんが、試してみたいと思います。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • matyrcry
  • ベストアンサー率47% (101/213)
回答No.5

移動化平均なら1.5周期程度以上の時間をかければ 概ね軽減できると思いますが、1回だと効果のある周 波数にムラがありますよね。 3/4掛けか2/3掛けくらいで時間を変えて平均を 3回くらいでかけておけば割と広い範囲で効果を得ら れると思います。

izumi_charis
質問者

お礼

回答ありがとうございます。1回だとかなりムラがありました(>_<)3/4くらいでまぁまぁの波形がでました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

cos(2πωt)の周波数f=2πωなので、欲しい波形の周波数成分以外の周波数成分をカットしてやればいいですね。 質問のデータの場合、ノイズは高い周波数になっているので、高周波成分削除(ローパスフィルタ)になります。 波形データをフーリエ変換→高周波成分削除→逆フーリエ変換でいいと思います。

izumi_charis
質問者

お礼

回答ありがとうございます。高周波カットなのに、ローなのですね。数学世界は難しいです。

全文を見る
すると、全ての回答が全文表示されます。
  • kaha
  • ベストアンサー率23% (41/177)
回答No.2

5回サンプリングして最大値、最小値を除いた3つのデータの平均値をとるとか。簡単ですが、だめですよね? スムージングで検索。参考URLがヒット。 このサンプルプログラムの言語ってQBASICなのか? なんか、もっともらしい方法みたいな感じですよね。

参考URL:
http://www.civil.kumamoto-u.ac.jp/taishin/matsu/smooth.pdf
izumi_charis
質問者

お礼

回答ありがとうございます。参考URL見せていただきました。やりたいことはこんな感じです。2・3次多項式適合法orフーリエ変換を使えばよいのですね。<といっても、やり方がわかりませんが(T-T)ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • c80s3xxx
  • ベストアンサー率49% (1631/3289)
回答No.1

FTしていらん成分切ってからIFTするとか.

izumi_charis
質問者

お礼

回答ありがとうございます。 いらない成分・・・?(^^;

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フーリエ級数でホワイトノイズを表現する

    フーリエ変換では例えば時系列をcos, sinで分解してその係数をa0,a1,a2...., b1,b2,......を求めることになると思います.cosの方の係数がa, sinの方の係数がbです.(このあたりは十分説明し切れていませんが,標準テキストの表現と同じなので知っている方にはおなじみのことです.) さて,質問ですが,ホワイトノイズは各周波数成分(n)のパワーが均等になっているものだと思います. すなわちan^2+bn^2=1 という関係が全部のnで成り立つということですね.ただし,an, bnの値はこれでは決まらないので(0,1)の乱数を発生させてanを決め,それに応じたbnを決めました.位相のランダム性ということですが.そしてそれをフーリエ級数の時系列を表現する式に代入してプログラムでホワイトノイズ波形を作成しようとしたのですが,おかしいのです.ここまでの考え方で何か間違っているでしょうか. 自分としては以下の点を疑っています. 1.an, bnは正負の符号はどうなっていたでしょうか.この考え方では両方共正の値となっています.乱数を発生させても正・負は決めることができません.平方根をとる時に正の値だけになってしまいます. 2.時系列を表現する式というのはフーリエ逆変換と同じですが,FFTなどの方式は使わず,単純に和を取りました.Σan cos(theta)+bn sin(theta) というような式で初項はa0/2としました.最終項もちょっと違いますが,普通のテキストに載っている式です.フーリエ成分の重ねあわせと時間方向の進行があるので2重ループとなりますが. 3.乱数の発生のさせ方がまずい.Fortranのサイトから持ってきたものです.時間で発生させるものとか整数を与えて発生させるものなどいろいろです. 以上です.発生させた波形がどうおかしいのか言っていませんが,最初の数項だけはこうなっています. 0 128.288 1 128.345 2 0.443 3 42.991 4 0.497 5 26.035 6 0.667 7 18.964 ホワイトノイズ波形などそもそも作れるのかなと思いますが.どうでしょうか.よろしくお願いします.

  • エクセルでの波形プロット

    エクセルを用いて、以下の波形をプロットしたいのですが行き詰ってしまいました。 f1(t)=sin(5*2*3.141592*t)・・・式(1) 5Hzの正弦波   f2(t)=sin(5*2*3.141592*t)・・・式(2) 30Hzの正弦波  f3(t)=0.4*rand( )・・・式(3) 乱数  サンプリングインターバルは500Hzでt= 0.002 0.004  :  1 で計測する。 上記の式があるとき、 g(t)=f1(t)+f2(t)+f3(t)で得られる波形を同位相で5周期加算して平均を求め、その波形をプロットする。 波形を同位相でプロットするとはどのような手順で行えば正しい結果が得られるのでしょうか。よろしくお願いします。

  • 音声波形データのグラフ化について

    音声波形データのグラフ化について 開発環境:Visual C# 入力音声データ:ステレオ 16bit 44100HzのWAVデータ 目標:Windows Form上に音声の波形データをグラフ描画(折線グラフ)し、波形エディタのようなガイドライン機能を付加する。 まず、グラフ化を行う際、1秒間に44100個のデータがある場合、データのプロット数が非常に多くなってしまい、秒数次第では波形の全体描画にとても時間がかかってしまうと思うのですが、こういった場合、どのようにグラフ化するとよいのでしょうか? また、波形上に波形エディタのようにガイドラインを表示して、ガイドラインの時間における音声データの出力値も表示したいと思っております。 ガイドラインの移動はトラックバーによる移動を考えているのですが、プロット数が多くなると、上記の問題により再描画が追いつかず、スムーズなガイドライン移動ができません。 現在、グラフライブラリであるNPlotやZedGraphを使用して、グラフ描画を行ってみたのですが、どちらもプロット数が多くなると、描画自体にとても時間がかかるようになってしまい、ガイドラインの移動なんて出来たものではありません。 良いやり方、また、参考になるサイト、サンプルなどありましたら、 どうか教えていただきたく、よろしくお願い致します。

  • 株価時系列データからランダムノイズを除く方法

    株価の時系列データには一般的に白色ノイズ(ランダムノイズ)が含まれていると言われていますが、そのノイズを除去する方法を検討しています。 一番簡単な方法は数日間の移動平均を取る方法だと思いますが、株価の変化をすぐに捉えられなくなります。 他にノイズを除去する方法がありましたらご教授下さい。 よろしくお願いします。 (もしかしたらそんな方法ないかもしれませんが) 一般に行われているテクニカル分析などはノイズを含んだ状態で分析しているはずなのであまり信用ならないと思うのですがいかがなものでしょう。

  • ひずみ波形の波形分析のプログラム

    ひずみ波形の波形分析のプログラムを作れといわれました。 が、当方ズブの素人でまったくわかりません。 プログラムとしてはこんな感じのを作れと・・・ まず始めにデータ数m(任意)を入力 次に、高さの入力(任意) すべて入力しおわったら確認の画面(yes or no) 入力した値を基に計算 an sin wt +bn cos n wt =√A(二乗)+B(二乗) * sin(n wt+θn) θn=tan-1B/A an、b0、bn, √A(二乗)+B(二乗) * sin(n wt+θn)θn=tan-1B/A θn (但し、n=1~10) 書き方下手でよく分からないかと思いますが、これが精いっぱいです。 このプログラムを誰か教えてください。 C言語でお願いします。

  • wavファイルの波形データについて

    wavファイルのdataチャンクに含まれる波形データがどのような 形でファイルに入っているか教えてください。 また参考になるwebサイトなどでも構いません。

  • Wave波形の描画について

    現在C,C++を用いてwave波形の描画が出来るソフトを作成してみようと思っています。 最終的には一般的な波形データ編集ソフトと同じようなものを目指しているのですが、以下の点にてどのように実装するといいのか悩んでいます。 1、波形データを描画する 2、表示した波形データを伸縮できるようにする(縦横) 3、waveデータを再生した際に、再生位置にあわせて波形データをスクロールさせる 現在waveデータからサンプルデータ値を抽出するところまでは出来ています。 単純に1つ1つのサンプルどうしを線で結ぶという処理を大量に繰り返すという方法だととても重たくなるため別の方法を探していたところ、DirectXを使ってロードの際に波形データをテクスチャに一気に描画しておいてあとはそれを表示/加工する、といった処理が出来るのかなと思っているのですが具体的な方法がわからずに困っています。 上記実装についてご助言いただけないでしょうか。上記以外の方法でも結構でございます。 DirectXについても初心者ですのでお勧めの書籍やWebサイトなど併せて紹介していただけると非常に幸いでございます。 どうぞ宜しくお願い致します。

  • フーリエ変換した時のノイズの除去について

    お世話になります。 フーリエ変換して得られたグラフで特定の周波数(予想される波)以外で全周波数帯域に渡り小さな振幅が現れています。測定ノイズなので、これを除去して綺麗なグラフを得たいと思います。 以前URLでデータを分割するor何度かデータを取りそれらを平均する事で、ノイズの波形を現象させて綺麗なグラフを得ているものを見ました。今その方法を詳しく見たいと思っているのですが、そのURLを見つけることが出来ません。 この様な方法を紹介しているURLや本等ご存知の方いらっしゃいましたら教えて頂けないでしょうか。よろしくお願いします。

  • EXCELを使ってFFT(高速フ-リエ変換)をする方法

    添付ファイルの波形のスペクトル及びパワースペクトルを求め、それらの違いについて考察せよ。ただし、データ数1024個でFFTを行うこと。 1.波形1:sin波 1周期(振幅1) 2.波形2:sin波 1周期(振幅10) 3.波形3:sin波 1周期(振幅1、位相π/4) 4.波形4:cos波 1周期(振幅1) 5.波形5:sin波 2周期(振幅1) という問題で添付ファイルには波形1~5のデ-タが各1024個づつ入っていました。 この場合EXCELでどのような操作を行うとFFT(高速フ-リエ変換)をした波形になるのでしょうか?詳しい方教えてください.お願いします.1~5のどの場合でもよいので例をあげて教えてください.

  • VB 音の波形を取得する関数は?

    wavデータから、データを読み込んで、その音データの波形を解析したいと思っています。  とりあえずは、VBで開発し、wavデータを再生することまでできました。しかし、音の波形を取得するには、どうすればよいかわからず、ここで質問させて頂きます。  関数、API、サイトなど、何か情報の書き込みをよろしくお願い致します。 m(_ _)m