深入淺出通信原理連載22-40(Python代碼版)


深入淺出通信原理Python代碼版

深入淺出通信原理是陳愛軍的心血之作,於通信人家園連載,此處僅作python代碼筆記訓練所用
陳老師的連載從多項式乘法講起,一步一步引出卷積、傅立葉級數展開、旋轉向量、三維頻譜、IQ調制、數字調制等一系列通信原理知識

連載27 信號調制的意義

無線通信系統是空間輻射的方式傳送信號的,而現有天線大都是全向天線,天線尺寸\(l\)大於被輻射波長\(\lambda\)十分之一時方能被有效輻射。通常來說需1/4才能達到較好的接收效果。因此調制后的信號的頻率升高波長變短,從而大大降低對天線的需求。

\[\lambda=\frac{c}{f}\\ l>=\frac{1}{10}\lambda \]

連載24-26: IQ信號調制解調

IQ調制(正交調制)即I路與Q路分別輸入兩個數據a,b,I路與cos\(w_0\)相乘,Q路與\(-sin\omega_0\)相乘,再將IQ兩路疊加,最后獲得的信號\(s(t)=acosw_ot-bsinw_0t\)

通常將輸入信號以復數a+bj表示,乘上\(e^{jw_0t}\)再取實部便得到

以下圖均引自陳老師通信人家園論壇帖子

IQ實信號

IQ解調


IQ調制復數形式

IQ解調復數形式

連載28 IQ調制稱正交調制的原因

IQ信號被調制到了一對正交的載波上。

正弦波與余弦波在一個周期內積分是0

正弦波、余弦波與自身的乘積在一個周期T內積分大於0

\[\frac{2}{T}\int_{-T/2}^{T/2}\cos\omega_0t\sin\omega_0tdt=0 \\ \frac{2}{T}\int_{-T/2}^{T/2}\cos\omega_0t\cos\omega_0tdt =\frac{2}{T}\int_{-T/2}^{T/2}\left[\frac{1}{2}(1-\cos2\omega_0t)\right]dt =1 \]

同樣,余弦函數集合{\(coswt,2coswt,3coswt,\cdots\)}及正弦函數集合亦具有正交性

  1. 任意一個余弦(正弦)函數的平方在基波周期\(T={2\pi}/{\omega_0}\)內積分大於0
  2. 任意兩個余弦(正弦)函數(不含自身)的乘積在基波周期內積分等於0

正弦函數與余弦函數之間的正交性:

  • 余弦函數集合{\(coswt,2coswt,3coswt,\cdots\)}任一函數與正弦函數集合{\(\sin\omega_0,2sinw_0,3sinw_0,\cdots\)}任一函數的乘積在基波周期內積分為0

\[\frac{2}{T}\int_{-T/2}^{T/2}\cos m\omega_0t\cos m\omega_0tdt =\frac{2}{T}\int_{-T/2}^{T/2}\left[\frac{1}{2}(1-\cos2m\omega_0t)\right]dt =1\\ \frac{2}{T}\int_{-T/2}^{T/2}\sin m\omega_0t\sin m\omega_0tdt =\frac{2}{T}\int_{-T/2}^{T/2}\left[\frac{1}{2}(1-\sin2m\omega_0t)\right]dt =1\\ \int_{-T/2}^{T/2}\cos m\omega_0t \cos n\omega_0tdt=0 \quad (m!=n)\\ \int_{-T/2}^{T/2}\sin m\omega_0t \sin n\omega_0tdt=0\\ \int_{-T/2}^{T/2}\cos m\omega_0t \sin n\omega_0tdt=0 \]

連載30 OFDM框圖

該圖n個子載波,承載2n個bit

OFDM調制

