📄 fh_ss_mul.m
字号:
% function fh_ss
clc
clear,close all;
fs=200000;
T=0.005;
% message to be transmitted
signal1=randint(1,5,2);
msg1=signal1
signal1=2*signal1-1;
signal2=randint(1,5,2);
msg2=signal2
signal2=2*signal2-1;
% selected frequencies
f=0:1/T:7/T;
f0=9000;
f1=f0+length(f)/T;
% address make
gen=[1 1 0 1]; % sv(j)=4[(a(j)+v0)mod2]+2[(a(j+1)+v1)mod2]+[(a(j+2))mod2]
address=address_make(gen);
add1=address(1,:);
add2=address(2,:);
add3=address(3,:);
add4=address(4,:);
add5=address(5,:);
%
sig1=ones(fs*T,1)*signal1;
sig1=sig1(:)';
sig2=ones(fs*T,1)*signal2;
sig2=sig2(:)';
%% modulation
% carrier modulation
carrier1=[];
for i=1:length(signal1)
if signal1(i)==-1
carrier1=[carrier1 cos(2*pi*(f0+f(add1(i)+1))/fs*(0:T*fs-1))];
else
carrier1=[carrier1 cos(2*pi*(f1+f(add1(i)+1))/fs*(0:T*fs-1))];
end
end
carrier2=[];
for i=1:length(signal2)
if signal2(i)==-1
carrier2=[carrier2 cos(2*pi*(f0+f(add2(i)+1))/fs*(0:T*fs-1))];
else
carrier2=[carrier2 cos(2*pi*(f1+f(add2(i)+1))/fs*(0:T*fs-1))];
end
end
signal11=ones(T*fs,1)*signal1;
signal11=signal11(:);
signal11=signal11';
tx11=signal11.*carrier1;
signal22=ones(T*fs,1)*signal2;
signal22=signal22(:);
signal22=signal22';
tx22=signal22.*carrier2;
% figure,
% subplot(211),plotpp(tx11,fs)
% subplot(212),plot(tx11)
% figure,
% subplot(211),plotpp(tx22,fs)
% subplot(212),plot(tx22)
tx=tx11+tx22;
ff0=300; % 中频
d1_carrier0=[];
d1_carrier1=[];
for i=1:length(signal1)
d1_carrier0=[d1_carrier0 cos(2*pi*(f0+ff0+f(add1(i)+1))/fs*(0:T*fs-1))];
d1_carrier1=[d1_carrier1 cos(2*pi*(f1+ff0+f(add1(i)+1))/fs*(0:T*fs-1))];
end
tx1_0=tx.*d1_carrier0;
tx1_1=tx.*d1_carrier1;
d2_carrier0=[];
d2_carrier1=[];
for i=1:length(signal2)
d2_carrier0=[d2_carrier0 cos(2*pi*(f0+ff0+f(add2(i)+1))/fs*(0:T*fs-1))];
d2_carrier1=[d2_carrier1 cos(2*pi*(f1+ff0+f(add2(i)+1))/fs*(0:T*fs-1))];
end
tx2_0=tx.*d2_carrier0;
tx2_1=tx.*d2_carrier1;
% figure
% subplot(411),plot(tx1_0)
% subplot(412),plot(tx1_1)
% subplot(413),plotpp(tx1_0,fs)
% subplot(414),plotpp(tx1_1,fs)
b=fir1(500,2000*2/fs);
tx1_0=filter(b,1,tx1_0);
tx1_1=filter(b,1,tx1_1);
tx2_0=filter(b,1,tx2_0);
tx2_1=filter(b,1,tx2_1);
% figure
% subplot(411),plot(tx1_0)
% subplot(412),plot(tx1_1)
% subplot(413),plotpp(tx1_0,fs)
% subplot(414),plotpp(tx1_1,fs)
R=ceil(fs/2000);
fss=fs/R*2;
tx1_0=decimate(tx1_0,R/2);
tx1_1=decimate(tx1_1,R/2);
tx2_0=decimate(tx2_0,R/2);
tx2_1=decimate(tx2_1,R/2);
% figure
% subplot(411),plot(tx1_0)
% subplot(412),plot(tx1_1)
% subplot(413),plotpp(tx1_0,fs)
% subplot(414),plotpp(tx1_1,fs)
tx1_0=reshape(tx1_0,length(tx1_0)/length(msg1),length(msg1));
tx1_0=tx1_0';
tx1_1=reshape(tx1_1,length(tx1_1)/length(msg1),length(msg1));
tx1_1=tx1_1';
tx2_0=reshape(tx2_0,length(tx2_0)/length(msg2),length(msg2));
tx2_0=tx2_0';
tx2_1=reshape(tx2_1,length(tx2_1)/length(msg2),length(msg2));
tx2_1=tx2_1';
len=length(tx1_0(1,:));
u1=cos(2*pi*ff0/fss*(0:len-1));
v1=sin(2*pi*ff0/fss*(0:len-1));
u2=cos(2*pi*ff0/fss*(0:len-1));
v2=sin(2*pi*ff0/fss*(0:len-1));
for i=1:length(msg1);
r1c1(i,1)=tx1_0(i,1)*u1(1);
r1s1(i,1)=tx1_0(i,1)*v1(1);
r2c1(i,1)=tx1_1(i,1)*u1(1);
r2s1(i,1)=tx1_1(i,1)*v1(1);
end
for i=1:length(msg2);
r1c2(i,1)=tx2_0(i,1)*u2(1);
r1s2(i,1)=tx2_0(i,1)*v2(1);
r2c2(i,1)=tx2_1(i,1)*u2(1);
r2s2(i,1)=tx2_1(i,1)*v2(1);
end
for i=1:length(msg1);
for k=2:len;
r1c1(i,k)=r1c1(i,k-1)+tx1_0(i,k)*u1(k);
r1s1(i,k)=r1s1(i,k-1)+tx1_0(i,k)*v1(k);
r2c1(i,k)=r2c1(i,k-1)+tx1_1(i,k)*u1(k);
r2s1(i,k)=r2s1(i,k-1)+tx1_1(i,k)*v1(k);
end
end
for i=1:length(msg2);
for k=2:len;
r1c2(i,k)=r1c2(i,k-1)+tx2_0(i,k)*u2(k);
r1s2(i,k)=r1s2(i,k-1)+tx2_0(i,k)*v2(k);
r2c2(i,k)=r2c2(i,k-1)+tx2_1(i,k)*u2(k);
r2s2(i,k)=r2s2(i,k-1)+tx2_1(i,k)*v2(k);
end
end
%
for i=1:length(msg1);
r11(i)=r1c1(i,len)^2+r1s1(i,len)^2;
r12(i)=r2c1(i,len)^2+r2s1(i,len)^2;
end
for i=1:length(msg1);
if r11(i)>=r12(i);
msg_demod1(i)=0;
else msg_demod1(i)=1;
end
end
for i=1:length(msg2);
r21(i)=r1c2(i,len)^2+r1s2(i,len)^2;
r22(i)=r2c2(i,len)^2+r2s2(i,len)^2;
end
for i=1:length(msg2);
if r21(i)>=r22(i);
msg_demod2(i)=0;
else msg_demod2(i)=1;
end
end
msg_demod1
msg_demod2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -