Aqui está o meu código para um sinal de dois tons, em que uso uma banda de parada para remover o tom mais alto e, em seguida, plotamos o antes (em azul) e o depois (em vermelho) no domínio da frequência depois de convocar meu sinal com os coeficientes do filtro .
Se você inserir esse código no Matlab, poderá ver claramente que a frequência mais alta foi removida com êxito pelo filtro; no entanto, por algum motivo, a amplitude da frequência mais baixa foi cortada pela metade e quanto mais eu aumentar o número de coeficientes do filtro, quanto mais aplana toda a minha curva, por que isso ocorre? E como posso evitar que a banda de parada não se propague para o exterior? Aqui está a imagem e o código:
fSampling = 8000; tSampling = 1 / fSampling; t = 0: t Amostragem: 0,005; F0 = 1000; F1 = 3000; xt = sin (2 * pi * F0 * t) + sin (2 * pi * F1 * t); ht = fir1 (40, 0,25, 'parar'); yt = conv (xt, ht); fAxis = -4000: 125: 4000-125; xF = fft (xt, 64); MagXF = deslocamento de ffts (abs (xF)); plot (fAxis, MagXF); aguente yF = fft (yt, 64); MagYF = deslocamento de cinco vezes (abs (yF)); plot (fAxis, MagYF, 'r')