主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

実践に即したデジタルフィルター処理の紹介

この例では,デジタルフィルターを設計して,解析し,データのフィルター処理を行う方法を示します。これは次のような問題の解決に役立ちます。フィルターによって生じる遅延はどのように補正するのか,信号の歪みはどのようにして防ぐことができるのか,信号から望ましくない成分を除去するにはどういう方法があるのか,信号はどのようにして微分するのか,また積分するのか。

フィルターを使用することで,信号スペクトルを望ましい形にしたり,微分や積分のような数学演算を行ったりできます。以下において,フィルターが必要になったときにその利用が楽になるような,実践に即した概念をいくつか説明します。

この例ではデジタルフィルターの設計でなく,その適用に焦点を合わせて説明します。デジタルフィルターの設計方法に関する詳細については,実践実践に即したたデジタルフィルターののの例の例を参照してください。

フィルター致理性によって生じる遅延の正

デジタルフィルターを使用すると信号に遅延が生じます。フィルター特性によって,遅延が全周波数にわたって一定の場合と周波数に応じて変化する場合があります。遅延を補正するために行う処理は,遅延のタイプによって異なります。关节grpdelayを使用すると,フィルター遅延を周波数関数としてとらえることができます。この関数出力を見ることによって,フィルター遅延が一定であるか,周波数に応じて変化する(つまり,遅延が周波数に依存する)かを特定することができます。

フィルター遅延が全周周周にわたってのの合,信号を时间シフトするによって容易に正できます。フィルターフィルターは通知,遅延が一定です。一方,遅延がが数応じて変する场场场料,位相位相が生物信号波形が変わる変わるありありますありますます。周波数に依存遅延の补补,遅延が一切の场ほど単でませんんほどフィルターでは,周波フィルターでは,周波数に依存遅延生命じ。

定遅延フィルターの補正

前述のように,フィルターの群遅延を測定して周波数関数が一定であることを確認できます。关节grpdelayを使使してフィルター遅延dを测定し,入力信号にd个の0を加加ててて出をを遅延サンプルだけできする,この遅延を正でき。

ノイズを含んだ心電図信号について,75 Hzを上回る高周波ノイズを除去するためにフィルター処理する例を考えてみます。冷杉ローパスフィルターをかけてから,フィルター遅延を補正します。これにより,ノイズを含んだ信号とフィルター処理後の信号が正しく整列され,比較できるようにプロットが互いに重ね合わせられます。

Fs = 500;Hz中的样品率%N = 500;%信号样本数rng默认的;X = ECG(n)'+ 0.25 * RANDN(N,1);%的波形t = (0: n - 1) / Fs;%的时间向量

75赫兹のカットオフ周波数をもつ70次ローパス冷杉フィルターを設計します。

fnorm = 75 /(fs / 2);%归一化频率df = designfilt (“lowpassfir”“FilterOrder”,70,'cutfffrequency', Fnorm);

フィルターの群遅延をプロットて,全全波数号群がであり,このフィルターが线形位相ことをします。

grpdelay (df、2048 Fs)%绘图组延迟

D =意味着(grpdelay (df))样本中的滤波器延迟%
D = 35

フィルター処理の前に,入力データベクトルxの最後にD個の0を追加します。これにより,有用なサンプルはすべてフィルターから除外され,また,入力信号と遅延補正された出力信号が同じ長さになることが確実になります。データのフィルター処理を行い,出力信号をDサンプルだけ時間シフトして遅延を補正します。この最後の手順で,フィルターの過渡特性が効果的に除去されます。

