📄 qpsk.m
字号:
clear
Fc=5e6; %用于调制解调的载波频率
%---QPSK调制
data=100; %输入5MHZ的二进制信号
% input=randint(1,data);
input=ones(1,data);
for i = 1:4:data
input(i) = 1;
end
for i = 2:4:data
input(i) = 1;
end
for i = 3:4:data
input(i) = 0;
end
for i = 4:4:data
input(i) = 0;
end
for i=1:data %串转并
if rem(i,2)==1
if input(i)==1
I(i)=1;
I(i+1)=1;
else
I(i)=-1;
I(i+1)=-1;
end
else
if input(i)==1
Q(i-1)=1;
Q(i)=1;
else
Q(i-1)=-1;
Q(i)=-1;
end
end
end
zero=5; %插值0,提高采样率,4倍插值
for i=1:zero*data
if rem(i,zero)==1
Izero(i)=I(fix((i-1)/zero)+1);
Qzero(i)=Q(fix((i-1)/zero)+1);
else
Izero(i)=0;
Qzero(i)=0;
end
end
NT=5; %The default value for N_T is 3. The default value of RATE is 5.
N=2*zero*NT; % The default value of T is 1.
Fs=25e6; % B = RCOSFIR(R, N_T, RATE, T, FILTER_TYPE) designs and returns a
rf=0.3; % square root raised cosine filter if FILTER_TYPE == 'sqrt'. T
psf=rcosfir(rf,NT,zero,Fs,'sqrt');%脉冲成形滤波器
Ipulse=conv(Izero,psf);
Qpulse=conv(Qzero,psf);
% zero=5; %插值0,提高采样率,4倍插值
% for i=1:zero*length(Ipulse)
% if rem(i,zero)==1
% IIpulse(i)=Ipulse(fix((i-1)/zero)+1);
% QQpulse(i)=Qpulse(fix((i-1)/zero)+1);
% else
% IIpulse(i)=0;
% QQpulse(i)=0;
% end
% end
% IIIpulse=conv(IIpulse,psf);
% QQQpulse=conv(IIpulse,psf);
%
% Imod = IIIpulse;
% Qmod = QQQpulse;
% for i=1:zero*data+N %调制
% t(i)=(i-1)/(Fc*zero);
% Imod(i)=IIIpulse(i).*sqrt(2)*cos(2*pi*Fc*t(i));
% Qmod(i)=QQQpulse(i).*(-sqrt(2)*sin(2*pi*Fc*t(i)));
% end
Idata=Ipulse;
% I data is a cosine wave
%
Qdata=Qpulse;
% Q data is a sine wave
% iqData = Idata + j*Qdata;
iqData = Ipulse + j*Qpulse;
% complex IQ waveform
iqData = int16(iqData*32767);
% convert waveform to short integers
markers = zeros(4,100);
% create 4 markers
markers(:,1:20) = 1;
% turn on markers
markers = char(markers)
% 1 byte per marker data
% Save the data to a .mat file
% Note Idata and Qdata are saved as double precision values
% iqData is saved as short integer values
% marker data is saved as a 4x1000 array of characters (1 byte per)
save('C:\temp\data.mat','Idata','Qdata','iqData','markers');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -