qammodについての質問です。
古いコメントを表示
古い教材の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)
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で 変調 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!