時間領域のアベレージング処理が周波数領域に与える影響の勉強 varlal.com
時間領域のアベレージング処理が周波数領域に与える影響
1.目的・概要
時間領域のアベレージング処理(離散の時間関数をある時刻の前後で平均を取った値にする)が周波数領域に与
える影響を調べてみる。数学上は高周波成分を取り除くいわゆるローパスフィルタになっていると考えられるが、実際
にどうなのかを実験してみる。実験環境は matlab とほぼ互換であるフリーの octave を使用した。
2.実験方法
以下のソースファイルを少しづつ交え、実験を行った。シャープ(#)でつけたところのみを実験によって変化させてい
る。
######################## ソース ###########################
N=4096;
L=1;
a=L/N;
n=0:(N1);
xn=n*a;
wave=sin(2*pi*xn)+sin(20*pi*xn)+sin(200*pi*xn)+sin(2000*pi*xn); #W 1
#wave=zeros(1,N); #W 2
#wave(1,N/2)=10000; #W 2
waveave=zeros(1,N);
AVENUM=30; #アベレージングの数(片側)
for i=(1+AVENUM):(NAVENUM)
for j=(1*AVENUM):(AVENUM)
waveave(1,i)=waveave(1,i)+wave(1,i+j);
end
waveave(1,i)=(waveave(1,i)/(2*AVENUM+1));
end
spec=abs(fft(wave));
specave=abs(fft(waveave));
subplot(2,2,1);
plot(xn,wave,"3");
grid on
subplot(2,2,3);
f=log(n*1/(N*a));
plot(f,spec,"1");
axis([0 110]);
grid on
subplot(2,2,2);
plot(xn,waveave,"3");
grid on
subplot(2,2,4);
plot(f,specave,"1");
axis([0 110]);
grid on
########################################################