y =滤波器(df,[x; zeros(d,1)]);%在输入数据中添加D个零y = y (D + 1:结束);%移动数据以补偿延迟绘图(t,x,t,y,'r'“线宽”, 1.5)标题(过滤后的波形的)包含('时间'')传说('原始嘈杂的信号'“过滤信号”网格)

周波数依存の遅延の補正

周波数にする遅延遅延の位相歪みを生物ささますますますますますます补するは,遅延が一切である场ほど単でませんんオフラインでませんんオフラインではありん。filtfilt.を使用したゼロ位相フィルター処理によって周波数依存の遅延を除去できます。filtfilt.は入力データの処理を順方向と逆方向の両方向に行うことにより,ゼロ位相フィルター処理を行います。主な効果はゼロ位相の歪みを得ること,つまり,データは0サンプルの定遅延をもつ同等のフィルターによってフィルター処理されます。その他の効果は,元のフィルターの伝達関数の振幅の2乗に等しいフィルター伝達関数と,元のフィルターの次数の2倍のフィルター次数が得られることです。

前节で定义した心电图信号ををこの考え考えがうあるとの补があるととないににてフィルターます.75 hzのカット周波周波もつ7次ローパスiir楕円フィルターをします。

fnorm = 75 /(fs / 2);%归一化频率df = designfilt (“lowpassiir”...“PassbandFrequency”Fnorm,...“FilterOrder”7,...'passbandropple',1,...“StopbandAttenuation”,60);

フィルターの群遅延をプロットします。群遅延が周波数に応じて変化し,フィルター遅延が周波数に依存しています。

grpdelay (df, 2048,“一半”,fs)

データをフィルター処理して,時間信号に対するそれぞれのフィルターの実装の効果を見てみます。ゼロ位相フィルター処理がフィルター遅延を効果的に除去しています。

日元=过滤器(df, x);%非线性相位滤波器-无延迟补偿y2 = filtfilt (df, x);零相位执行-延迟补偿情节(t, x)情节(t, y1,'r'“线宽”,1.5)情节(T,Y2,“线宽”, 1.5)标题(过滤后的波形的)包含('时间'')传说(原始信号的“非线性IIR相位输出”...“零相位IIR输出”)XLIM([0.25 0.55])网格

因果性のない順方向/逆方向のフィルター処理が可能で,フィルター応答を元の応答の2乗に変更できるアプリケーションの場合,ゼロ位相フィルター処理は優れたツールです。

定遅延が発生するフィルターは線形位相フィルターです。周波数依存の遅延が発生するフィルターは非線形位相フィルターです。

信号の望ましくないスペクトル成分の除去

フィルターは,信号から望望ないないの除去これこれれれうこれれれううれれれうのフィルター能可ですですの可ですです。高分子数量です。高分子分数です。高分子数量です。高分子分数です。また,中间周波数帯域その残して低周もするはは,バンドパスは,バンドは,バンドは,バンドは,バンドは,バンド,は,は,バンドは,バンド,は,は,は,は,は,は,但バンドられは,バンドは,バンドは,バンドは,バンドは,バンドはは,バンドはは,バンドパスは,バンドパスは选びます。する结合は,バンドストップフィルターを选び。

电影供给ラインからハムおよびホワイトノイズ含むオーディオ含むについて考えみますますみますますはははははははますますますます。ホワイトノイズはオーディオ全全全。

オーディオ信号を読み込みます。サンプルレートを44.1 kHzに指定します。

FS = 44100;y = audioread(“noisymusic.wav”);

信号のパワースペクトルをプロットします。赤い三角形のマーカーは,オーディオ信号に干渉する強い60 Hzトーンを示します。

[P F] = pwelch (y)的(8192 1),8192/2,8192 Fs,“权力”);HelperfilterIntroductionPlot1(F,P,[60 60],[ -  9.365 -9.365],...{'原始信号功率谱'“60 Hz的语气”})

最初に,できるだけ多重のホワイトスペクトルの通道のます除去し除去ししししし高高高の値値损失によるオーディオオーディオの劣劣の适切なトレードオフオフが得设定设定なトレードオフオフオフが设定设定なすべきです.60 hzハムを除去する前ローパスフィルターをと,帯域帯域制されたたのサンプリング可口になり,非常に便利。信号のレートを低くすると,よりシャープで狭い60 hzバンドストップストップフィルターを低い低いフィルター次设计できでき

通過帯域周波数1 kHz,阻止帯域周波数1.4 kHzのローパスフィルターを設計します。最小次数設計を選択します。

《外交政策》= 1 e3;%通频带频率,单位为Hz置= 1.4 e3;停止频带频率,单位为HzAP = 1;通频带纹波百分比,单位为dBAst = 95;阻带衰减百分比,单位为dBdf = designfilt (“lowpassfir”“PassbandFrequency”,fp,...'stopband职业',fst,'passbandropple'据美联社,,...“StopbandAttenuation”Ast,“SampleRate”,fs);

フィルター応答を解析します。

fvtool (df,“Fs”,fs,“FrequencyScale”'日志'...“FrequencyRange”'指定频率。向量''频率矢量'F)

データをフィルター処理し,遅延を補正します。

D =意味着(grpdelay (df));%过滤器延迟ylp =滤波器(df,[y; zeros(d,1)]);YLP = YLP(D + 1:结束);

ローパスフィルター処理を行った信号のスペクトルを見てみます。1400赫兹を超える周波数成分が除去されています。

[PLP,FLP] = PWELCH(YLP,ylp(8192,1),8192 / 2,8192,FS,“权力”);HelperfilterIntroductionPlot1(F,P,FLP,PLP,...{原始信号的“低通滤过的信号”})

上部のパワースペクトルプロットより,ローパスローパスフィルター定理を行っ信号の无视无视ない周波周波周波ない周波周波周波周波周波周波サンプリング最であるであることがわかりわかりサンプリングサンプリング论によりにより,により 2 × 1400 = 2800 は信号を正确に表すににですですしかしの以のサンプルをなする必要て无駄な44100 hzのて无駄な使しいををしてます。信号をますますてををダウンサンプリングしてサンプルレート下载サンプルサンプルレートをすると,60 hzノイズ除去と,60 hzノイズ除去必要なシャープで狭いバンドフィルターをフィルターフィルター狭いでするを低いフィルターでででを低いフィルターフィルターでででを低いフィルターでででをフィルターフィルターフィルターででフィルターを低いフィルター。

サンプルレートfs / 10 = 4.41 khzを得るため,ローパスローパスフィルター定理を行た信号待遇10で前后しします。

Fs = f / 10;码= downsample (ylp 10);(Pds, Fds) = pwelch(码,(8192 1),8192/2,8192 Fs,“权力”);helperFilterIntroductionPlot1 (F P Fds, Pds,...{“信号以44100hz采样”'下采样信号,FS = 4410 Hz'})

次に,iirバンドストップフィルターで60 hzトーンを除去します。阻止帯域が中心60赫兹,幅4 hzになるようにます。シャープな周波数码および小さい帯域帯域リップルを比较低い低い低い低いフィルターを选択します。

df = designfilt (“bandstopiir”“PassbandFrequency1”现年55岁的...“StopbandFrequency1”58岁的“StopbandFrequency2”62,...“PassbandFrequency2”, 65,“PassbandRipple1”,1,...“StopbandAttenuation”60,“PassbandRipple2”,1,...“SampleRate”,fs,“DesignMethod”'椭圆');

振幅応答を解析します。

fvtool (df,“Fs”,fs,“FrequencyScale”'日志'...“FrequencyRange”'指定频率。向量''频率矢量'Fds (Fds > F (2)))

位相歪みを防ぐために,ゼロ位相フィルター定理をを行。关字filtfilt.をを用してデータデータデータします。

yb = filtfilt (df、码);

最後に,信号をアップサンプリングして,オーディオサウンドカードに準拠した元のオーディオサンプルレート44.1 kHzに戻します。

yf =插值函数(yb, 10);Fs = f * 10;

最後に,元の信号のスペクトルとフィルター処理後のスペクトルを見てみます。フィルターによって,高周波ノイズフロアと60 Hzトーンが減衰しています。

[pfinal,ffinal] = pwelch(yf,yf,8192,1),8192 / 2,8192,fs,“权力”);helperFilterIntroductionPlot1 (F P Ffinal Pfinal,...{原始信号的“最终过滤信号”})