\[\begin{bmatrix} {a_{11}}&{a_{12}}&{\cdots}&{a_{1n}}\\ {a_{21}}&{a_{22}}&{\cdots}&{a_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {a_{m1}}&{a_{m2}}&{\cdots}&{a_{mn}}\\ \end{bmatrix} \]

連載22-23 CDMA

Walsh Code:

\[W^+= \begin{bmatrix} +1 \quad +1 \quad +1 \quad +1\\ +1 \quad-1 \quad +1 \quad-1\\ +1 \quad+1\quad-1\quad -1\\ +1\quad-1\quad-1 \quad+1 \end{bmatrix} \]

不同行的WAlsh碼相乘,再在一個周期T內積分,結果是0

同行Walsh碼相乘再在一個周期內積分所得結果是T

CDMA編解碼過程:

CDMA

CDMA中要借助導頻(實質上就是m序列)來實現同步,確保walsh碼能夠對齊,walsh碼間保持正交關系。

連載34 PSK調制

PSK(Phase Shift Keying)通過不同載波相位來表征不同比特

BPSK:所得信號 \(\cos\omega t\) 對應比特0,\(\cos(\omega t+\pi)\)對應比特1

QPSK:用4個相位表示00,01,10,11

8PSK: 輸入001輸出\(\cos(wt+\pi/8)\),8個相位表示三個比特

采用IQ調制實現QPSK:

IQ調制實現QPSK

QPSK對應星座圖:

QPSK星座圖

折疊代碼塊
 
```python
# 連載36:QPSK time doamin waveform
t = np.arange(0,8.5,0.5)
# input
plt.subplot(4,1,1)
y1 = [0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,0,0]
plt.plot(t,y1,drawstyle='steps-post')
plt.xlim(0,8)
plt.ylim(-0.5,1.5)
plt.title('Input Signal')

I Signal

plt.subplot(4,1,2)
a = 1/np.sqrt(2)
tI = np.arange(0,9,1)
yI = [-a,a,-a,a,-a,a,-a,a,a]
plt.plot(tI,yI,drawstyle='steps-post')
plt.xlim(0,8)
plt.ylim(-2,2)
plt.title('I signal')

Q signal

plt.subplot(4,1,3)
yQ = [a,-a,-a,a,a,-a,-a,a,a]
plt.plot(tI,yQ,drawstyle='steps-post')
plt.xlim(0,8)
plt.ylim(-1,1)
plt.title('Q Signal')

QPSK signal

plt.subplot(4,1,4)
t = np.arange(0,9.,0.01)
def outputwave(I,Q,t):
rectwav = []
for i in range(len(I)):
t_tmp = t[((i)100)😦(i+1)100)]
yI_tmp = yI[i]np.ones(100)
yQ_tmp = yQ[i]
np.ones(100)
wav_tmp = yI_tmpnp.cos(2np.pi5t_tmp)-yQ_tmpnp.sin(2np.pi5t_tmp)
rectwav.append(wav_tmp)
return rectwav
rectwav = outputwave(yI,yQ,t)
plt.plot(t,np.array(rectwav).flatten())
plt.xlim(0,8)
plt.ylim(-2,2)
plt.title('QPSK Signal')

plt.tight_layout()
plt.show()

  </code></pre>
</details>

![QPSK調制時域波形](http://ww1.sinaimg.cn/large/70815d51ly1g5c4vfni1sj20bs07sweq.jpg)

> QPSK的映射關系由格雷碼決定,即減小誤比特率

| 十進制數 | 自然二進制數 | 格雷碼 |
| -------- | ------------ | ------ |
| 0        | 000          | 000    |
| 1        | 001          | 001    |
| 2        | 010          | 011    |
| 3        | 011          | 010    |
| 4        | 100          | 110    |
| 5        | 101          | 111    |
| 6        | 110          | 101    |
| 7        | 111          | 100    |

## 連載39: 8PSK

![8PSK星座圖](http://download.txrjy.com/forum/month_1005/20100522_68d2d459db20443a5359UykJAORF66WP.jpg)

![8PSK映射關系](http://download.txrjy.com/forum/month_1005/20100522_ca5a963e773c976a2aa7DsdGzmGPX8Ha.jpg)

## 連載40: 16QAM

![16QAM constellation](http://download.txrjy.com/forum/month_1005/20100523_89ddf6b6b3a16ec88129XyorOehPTFWI.jpg)

![16QAM 映射關系](http://download.txrjy.com/forum/month_1005/20100523_a872114660a5ca5cf063FvNehOroLNpN.jpg)

> 前面講的PSK調制(QPSK、8PSK),星座圖中的點都位於單位圓上,模相同(都為1),只有相位不同。而QAM調制星座圖中的點不再位於單位圓上,而是分布在復平面的一定范圍內,各點如果模相同,則相位必不相同,如果相位相同則模必不相同。星座圖中點的分布是有講究的,不同的分布和映射關系對應的調制方案的誤碼性能是不一樣的

由於部分圖片顯示不出,故貼上[Github地址](https://github.com/weidongz/Rubbish_Code/blob/master/Understanding_Communication_Theroy/Blog_22-40.md)備用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM