2010-08-17 2 views
-1

N = 2 일 때 quadrature phase-shift keying (QPSK) 코드를 zeroforcing 코드로 쓰려고하는데 오류가 있습니다. 여기 MATLAB에서 정의되지 않은 함수 오류를 어떻게 해결할 수 있습니까?

코드이다

Modulation = 'QPSK' 
Decode_Method = 'ZeroForcing' 
switch Modulation 
    case {'QPSK'} 
     Symbols = [ 1+j 1-j -1+j -1-j ]'; 
end 
Symbols = Symbols.'; 
nSymbols = length(Symbols); 

SNR_Array = [0.3 0.7 1.2 2.5 5 6.2 10 15.4 22 45 75.7 100.0]; 
nSNR = length(SNR_Array); 

Ntest = 20; 
N = 2; 

for iSNR = 1 : nSNR 
    SNR = SNR_Array(iSNR); 
    Nerror = 0; 
    for i = 1:Ntest 
     H = randn(N,N) + j*randn(N,N); 
     X = Symbols(ceil(nSymbols*rand(N,1)))'; 
     Noise = (randn(N,1) + j*randn(N,1))/sqrt(2)/sqrt(SNR); 
     Y = H*X + Noise; 
     switch Decode_Method 
      case {'ZeroForcing'} 
       X_Decode = Zero_Forcing(Y,H,Symbols); 
     end 
    end 
    Nerror = Nerror + length(find(X ~= X_Decode)); 
end 
Symbol_Error_Rate(iSNR) = Nerror/Ntest/N; 

figure(1) 
loglog(SNR_Array, Symbol_Error_Rate,'b') 
hold on 
xlabel('SNR') 
ylabel('Symbol Error Ratio') 
title('Symbol Error Ratio for NxN MIMO System') 

에러입니다

??? 정의되지 않은 함수 또는 메서드 'double'유형의 입력 인수에 대해 'Zero_Forcing'.
==> Untitled2 at 33
X_Decode = Zero_Forcing (Y, H, Symbols);

어떻게이 오류를 해결할 수 있습니까?

답변

1

오류는 MATLABZero_Forcing을 찾을 수 없음을 나타냅니다. 그 이름의 함수를 가지고 있다면 MATLAB 경로, 즉 MATLAB이 알고있는 디렉토리에 있는지 확인해야합니다. 그렇지 않으면 함수를 작성해야합니다. 그것은 오히려 중요하게 보인다.

또한 'Untitled2'기능을 호출하지 않고 더 의미있는 이름을 지정할 수 있습니다.

관련 문제