Skip to content

Instantly share code, notes, and snippets.

@suikan4github
Created March 19, 2017 02:23
Show Gist options
  • Save suikan4github/dde2a99d14ea971bbe963661f719695d to your computer and use it in GitHub Desktop.
Save suikan4github/dde2a99d14ea971bbe963661f719695d to your computer and use it in GitHub Desktop.
信号処理基礎:矩形パルス信号の特性
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 矩形パルスの特性\n",
"2017年3月19日 by [酔漢](http://bfin.sakura.ne.jp/?p=939)\n",
"\n",
"矩形パルスとそのフーリエ変換結果は、いずれも信号処理のあちこちの局面で顔を出す。ここでは互いの結果をみながら、その特性を調べる。なお、ここでは周期的なパルスについて調べたあと、連続時間の単一パルスについても考える。\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import scipy.signal\n",
"import matplotlib.pylab as plt\n",
"\n",
"\n",
"# 矩形波を計算する。波形を左右対称に作ることで、FFT結果に虚部が生じないようにする。\n",
"def create_square(n, width):\n",
" sig = []\n",
"\n",
" # n点のリストを作る\n",
" for i in range(n):\n",
" sig.append(0.0)\n",
" \n",
" # 左右対称な矩形波\n",
" for i in range(0,width//2):\n",
" sig[i] = 1.0\n",
" sig[-i-1] = 1.0\n",
" \n",
" return sig\n",
"\n",
"# 波形データとFFT結果を描画する。FFT結果は実部のみ\n",
"def show_time_to_frequency( time_data, labeltext ):\n",
" plt.subplot(221)\n",
" plt.title('Time Domain')\n",
" plt.plot(time_data, label=labeltext)\n",
" plt.axis([-5, 1029, -0.1, 1.1 ])\n",
" plt.legend()\n",
" \n",
" plt.subplot(222)\n",
" plt.title(\"Time Domain (detail)\")\n",
" plt.plot(time_data, label=labeltext)\n",
" plt.axis([-5, 105, -0.1, 1.1 ])\n",
" plt.legend()\n",
" \n",
" #FFTにかけ、実部のみ取り出す\n",
" signal = np.fft.fft(time_data)\n",
" response = [c.real for c in signal]\n",
"\n",
" plt.subplot(223)\n",
" plt.title(\"Frequency Domain\")\n",
" plt.plot(response, label=labeltext)\n",
" plt.legend()\n",
"\n",
" plt.subplot(224)\n",
" plt.title(\"Frequency Domain (detail)\")\n",
" plt.plot(response, label=labeltext)\n",
" plt.axis([-5, 250, -15, 15 ])\n",
" plt.legend()\n",
"\n",
" # subplotをうまく描くための呪い http://matplotlib.org/users/tight_layout_guide.html\n",
" plt.tight_layout()\n",
"\n",
"# 波形データとFFT結果を描画する。FFT結果は絶対値\n",
"def show_time_to_frequency_abs( time_data, labeltext ):\n",
" plt.subplot(221)\n",
" plt.title('Time Domain')\n",
" plt.plot(time_data, label=labeltext)\n",
" plt.legend()\n",
" \n",
" plt.subplot(222)\n",
" plt.title(\"Time Domain (detail)\")\n",
" plt.plot(time_data, label=labeltext)\n",
" plt.axis([506, 762, -0.05, 0.05 ])\n",
" plt.legend()\n",
" \n",
" #FFTにかけ、絶対値を計算する\n",
" signal = np.fft.fft(time_data)\n",
" response = [np.sqrt(c.real**2+c.imag**2) for c in signal]\n",
"\n",
" plt.subplot(223)\n",
" plt.title(\"Frequency Domain\")\n",
" plt.plot(response, label=labeltext)\n",
" plt.axis([-5, 1029, -0.1, 1.2 ])\n",
" plt.legend()\n",
"\n",
" plt.subplot(224)\n",
" plt.title(\"Frequency Domain (detail)\")\n",
" plt.plot(response, label=labeltext)\n",
" plt.axis([-5, 105, -0.1, 1.2 ])\n",
" plt.legend()\n",
" \n",
" # subplotをうまく使うためのまじない\n",
" plt.tight_layout()\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 矩形パルスとそのFFT結果\n",
"矩形パルスは高さが1で、幅がτであるような信号である。ここでは繰り返し波形について考えるので、周期Tを持つことになる。τ/Tをデューティー比と呼ぶ。\n",
"\n",
"パルス幅が20のときと60のときの矩形波と、そのFFT結果を図に示す。FFTにかけやすいように1周期を1024点にとってあるが\n",
"\n",
"FFT後の波形の全貌をつかみにくいが、幅τ、高さ1の矩形波をフーリエ変換にかけると、結果は\n",
"\\begin{equation}\n",
"\\tau \\cdot sinc(\\tau f)\n",
"\\end{equation}\n",
"となる。ここで、sinc関数は次のような定義になっている。\n",
"\\begin{equation}\n",
"sinc(x) = \\frac{sin(\\pi x)}{\\pi x} \n",
"\\end{equation}\n",
"sinc(0)は1と定義されている。まとめると\n",
"\n",
"\\begin{equation}\n",
" g(t) = \\begin{cases}\n",
" 1 & (-\\frac{\\tau}{2} < t < \\frac{\\tau}{2} )\\\\\n",
" 0 & (otherwise)\n",
" \\end{cases}\n",
"\\end{equation}\n",
"のとき、$ \\mathcal{F}[g(t)] $ を、$ g(t) $のフーリエ変換とすると、\n",
"\\begin{equation}\n",
" \\mathcal{F}[g(t)] = \\tau \\cdot sinc(\\tau \\cdot f )\n",
"\\end{equation}\n",
"となる。"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f23b15cc9e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"N = 1024 # FFTのサンプル数\n",
"\n",
"width = 20\n",
"sq = create_square(N, width)\n",
"show_time_to_frequency(sq, str(width))\n",
"\n",
"width = 60\n",
"sq = create_square(N, width)\n",
"show_time_to_frequency(sq, str(width))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sinc関数とそのFFT結果\n",
"先の例と逆の操作を考える。\n",
"\n",
"$ \\mathcal{F}(g(t)) $ を $ g(t) $ のフーリエ変換とするとき、\n",
"\\begin{equation}\n",
"g(t) = \\tau \\cdot sinc(\\tau t) \n",
"\\end{equation}\n",
"\n",
"をフーリエ変換にかけると、\n",
"\n",
"\\begin{equation}\n",
"\\mathcal{F}(g(t)) = \n",
" \\begin{cases}\n",
" 1 & (-\\frac{\\tau}{2} < f < \\frac{\\tau}{2} )\\\\\n",
" 0 & (otherwise)\n",
" \\end{cases}\n",
"\\end{equation}\n",
"となる。\n",
"\n",
"時間軸上のsinc関数は、周波数軸上で矩形波特性をもつ。これは理想的な特性のBPFであるといえる。周波数特性は0Hzを中心に左右に広がっているため、実質LPFである。\n",
"\n",
"周波数特性を仔細に見ると、帯域の肩のあたりで特性に振動が見られる。これは本来時間軸上で無限に広がっているsinc関数を有限の範囲(周期)で切り取っているためで、この振動を抑えて滑らかにするため、時間軸上で窓関数をかけて有限の範囲に信号を抑える処理を施す。こうして作られた信号は、周波数特性で帯域の肩の辺りの振動がなくなる代わりに阻止域の減推量が甘くなるなどのトレードオフがある。こうしたフィルタの作り方を窓関数法と呼ぶ。"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f2384d8e4e0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"r = range(-N//2+1,N//2)\n",
"\n",
"coeff = 0.02\n",
"sc = np.sinc([ i * coeff for i in r]) * coeff\n",
"show_time_to_frequency_abs(sc, str(coeff))\n",
"\n",
"coeff = 0.06\n",
"sc = np.sinc([ i * coeff for i in r]) * coeff\n",
"show_time_to_frequency_abs(sc, str(coeff))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 連続時間での矩形応答を考える\n",
"関数 $ g(t)$ を\n",
"\\begin{equation}\n",
" g(t) = \\begin{cases}\n",
" 1 & (-\\frac{\\tau}{2} < t < \\frac{\\tau}{2} )\\\\\n",
" 0 & (otherwise)\n",
" \\end{cases}\n",
"\\end{equation}\n",
"と定義するとき、$ \\mathcal{F}[g(t)] $ を、$ g(t) $のフーリエ変換とすると、\n",
"\\begin{equation}\n",
" \\mathcal{F}[g(t)] = \\tau \\cdot sinc(\\tau \\cdot f )\n",
"\\end{equation}\n",
"となることは上で紹介した。\n",
"上でグラフ化する際にはFFT関数を使用した。FFTは信号が時間軸上で離散的で、かつ周期的(周波数軸上で離散的)である場合のフーリエ変換である。一方で、上の関係は信号が時間軸上で連続かつ無限に広がる場合にも成立する。\n",
"このような場合をすこし詳しく見てみる。\n",
"\n",
"$ g(t) $ は幅が $ \\tau $ で高さが1であるような矩形波信号である。このような信号をフーリエ変換にかけると、連続かつ無限に広がる時間上であっても\n",
"\\begin{equation}\n",
" \\mathcal{F}[g(t)] = \\tau \\cdot sinc(\\tau \\cdot f )\n",
"\\end{equation}\n",
"が成立する。ここでsinc関数の定義は\n",
"\\begin{equation}\n",
"sinc(x) = \\frac{sin(\\pi x)}{\\pi x} \n",
"\\end{equation}\n",
"であるから、引数が1のとき、関数の値は0になる。すなわち $ f = \\frac{1}{\\tau} $ のときに関数の値が0になるということである。$ \\tau $の単位は[秒]であるから、$ f $ の単位は[1/秒]すなわち[Hz]である。\n",
"\n",
"見方を変えると、これは伝達関数が矩形であるような回路は、その幅が $ \\tau $ ならば $ f = \\frac{1}{\\tau} $ [Hz]において出力がゼロ、すなわち零点を持つということになる。\n",
"\n",
"これを図示すると下のようになる。$ \\tau = \\frac{1}{1000} $[秒] なので、$ f $ = 1kHz に零点がある。"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7f2384c0fcc0>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nrpi4fkAAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f23b15cc940>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"r=range(1,4000)\n",
"width = 0.001\n",
"\n",
"x = [value*width for value in r]\n",
"y = np.sinc(x) * width\n",
"\n",
"plt.plot( x, y )\n",
"plt.grid( linestyle='-')\n",
"plt.xlabel( 'Frequency [kHz]')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"表示をゲインに変えてみる。"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x7f2384b31ba8>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f2384afcc88>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"gain = 20 * np.log10( np.absolute(y))\n",
"\n",
"plt.plot( x, gain )\n",
"plt.axis([-0.2, 4.2, -83, -57 ])\n",
"plt.grid( linestyle = '-')\n",
"plt.xlabel( 'Frequency [kHz]')\n",
"plt.ylabel( 'Gain [dB]')"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"このような特性は、DACの出力に置かれたゼロ次ホールド回路の出力に見ることができる。ゼロ次ホールド回路はDACの出力をサンプル周期のあいだ維持することによって階段状の出力信号を取り出す。\n",
"\n",
"ゼロ次ホールド回路は単純ではあるが、一方で図を見るとわかるように、ナイキスト周波数(この場合は500Hz)で、すでに4dB程度の減衰が起きている。そして、ナイキスト周波数を超える領域での減衰は十分とは言えない。つまり、エイリアスの抑圧が不十分である。\n",
"\n",
"## ゼロ次ホールド回路のゲイン\n",
"ところで、ゼロ次ホールドの数理モデルとして矩形波応答を持つフィルタを考えると、おかしな事に気がつく。\n",
"ゼロ次ホールド回路は、ホールド時間がどれほど短くともゲインは0dBである。すわなち、入力と同じ電圧を返す。一方で時間軸上で矩形波応答を持つフィルタを使うと、矩形パルスの長さに比例した増幅率となる。これでは矩形波応答をゼロ次ホールド回路のモデルとして使うことが出来ない。\n",
"\n",
"これを一見して問題に思えるのは、対象となる現象とモデルの対比を間違えているからである。正しい対比は以下の通りである。\n",
" * DAC出力をゼロ次ホールド回路に通した出力\n",
" * インパルス信号を矩形波応答フィルタに通した出力\n",
" \n",
"つまり、対比させるべきは双方の出力である。これをばらばらにしてゼロ次ホールド回路と矩形波応答フィルタを比較しても正しい結論を得ることはできない。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment