Преобразование нормализованного фильтра в реальный частотный фильтр - PullRequest
0 голосов
/ 18 октября 2018

Если у меня ниже приведен нормализованный полосовой фильтр, как бы я преобразовал его в фильтр с центральной частотой 697 Гц и полосой пропускания, скажем, 50 Гц?

wHigh = (3*pi)/4;
wLow = pi/4;

M = 30;

N = M + 1;
n = -(N-1)/2 : (N-1)/2;

hn = 1./( (n+eps)*pi ) .* ( sin( (n+eps)*wHigh ) - sin( (n+eps)*wLow ) );
hn = hn(:);

dw = pi/400;
w = 0.0:dw:pi;

ak = hn;
k = 0;

for wc = w
   k = k + 1;

   expveca = exp(j*[M:-1:0]*wc);
   expveca = expveca(:);

   H(k) = sum(ak.*expveca)./exp(j*M*wc);
end

figure()
plot(w, abs(H));
set(gca, 'xlim', [0 pi]);
set(gca, 'xtick', [0:4]*pi/4);
set(gca,'XTickLabel',{'0','\pi/4','\pi/2','3\pi/4','\pi'});
grid on

1 Ответ

0 голосов
/ 09 ноября 2018

Единственный способ сохранить этот фильтр, не переделывая новый, и использовать его в «реальных» ситуациях с тем, что вы называете «реальными» частотами, - это сохранить пропорции между нормализованным фильтром (то есть рассчитанным с частотой дискретизации 1 Гц).скорость) и конечная ситуация (с частотой дискретизации, которую вы хотите использовать).

Вы разработали полосовой фильтр со следующими характеристиками:

Center : 0.250 Hz
Bandwidth : 0.250 Hz
Sample rate : 1 Hz

Обратите внимание, что Center = Bandwidth.Тогда, если вы хотите Center = 697Hz и Bandwidth = 50Hz, вам нужно будет изменить дизайн нового фильтра, потому что ваши требования не соответствуют пропорциям.

Вы можете иметь:

Center : 697 Hz
Bandwidth : 697 Hz
Sample rate : 2788 Hz

Или (эксклюзив):

Center : 50 Hz
Bandwidth : 50 Hz
Sample rate : 200 Hz

В этих двух случаях пропорции соблюдаются, поэтому я могу использовать ваш разработанный фильтр.

Но действительно важная вещь, которую необходимо решить в первую очередь, это ваш образецОцените, что вы работаете с .

...