900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MATLAB产生数字调制基带信号(python对比)

MATLAB产生数字调制基带信号(python对比)

时间:2021-12-05 06:45:42

相关推荐

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显示为0data0=zeros(1,nb/delta_T); % 创建一个1*nb/delta_T的零矩阵for q=1:nbdata0((q-1)/delta_T+1:q/delta_T)=data(q); % 将基带信号变换成对应波形信号endfigure(1)subplot(2,1,1);plot(data0),title('基带信号');

python实现

我们将上述代码改写为python实现,产生基带信号:

import numpy as np from math import piimport matplotlib.pyplot as pltfrom pylab import mpl, textfrom matplotlib.font_manager import FontPropertiesfont = 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 signalimport 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显示为0data0 = [] #创建一个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两种方式来设计算法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。