信号処理

このページでは当ブログ、WATLABで投稿している信号処理プログラミング関連の記事をまとめています。波形の表示から各種処理内容をまとめていますので、お好きな所からお読み下さい。

広く使われているPythonを活用して,フーリエ解析を学ぶ一冊。Pythonで数学的な処理をした経験がなくても問題ありません。科学技術計算で必須のライブラリNumPyとmatplotlibについて,基本から解説しています。

GUIアプリ

フレーム構築編:wxPythonで信号処理のGUIアプリをつくろう①
波形読み込み編:wxPythonで信号処理のGUIアプリをつくろう②
周波数波形編:wxPythonで信号処理のGUIアプリをつくろう③
スペクトログラム編:wxPythonで信号処理のGUIアプリをつくろう④
フィルタ処理編:wxPythonで信号処理のGUIアプリをつくろう⑤
アプリ完成編:wxPythonで信号処理のGUIアプリをつくろう⑥

kivy/PyAudioで録音アプリを作ってみた
kivyでピーク検出機能付き簡易FFTアナライザを作ってみた

波形生成

ノイズ波形

Pythonでガウス分布を持つノイズの作り方と調整方法

理想波形

チャープ信号

Pythonでチャープ信号!周波数スイープ正弦波の作り方

のこぎり波

Pythonでのこぎり波を生成!次数の高調波成分を見てみた

振幅増加が滑らかな正弦波

Pythonで滑らかに振幅増加する正弦波を作る1つの簡単な例

波形測定

録音

Python3.7でPyAudioがインストールできない時の解決法

PythonのPyAudioで音声録音をする簡単な方法

Python/PyAudioでマイクのチャンネルを確認する方法!

現場でPC1つ!簡単に録音・FFT・wav保存するPythonコード

kivy/PyAudioで録音アプリを作ってみた

kivyでピーク検出機能付き簡易FFTアナライザを作ってみた

iOSアプリ用

SwiftでiOSデバイスのマイクを使って録音機能を追加する方法

SwiftUI/iOSアプリ:録音データをChartsでグラフ化する

周波数バンド計算

PythonでFFTやスペクトログラムからバンド計算をする方法

振動情報計測

振動波形のヒルベルト変換から対数減衰率を求めるPythonコード

wavファイルの取り扱い

wavファイルの波形表示

PythonのPySoundFileでwavファイル波形表示

wavファイルの保存

Pythonでモノラルとステレオのwavファイルを保存する方法

mp3ファイルの取り扱い

mp3をwavに変換

Python/pydubでmp3をwavファイルに変換する方法

波形操作

波形切り出し

Pythonでwav波形を切り出す!NumPyの配列処理

リサンプリング

Python/SciPyで波形リサンプリング!任意時間軸に補間!

フィルタ処理

ただPythonでcsvからデジタルフィルタをかけるだけのコード

ローパスフィルタ(LPF)

PythonのSciPyでローパスフィルタをかける!

ハイパスフィルタ(HPF)

PythonのSciPyでハイパスフィルタをかける!

バンドパスフィルタ(BPF)

PythonのSciPyでバンドパスフィルタをかける!

バンドストップフィルタ(BSF)

PythonのSciPyでバンドストップフィルタをかける!

ノイズ除去

Pythonで簡単にwavファイルのノイズキャンセルを行う方法

ピッチシフト(音程操作)

Python/librosaのピッチシフトで音楽のキーを変更する方法

微分積分

周波数軸微積分

FFT波形を微積分!Pythonで周波数軸微積分をしてみた

ゼロパディング

ゼロパディングFFTで高周波数分解能にするPythonコード

波形検出

トリガ検出

Pythonで時間波形のトリガ検出アルゴリズムを作る!

ピーク検出

PythonでFFT波形から任意個数のピークを自動検出する方法

Pythonでスペクトログラムからピーク値を任意数抽出する方法

変換処理

DFT(離散フーリエ変換)

ただPythonでcsvから離散フーリエ変換をするだけのコード

Pythonで検証しながらSwiftで離散フーリエ変換を実装する

IDFT(逆離散フーリエ変換)

ただPythonでcsvから逆離散フーリエ変換をするだけのコード

FFT(高速フーリエ変換)

Cooley-Tukey法

Pythonで高速フーリエ変換をCooley-Tukey法で書く

Swiftで高速フーリエ変換(FFT)を実装する方法

オーバーラップ処理

PythonでFFTをする前にオーバーラップ処理をしよう!

Swiftで時間波形をオーバーラップ抽出するコード

窓関数処理

Pythonで窓関数が無い場合は?指数窓を自作してみる!

PythonでFFT!SciPyで窓関数をかける

窓関数使用時の補正!FFTの時に忘れがちな計算とは?

SwiftUIで時間波形に窓関数をかけてグラフ表示する方法

平均化FFT

PythonでFFT実装!SciPyのフーリエ変換まとめ

SwiftUIで録音した音声を平均化FFTするアプリをつくってみた

IFFT(逆高速フーリエ変換)

PythonでFFTとIFFT!逆フーリエ変換で時間波形を作る

ヒルベルト変換

Pythonでヒルベルト変換!時間波形の包絡線を求める方法

スペクトログラム

Pythonで音のSTFT計算を自作!スペクトログラム表示する方法

Pythonでピアノ音楽のスペクトログラムを作ってみた

Pythonの音声解析でフォルマントを抽出してみた

Pythonでフォルダ内全wavをスペクトログラムに変換してみた

ケプストラム分析

Pythonでケプストラム分析!音声から声帯情報を取得してみた

デシベル変換

Pythonで音圧のデシベル(dB)変換式と逆変換式!

聴感補正

Pythonで聴感補正(A特性)の曲線を作る!

周波数応答関数(FRF)

Pythonで伝達関数!2つの信号の周波数応答関数を計算する方法

コヒーレンス関数

Pythonでコヒーレンス関数!FRFのノイズ成分を評価する方法

カーブフィット

最小二乗法

直線

Pythonでカーブフィット!最小二乗法で直線近似する方法

多項式

Pythonで多項式カーブフィット!2次以上も最小二乗法を簡単適用

最小二乗法で円をカーブフィットするPythonプログラム

任意関数

SciPyのcurve_fitでデータを任意の関数に近似する方法

信号分析事例

変調

振幅変調(AM)

Pythonで学ぶ信号処理!振幅変調のサイドバンドを観察してみる

周波数変調(FM)

Pythonで学ぶ周波数変調(FM)!変調式と特徴を見てみる

音声認識

Python/SpeechRecognitionで音声認識してみた

信号処理関連はこちらのページで体系的にまとめていきます!