Aquí está mi código para una señal de dos tonos, donde uso una banda de detención para eliminar el tono más alto y luego graficar el antes (en azul) y después (en rojo) en el dominio de frecuencia después de convolucionar mi señal con los coeficientes del filtro .
Si coloca este código en Matlab, puede ver claramente que la frecuencia más alta ha sido eliminada con éxito por el filtro, sin embargo, por alguna razón, la amplitud de la frecuencia más baja se ha reducido a la mitad, y cuanto más aumento el número de coeficientes del filtro, cuanto más se aplana toda mi curva, ¿por qué ocurre esto? ¿Y cómo puedo evitarlo para que la banda de detención no se propague hacia afuera? Aquí está la imagen y el código:
fMuestreo = 8000; tSampling = 1 / fSampling; t = 0: tMuestreo: 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 = desplazamiento manual (abs (xF)); trama (fAxis, MagXF); Espere yF = fft (yt, 64); MagYF = desplazamiento manual (abs (yF)); trama (fAxis, MagYF, 'r')