0

%要播放原始信号,取消注释下面两行% hplayer = audioplayer(y, Fs);%播放(HPlayer)%播放降噪信号,取消注释接下来的两行%hplayer = audioplayer(yf,fs);% (hplayer);

信号不足

matlab关节による信号の微分には,出力時ノイズレベル増大の可能性という欠点があります。このため,より良い選択として微分器フィルターを使用します。微分器フィルターは,目的の帯域で微分器として,他の全周波数では減衰器として動作し,高周波ノイズを効果的に除去します。

例として,地震発生時の建物の床の変位速度を解析します。変位またはドリフトの測定値は,地震の条件下で3階建ての試験構造物の1階で記録されてquakedrift。垫ファイルに保存されました。データベクトルの長さは10 e3,サンプルレートは1 kHz,測定単位は厘米です。

変位データを微分して,地震発生時の建物の床の速度と加速度の推定値を求めます。diffおよび冷杉微分器フィルターを使用した結果を比較します。

加载QuakeRift.mat.Fs = 1000;%采样率dt = 1 / fs;%的时间差异t =(0:长度(漂移)-1)* dt;%的时间向量

ほとんどの信号エネルギーが帯域帯域であるフィルター设计ますのの阻止帯域をます。

df = designfilt ('upidsiatorfir'“FilterOrder”,50,...“PassbandFrequency”,100,'stopband职业',120,...“SampleRate”,fs);

