2トーン信号のコードは次のとおりです。ストップバンドを使用して高いトーンを除去し、信号をフィルター係数で畳み込んだ後、周波数領域で前(青)と後(赤)をプロットします。 。
このコードをMatlabに入れると、フィルターによって高い周波数が正常に削除されたことがはっきりとわかりますが、何らかの理由で低い周波数の振幅が半分にカットされ、フィルター係数の数を増やすと、曲線全体が平らになるほど、これが起こるのはなぜですか?そして、ストップバンドが外側に伝播しないように、どうすればそれを防ぐことができますか?画像とコードは次のとおりです。
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); つかまっている yF = fft(yt、64); MagYF = fftshift(abs(yF)); plot(fAxis、MagYF、 'r')