clc,clear,close all a=rand(1,1000)<0.5; s=8;%每个码元的抽样点数 Ts=1; dt=1/s; f=-3:0.01:3; N=100; t=0:dt:(Ns-1)Tsdt; bt=0; for i=1:1000 bt=bt+a(i)((t>0+iTs)-(t>Ts+iTs)); end st=0.5bt+0.707[zeros(1,s),bt(1:length(t)-s)]+0.5*[zeros(1,2s),bt(1:length(t)-2s)]; subplot(2,2,1) plot(t,bt) title(‘输入信号’) grid on axis([0 100 -0.5 1.5]) Bf=abs(sig_spec(bt,t,dt,f)); subplot(2,2,2) plot(f,Bf) title(‘输入信号的频谱’) grid on subplot(2,2,3) plot(t,st) title(‘输出信号’) grid on Sf=abs(sig_spec(st,t,dt,f)); subplot(2,2,4) plot(f,Sf) title(‘输出信号频谱’) grid on
时间: 2023-09-07 20:12:52 浏览: 155
这是一段MATLAB代码,它实现了基带调制的功能,其中a是一个随机的二进制序列,表示数字信息。s是每个码元的抽样点数,Ts是码元的时间长度。通过这些参数,可以将数字信息转换成波形信号。代码中使用了矩形脉冲波形,将每个码元的抽样点数作为矩形脉冲的宽度,每个码元的时间长度Ts作为矩形脉冲的周期,根据随机二进制序列a的取值,来确定矩形脉冲的幅度。最后,将三个不同频率响应的信道进行加权相加,得到了输出信号。
subplot函数用于将四个图像放在同一窗口中进行对比显示。第一个子图绘制输入信号的时域波形,第二个子图绘制输入信号的频谱,第三个子图绘制输出信号的时域波形,第四个子图绘制输出信号的频谱。sig_spec函数是自定义的一个函数,用于计算信号的频谱。xlabel、ylabel、title函数分别用于添加x轴、y轴、标题标签,grid on表示打开网格线。
阅读全文