Oto mój kod dla dwutonowego sygnału, w którym używam pasma stop, aby usunąć wyższy ton, a następnie narysowałem przed (w kolorze niebieskim) i po (w kolorze czerwonym) w dziedzinie częstotliwości po splotie mojego sygnału ze współczynnikami filtra .
Jeśli umieścisz ten kod w Matlabie, zobaczysz wyraźnie, że wyższa częstotliwość została skutecznie usunięta przez filtr, ale z jakiegoś powodu amplituda niższej częstotliwości została zmniejszona o połowę, a im bardziej zwiększam # współczynniki filtra, im bardziej spłaszcza całą moją krzywiznę, dlaczego tak się dzieje? Jak mogę temu zapobiec, aby pasmo stop nie rozprzestrzeniało się na zewnątrz? Oto obraz i kod:
fPróbkowanie = 8000; tSampling = 1 / fSampling; t = 0: t Próbkowanie: 0,005; F0 = 1000; F1 = 3000; xt = sin (2 * pi * F0 * t) + sin (2 * pi * F1 * t); ht = fir1 (40, .25; „stop”); yt = conv (xt, ht); fAxis = -4000: 125: 4000-125; xF = fft (xt, 64); MagXF = fftshift (abs (xF)); wykres (fAxis, MagXF); czekaj yF = fft (yt, 64); MagYF = fftshift (abs (yF)); wykres (fAxis, MagYF, 'r')