M系列信号(Maximum-length linear shift register sequence)は2値の周期的な信号であり,
1周期内では乱数として非常によい性質を持っているものらしい.
例えば,
- 0と1の発生確率がほぼ同じ
- 自己相関のピークが1周期に1度だけある
- nビットのM系列の1周期中の連続するnビットはユニーク
といった性質がある.
そのM系列信号をpythonで可視化してみる。
import numpy as np from numpy.fft import fft, ifft, fftshift, fftfreq from scipy.signal import max_len_seq import matplotlib.pyplot as plt %inline matplotlib def gen_mls(n): mls = max_len_seq(n)[0] print(mls) return mls def main(): seq = gen_mls(7) # MLS生成 spec = fft(seq) # フーリエ変換 acorr = np.correlate(seq, seq, 'full') # 自己相関
線形システムの同定入力に用いる際のパラメータ選定方法
同定入力に用いるM系列信号をn個のシフトレジスタで生成するとすると、nをまず選定しなければならない。 nが大きいからと言って必ずしも同定制度が向上するわけではない。 これは、M系列は1周期のすべてのデータを利用してはじめて擬似白色信号となるためである。 したがって、同定実験の長さ[tex:T{exp}]はM系列の1周期の長さ以上である必要がある。 一般に、 [tex:T{exp}]は1~2周期に選ばれることが多い。