📄 exp4_3.m
字号:
clear;
clf;
clc;
%—— 产生随机‘0’,‘1’信号序列
N=2000;
N1=20;
fc=3;
T=1;
h=1/2;
data_bit=randint(1,N);
%——将信号序列转换为基上的向量值
for i=1:N-1
if data_bit(1,i)==1
I(1,i)=1;
else I(1,i)=-1;
end
end
figure(1);
t1=0:9;
stem(t1,I(1:10),'.'); %——绘出10个点的转换信号序列图
title('原始BPSK信号');
xlabel('t/s');
ylabel('信号幅度');
grid on;
%——作出第一个g(t)函数的积分函数q0
t=0:0.05:1;
q0=t/(2*T);
figure(2);
subplot(211);
plot(t,q0);
grid on;
%——作出第二个g(t)函数的积分函数q1
t=0:0.05:1;
q1=t/2-1/(4*pi)*sin(2*pi*t/T);
subplot(212);
plot(t,q1);
grid on;
v=zeros(1,N);
k=I;
for i=2:N
v(1,i)=v(1,i-1)+I(1,i-1)*pi/2;
if v(1,i-1)==-pi
if I(1,i-1)==-1
v(1,i)=pi/2;
k(1,i-1)=3;
end
end
if v(1,i-1)==pi/2
if I(1,i-1)==1
v(1,i)=-pi;
k(1,i-1)=-3;
end
end
end
%——确定第一个g(t)的MSK
%——对以上序列按照第一个g(t)的积分表达式进行插值
v1=zeros(1,N1*length(v));
for i=1:length(v)
v1(i*N1-(N1-1))=v(i);
end
for i=1:N-1
for l=(i-1)*N1+1:i*N1
v1(1,l)=v(1,i)+(v(1,i+1)-v(1,i))/N1*(l-(i-1)*N1-1);
end
end
i=1:200;
figure(3);
subplot(211);
stem(i,v1(1:200),'.r');
grid on;
hold on;
%——对以上序列按照第二个g(t)的积分表达式进行插值
v2=zeros(1,N1*length(v));
for i=1:length(v)
v2(i*N1-(N1-1))=v(i);
end
for i=1:N-1
for l=(i-1)*N1+1:i*N1
v2(1,l)=v(1,i)+2*pi*h*k(1,i)*q1(1,l-(i-1)*N1);
end
end
i=1:200;
subplot(212);
stem(i,v2(1:200),'.b');
grid on;
i=0:1/N1:N-1/N1;
s1=cos(v1+2*pi*fc*i);
s2=cos(v2+2*pi*fc*i);
figure(5);
subplot(211);
plot(i(1:200),s1(1:200),'r');
grid on;
subplot(212);
plot(i(1:200),s2(1:200),'b');
grid on;
F_s1=fftshift(fft(v1)); %——频谱对称平移
F_s2=fftshift(fft(v2)); %——频谱对称平移
figure(4);
f=160*(-10000:9999)/length(v1);
semilogy(f,abs(F_s1(10001:30000))/max(abs(F_s1)),'r');
hold on;
f=160*(-10000:9999)/length(v2);
semilogy(f,abs(F_s2(10001:30000))/max(abs(F_s2)),'b');
grid on;
title('g1,g2调制功率谱密度比较');
ylabel('功率谱密度(db)');
xlabel('频率(HZ)');
legend('F_s1','F_s2');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -