Конечная импульсная характеристика Гауссова импульсно-формирующее Создание фильтра

Этот пример показов, как спроектировать Гауссов импульсно-формирующий конечную импульсную характеристику фильтр и параметры, влияющие на этот проект. Конечная импульсная характеристика создания фильтра формирования Гауссова импульса осуществляется путем усечения дискретизированной версии импульсной характеристики Гауссова фильтра в непрерывном времени, которая задается:

h(t)=πae-π2t2a2

Параметр 'a' связан с продуктом 3-dB времени полосы пропускания (B * Ts) Гауссова фильтра, как задано:

a=1BTslog22

В этом проекте есть две ошибки приближения: ошибка усечения и ошибка дискретизации. Ошибка усечения связана с конечновременным (КИХ) приближением теоретически бесконечной импульсной характеристики идеального Гауссова фильтра. Ошибка дискретизации (сглаживание) связана с тем, что Гауссова частотная характеристика на самом деле не ограничена полосой в строгом смысле (то есть энергия Гауссова сигнала сверх определенной частоты не совсем равна нулю). Это можно отметить из передаточной функции Гауссова фильтра в непрерывном времени, который приведен ниже:

H(f)=e-a2f2

Когда f увеличивается, частотная характеристика стремится к нулю, но никогда не является в точности нулем, что означает, что она не может быть дискретизирована без некоторого сглаживания.

Гауссов Фильтр Непрерывного Времени

Чтобы спроектировать Гауссов фильтр в непрерывном времени, давайте определим время символа (Ts), которое должно быть 1 микросекунда, и количество символов между началом импульсной характеристики и ее концом (пролет фильтра), чтобы быть 6. Из приведенных выше уравнений можно увидеть, что импульсная характеристика и частотная характеристика Гауссова фильтра зависят от параметра 'a', который связан с временным продуктом полоса пропускания-символ 3 дБ. Чтобы изучить эффект этого параметра на конечную импульсную характеристику Гауссова создания фильтра, мы зададим различные значения 'a' в терминах Ts и вычислим соответствующие полосы пропускания. Затем мы построим график импульсной характеристики для каждого 'a' и амплитудной характеристики для каждой полосы пропускания.

Ts   = 1e-6; % Symbol time (sec)
span = 6;    % Filter span in symbols

a = Ts*[.5, .75, 1, 2];
B = sqrt(log(2)/2)./(a);

t = linspace(-span*Ts/2,span*Ts/2,1000)';
hg = zeros(length(t),length(a));
for k = 1:length(a)
  hg(:,k) = sqrt(pi)/a(k)*exp(-(pi*t/a(k)).^2);
end

plot(t/Ts,hg)
title({'Impulse response of a continuous-time Gaussian filter';...
  'for various bandwidths'});
xlabel('Normalized time (t/Ts)')
ylabel('Amplitude')
legend(sprintf('a = %g*Ts',a(1)/Ts),sprintf('a = %g*Ts',a(2)/Ts),...
  sprintf('a = %g*Ts',a(3)/Ts),sprintf('a = %g*Ts',a(4)/Ts))
grid on;

Figure contains an axes. The axes with title Impulse response of a continuous-time Gaussian filter for various bandwidths contains 4 objects of type line. These objects represent a = 0.5*Ts, a = 0.75*Ts, a = 1*Ts, a = 2*Ts.

Обратите внимание, что импульсные характеристики нормированы ко времени символа.

Частотная характеристика для Гауссова фильтра непрерывного времени

Мы будем вычислять и строить график частотной характеристики для Гауссовых фильтров непрерывного времени с различными полосами пропускания. На графике ниже срез 3-dB обозначается красными кругами ('o') на кривую величину отклика. Обратите внимание 3-dB что полоса пропускания находится между DC и B.

f = linspace(0,32e6,10000)';
Hideal = zeros(length(f),length(a));
for k = 1:length(a)
  Hideal(:,k) = exp(-a(k)^2*f.^2);
end

plot(f,20*log10(Hideal))
titleStr = {'Ideal magnitude response for a continuous-time ';...
  'Gaussian filter for various bandwidths'};
title(titleStr);
legend(sprintf('B = %g',B(1)),sprintf('B = %g',B(2)),...
  sprintf('B = %g',B(3)),sprintf('B = %g',B(4)))
hold on
for k = 1:length(a)
  plot(B,20*log10(exp(-a.^2.*B.^2)),'ro','HandleVisibility','off')
end

axis([0 5*max(B) -50 5])
xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)')
grid on;

Figure contains an axes. The axes with title Ideal magnitude response for a continuous-time Gaussian filter for various bandwidths contains 4 objects of type line. These objects represent B = 1.17741e+06, B = 784940, B = 588705, B = 294353.

Конечная импульсная характеристика Приближения Гауссова фильтра

Мы разработаем Конечная Импульсная Характеристика Гауссова с помощью функции гауссдизайна. Входами для этой функции являются 3-dB продукт времени полосы пропускания-символа, количество периодов символа между началом и концом импульсной характеристики фильтра, то есть диапазон фильтра в символах, и коэффициент избыточной дискретизации (то есть количество выборок на символ).

Коэффициент избыточной дискретизации (OVSF) определяет частоту дискретизации и длину фильтра и, следовательно, играет значительную роль в конечной импульсной характеристике Гауссова создания фильтра. Ошибки приближения в проекте могут быть уменьшены при соответствующем выборе коэффициента избыточной дискретизации. Мы иллюстрируем это, сравнивая Гауссовы конечная импульсная характеристика, разработанные с двумя различными факторами избыточной дискретизации.

Во-первых, мы рассмотрим коэффициент избыточной дискретизации 16, чтобы спроектировать дискретный Гауссов фильтр.

ovsf = 16; % Oversampling factor (samples/symbol)
h = zeros(97,4);
iz = zeros(97,4);
for k = 1:length(a)
  BT = B(k)*Ts;
  h(:,k) = gaussdesign(BT,span,ovsf);
  [iz(:,k),t] = impz(h(:,k));
end
figure('Color','white')
t = (t-t(end)/2)/Ts;
stem(t,iz)
title({'Impulse response of the Gaussian FIR filter for ';...
  'various bandwidths, OVSF = 16'});
xlabel('Normalized time (t/Ts)')
ylabel('Amplitude')
legend(sprintf('a = %g*Ts',a(1)/Ts),sprintf('a = %g*Ts',a(2)/Ts),...
  sprintf('a = %g*Ts',a(3)/Ts),sprintf('a = %g*Ts',a(4)/Ts))
grid on;

Figure contains an axes. The axes with title Impulse response of the Gaussian FIR filter for various bandwidths, OVSF = 16 contains 4 objects of type stem. These objects represent a = 0.5*Ts, a = 0.75*Ts, a = 1*Ts, a = 2*Ts.

Частотная характеристика для КИХ-Гауссова фильтра (коэффициент избыточной дискретизации = 16

)

Мы вычислим частотную характеристику для Гауссовой конечной импульсной характеристики фильтра с коэффициентом избыточной дискретизации 16 и сравним его с идеальной частотной характеристикой (то есть частотной характеристикой Гауссова фильтра непрерывного времени).

Fs = ovsf/Ts;
fvtool(h(:,1),1,h(:,2),1,h(:,3),1,h(:,4),1,...
  'FrequencyRange', 'Specify freq. vector', ...
  'FrequencyVector',f,'Fs',Fs,'Color','white');
title('Ideal magnitude responses and FIR approximations, OVSF = 16')
hold on
plot(f*Ts,20*log10(Hideal),'--')
hold off
axis([0 32 -350 5])
legend(append(["B = " "Ideal, B = "],string(num2str(B','%g'))), ...
   'NumColumns',2,'Location','best')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Ideal magnitude responses and FIR approximations, OVSF = 16 contains 8 objects of type line. These objects represent B = 1.17741e+06, B = 784940, B = 588705, B = 294353, Ideal, B = 1.17741e+06, Ideal, B = 784940, Ideal, B = 588705, Ideal, B = 294353.

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

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

Значимость коэффициента избыточной дискретизации

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

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

ovsf = 4; % Oversampling factor (samples/symbol)
h = zeros(25,4);
iz = zeros(25,4);
for k = 1:length(a)
  BT = B(k)*Ts;
  h(:,k) = gaussdesign(BT,span,ovsf);
  [iz(:,k),t] = impz(h(:,k));
end
figure('Color','white')
t = (t-t(end)/2)/Ts;
stem(t,iz)
title({'Impulse response of the Gaussian FIR filter'; 'for various bandwidths, OVSF = 4'});
xlabel('Normalized time (t/Ts)')
ylabel('Amplitude')
legend(sprintf('a = %g*Ts',a(1)/Ts),sprintf('a = %g*Ts',a(2)/Ts),...
  sprintf('a = %g*Ts',a(3)/Ts),sprintf('a = %g*Ts',a(4)/Ts))
grid on;

Figure contains an axes. The axes with title Impulse response of the Gaussian FIR filter for various bandwidths, OVSF = 4 contains 4 objects of type stem. These objects represent a = 0.5*Ts, a = 0.75*Ts, a = 1*Ts, a = 2*Ts.

Частотная характеристика для КИХ-Гауссова фильтра (коэффициент избыточной дискретизации =

4)

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

Fs = ovsf/Ts;
fvtool(h(:,1),1,h(:,2),1,h(:,3),1,h(:,4),1,...
  'FrequencyRange', 'Specify freq. vector', ...
  'FrequencyVector',f,'Fs',Fs,'Color','white');
title('Ideal magnitude responses and FIR approximations, OVSF = 4')
hold on
plot(f*Ts,20*log10(Hideal),'--')
hold off
axis([0 32 -350 5])
legend(append(["B = " "Ideal, B = "],string(num2str(B','%g'))), ...
   'NumColumns',2,'Location','southeast')

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Ideal magnitude responses and FIR approximations, OVSF = 4 contains 8 objects of type line. These objects represent B = 1.17741e+06, B = 784940, B = 588705, B = 294353, Ideal, B = 1.17741e+06, Ideal, B = 784940, Ideal, B = 588705, Ideal, B = 294353.

См. также

|