成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python帶你理解用于信號同步的CAZAC序列

開發(fā) 后端
在無線通信系統(tǒng)中同步是非常關(guān)鍵的一個過程,這對信號正確的傳輸有著非常的重要意義。通常,我們常用CAZAC序列(Const Amplitude Zero Auto-Corelation)進行幀同步,CAZAC序列全稱恒包絡(luò)零自相關(guān)序列。

在無線通信系統(tǒng)中同步是非常關(guān)鍵的一個過程,這對信號正確的傳輸有著非常的重要意義。通常,我們常用CAZAC序列(Const Amplitude Zero Auto-Corelation)進行幀同步,CAZAC序列全稱恒包絡(luò)零自相關(guān)序列。它主要包括有ZC序列、Frank序列、Golomb多相序列和Chirp序列等。因為其有很好的自相關(guān)特性,廣泛用于無線通信領(lǐng)域,雷達、CDMA、LTE、5G NR等需要進行信號同步的通信方式。

下面我們以ZC序列為例,利用Python畫圖來直觀的理解這種序列。

ZC序列全稱是Zadoff Chu序列,由于其是由Zadoff和Chu提出,所以便由他們的名字來命名,它可以用下面的公式來表示:

式中的u就是它的根。

根據(jù)ZC序列的公式,我們就可以方便的畫出ZC序列的圖形,話不多說,直接擼代碼。

  1. u = 1 
  2. N = 128 
  3. n = np.arange(N) 
  4. x = np.exp(-1j * np.pi*u*n*(n+1)/(N-1)) 
  5. plt.subplot(2,1,1) 
  6. plt.plot(np.real(x)) 
  7. plt.subplot(2,1,2) 
  8. plt.plot(np.imag(x)) 
  9. plt.show() 

這里序列根取1,N取128,如下圖是它的時域圖形,是不是覺得上面的圖形看上去似乎有一些規(guī)則性。

ZC序列

那么,它特別的地方在哪里呀?我們可以換個角度來看這個序列,下面我們在用復(fù)數(shù)坐標(biāo)系上把這個序列畫出來看看是什么樣子。

  1. u = 1 
  2. N = 128 
  3. n = np.arange(N) 
  4. x = np.exp(-1j * np.pi*u*n*(n+1)/(N-1)) 
  5. plt.scatter(np.real(x), np.imag(x)) 
  6. plt.show() 

圖中橫坐標(biāo)為實部I,縱坐標(biāo)為虛部Q,從圖中我們可以看出序列在復(fù)平面上是一個圓,也就是說其幅值是恒定的。

復(fù)數(shù)坐標(biāo)系下的ZC序列

從序列的公式上看它是一個以e為底的復(fù)指數(shù)函數(shù),所以大家可以根據(jù)之前的文章《談?wù)剼W拉公式與復(fù)指數(shù)信號》來理解。

如果把兩個序列進行相關(guān)運算會發(fā)生什么情況呢?關(guān)于相關(guān)運算實際上就是卷積運算,為了方便計算我們先將序列轉(zhuǎn)到頻域進行計算,因為對于時域上卷積運算實際就是頻域上相乘,如下卷積計算公式:

將時域進行傅立葉變換:

整理公式得:

推導(dǎo)總是一堆讓人頭大的公式,不過早就有大佬幫我們總結(jié)好了,這里大家需要記住卷積定理即可。

時域卷積定理即時域內(nèi)的卷積對應(yīng)頻域內(nèi)的乘積;頻域卷積定理即頻域內(nèi)的卷積對應(yīng)時域內(nèi)的乘積。

我們繼續(xù)看下面的代碼,我們先將序列向右循環(huán)移位10位生成一個新的序列,然后,再用移位后的序列和原序列進行相關(guān)運算。

  1. u = 1 
  2. N = 128 
  3. n = np.arange(N) 
  4. x = np.exp(-1j * np.pi*u*n*(n+1)/(N-1)) 
  5. corr = np.fft.fftshift(np.fft.fft(x)) * np.conj(np.fft.fftshift(np.fft.fft(x))) 
  6. plt.subplot(2,1,1) 
  7. plt.plot(np.abs(np.fft.ifftshift(np.fft.ifft(corr)))) 
  8.  
  9. x_r = np.roll(x, 10) #右移 
  10. corr = np.fft.fftshift(np.fft.fft(x_r)) * np.conj(np.fft.fftshift(np.fft.fft(x))) 
  11. plt.subplot(2,1,2) 
  12. plt.plot(np.abs(np.fft.ifftshift(np.fft.ifft(corr)))) 
  13. plt.show() 

從下面的圖中可以發(fā)現(xiàn),在做完相關(guān)運算之后會產(chǎn)生一個相關(guān)峰,而且相關(guān)峰的值非常的大,它的能量較為集中有較好的抗噪能力,除了相關(guān)峰外其他位置的相關(guān)值都為0或接近于0。而且,經(jīng)過移位后的序列和原序列進行相關(guān)運算之后,相干峰的位置也會向右偏移10位。由于這種相關(guān)特性,這里大家也應(yīng)該清楚了為什么說可以使用這種序列進行幀同步了。

相關(guān)運算

