将以下代码改为python代码:改为python代码% 幅度调制与解调 w1=5;w0=50;K=0;km=1; kc=1; N=1000; win=4pi/w1; lp=2w1+80; t=linspace(0,win,N); dt=win/N; m=kmsin(w1t); %调制信号 c=kccos(w0t); %载波信号 p=K+m; %调制信号偏置 y=p.c; %已调制信号 m0=y.c; %解调信号 w=linspace(-3w0,3w0,N); %频率序列 M=mexp(-jt'w)dt; %傅里叶变换 C=cexp(-jt'w)dt; Y=yexp(-jt'w)dt; M0=m0exp(-jt'w)dt; LPF=[zeros(1,(N-2lp)/2-1),2ones(1,2lp+1),zeros(1,(N-2lp)/2)]; %低通滤波器振幅谱 M1=M0.LPF; %低通滤波器滤波 dw=2w0/N; m1=M1exp(jw't)/pidw; %傅里反叶变换 magM=abs(M); %振幅谱 magC=abs(C); magY=abs(Y); magM0=abs(M0); magM1=abs(M1); figure; subplot(5,2,1);plot(t,m); %调制信号波形 axis([0,win,-1.1,+1.1]); subplot(5,2,2);plot(w,magM); %调制信号振幅谱 subplot(5,2,3);plot(t,c); %载波信号波形 axis([0,win,-1.1,+1.1]); subplot(5,2,4);plot(w,magC); %载波信号振幅谱 subplot(5,2,5);plot(t,y); %已调制信号波形 axis([0,win,-1.1,+1.1]); subplot(5,2,6);plot(w,magY); %已调制信号振幅谱 subplot(5,2,7);plot(t,m0); %解调信号波形 axis([0,win,-1.1,+1.1]); subplot(5,2,8);plot(w,magM0); %解调信号振幅谱 subplot(5,2,9);plot(t,m1); %低通滤波后信号波形 axis([0,win,-1.1,+1.1]); subplot(5,2,10);plot(w,magM1); %低通滤波后信号振幅谱
时间: 2023-07-14 12:14:20 浏览: 138
FPGA实例源代码: FSK调制与解调VHDL程序及仿真.doc
5星 · 资源好评率100%
# 改为Python代码
import numpy as np
import matplotlib.pyplot as plt
w1 = 5
w0 = 50
K = 0
km = 1
kc = 1
N = 1000
win = 4 * np.pi / w1
lp = 2 * w1 + 80
t = np.linspace(0, win, N)
dt = win / N
m = km * np.sin(w1 * t) # 调制信号
c = kc * np.cos(w0 * t) # 载波信号
p = K + m # 调制信号偏置
y = p * c # 已调制信号
m0 = y / c # 解调信号
w = np.linspace(-3 * w0, 3 * w0, N) # 频率序列
M = np.exp(-1j * np.outer(t, w)) * dt # 傅里叶变换
C = np.exp(-1j * np.outer(t, w)) * dt # 傅里叶变换
Y = np.exp(-1j * np.outer(t, w)) * dt # 傅里叶变换
M0 = np.exp(-1j * np.outer(t, w)) * dt # 傅里叶变换
LPF = np.concatenate((np.zeros((N - 2 * lp) // 2 - 1), 2 * np.ones(2 * lp + 1), np.zeros((N - 2 * lp) // 2))) # 低通滤波器振幅谱
M1 = M0 * LPF # 低通滤波器滤波
dw = 2 * w0 / N
m1 = np.sum(M1 * np.exp(1j * np.outer(w, t)), axis=1) / np.pi / dw # 傅里反叶变换
magM = np.abs(M) # 振幅谱
magC = np.abs(C) # 振幅谱
magY = np.abs(Y) # 振幅谱
magM0 = np.abs(M0) # 振幅谱
magM1 = np.abs(M1) # 振幅谱
# 绘图
fig, axs = plt.subplots(nrows=5, ncols=2, figsize=(10, 20))
axs[0, 0].plot(t, m)
axs[0, 0].set_ylim(-1.1, 1.1)
axs[0, 0].set_title('调制信号波形')
axs[0, 1].plot(w, magM)
axs[0, 1].set_title('调制信号振幅谱')
axs[1, 0].plot(t, c)
axs[1, 0].set_ylim(-1.1, 1.1)
axs[1, 0].set_title('载波信号波形')
axs[1, 1].plot(w, magC)
axs[1, 1].set_title('载波信号振幅谱')
axs[2, 0].plot(t, y)
axs[2, 0].set_ylim(-1.1, 1.1)
axs[2, 0].set_title('已调制信号波形')
axs[2, 1].plot(w, magY)
axs[2, 1].set_title('已调制信号振幅谱')
axs[3, 0].plot(t, m0)
axs[3, 0].set_ylim(-1.1, 1.1)
axs[3, 0].set_title('解调信号波形')
axs[3, 1].plot(w, magM0)
axs[3, 1].set_title('解调信号振幅谱')
axs[4, 0].plot(t, m1)
axs[4, 0].set_ylim(-1.1, 1.1)
axs[4, 0].set_title('低通滤波后信号波形')
axs[4, 1].plot(w, magM1)
axs[4, 1].set_title('低通滤波后信号振幅谱')
plt.show()
阅读全文