qammodについての質問です。
Show older comments
古い教材のMATLABプログラムで qammod関数でエラーが発生しています。
エラー: qammod>validatePVpair (行 187) 'SymbolOrder' は認識されたパラメーターではありません。 名前と値の有効なペア引数のリス トは、この関数のドキュメンテーションを参照してください。
エラー: qammod>validateInputArgs (行 132) validatePVpair(varargin{1:end});
エラー: qammod (行 93) plotConstellation, outputDataType] = validateInputArgs(M, varargin{:});
エラー: CFO_estimation (行 7) h=qammod('M',M,'SymbolOrder','gray');
というエラーです。
どこを改善すればよろしいでしょうか 下記がそのプログラムです。
%CFO_estimation.m
%Time-domain CP based method and Frequency-domain(Moose/Classen)method
clear,clf
CFO=0.15;
Nfft=128;
Nbps=2;M=2^Nbps;
h=qammod('M',M,symOrder,'gray');
Es=1; A=sqrt(3/2/(M-1)*Es);
N=Nfft;Ng=Nfft/4;Nofdm=Nfft+Ng;Nsym=3;
x=[];
for m=1:Nsym
msgint=randin(1,N,M);
if i<=2, Xp=add_pilot(zeros(1,Nfft),Nfft,4); Xf=Xp;
else Xf = A*modulate(h,msgint);
end
xt=ifft(Xf,Nfft);
x_sym=add_CP(xt,Ng);
x=[x x_sym];
end
y=x;
sig_pow=y*y'/length(y);
SNRdBs=0:3:30; MaxIter=100;
for i=1:length(SNRdBs)
SNRdB=SNRdBs(i);
MSE_CFO_CP=0; MSE_CFO_Moose=0; MSE_CFO_Classen=0;
rand('seed',1); randn('seed',1);
y_CFO=add_CFO(y,CFO,Nfft);
for iter=1:MaxIter
y_aw=awgn(y_CFO,SNRdB,'measured');
CFO_est_CP=CFO_CP(y_aw,Nfft,Ng);
MSE_CFO_CP=MSE_CFO_CP+(CFO_est_CP-CFO)^2;
CFO_est_Moose=CFO_Moose(y_aw,Nfft);
MSE_CFO_Moose=MSE_CFO_Moose+(CFO_est_Moose-CFO)^2;
CFO_est_Classen=CFO_Classen(y_aw,Nfft,Ng,Xp);
MSE_CFO_Classen=MSE_CFO_Classen+(CFO_est_Classen-CFO)^2;
end
MSE_CP(i)=MSE_CFO_CP/MaxIter; MSE_Moose(i)=MSE_CFO_Moose/MaxIter;
MSE_Classen(i)=MSE_CFO_Classen/MaxIter;
end
semilogy(SNRdBs,MSE_CP,'-+'), grid on, hold on
semilogy(SNRdBs,MSE_Moose,'-x'),semilogy(SNRdBs,MSE_Classen,'-*')
xlabel('SNR[dB]'),ylabel('MSE');title('CFO Estimation');
legend('CP-based technique','Moose',Classen)
Accepted Answer
More Answers (0)
Categories
Find more on 変調 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!