📄 m_cov_cul01_module.m
字号:
%******** 1023点的2psk调制(f=
%*********** 1023点m序列的产生 ****************%
clear;
clc;
close all;
k11=4
k21=9
N=9
number=2^N-1
b1=zeros(1,number+N);
for i=1:N
b1(i)=1;
end
a=zeros(1,number+6);
c1=0;
d1=0;
b0=zeros(number,1);
p=0;
i=1;
for i=N+1:number+N
b1(i)=(((~b1(i-N+k11))&b1(i-k21))|(b1(i-N+k11)&(~b1(i-k21))));
end
b1;
for p=1:number
if(b1(p)==0)
b1(p)=1;
else
b1(p)=-1;
end
end
fft_time=4;
m_time=3;
m_length=6;
for p=1:m_time
a(p)=b1(p+number-m_time);
end
for p=1+m_time:number+m_time
a(p)=b1(p-m_time);
end
for p=number+m_time+1:number+m_length
a(p)=b1(p-number-m_time);
end
a;
b0=a';
%**************相关运算*****************%
%for p=1:number
% c=c+a(p)*b(p);
% d=d+a(p+7)*b(p);
%end
%c
%d
%2FSK调制,载频为488.3KHz
%-------------------------------
a; %输入信号
n=length(a);
k1=-4200000; %信号为0时的频率
k2=4200000; %信号为1是的频率
k3=number*10; %波特率
k4=800*number; %采样频率
c=zeros(1,n*k4/k3); %采样数据个数,每个比特内采样数据为k4/k3
b=zeros(1,n); %输出信号
N=8; %16点的FFT
d=zeros(1,N);
for i=1:n
t=0:1/k4:1/k3-1/k4;
if(a(i)==-1)
c((i-1)*k4/k3+1:i*k4/k3)=sin(2*pi*k2*t);
else
c((i-1)*k4/k3+1:i*k4/k3)=sin(2*pi*k1*t);
end
end %得到采样数据c
t1=0:1/k4:n/k3-1/k4;figure(1);
plot(t1,c); %基带信号
f1=488300; %调制频率为488.3kHz
e=sin(2*pi*f1*t1);
cf=c.*e; %调制后数据中频为490kHz
t1=0:1/k4:n/k3-1/k4;figure(2);
plot(t1,cf); %调制信号
snr=25;
cf=awgn(cf,snr); %加入高斯百噪声,信噪比为15dB
t1=0:1/k4:n/k3-1/k4;figure(3);
plot(t1,cf); %加入噪声后的信号cf
%cg=cf;
cg=downsample(c,10); %cf换为c,未经调制
%p=zeros(1,N);
%t2=0:1/k4*10:n/k3-1/k4*10;
%p=fft(cg,N);
%figure(4),plot(t2*100*N,p)
cd=zeros(1,N);
for m=1:n
X=0;
Y=0;
for i=1:N
%if(i<=10)
cd(i)=cg(i+N*(m-1));
%else
% cd(i)=0;
%end
X=X+cd(i)*exp(-j*2*pi*2*(i-1)/N); %计算X(16),对应频率为1800Hz ,为0
Y=Y+cd(i)*exp(-j*2*pi*7*(i-1)/N); %计算X(18),对应频率为1600Hz,为1
end;
rex=real(X);
imx=imag(X);
rey=real(Y);
imy=imag(Y);
X=abs(X)^2;
Y=abs(Y)^2;
if(rex>0)
b(m)=1;
else
b(m)=-1;
end %判决
for g=1:N
W=0;
for i=1:N
W=W+cd(i)*exp(-j*2*pi*g*(i-1)/N);
end
d(g)=abs(W)^2;
end
t=1:N;
figure(5);
plot(t,d); %求一个周期16点的DFT
end
b;
if(a==b)
right=1;
else
right=0;
end
n
right %right=1则检测正确
data=zeros(n*N,1);
for i=1:n*N
data(i)=fix(cg(i)*32768);%cg换为c,未经调制
end
d0=zeros(1,N*2*n);
for i=1:N*n
d0(2*i-1)=data(i);
end
e0=d0';
for i=1:number*5
mn(i)=data(i);
end
for i=number*5+1:number*8+6*8
nm(i-number*5)=data(i);
end
fft_data=fix(randn(fft_time,1)*32768/3);
%m_time=3
for i=1:fft_time
input(i)=fft_data(i);
end
for i=fft_time+1:fft_time+8*(number+m_length)
input(i)=data(i-fft_time);
end
input=input';
close all;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -