⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mskxiangwei.m

📁 MSK带初始相位的正交相位调制法
💻 M
字号:
clear
clc
fs=400;
fc=3200;
Ts=1/fs;
source=round(rand(1,20));%产生0.1随机序列
for i=1:length(source)
    if source(i)==0
source(i)=-1;
    end;
end;
%-----------------产生随机的+、-1的双极性码--------------------------
N=length(source); %码元向量长度
n=1;%设定初始值
p0=0;%设定相位标记初值
p2=zeros(1,N);
m=2;%设定初始值
K=1:N;
while n<=N %开始对码元逐个调制  
t=(n-1)*Ts:Ts/19:n*Ts;%限定在Ts内时间的取样
CI1=cos(2*pi*fc*t+2*pi*fc*(n-1)*Ts);%实现fc振荡(在一个周期内)
SI1=sin(2*pi*fc*t+2*pi*fc*(n-1)*Ts);%实现移相90的FC振荡(在一个周期内)
CI2=cos(1/2*pi*fs*t+1/2*pi*fs*(n-1)*Ts);%实现1/4fs振荡(在一个周期内)
SI2=sin(1/2*pi*fs*t+1/2*pi*fs*(n-1)*Ts);%实现移相90的1/4fs振荡(在一个周期内)
CI=CI1.*CI2;%信号相乘
SI=SI1.*SI2;%信号相乘
CI0=SI1.*CI2;
SI0=CI1.*SI2;
Cos_t=CI-source(n)*SI;%Cos(wct+an*wst+pi(o))=cos(Wct+an*Wst)
%Sin_t=CI0+source(n)*SI0;%Cos(wct+an*wst+pi/2(3/2pi))=sin(Wct+an*Wst)
%----------------------调制的初始设定-------------------------------
if p0==0;
y((n-1)*20+1:n*20)=Cos_t;
if source(n)==1;
p0=0; %保持原标记值不变
else  %如果值为-1的时候
p0=1; %改变相位标记值
end
elseif p0==1;
y((n-1)*20+1:n*20)=-Cos_t;
if source(n)==1;
p0=1; %保持原标记值不变
else; %如果值为-1的时候
p0=0; %改变相位标记值
end
end
%------------------------------------------------------------------
%整个作图的实现方式:每次检测到+1的码元的时候,令下一个码元初始相位不变
%当-1码元的时候,设定下一个码元初始相位取相反值(+\-cos之间变化)
figure(1)
subplot(3,1,1)
title('调制信号')
plot(t,y((n-1)*20+1:n*20))%画出调制信号的波形
hold on;
grid on;
n=n+1;%实现连续取值
end
%-----------------------------画出附加相位图-------------------------
while m<=N;
    p2(1)=(pi/2)*source(1);
     if source(m)==1;
     p2(m)=p2(m-1)+pi/2;
elseif source(m)==-1;
    p2(m)=p2(m-1)-pi/2;
end
m=m+1;
end
figure(1)
subplot(3,1,2);
stem(K,source);
title('数字信号source')%数字信号的表示
figure(1)
subplot(3,1,3);
plot(K,p2);
grid on;
title('附加相位示意图');ylabel('附加相位值(弧度)');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -