ジャイロスコープ データからの高周波数ノイズの除去
この例では、dsp.MedianFilter
System object を使用して、ストリーミング信号から高周波数の外れ値を除去する方法を説明します。
dsp.MatFileReader
System object を使用してジャイロスコープの MAT ファイルを読み取ります。ジャイロスコープの MAT ファイルには 3 列のデータが格納されています。各列には 7140 サンプルが含まれます。3 列はジャイロスコープのモーション センサーからの "X" 軸、"Y" 軸および "Z" 軸を表します。データの各列に含まれるフレーム数が 10 になるようにフレーム サイズ 714 サンプルを選択します。dsp.MedianFilter
System object はウィンドウの長さ 10 を使用します。timescope
オブジェクトを作成してフィルター処理された出力を表示します。
reader = dsp.MatFileReader('SamplesPerFrame',714,... 'Filename','LSM9DS1gyroData73.mat',... 'VariableName','data'); medFilt = dsp.MedianFilter(10); scope = timescope('NumInputPorts',1,... 'SampleRate',119,... 'YLimits',[-300 300],... 'ChannelNames',{'Input','Filtered Output'},... 'TimeSpanSource','Property',... 'TimeSpan',60,'ShowLegend',true);
dsp.MedianFilter
System object を使用して、ジャイロスコープ データをフィルター処理します。フィルター処理された "Z" 軸データを時間スコープに表示します。
for i = 1:10 gyroData = reader(); filteredData = medFilt(gyroData); scope([gyroData(:,3),filteredData(:,3)]); end
元のデータにはいくつかの外れ値が含まれています。データを拡大し、メディアン フィルターによってすべての外れ値が除去されることを確認します。