clear all; close all; % 生成随机信号a(t) fs = 1000; % 采样率 t = 0:1/fs:1; % 时间向量 a = randn(size(t)); % 随机信号 % 计算bI(t)和bQ(t) bI = zeros(size(a)); bQ = zeros(size(a)); for i = 1:length(a)-1 if a(i) >= 0 bI(i) = 1; else bI(i) = -1; end if mod(i,2) == 0 bQ(i) = bI(i-1); else bQ(i) = bI(i+1); end end % 计算I(t)和Q(t) I = bI .* cos(pi*t); Q = bQ .* sin(pi*t); % 计算sMSK(t) sMSK = zeros(size(a)); for i = 1:length(a) if bI(i) == 1 && bQ(i) == 1 sMSK(i) = cos(pi*t(i)); elseif bI(i) == 1 && bQ(i) == -1 sMSK(i) = sin(pi*t(i)); elseif bI(i) == -1 && bQ(i) == -1 sMSK(i) = -cos(pi*t(i)); else sMSK(i) = -sin(pi*t(i)); end end % 画图 figure; subplot(6,1,1); plot(t,a,'b'); title('a(t)'); subplot(6,1,2); plot(t,bI,'r'); title('bI(t)'); subplot(6,1,3); plot(t,bQ,'g'); title('bQ(t)'); subplot(6,1,4); plot(t,I,'m'); title('I(t)'); subplot(6,1,5); plot(t,Q,'k'); title('Q(t)'); subplot(6,1,6); plot(t,sMSK,'c'); title('sMSK(t)'); xlabel('时间'); ylabel('幅度'); grid on;分析代码
时间: 2023-08-06 11:07:50 浏览: 100
18029100040-吴程锴-随机信号分析大作业1
这段代码是一个MATLAB程序,主要实现了生成随机信号a(t)、计算bI(t)和bQ(t)、计算I(t)和Q(t)、计算sMSK(t)以及画图等功能。下面是代码的分析:
1. 随机信号生成
使用randn函数生成一个与时间向量t大小相同的随机信号a(t)。
2. 计算bI(t)和bQ(t)
根据MSK调制的原理,当随机信号a(t)的值大于等于0时,将bI(t)赋值为1,否则为-1;当i为偶数时,将bQ(i)的值赋值为bI(i-1),否则为bI(i+1)。
3. 计算I(t)和Q(t)
根据MSK调制的公式,将bI(t)与cos(pi*t)相乘得到I(t),将bQ(t)与sin(pi*t)相乘得到Q(t)。
4. 计算sMSK(t)
根据MSK调制的原理,根据bI(t)和bQ(t)的取值情况,分别计算sMSK(t)的值。当bI(t)和bQ(t)均为1时,sMSK(t)为cos(pi*t);当bI(t)为1,bQ(t)为-1时,sMSK(t)为sin(pi*t);当bI(t)和bQ(t)均为-1时,sMSK(t)为-cos(pi*t);当bI(t)为-1,bQ(t)为1时,sMSK(t)为-sin(pi*t)。
5. 画图
使用subplot函数将多个图形排列在一起进行展示,每个子图分别展示a(t)、bI(t)、bQ(t)、I(t)、Q(t)和sMSK(t)的值随时间的变化情况。其中,a(t)、bI(t)和bQ(t)的线条颜色分别为蓝色、红色和绿色,I(t)、Q(t)和sMSK(t)的线条颜色分别为品红色、黑色和青色。通过图像可以直观地观察到随机信号a(t)的特点以及MSK调制后的信号。
阅读全文