如果序列經(jīng)過傅立葉變換之后,序列的特性又會是什么樣呢?

  1. u = 1 
  2. N = 128 
  3. n = np.arange(N) 
  4. x = np.exp(-1j * np.pi*u*n*(n+1)/(N-1)) 
  5. fft_shift = np.fft.fft(x) 
  6. plt.subplot(2,2,1) 
  7. plt.plot(np.real(fft_shift)) 
  8. plt.subplot(2,2,2) 
  9. plt.plot(np.imag(fft_shift)) 
  10. plt.subplot(2,2,3) 
  11. plt.scatter(np.real(fft_shift), np.imag(fft_shift)) 
  12.  
  13. fft_shift_r = np.roll(fft_shift, 10) #右移 
  14. corr = np.fft.fftshift(np.fft.fft(fft_shift_r)) * np.conj(np.fft.fftshift(np.fft.fft(fft_shift))) 
  15. plt.subplot(2,2,4) 
  16. plt.plot(np.abs(np.fft.ifftshift(np.fft.ifft(corr)))) 
  17. plt.show() 

從下圖可以看出,結(jié)果顯而易見,經(jīng)過傅立葉變換之后的序列仍然具有同樣的特性。

傅立葉變換

如果不同根產(chǎn)生的ZC序列進行相關(guān)運算會發(fā)生什么情況呢?下面我們構(gòu)造兩個根為1和2的ZC序列。

  1. u1 = 1 
  2. u2 = 2 
  3. N = 128 
  4. n = np.arange(N) 
  5. x1 = np.exp(-1j * np.pi*u1*n*(n+1)/(N-1)) 
  6. x2 = np.exp(-1j * np.pi*u2*n*(n+1)/(N-1)) 
  7.  
  8. corr = np.fft.fftshift(np.fft.fft(x2)) * np.conj(np.fft.fftshift(np.fft.fft(x1))) 
  9. plt.plot(np.abs(np.abs(np.fft.ifftshift(np.fft.ifft(corr))))) 
  10. plt.show() 

兩個不同根序列相關(guān)運算后的結(jié)果如下圖:

不同根序列相關(guān)運算

我們從圖上看出,對于不同根的序列再進行相關(guān)運算之后,不會產(chǎn)生像上面相同根的序列那樣會產(chǎn)生又高又細的相關(guān)峰。

好了,相信看了上面的幾個仿真實驗大家都對CAZAC序列有一定的認(rèn)識。信號處理一個非常抽象的技術(shù),但是大家不要害怕,我們平時需要多多進行實驗和練習(xí),才能慢慢的掌握它。

本文轉(zhuǎn)載自微信公眾號「Will的大食堂」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Will的大食堂公眾號。

 

責(zé)任編輯:武曉燕 來源: Will的大食堂
相關(guān)推薦

2021-08-05 13:49:39

Python工具開發(fā)

2018-01-22 17:02:48

Python字符編碼ASCII

2010-07-14 15:48:00

Telnet Sync

2017-11-20 11:05:23

數(shù)據(jù)庫MongoDB索引

2022-10-10 14:36:44

Python時間序列機器學(xué)習(xí)

2020-03-26 17:00:53

HashMapputJava

2022-12-20 08:22:42

CommitMuation

2020-05-17 16:15:49

RPCJava代碼

2022-03-10 08:31:51

REST接口規(guī)范設(shè)計Restful架構(gòu)

2022-02-28 11:10:42

ZGCG1收集器

2024-05-07 11:46:50

時間序列概率預(yù)測

2020-11-27 08:02:41

Promise

2023-02-07 16:21:37

時間序列列數(shù)據(jù)集

2018-03-25 20:51:07

語音合成深度前饋序列記憶網(wǎng)絡(luò)

2019-10-11 08:41:35

JVM虛擬機語言

2021-12-07 09:12:32

Iptables 原理工具

2023-09-07 08:15:58

場景同步異步

2022-05-11 07:38:45

SpringWebFlux

2023-03-06 07:28:57

RPC框架序列化

2022-09-21 23:41:40

機器學(xué)習(xí)開源數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美日韩综合视频 | 欧美中文字幕一区二区三区亚洲 | 国产精品一区二区免费看 | 久久机热 | 亚洲 一区 | 天堂一区二区三区四区 | 久久免费精品视频 | 伊人超碰| 婷婷五月色综合香五月 | 日韩免费一区二区 | 高清久久 | 狠狠的干狠狠的操 | aaa国产大片 | 欧洲精品在线观看 | 欧美一级二级在线观看 | 国产中文区二幕区2012 | 最新免费视频 | 欧美视频在线看 | 91九色porny首页最多播放 | 亚洲视频免费观看 | 国产毛片毛片 | 欧美视频精品 | 久久成人精品视频 | 国产毛片毛片 | 亚洲精品一区二区在线观看 | 午夜影院普通用户体验区 | 中文字幕一区在线 | 日韩成人一区 | 久久首页 | 亚洲精品中文字幕在线观看 | 亚洲一区二区三区免费观看 | 国产成人在线一区二区 | 国产综合视频 | 中文字幕一区二区三区不卡 | 天天操天天拍 | 国产成人精品综合 | 午夜精品一区二区三区在线播放 | 亚欧洲精品在线视频免费观看 | 午夜免费在线 | 国产一区二区三区久久久久久久久 | 成人久久久|