サンプリング周波数を考慮した正弦波

正弦波は周波数をf,時間をtとすると,sin(2πft)と表せます.ここで,サンプリング周波数(標本化周波数)fsを考慮した場合の正弦波は,sin(2π・f/fs・t)となります.周波数をサンプリング周波数で割る必要があります.割っている理由は,周波数fがサンプリング周波数fsのとき1となるように正規化しているからです.

アナログとディジタルの架け橋であるZ変換で,z=exp(jωTs)という等式をみると思います(jは虚数).Tsはサンプリング間隔(サンプリング周波数の逆数)です.文献によっては,Ts=1として z=exp(jω)と表記されている場合もあります.expの肩の部分は,ω=2πf,Ts=1/fsより,j2πf/fsと表せます.
ところで,2πf/fsはどこまでの値をとるのかを考えてみます.信号の最大周波数をfmaxとすると,サンプリング定理(標本化定理)より,2fmax<fsとなります.
この不等式から出発します.
サンプリング定理より,2fmax<fs
0<fs,fs≠0より,2fmax/fs<1
ここから,
2πfmax/fs(expの肩の部分を意識)< π
となります.ゆえに,サンプリング定理が成り立っている場合,z=exp(jωTs)のωTsの部分は0~πまでの値をみればよいことが分かります.
また,これを実数でみると,πがナイキスト周波数で1/2,2πがサンプリング周波数で1に対応していることも分かります.

例として,CDと同じ44.1kHzサンプリング,1kHz正弦波を10秒発生させるコード(Scilab)を示します.

サンプルコード
—————————————
fs=44100;//サンプリング周波数
time=10;//発生時間 [sec]
t=0:1:time*fs;
f=1000;//1kHz
y=sin(2*%pi*f/fs*t);//正弦波

out=[y;y];//2Chに

wavwrite(out, fs, ‘sine_wav.wav’);//wavファイルへ
—————————————-

[補足]
サンプリング間隔 Ts=2とすると,expの肩の部分は0~2πまでの範囲となります.
双一次Z変換は,s=2/Ts・(1-z^-1)/(1+z^-1)ですが,Ts=2として,s=(1-z^-1)/(1+z^-1)としても大丈夫です.0~2πまでの範囲は,0~πまでの範囲を含んでいるから問題ないです.