Как ограничить полосу wav-сигнала в MATLAB - PullRequest
2 голосов
/ 22 декабря 2011

Я импортировал WAV-сигнал в рабочую область Matlab, затем меня попросили «ограничить диапазон» сигнала, используя фильтр Баттерворта четвертого порядка, но я не совсем уверен, как это сделать.

1 Ответ

1 голос
/ 22 декабря 2011

Сначала вы должны прочитать документацию по функции Matlab butter (которая находится в наборе инструментов обработки сигналов).

Эта функция используется для разработки фильтра Баттерворта.Один из возможных синтаксисов:

[b a]=butter(n,Wn,'ftype');
  • b и a - это коэффициенты цифрового фильтра, которые можно использовать с функцией filter
  • n - порядок фильтра, за исключением случая полосового или полосового фильтра, в этом случае порядок равен 2 * n
  • Wn - частота среза, если вы хотите создать полосовой или полосовой фильтрэто может быть вектор из 2 элементов.Ожидается, что частота среза будет между 0 и 1, где 1 представляет частоту Найквиста

Теперь, если вы хотите применить это к вашему случаю, вы можете сделать что-то вроде этого:

% Read wav file (store sampling frequency in fs)
[data fs]=wavread('sample.wav');
% Design a 4th order lowpass filter with a cutoff frequency of 5000 Hz 
% (notice how the cutoff frequency is scaled by the Nyquist frequency fs/2)
n=4;
Wn=5000*2/fs;
[b a]=butter(n,Wn,'low');
% Apply the filter to the data
datafilt=filter(b,a,data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...