MATLAB产生数字调制基带信号(python对比)
生活随笔
收集整理的這篇文章主要介紹了
MATLAB产生数字调制基带信号(python对比)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如何用MATLAB產生數字調制的基帶信號,這是設計調制解調器的第一步。
matlab實現
T=1; % 基帶信號寬度,也就是頻率 nb=100; % 定義傳輸的比特數 delta_T=T/200; fs=1/delta_T; % 采樣頻率 fc=10/T; % 載波頻率 SNR=0; % 信噪比 t=0:delta_T:nb*T-delta_T; % 限定t的取值范圍(0,20000) N=length(t); % 采樣數 %%%%%%%%%%%產生基帶信號%%%%%%%%%%%%%%% data=randn(1,nb)>0.5; % 調用隨機函數產生任意在0到1的1*nb的矩陣,大于0.5顯示為1,小于0.5顯示為0 data0=zeros(1,nb/delta_T); % 創建一個1*nb/delta_T的零矩陣 for q=1:nb data0((q-1)/delta_T+1:q/delta_T)=data(q); % 將基帶信號變換成對應波形信號 end figure(1) subplot(2,1,1); plot(data0),title('基帶信號');python實現
我們將上述代碼改寫為python實現,產生基帶信號:
import numpy as np from math import pi import matplotlib.pyplot as plt from pylab import mpl, text from matplotlib.font_manager import FontProperties font = FontProperties(fname="/root/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/simhei.ttf") plt.rcParams['font.sans-serif']=['simhei'] import matplotlib import scipy.signal as signal import mathT = 1 #基帶信號寬度,也就是頻率 nb = 100 #定義傳輸的比特數 delta_T = T/200 #采樣間隔 fs = 1/delta_T #采樣頻率 fc = 10/T #載波頻率 SNR = 0 #信噪比t = np.arange(0, nb*T, delta_T) N = len(t)# 產生基帶信號 data = [1 if x > 0.5 else 0 for x in np.random.randn(1, nb)[0]] #調用隨機函數產生任意在0到1的1*nb的矩陣,大于0.5顯示為1,小于0.5顯示為0 data0 = [] #創建一個1*nb/delta_T的零矩陣 for q in range(nb):data0 += [data[q]]*int(1/delta_T) #將基帶信號變換成對應波形信號 plt.figure(figsize=(14,10)) #設置圖表大小 plt.axis([0, 20000, -2, 2]) plt.plot(data0) plt.title('基帶信號',fontproperties=font,fontsize=20) plt.show()遇到的問題
1、matlab 設定時間取值范圍采用t=0:delta_T:nbT-delta_T的方式,但是在python中需要改變一下t = np.arange(0, nbT, delta_T),使用隨機數來設置。
2、在Python中列表+= 是拼接列表,然后,列表*C是長度變為C倍。
以上是運用matlab和python兩種方式產生的基帶信號,對比發現兩種代碼基本相似,只是語法不用。接下來將設計如何產生調制信號,同樣使用matlab和python兩種方式來設計算法。
總結
以上是生活随笔為你收集整理的MATLAB产生数字调制基带信号(python对比)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 矩阵的意义
- 下一篇: Python基础|理解元组存在的意义