📄 qpsk_a.m
字号:
clear all;
%%%%%%%%%%%%%%%%%设置QPSK信号的参数%%%%%%%%%%%%%%%%%%%%%
Symbol = 1024*16;%%码元个数
Fs = 1e6;%364110;%采样率
Fc = Fs/20;%信号载频
Rs = Fs/41;%码元速率
a = 0.4;%升余弦系数
T = 3;%升余弦周期
SNR = 4.3;%信噪比
% noise = randn(1,Symbol*Fs/Rs)*(10^(-(SNR+6)/20));
%%%%%%%%%%%%%%%%%%生成QPSK信号%%%%%%%%%%%%%%%%%%%%%%%%%%
iCode = (randint(1, Symbol, [0 1])*2-1);
qCode = (randint(1, Symbol, [0 1])*2-1);
% for j = 1:11;
FIR = rcosfir(a ,[-T,T] ,(floor(Fs/Rs)) ,1 ,'sqrt');%0.1*(j-1)
iBaseband = conv(upsample(iCode,Fs/Rs),FIR);
qBaseband = conv(upsample(qCode,Fs/Rs),FIR);
QPSK1 = zeros(1,Symbol*Fs/Rs);
QPSK1 = iBaseband((T*(floor(Fs/Rs))+1):((Symbol+T)*(floor(Fs/Rs)))).*cos(2*pi*Fc/Fs*(1:Symbol*Fs/Rs))+ qBaseband((T*(floor(Fs/Rs))+1):((Symbol+T)*(floor(Fs/Rs)))).*sin(2*pi*Fc/Fs*(1:Symbol*Fs/Rs));%+ noise;
%%%%%%%%%%%%%%%%%%%%%%%信号做5倍抽取%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
QPSK = zeros(1,Symbol*8);
QPSK2 = zeros(1,Symbol*8);
for i = 1:Symbol*8;
QPSK(i) = QPSK1(5*i)*2;
end
plot(10*log(abs(fft(QPSK(1:Symbol).^1))));
% fid1 = fopen('QPSK_8.dat','wb');
% n = fwrite(fid1,QPSK,'float');
% fclose(fid1);
% fid2 = fopen('QPSK_41.dat','w');
% m = fwrite(fid2,QPSK1,'float');
% fclose(fid2);
% fid2 = fopen('QPSK_8.dat','r');
% QPSK2 = fread(fid2,Symbol*8,'float');
% plot(10*log(abs(fft(QPSK2.^2))));
% fclose(fid2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -