Фильтрация гребенчатым фильтром
Определим дискретную передаточную функцию для гребенчатого фильтра.
In[1]:=
![Click for copyable input](assets.ru/comb-filtering/In_78.png)
combFilterModel[f_, \[Alpha]_, sr_: 44100] :=
TransferFunctionModel[{{1/( 1 - \[Alpha] z^-Round[sr/f])}}, z,
SamplingPeriod -> 1/sr]
In[2]:=
![Click for copyable input](assets.ru/comb-filtering/In_79.png)
combFilterModel[300, \[Alpha]]
Out[2]=
![](assets.ru/comb-filtering/O_35.png)
Отобразим участок передаточной функции на графике с помощью BodePlot.
In[3]:=
![Click for copyable input](assets.ru/comb-filtering/In_80.png)
BodePlot[combFilterModel[300, -.9], {0, 20000},
ScalingFunctions -> {"Linear", Automatic}, PlotLayout -> "Magnitude",
ImageSize -> Medium]
Out[3]=
![](assets.ru/comb-filtering/O_36.png)
Отфильтруем звуковой объект с помощью функции RecurrenceFilter.
In[4]:=
![Click for copyable input](assets.ru/comb-filtering/In_81.png)
a = AudioNormalize[Import["ExampleData/rule30.wav"]]
In[5]:=
![Click for copyable input](assets.ru/comb-filtering/In_82.png)
RecurrenceFilter[combFilterModel[300, -.9], a]