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
最新推荐文章于 2024-01-02 09:15:17 发布