Вот мой код для двухтонного сигнала, где я использую полосу остановки для удаления более высокого тона, а затем нанёс график до (синим) и после (красным) в частотной области после свертывания моего сигнала с коэффициентами фильтра ,
Если вы поместите этот код в Matlab, вы ясно увидите, что более высокая частота была успешно удалена фильтром, но по какой-то причине амплитуда более низкой частоты была уменьшена вдвое, и чем больше я увеличиваю количество коэффициентов фильтра, чем больше это просто сглаживает всю мою кривую, почему это происходит? И как я могу предотвратить это, чтобы стоп-полоса не распространялась наружу? Вот изображение и код:
fSampling = 8000; tSampling = 1 / fSampling; t = 0: t Отбор проб: 0,005; F0 = 1000; F1 = 3000; xt = sin (2 * pi * F0 * t) + sin (2 * pi * F1 * t); ht = fir1 (40, .25, «стоп»); yt = conv (xt, ht); fAxis = -4000: 125: 4000-125; xF = fft (xt, 64); MagXF = fftshift (abs (xF)); участок (fAxis, MagXF); Оставайтесь на линии yF = fft (yt, 64); MagYF = fftshift (abs (yF)); участок (fAxis, MagYF, 'г')