关节は,応答 H Z. = 1 - Z. - 1 をもつ1次冷杉フィルターと見なすことができます。50次微分器冷杉フィルターの振幅応答と関数の応答を比较するために,fvtoolを使使し。明显に,0〜100 hzの通道帯域领域両両のが等価です。しかし,阻止帯域领域は,50分料フィルターでは,50次ているのに対し,差异の応答は成分。これが実质にます。

HFVT = fvtool(df,[1 -1],1, 0);“MagnitudeDisplay”“零”“Fs”,fs);传奇(HFVT,“50阶FIR微分器”“diff函数的响应”);

关节を使用して微分します。差の演算によって欠損しているサンプルを補正するために、0 を追加します。

v1 = diff(漂移)/ dt;A1 = Diff(V1)/ DT;v1 = [0;v1];A1 = [0;0;A1];

50次微分器冷杉フィルターを使用して微分し,遅延を補正します。

D =意味着(grpdelay (df));%过滤器延迟v2 =过滤器(df,漂移;0 (D, 1)]);v2 = v2 (D + 1:结束);a2 =过滤器(df, v2;0 (D, 1)]);a2 = a2 (D + 1:结束);v2 = v2 / dt;a2 = a2 / dt ^ 2;

00を使使しし场合书,速度の推定値ではがわずか増幅し,加入度の推定値はノイズ大厦にしてことわかりわかりしてがわかります。

HelperFilterIntroductionPlot2(T,Drift,V1,V2,A1,A2)

信号の積分

漏泄积分子フィルター,伝达关联 H Z. = 1 / [ 1 - C Z. - 1 ] をを用する全极です。 C は定数で,フィルターの安定性を確保するためには1未満でなければなりません。当然ですが, C が1に近づくにつれて,漏洩積分器がの伝達関数の逆関数に近づきます。前節で求めた加速度と速度の推定値を漏洩積分器で積分して,速度とドリフトをそれぞれ取り戻します。关节を使使て求め推定ののほうノイズがのでのでので,こちらので,こちらこちら使使用し。

漏洩積分器を 一种 = 0. 9. 9. 9. で使用します。漏洩積分器フィルターの振幅応答をプロットします。フィルターは,効果的に高周波ノイズを除去するローパスフィルターとして動作します。

fvtool (1 [1 -.999]“Fs”,fs)

漏洩積分器で,速度と加速度をフィルター処理します。時間差で乗算します。

v_original = v1;a_original = a1;d_leakyint =滤波器(1,[1-0.999],v_original);v_leakyint =滤波器(1,[1-0.999],a_original);d_leakyint = d_leakyint * dt;V_LEAKYINT = V_LEAKYINT * DT;

変位と速度速度の推定値をプロット,元の信号と比较し。

HelperFilterIntroductionPlot3(T,Drive,D_Leakyint,V_Original,V_Leakyint)

关节cumsumおよびCumtrapz.结果は,分析器でた结果同様になりますとになりますとになります结果にになります同様になります结果にになり结果とになります同様同様になり结果にになりにににににとに同様にに同様に同様同様。

まとめ

この例では,線形位相フィルターおよび非線形位相フィルターについて,また,それぞれのフィルタータイプによって生じる位相遅延の補正方法について説明しました。さらに,フィルターをかけて望ましくない周波数成分を信号から取り除く方法やローパスフィルターで帯域を制限した後で信号をダウンサンプリングする方法について説明しました。最後に,デジタルフィルター設計を使用した,信号の微分および積分方法を説明しました。この例の全体を通して,解析ツールを使用してフィルターの応答と群遅延を確認する方法についても説明しました。

フィルター適用の詳細については,信号处理工具箱™ドキュメンテーションを参照してください。デジタルフィルターの設計方法の詳細については,実践実践に即したたデジタルフィルターののの例を参照してください。

参考文献

Proakis,J.G和D. G.Manolakis。数字信号处理:原理,算法和应用englewood Cliffs, NJ: Prentice-Hall, 1996。

Orfanidis, s . J。信号处理简介englewood Cliffs, NJ: Prentice-Hall, 1996。

付録

この例では,次の補助関数が使用されています。

参考

||||||||