이산 부립엽 변환과 최소 2승법
하고 싶은 말
아무래도 최소 2승법의 식을 만들었다면 이산 부립엽 변환의 형식과 같다고 생각해서 총괄하고 싶습니다.
고등학교 수학만 쓰나?
정황
시간 함수 $y (t) 달러가 있다고 가정하십시오.이산 부립엽 변환을 하면y(t) = \frac{1}{\sqrt{N}}\sum_{n = 0}^{N-1} c_n\exp\left(-\mathrm{i} \frac{2\pi nt}{N}\right)
그러나 이 전개 계수를 얻으려면c_n = \frac{1}{\sqrt{N}}\sum_{t = 0}^{N-1} y(t)\exp\left(\mathrm{i} \frac{2\pi nt}{N}\right)
.이거 대열로 써주세요.\left( \begin{matrix} c_0 \\ c_1 \\ \vdots \\ c_{N-1}\end{matrix}\right)
= \left( \begin{matrix}
W^0 & W^0 & \cdots & W^0 \\
W^0 & W^{-1} & & W^{-(N - 1)} \\
\vdots & & \ddots & \vdots\\
W^0 & W^{-(N-1)} & \cdots & W^{-(N-1)(N-1)}
\end{matrix} \right)
\left( \begin{matrix} y(0) \\ y(1) \\ \vdots \\ y(N-1)\end{matrix}\right)
이렇게 써.여기는 $W=\exp\left(2\pi\mathrm{i]/N\right)$입니다. 괜찮겠습니까?
최소 2 곱셈으로 해석하다
시간 시퀀스 $y (t j) $를 가정합니다.
샘플링 시간 $tj$======================================================================j=j\Deltat 달러로 쓸 수 있습니다.또한 $M 포인트로 샘플링합니다.즉, $j=0,1,2\cdots,M-1달러입니다.
반면, 주파수 $\omegak$의 주기 함수가 있다고 가정하십시오.
$$
\psi_n(t) = c_n\exp\left(\mathrm{i}\omega_n t\right)
$$
$c_n = r_n\exp(i\phin)$는 복수이고 레이디얼 $r진폭n달러는 초기 상위에 해당한다.
이 주기 함수가 $N$개라고 가정하십시오.주파수도 등간격 $\omegak=k Delta\omega 달러의 값을 찾습니다.
시간 $t주의 사항y(t_j) = \sum_n c_n\psi_n(t_j)
형식, 복수$c나는 n달러를 비슷하게 이동하고 싶다. 하기에 적합하다.
$$
\vec{X} =\left(c_0, c_1,\cdots, c_{N-1}\right)^\mathrm{T}
$$
벡터의 계수.
부가 글자 $n 달러에 대한 것과 벡터의 내적을 생각하면
$$
y(t_j) =\vec{\psi}(t_j)^T\vec{X}
$$
이렇게 하면 (앞으로의 일을 위해 $\psi와 $X(c)달러의 적립 순서를 바꿀 수 있습니다.)
여기, $\vec{psi}(tj)달러는 시간$tj$\psi 가격으로 정렬됩니다.\vec{\psi}(t_j) = (\psi_0(t_j), \psi_1(t_j), \cdots, \psi_{N-1}(t_j))^\mathrm{T}
이거까지 세로로 하면...
$$
\vec{y} =\boldsymbol{A}\vec{X}
$$
하지만 여기
$$
\vec{y} =\left(y(t_0), y(t_1),\cdots, y(t_M)\right)^T
$$
벡터\boldsymbol{A} =\left(\vec{\psi}(t_0), \vec{\psi}(t_1), \cdots, \vec{\psi}(t_{M-1})\right)
열의 행렬로 쓸 수 있다.특히 $N=M달러일 때는 방진이다.
이해가 쉬워질지 모르겠지만 $\vec{y}=\boldsymbol{A}\vec{X}달러를 구체적으로 적으면\left( \begin{matrix}
y(t_0) \\ y(t_1) \\ y(t_2) \\ \vdots \\ y(t_{M-1})
\end{matrix} \right)
=
\left( \begin{matrix}
\exp(\mathrm{i}t_0\omega_0) & \exp(\mathrm{i}t_0\omega_1) &
\exp(\mathrm{i}t_0\omega_2) & \cdots & \exp(\mathrm{i}t_0\omega_{N-1}) \\
\exp(\mathrm{i}t_1\omega_0) & \exp(\mathrm{i}t_1\omega_1) &\exp(\mathrm{i}t_1\omega_2) & \cdots & \exp(\mathrm{i}t_1\omega_{N-1}) \\
\exp(\mathrm{i}t_2\omega_0) & \exp(\mathrm{i}t_2\omega_1) &\exp(\mathrm{i}t_2\omega_2) & & \exp(\mathrm{i}t_2\omega_{N-1}) \\
\vdots & & & \ddots & \vdots\\
\exp(\mathrm{i}t_{M-1}\omega_0) & \exp(\mathrm{i}t_{M-1}\omega_1) &\exp(\mathrm{i}t_{M-1}\omega_2) & \cdots & \exp(\mathrm{i}t_{M-1}\omega_{N-1})
\end{matrix} \right)
\left( \begin{matrix}
c_0 \\ c_1 \\ c_2 \\ \vdots \\ c_{N-1}
\end{matrix} \right)
여기, $N=M, $e^{mathrm{i}\Delta\Delta\omega^2} = W 달러를 쓰면 $\exp(\mathrm{i}t jomegak)=\exp\left(\mathrm{i}jk\Delta\right)=W^{jk}달러\boldsymbol{A} = \left( \begin{matrix}
1 & 1 & 1& \cdots & 1 \\
1 & W & W^2 & \cdots & W^{(N-1)} \\
1 & W^2 & W^4 & & W^{2(N-1)} \\
\vdots & & & \ddots & \vdots\\
1 & W^{(N - 1)} & W^{2(N-1)} & \cdots & W^{(N-1)^2}
\end{matrix} \right)
.지금 찾고 싶은 $\vec{X}달러는 $\boldsymbol {A}\vec{X}달러의 양쪽에서 $\boldsymbol {A}달러의 행렬로 반대로 배열되었다
$$
\vec{X} =\boldsymbol{A}^{-1}\vec{y}
$$
그러나 $\boldsymbol{A}^{-1}은 빠른 부립엽 변환 시 나타나는 행렬의 형상과 비슷합니다.\boldsymbol{A}^{-1} = \frac{1}{N}\left( \begin{matrix}
1 & 1 & 1& \cdots & 1 \\
1 & W^{-1} & W^{-2} & \cdots & W^{-(N-1)} \\
1 & W^{-2} & W^{-4} & & W^{-2(N-1)} \\
\vdots & & & \ddots & \vdots\\
1 & W^{-(N - 1)} & W^{-2(N-1)} & \cdots & W^{-(N-1)^2}
\end{matrix} \right)
피곤해서 게으름을 피우지만 더 노력하면 DFT와 같잖아.
상응하는 조치만 취하면 DFT는 달러 W=\exp\left(2\pi\mathrm{i]/N\right)의 최소 2승법 $W=\exp\left(\mathrm{i}\Delta\Delta\right) 달러다.
추기
오차(또는 정적 분포를 가정할 때의 대수가 비슷하다)L(\vec{x}) = \left(\vec{y} - \boldsymbol{A}\vec{x}\right)^\mathrm{T}\cdot\left(\vec{y} - \boldsymbol{A}\vec{x}\right)
최소 곱셈\vec{x} = (\boldsymbol{A}^\mathrm{T}\boldsymbol{A})^{-1}\boldsymbol{A}^\mathrm{T}\vec{y}
하지만 $M=N$,\Delta\Delta=2\pi/N달러의 조건하에서 $$$\boldsymbal은 {A} ^^mathrm{T} =\boldta\Delta=2\pi/N 달러의 경우 $\boldsymbal{A} {{{{{ssin(t)\} 달러가 정교기초계라면 $\boldsymbber{A} {matherm {T]\boldsymbobl{{A} {A} {{{A=2\\\2\pi/2\pi/2\pi/N달러의 경우 $\boldsymbsymbsymbe{I} $$$$Bboldsyboldsyboldsymbabab}{N}\boldsymbol{A}달러
$$
\vec{X} =\boldsymbol{A}^{-1}\vec{y}
$$
진정할 수 있을 것 같아서요.
덤
약간python으로 확인해 보세요.f
는 길이nlen
의 실수 배열(1차원 numby 배열)이다.
우선 일반적인 부립엽 변환이지만 결과를 실수로 바꾸기 위해 이산여현 변환을 사용한다.from scipy import fftpack
def DCT(f):
return fftpack.dct(f)
다음은 코스의 합계가 몸에 맞는 방법으로 계산한다.import numpy as np
def lsq(f):
nlen = len(f)
dw = np.pi/nlen
w = np.arange(nlen)*dw
t = np.arange(nlen)
phi = np.tile(w, (nlen, 1))*(t.reshape(nlen, 1))
X = np.cos(phi)
g = np.linalg.solve(X, f)
return g*nlen
데이터를 제작하다.평범한 진동에 고스를 가볍게 걸어라. nlen = 1000
x = np.arange(nlen)
f = np.cos(x/10)*np.exp( - (x)**2/(nlen/2)**2)
import matplotlib.pyplot as plt
plt.plot(x, f)
plt.show()
두 가지 방법으로 부립엽 변환을 하고 그림을 그립니다. g_lsq = lsq(f)
g_dct = DCT(f)
plt.plot(x, g_dct)
plt.plot(x, g_lsq)
plt.show()
최고치를 확대하다.
미세한 부분은 편차가 있지만 봉의 위치와 높이, 너비가 일치하기 때문에 좋다.
총결산
삼각함수의 화(和)로 적당한 함수를 쓸 때 삼각함수를 기함수계로 사용하면 이산부립엽 변환이 되고, 함수의 의합이라고 생각하면 최소제곱법이지만, 최소제곱법의 조건을 정리하면 부립엽 변환과 같은 모양이 된다.
Reference
이 문제에 관하여(이산 부립엽 변환과 최소 2승법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sage-git/items/bb7be84cddd6478b151f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
시간 함수 $y (t) 달러가 있다고 가정하십시오.이산 부립엽 변환을 하면
y(t) = \frac{1}{\sqrt{N}}\sum_{n = 0}^{N-1} c_n\exp\left(-\mathrm{i} \frac{2\pi nt}{N}\right)
그러나 이 전개 계수를 얻으려면c_n = \frac{1}{\sqrt{N}}\sum_{t = 0}^{N-1} y(t)\exp\left(\mathrm{i} \frac{2\pi nt}{N}\right)
.이거 대열로 써주세요.\left( \begin{matrix} c_0 \\ c_1 \\ \vdots \\ c_{N-1}\end{matrix}\right)
= \left( \begin{matrix}
W^0 & W^0 & \cdots & W^0 \\
W^0 & W^{-1} & & W^{-(N - 1)} \\
\vdots & & \ddots & \vdots\\
W^0 & W^{-(N-1)} & \cdots & W^{-(N-1)(N-1)}
\end{matrix} \right)
\left( \begin{matrix} y(0) \\ y(1) \\ \vdots \\ y(N-1)\end{matrix}\right)
이렇게 써.여기는 $W=\exp\left(2\pi\mathrm{i]/N\right)$입니다. 괜찮겠습니까?최소 2 곱셈으로 해석하다
시간 시퀀스 $y (t j) $를 가정합니다.
샘플링 시간 $tj$======================================================================j=j\Deltat 달러로 쓸 수 있습니다.또한 $M 포인트로 샘플링합니다.즉, $j=0,1,2\cdots,M-1달러입니다.
반면, 주파수 $\omegak$의 주기 함수가 있다고 가정하십시오.
$$
\psi_n(t) = c_n\exp\left(\mathrm{i}\omega_n t\right)
$$
$c_n = r_n\exp(i\phin)$는 복수이고 레이디얼 $r진폭n달러는 초기 상위에 해당한다.
이 주기 함수가 $N$개라고 가정하십시오.주파수도 등간격 $\omegak=k Delta\omega 달러의 값을 찾습니다.
시간 $t주의 사항y(t_j) = \sum_n c_n\psi_n(t_j)
형식, 복수$c나는 n달러를 비슷하게 이동하고 싶다. 하기에 적합하다.
$$
\vec{X} =\left(c_0, c_1,\cdots, c_{N-1}\right)^\mathrm{T}
$$
벡터의 계수.
부가 글자 $n 달러에 대한 것과 벡터의 내적을 생각하면
$$
y(t_j) =\vec{\psi}(t_j)^T\vec{X}
$$
이렇게 하면 (앞으로의 일을 위해 $\psi와 $X(c)달러의 적립 순서를 바꿀 수 있습니다.)
여기, $\vec{psi}(tj)달러는 시간$tj$\psi 가격으로 정렬됩니다.\vec{\psi}(t_j) = (\psi_0(t_j), \psi_1(t_j), \cdots, \psi_{N-1}(t_j))^\mathrm{T}
이거까지 세로로 하면...
$$
\vec{y} =\boldsymbol{A}\vec{X}
$$
하지만 여기
$$
\vec{y} =\left(y(t_0), y(t_1),\cdots, y(t_M)\right)^T
$$
벡터\boldsymbol{A} =\left(\vec{\psi}(t_0), \vec{\psi}(t_1), \cdots, \vec{\psi}(t_{M-1})\right)
열의 행렬로 쓸 수 있다.특히 $N=M달러일 때는 방진이다.
이해가 쉬워질지 모르겠지만 $\vec{y}=\boldsymbol{A}\vec{X}달러를 구체적으로 적으면\left( \begin{matrix}
y(t_0) \\ y(t_1) \\ y(t_2) \\ \vdots \\ y(t_{M-1})
\end{matrix} \right)
=
\left( \begin{matrix}
\exp(\mathrm{i}t_0\omega_0) & \exp(\mathrm{i}t_0\omega_1) &
\exp(\mathrm{i}t_0\omega_2) & \cdots & \exp(\mathrm{i}t_0\omega_{N-1}) \\
\exp(\mathrm{i}t_1\omega_0) & \exp(\mathrm{i}t_1\omega_1) &\exp(\mathrm{i}t_1\omega_2) & \cdots & \exp(\mathrm{i}t_1\omega_{N-1}) \\
\exp(\mathrm{i}t_2\omega_0) & \exp(\mathrm{i}t_2\omega_1) &\exp(\mathrm{i}t_2\omega_2) & & \exp(\mathrm{i}t_2\omega_{N-1}) \\
\vdots & & & \ddots & \vdots\\
\exp(\mathrm{i}t_{M-1}\omega_0) & \exp(\mathrm{i}t_{M-1}\omega_1) &\exp(\mathrm{i}t_{M-1}\omega_2) & \cdots & \exp(\mathrm{i}t_{M-1}\omega_{N-1})
\end{matrix} \right)
\left( \begin{matrix}
c_0 \\ c_1 \\ c_2 \\ \vdots \\ c_{N-1}
\end{matrix} \right)
여기, $N=M, $e^{mathrm{i}\Delta\Delta\omega^2} = W 달러를 쓰면 $\exp(\mathrm{i}t jomegak)=\exp\left(\mathrm{i}jk\Delta\right)=W^{jk}달러\boldsymbol{A} = \left( \begin{matrix}
1 & 1 & 1& \cdots & 1 \\
1 & W & W^2 & \cdots & W^{(N-1)} \\
1 & W^2 & W^4 & & W^{2(N-1)} \\
\vdots & & & \ddots & \vdots\\
1 & W^{(N - 1)} & W^{2(N-1)} & \cdots & W^{(N-1)^2}
\end{matrix} \right)
.지금 찾고 싶은 $\vec{X}달러는 $\boldsymbol {A}\vec{X}달러의 양쪽에서 $\boldsymbol {A}달러의 행렬로 반대로 배열되었다
$$
\vec{X} =\boldsymbol{A}^{-1}\vec{y}
$$
그러나 $\boldsymbol{A}^{-1}은 빠른 부립엽 변환 시 나타나는 행렬의 형상과 비슷합니다.\boldsymbol{A}^{-1} = \frac{1}{N}\left( \begin{matrix}
1 & 1 & 1& \cdots & 1 \\
1 & W^{-1} & W^{-2} & \cdots & W^{-(N-1)} \\
1 & W^{-2} & W^{-4} & & W^{-2(N-1)} \\
\vdots & & & \ddots & \vdots\\
1 & W^{-(N - 1)} & W^{-2(N-1)} & \cdots & W^{-(N-1)^2}
\end{matrix} \right)
피곤해서 게으름을 피우지만 더 노력하면 DFT와 같잖아.
상응하는 조치만 취하면 DFT는 달러 W=\exp\left(2\pi\mathrm{i]/N\right)의 최소 2승법 $W=\exp\left(\mathrm{i}\Delta\Delta\right) 달러다.
추기
오차(또는 정적 분포를 가정할 때의 대수가 비슷하다)L(\vec{x}) = \left(\vec{y} - \boldsymbol{A}\vec{x}\right)^\mathrm{T}\cdot\left(\vec{y} - \boldsymbol{A}\vec{x}\right)
최소 곱셈\vec{x} = (\boldsymbol{A}^\mathrm{T}\boldsymbol{A})^{-1}\boldsymbol{A}^\mathrm{T}\vec{y}
하지만 $M=N$,\Delta\Delta=2\pi/N달러의 조건하에서 $$$\boldsymbal은 {A} ^^mathrm{T} =\boldta\Delta=2\pi/N 달러의 경우 $\boldsymbal{A} {{{{{ssin(t)\} 달러가 정교기초계라면 $\boldsymbber{A} {matherm {T]\boldsymbobl{{A} {A} {{{A=2\\\2\pi/2\pi/2\pi/N달러의 경우 $\boldsymbsymbsymbe{I} $$$$Bboldsyboldsyboldsymbabab}{N}\boldsymbol{A}달러
$$
\vec{X} =\boldsymbol{A}^{-1}\vec{y}
$$
진정할 수 있을 것 같아서요.
덤
약간python으로 확인해 보세요.f
는 길이nlen
의 실수 배열(1차원 numby 배열)이다.
우선 일반적인 부립엽 변환이지만 결과를 실수로 바꾸기 위해 이산여현 변환을 사용한다.from scipy import fftpack
def DCT(f):
return fftpack.dct(f)
다음은 코스의 합계가 몸에 맞는 방법으로 계산한다.import numpy as np
def lsq(f):
nlen = len(f)
dw = np.pi/nlen
w = np.arange(nlen)*dw
t = np.arange(nlen)
phi = np.tile(w, (nlen, 1))*(t.reshape(nlen, 1))
X = np.cos(phi)
g = np.linalg.solve(X, f)
return g*nlen
데이터를 제작하다.평범한 진동에 고스를 가볍게 걸어라. nlen = 1000
x = np.arange(nlen)
f = np.cos(x/10)*np.exp( - (x)**2/(nlen/2)**2)
import matplotlib.pyplot as plt
plt.plot(x, f)
plt.show()
두 가지 방법으로 부립엽 변환을 하고 그림을 그립니다. g_lsq = lsq(f)
g_dct = DCT(f)
plt.plot(x, g_dct)
plt.plot(x, g_lsq)
plt.show()
최고치를 확대하다.
미세한 부분은 편차가 있지만 봉의 위치와 높이, 너비가 일치하기 때문에 좋다.
총결산
삼각함수의 화(和)로 적당한 함수를 쓸 때 삼각함수를 기함수계로 사용하면 이산부립엽 변환이 되고, 함수의 의합이라고 생각하면 최소제곱법이지만, 최소제곱법의 조건을 정리하면 부립엽 변환과 같은 모양이 된다.
Reference
이 문제에 관하여(이산 부립엽 변환과 최소 2승법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sage-git/items/bb7be84cddd6478b151f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
y(t_j) = \sum_n c_n\psi_n(t_j)
\vec{\psi}(t_j) = (\psi_0(t_j), \psi_1(t_j), \cdots, \psi_{N-1}(t_j))^\mathrm{T}
\boldsymbol{A} =\left(\vec{\psi}(t_0), \vec{\psi}(t_1), \cdots, \vec{\psi}(t_{M-1})\right)
\left( \begin{matrix}
y(t_0) \\ y(t_1) \\ y(t_2) \\ \vdots \\ y(t_{M-1})
\end{matrix} \right)
=
\left( \begin{matrix}
\exp(\mathrm{i}t_0\omega_0) & \exp(\mathrm{i}t_0\omega_1) &
\exp(\mathrm{i}t_0\omega_2) & \cdots & \exp(\mathrm{i}t_0\omega_{N-1}) \\
\exp(\mathrm{i}t_1\omega_0) & \exp(\mathrm{i}t_1\omega_1) &\exp(\mathrm{i}t_1\omega_2) & \cdots & \exp(\mathrm{i}t_1\omega_{N-1}) \\
\exp(\mathrm{i}t_2\omega_0) & \exp(\mathrm{i}t_2\omega_1) &\exp(\mathrm{i}t_2\omega_2) & & \exp(\mathrm{i}t_2\omega_{N-1}) \\
\vdots & & & \ddots & \vdots\\
\exp(\mathrm{i}t_{M-1}\omega_0) & \exp(\mathrm{i}t_{M-1}\omega_1) &\exp(\mathrm{i}t_{M-1}\omega_2) & \cdots & \exp(\mathrm{i}t_{M-1}\omega_{N-1})
\end{matrix} \right)
\left( \begin{matrix}
c_0 \\ c_1 \\ c_2 \\ \vdots \\ c_{N-1}
\end{matrix} \right)
\boldsymbol{A} = \left( \begin{matrix}
1 & 1 & 1& \cdots & 1 \\
1 & W & W^2 & \cdots & W^{(N-1)} \\
1 & W^2 & W^4 & & W^{2(N-1)} \\
\vdots & & & \ddots & \vdots\\
1 & W^{(N - 1)} & W^{2(N-1)} & \cdots & W^{(N-1)^2}
\end{matrix} \right)
\boldsymbol{A}^{-1} = \frac{1}{N}\left( \begin{matrix}
1 & 1 & 1& \cdots & 1 \\
1 & W^{-1} & W^{-2} & \cdots & W^{-(N-1)} \\
1 & W^{-2} & W^{-4} & & W^{-2(N-1)} \\
\vdots & & & \ddots & \vdots\\
1 & W^{-(N - 1)} & W^{-2(N-1)} & \cdots & W^{-(N-1)^2}
\end{matrix} \right)
오차(또는 정적 분포를 가정할 때의 대수가 비슷하다)
L(\vec{x}) = \left(\vec{y} - \boldsymbol{A}\vec{x}\right)^\mathrm{T}\cdot\left(\vec{y} - \boldsymbol{A}\vec{x}\right)
최소 곱셈\vec{x} = (\boldsymbol{A}^\mathrm{T}\boldsymbol{A})^{-1}\boldsymbol{A}^\mathrm{T}\vec{y}
하지만 $M=N$,\Delta\Delta=2\pi/N달러의 조건하에서 $$$\boldsymbal은 {A} ^^mathrm{T} =\boldta\Delta=2\pi/N 달러의 경우 $\boldsymbal{A} {{{{{ssin(t)\} 달러가 정교기초계라면 $\boldsymbber{A} {matherm {T]\boldsymbobl{{A} {A} {{{A=2\\\2\pi/2\pi/2\pi/N달러의 경우 $\boldsymbsymbsymbe{I} $$$$Bboldsyboldsyboldsymbabab}{N}\boldsymbol{A}달러$$
\vec{X} =\boldsymbol{A}^{-1}\vec{y}
$$
진정할 수 있을 것 같아서요.
덤
약간python으로 확인해 보세요.f
는 길이nlen
의 실수 배열(1차원 numby 배열)이다.
우선 일반적인 부립엽 변환이지만 결과를 실수로 바꾸기 위해 이산여현 변환을 사용한다.from scipy import fftpack
def DCT(f):
return fftpack.dct(f)
다음은 코스의 합계가 몸에 맞는 방법으로 계산한다.import numpy as np
def lsq(f):
nlen = len(f)
dw = np.pi/nlen
w = np.arange(nlen)*dw
t = np.arange(nlen)
phi = np.tile(w, (nlen, 1))*(t.reshape(nlen, 1))
X = np.cos(phi)
g = np.linalg.solve(X, f)
return g*nlen
데이터를 제작하다.평범한 진동에 고스를 가볍게 걸어라. nlen = 1000
x = np.arange(nlen)
f = np.cos(x/10)*np.exp( - (x)**2/(nlen/2)**2)
import matplotlib.pyplot as plt
plt.plot(x, f)
plt.show()
두 가지 방법으로 부립엽 변환을 하고 그림을 그립니다. g_lsq = lsq(f)
g_dct = DCT(f)
plt.plot(x, g_dct)
plt.plot(x, g_lsq)
plt.show()
최고치를 확대하다.
미세한 부분은 편차가 있지만 봉의 위치와 높이, 너비가 일치하기 때문에 좋다.
총결산
삼각함수의 화(和)로 적당한 함수를 쓸 때 삼각함수를 기함수계로 사용하면 이산부립엽 변환이 되고, 함수의 의합이라고 생각하면 최소제곱법이지만, 최소제곱법의 조건을 정리하면 부립엽 변환과 같은 모양이 된다.
Reference
이 문제에 관하여(이산 부립엽 변환과 최소 2승법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sage-git/items/bb7be84cddd6478b151f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from scipy import fftpack
def DCT(f):
return fftpack.dct(f)
import numpy as np
def lsq(f):
nlen = len(f)
dw = np.pi/nlen
w = np.arange(nlen)*dw
t = np.arange(nlen)
phi = np.tile(w, (nlen, 1))*(t.reshape(nlen, 1))
X = np.cos(phi)
g = np.linalg.solve(X, f)
return g*nlen
nlen = 1000
x = np.arange(nlen)
f = np.cos(x/10)*np.exp( - (x)**2/(nlen/2)**2)
import matplotlib.pyplot as plt
plt.plot(x, f)
plt.show()
g_lsq = lsq(f)
g_dct = DCT(f)
plt.plot(x, g_dct)
plt.plot(x, g_lsq)
plt.show()
삼각함수의 화(和)로 적당한 함수를 쓸 때 삼각함수를 기함수계로 사용하면 이산부립엽 변환이 되고, 함수의 의합이라고 생각하면 최소제곱법이지만, 최소제곱법의 조건을 정리하면 부립엽 변환과 같은 모양이 된다.
Reference
이 문제에 관하여(이산 부립엽 변환과 최소 2승법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sage-git/items/bb7be84cddd6478b151f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)