[an error occurred while processing this directive]
|
Вот, что я делаю:
clear;
f_src = fir1(128, 0.3, 'high');
F_SRC = fft(f_src);
A_SRC = abs(F_SRC);
% левая половина фчх
PH_SRC_new = imag(hilbert(A_SRC(1: ceil (length(A_SRC)/2) )));
R_start = ceil(length(A_SRC)/2) + 1;
L_start = floor(length(A_SRC)/2) + 1;
% правая половина фчх симметрична с точностью до знака
PH_SRC_new(R_start:length(A_SRC)) = -PH_SRC_new(L_start:-1:2);
% генерим результирующую частотную характеристику
F_SRC_new = A_SRC.*exp(PH_SRC_new);
% а затем синтезим фильтр в частотной области
f_src_new = real(ifft(F_SRC_new));
f_src_new = ifftshift(f_src_new);
plot(f_src_new);
grid on;
hold on;
plot(f_src, 'g');
zoom on;
hold off;
Судя по всему проблема в неточном ПГ...