평신도의 언어 (파이썬 소스 버전)에서 통신 이론

파이썬 코드의 평신도의 언어 버전의 통신 이론

원칙은하는, 통신 Aijun의 인상적인 노력을 이해하기 쉽게 자신의 집으로 사람들을 통신 직렬에서 사용 훈련 노트 파이썬 코드 여기에만
나는 다항식의 곱셈에서 시작 첸의 시리얼, 단계적으로는 컨볼 루션, 푸리에 급수 확장, 회전 벡터로 연결, 입체 스펙트럼, IQ 변조, 디지털 변조 및 통신 이론 지식의 시리즈

직렬 1 : 다항식의 곱셈에서 시작

\ [(X + 1) (+ X ^ 2 + 2 × 5) = X ^ 3 + 3X ^ 2 + 5 + 7 배 \]

import sympy
x = sympy.Symbol('x')
sympy.expand((x+1)*(x*x+2*x+5))

단계 한 결과

이 계산은 다음과 같이 요약
컨벌루션 : 보통 다항식 X가 보도되는 X 다항식의 오름차순으로 배열된다 내림차순으로 배열된다.
팬 : x는 오른쪽 각 항목의 다항식의 오름차순으로 배열 변환한다.
곱셈 각 수직 배향 항목 승산.
합계 : 승산의 각 결과를 합산.

디콘 볼 루션, 번역, 승산, 합산 - 이것은 "가장 일반적으로 사용되는 통신 이론의 개념 컨볼 루션 연산 처리의".

직렬 2 : 회선 표현

다항식 행렬 형태로 변환
\의 [를 X + 1 -> [ 1,1] \\ X ^ 2 + 2 × 5 + -> [1,2,5] \\ X ^ 3 + 3X ^ 2 + 5 + 7 X = [1,1] * [1,2,5] = [1,3,7,5] \]
항은 다음과 같이 컨벌루션 (*) 동작은 :
\ (C (N-) = A (N-)의 B * (N- ) = \ sum_ {K = 0
} ^ N {A (K), B (NK)}, N = 0 ~ (N1 + N2) \) 여기서 N1 인 (n)의 계수의 총 수이고, N2는 B이다 ( N) 계수들의 총 개수

파이썬 회선 계산

import numpy as np
np.convolve([1,1],[1,2,5]) #上例,result:[1, 3, 7, 5]
# 杨辉三角,输入行数,输出对应行的值
def pascal_triangle(n):
    if n == 0:
        return 1
    elif n == 1:
        return [1,1]
    else:
        return np.convolve([1,1],pascal_triangle(n-1))
# test code    
for i in range(0,7):
    print(pascal_triangle(i))
    
    
# 杨辉三角,迭代器形式
def triangles():
  nlist=[1]
  while True:
    yield nlist
    nlist.append(0)
    nlist = [nlist[i] + nlist[i-1] for i in range(len(nlist))]
# test code
tr = triangles()
for i in range(0,7):
    print(next(tr))

추천

출처www.cnblogs.com/WindyZ/p/11220682.html