function [f,P]=qpskPSD(SubCarrier)
IFFT_n=2*SubCarrier;%IFFT點數(shù)
Symbol_n=10;%每個子載波含有的OFDM符號數(shù)
Symbol_bit=2;%每個符號占比特數(shù)(QPSK調(diào)制)
SymbolCount=SubCarrier*Symbol_n*Symbol_bit;%輸入的總符號數(shù)
%產(chǎn)生隨機輸入====================
InputData=rand(1,SymbolCount)>0.5;
%串并變換====================
ParaData=zeros(SubCarrier,Symbol_n*Symbol_bit);%存放并行數(shù)據(jù)
for i=1:SymbolCount
ParaData(mod(i-1,SubCarrier)+1,fix((i-1)/SubCarrier)+1)=InputData(i);
end
%星座映射====================
%QPSK
%分成I,Q兩路碼元
I_Data=zeros(SubCarrier,Symbol_n);%存放I路數(shù)據(jù)
Q_Data=zeros(SubCarrier,Symbol_n);%存放Q路數(shù)據(jù)
for i=1:SubCarrier
for j=1:Symbol_n
I_Data(i,j)=ParaData(i,j*2-1);
Q_Data(i,j)=ParaData(i,j*2);
end
end
%QPSK相乘電路
%雙極性不歸零波形:1對應(yīng)1,0對應(yīng)-1
for i=1:SubCarrier
for j=1:Symbol_n
if I_Data(i,j)==0
I_Data(i,j)=-1;
end
if Q_Data(i,j)==0
Q_Data(i,j)=-1;
end
end
end
%幅度變?yōu)?/sqrt(2)
I_Data=I_Data./sqrt(2);
Q_Data=Q_Data./sqrt(2);
%Q路信號轉(zhuǎn)成復(fù)數(shù)
Q_Data=Q_Data.*sqrt(-1);
%QPSK相加電路
QPSK_Signal=zeros(SubCarrier,Symbol_n);%存放QPSK調(diào)制后各路信號
for i=1:SubCarrier
for j=1:Symbol_n
QPSK_Signal(i,j)=I_Data(i,j)+Q_Data(i,j);
end
end
%IFFT====================
QPSK_Signal1=[QPSK_Signal(1:SubCarrier/2,:);zeros(IFFT_n-SubCarrier,Symbol_n);QPSK_Signal(SubCarrier/2+1:SubCarrier,:)];
x=ifft(QPSK_Signal1*sqrt(IFFT_n),IFFT_n);
%并串變換====================
x1=reshape(x,1,IFFT_n*Symbol_n);
%頻譜
nfft=1024; %2^n
X=fftshift(fft(x,nfft));
Pxx=abs(X).^2/max(abs(X).^2); %求解PSD
t=0:nfft-1;
f=t/nfft;
P=10*log10(Pxx(t+1)); %縱坐標的單位為dB
plot(f,P);
axis([0 1 -40 0])
grid on
|