
如何将产生QPSK的matlab代码改成产生bpsk的代码 20
以下代码用于产生qpsk,我希望将其改为产生bpskT=1;%基带信号宽度,也就是频率fc=10;%载波频率nb=12;%传输的比特数dT=T/1000;%采样间隔fs=...
以下代码用于产生qpsk,我希望将其改为产生bpsk
T=1; % 基带信号宽度,也就是频率
fc=10; % 载波频率
nb=12; % 传输的比特数
dT=T/1000; % 采样间隔
fs=1/dT; % 采样频率
t=0:dT:nb*T-dT; % 限定t的取值范围
N=length(t); % 采样数
f=fs*t/N;
w=2*pi*f; % 相位
data=randi(1,nb,2); % 调用一个随机函数(0 or 1),输出到一个1*100的矩阵
datanrz=data.*2-1; % 变成极性码
data1=zeros(1,nb/dT); % 创建一个1*nb/delta_T的零矩阵
% m序列
X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101), Yi为移位寄存器各级输出 %置M序列总长度
for i=1:N
Y4=X4; Y3=X3; Y2=X2; Y1=X1;
X4=Y3; X3=Y2; X2=Y1;
X1=xor(Y3,Y4); %异或运算
if Y4==0
U(i)=-1;
else
U(i)=Y4;
end
end
m=U;
for q=1:nb
data1((q-1)/dT+1:q/dT)=datanrz(q); % 将极性码变成对应的波形信号
end
% 将基带信号变换成对应波形信号
data0=zeros(1,nb/dT); % 创建一个1*nb/delta_T的零矩阵
for q=1:nb
data0((q-1)/dT+1:q/dT)=data(q); % 将极性码变成对应的波形信号
end
% 发射的信号
data2=abs(fft(data1));
% 串并转换,将奇偶位数据分开
idata=datanrz(1:2:(nb-1)); % 将奇偶位分开,因此间隔m1为2
qdata=datanrz(2:2:nb);
% QPSK信号的调制
ich=zeros(1,nb/dT/2); % 创建一个1*nb/delta_T/2的零矩阵,以便后面存放奇偶位数据
for i=1:nb/2
ich((i-1)/dT+1:i/dT)=idata(i);
end
for ii=1:N/2
a(ii)=sqrt(2)*cos(2*pi*fc*t(ii));
end
idata1=ich.*a; % 奇数位数据与余弦函数相乘,得到一路的调制信号
qch=zeros(1,nb/2/dT);
for j1=1:nb/2
qch((j1-1)/dT+1:j1/dT)=qdata(j1);
end
for jj=1:N/2
b(jj)=sqrt(2)*sin(2*pi*fc*t(jj));
end
qdata1=qch.*b; % 偶数位数据与余弦函数相乘,得到另一路的调制信号 展开
T=1; % 基带信号宽度,也就是频率
fc=10; % 载波频率
nb=12; % 传输的比特数
dT=T/1000; % 采样间隔
fs=1/dT; % 采样频率
t=0:dT:nb*T-dT; % 限定t的取值范围
N=length(t); % 采样数
f=fs*t/N;
w=2*pi*f; % 相位
data=randi(1,nb,2); % 调用一个随机函数(0 or 1),输出到一个1*100的矩阵
datanrz=data.*2-1; % 变成极性码
data1=zeros(1,nb/dT); % 创建一个1*nb/delta_T的零矩阵
% m序列
X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101), Yi为移位寄存器各级输出 %置M序列总长度
for i=1:N
Y4=X4; Y3=X3; Y2=X2; Y1=X1;
X4=Y3; X3=Y2; X2=Y1;
X1=xor(Y3,Y4); %异或运算
if Y4==0
U(i)=-1;
else
U(i)=Y4;
end
end
m=U;
for q=1:nb
data1((q-1)/dT+1:q/dT)=datanrz(q); % 将极性码变成对应的波形信号
end
% 将基带信号变换成对应波形信号
data0=zeros(1,nb/dT); % 创建一个1*nb/delta_T的零矩阵
for q=1:nb
data0((q-1)/dT+1:q/dT)=data(q); % 将极性码变成对应的波形信号
end
% 发射的信号
data2=abs(fft(data1));
% 串并转换,将奇偶位数据分开
idata=datanrz(1:2:(nb-1)); % 将奇偶位分开,因此间隔m1为2
qdata=datanrz(2:2:nb);
% QPSK信号的调制
ich=zeros(1,nb/dT/2); % 创建一个1*nb/delta_T/2的零矩阵,以便后面存放奇偶位数据
for i=1:nb/2
ich((i-1)/dT+1:i/dT)=idata(i);
end
for ii=1:N/2
a(ii)=sqrt(2)*cos(2*pi*fc*t(ii));
end
idata1=ich.*a; % 奇数位数据与余弦函数相乘,得到一路的调制信号
qch=zeros(1,nb/2/dT);
for j1=1:nb/2
qch((j1-1)/dT+1:j1/dT)=qdata(j1);
end
for jj=1:N/2
b(jj)=sqrt(2)*sin(2*pi*fc*t(jj));
end
qdata1=qch.*b; % 偶数位数据与余弦函数相乘,得到另一路的调制信号 展开
1个回答
展开全部
用matlab产生数字滤波信号的方法如下: MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是matrix&laboratory两个词的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询