Berikut adalah kode saya untuk sinyal dua-kencang, di mana saya menggunakan stop-band untuk menghapus nada yang lebih tinggi dan kemudian merencanakan sebelum (berwarna biru) dan setelah (berwarna merah) di domain frekuensi setelah menggabungkan sinyal saya dengan koefisien filter. .
Jika Anda memasukkan kode ini ke Matlab, Anda dapat dengan jelas melihat bahwa frekuensi yang lebih tinggi telah berhasil dihapus oleh filter, namun untuk beberapa alasan amplitudo dari frekuensi yang lebih rendah telah dipotong dua, dan semakin saya meningkatkan # koefisien filter, semakin ia hanya meratakan seluruh kurva saya, mengapa ini terjadi? Dan bagaimana saya bisa mencegahnya sehingga stop-band tidak merambat ke luar? Ini gambar dan kodenya:
fSampling = 8000; tSampling = 1 / fSampling; t = 0: tSampling: 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)); plot (fAxis, MagXF); tahan yF = fft (yt, 64); MagYF = fftshift (abs (yF)); plot (fAxis, MagYF, 'r')