Skip to content

kantoku009/DigitalFilter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#はじめに C++言語にてデジタルフィルタを作成した。
WAVEファイルを読み込んで、デジタルフィルタに通すようにした。
作成したフィルタは以下。

  • Butterworth
  • Chebycheff

GitHubのリポジトリと全ソースコードのダウンロードは以下URLから行える。


#UML クラス図とシーケンス図を作成した。
以下からダウンロード可能。

UMLの作成には無償のUMLモデリングツールastah communityを使用している。

クラスやメソッドの説明はdoxygenで生成した。


#ビルド

コマンド
Unix系のOSでビルドするのを想定している。
以下コマンドが必要。
g++
make
make
zipファイルを解凍
コマンドラインからカレントディレクトリの移動
makeを実行
%unzip DigitalFilter-master.zip
%cd ./source
%make
実行ファイル生成
以下の実行ファイルが出来上がる。
myfilter

#使用方法 使用方法は以下を参照。

%./myfilter [WAVEファイル名] [フィルタ種類]  

フィルタ種類は以下の数値を指定する。

  • 0 : Butterworth ローパスフィルタ
  • 1 : Butterworth バンドパスフィルタ
  • 2 : Butterworth ハイパスフィルタ
  • 3 : Chebycheff ローパスフィルタ
  • 4 : Chebycheff バンドパスフィルタ
  • 5 : Chebycheff ハイパスフィルタ
設定ファイル
各フィルタの設定値は以下のファイルに記載されている。
./config/ButterworthLowPassFilter.conf
./config/ButterworthBandPassFilter.conf
./config/ButterworthHighPassFilter.conf
./config/ChebycheffLowPassFilter.conf
./config/ChebycheffBandPassFilter.conf
./config/ChebycheffHighPassFilter.conf

#Butterworthフィルタ ホワイトノイズをButterworthフィルタに通した結果を周波数解析した。
ホワイトノイズをフィルタに通すことでフィルタの性能を測定することができる。(詳細は後述の参考情報「ホワイトノイズ」を参照)

##ローパスフィルタ ###設定 Butterworthローパスフィルタの設定値は、以下のファイルから読み込む。

./config/ButterworthLowPassFilter.conf

フィルタの設定は、デフォルトでは以下のようにした。

  • カットオフ周波数: 400[Hz]
  • 1オクターブの減衰率: -48[db/oct]

Butterworth Low-pass -48dB/oct

##バンドパスフィルタ ###設定 Butterworthバンドパスフィルタの設定値は、以下のファイルから読み込む。

./config/ButterworthBandPassFilter.conf

フィルタの設定は、デフォルトでは以下のようにした。

  • カットオフ周波数: 400[Hz]
  • カットオフ周波数: 2000[Hz]
  • 1オクターブの減衰率: -48[db/oct]

Butterworth Band-pass -48dB/oct

##ハイパスフィルタ ###設定 Butterworthハイパスフィルタの設定値は、以下のファイルから読み込む。

./config/ButterworthHighPassFilter.conf

フィルタの設定は、デフォルトでは以下のようにした。

  • カットオフ周波数: 2000[Hz]
  • 1オクターブの減衰率: -48[db/oct]

Butterworth High-pass -48dB/oct


#Chebycheffフィルタ ホワイトノイズをChebycheffフィルタに通した結果を周波数解析した。
ホワイトノイズをフィルタに通すことでフィルタの性能を測定することができる。(詳細は後述の参考情報「ホワイトノイズ」を参照)

##ローパスフィルタ ###設定 Chebycheffローパスフィルタの設定値は、以下のファイルから読み込む。

./config/ChebycheffLowPassFilter.conf

フィルタの設定は、デフォルトでは以下のようにした。

  • カットオフ周波数: 400[Hz]
  • 1オクターブの減衰率: -48[db/oct]

Chebycheff Low-pass -48dB/oct

##バンドパスフィルタ ###設定 Chebycheffバンドパスフィルタの設定値は、以下のファイルから読み込む。

./config/ChebycheffBandPassFilter.conf

フィルタの設定は、デフォルトでは以下のようにした。

  • カットオフ周波数: 400[Hz]
  • カットオフ周波数: 2000[Hz]
  • 1オクターブの減衰率: -48[db/oct]

Chebycheff Band-pass -48dB/oct

##ハイパスフィルタ ###設定 Chebycheffハイパスフィルタの設定値は、以下のファイルから読み込む。

./config/ChebycheffHighPassFilter.conf

フィルタの設定は、デフォルトでは以下のようにした。

  • カットオフ周波数: 2000[Hz]
  • 1オクターブの減衰率: -48[db/oct]

Chebycheff High-pass -48dB/oct


#参考情報 ##ホワイトノイズ ホワイトノイズを周波数解析した。
ホワイトノイズは全ての周波数に対して同じ強度となる性質を持っている。
その為、ホワイトノイズをフィルタに通すことによって、フィルタの性能を確認することができる。
whitenoise

ホワイトノイズのファイルは、以下のサイトから借用した。
High Quality White Noise | Play & Download .wav .mp3 Audio Files

##周波数解析 周波数解析には音声編集ソフトWavePadというアプリケーションを利用した。
以下のサイトからダウンローが可能。
WavePad 音声編集ソフト

##デジタルフィルタ ###サイト デジタルフィルタに関しては以下サイトの実用ディジタル信号処理講座 第3章 デジタルフィルタの基礎を参考にした。
音響情報研究室

###書籍 以下の書籍を参考にした。
「デジタルフィルタ (ビギナーズ)」 中村 尚五 (著)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages