clear all;
clc;
close all;
%Send
I=sin(2*pi*linspace(0,4,1000)*1); %freq=1Hz,sin
Q=cos(2*pi*linspace(0,4,1000)*1); %freq=1Hz,cos
%moduation , 信息包含在角度差,即为I和Q的相位差,这里相位差由a1,a2搞定
%这里与实际不符合,原因在于asin函数,没有办法求出大于pi相位的相位差
%所以这里实际使用的编码幅度,实际借用了8-PSK的0.707
%这里比如说4相位PSK编码,即
%img x y a1 a2 fa
%1 0 0 1 0.707 -0.25
%2 0 1 1 -1 -0.5
%3 1 0 -1 1 0.5
%4 1 1 0.707 -0.707 -0.25
a1=1;
a2=0.707;
imgS=1
S1=a1.*I;
S2=a2.*Q;
S=S1+S2; %传输信号为一个混合信号
%encode
fEn=[asin(S1);asin(S2)];
deltaEn = fEn(1,:)-fEn(2,:);
faEn = deltaEn(1)/pi
%plot
subplot(411);
plot(I,'r');
hold on;plot(Q,'m');
subplot(412);
hold on;plot(S1,'*b');
hold on;plot(S2,'ok');
subplot(413);
hold on;plot(S,'k');
%Receive
I=sin(2*pi*linspace(0,4,1000)*1); %freq=1Hz,sin
Q=cos(2*pi*linspace(0,4,1000)*1); %freq=1Hz,cos
%接收信号要提取相位差
Z1=S.*I; %恢复I部分
Z2=S.*Q; %恢复Q部分
%这里是需要一个低通滤波器
subplot(414);
plot(Z1,'*b');
hold on;plot(Z2,'ok');
%decode
fDe=[asin(Z1);asin(Z2)];
deltaDe = fDe(1,:)-fDe(2,:);
faDe = deltaDe(1)/pi
%最后这里就是检查码元的对应表,转义信息
%if( (int32)faDe==-0.2500 )
% imgD = 1
%end;
PSK调制解调-basic
最新推荐文章于 2025-09-27 22:46:36 发布
本文介绍了一个使用MATLAB实现的四相移相键控(PSK)调制与解调过程的示例。通过正弦波和余弦波生成基带信号,并利用相位差进行编码,实现了信号的调制。随后对接收信号进行解调并提取相位差,以恢复原始信息。
8282

被折叠的 条评论
为什么被折叠?



