error in snr estimation graph

4 ビュー (過去 30 日間)
Shweta
Shweta 2014 年 5 月 2 日
回答済み: chiranjit 2014 年 5 月 12 日
Hello all,
I have written a following code for snr estimation of QPSK signal. My estimated snr values are matching with true snr values for snr above 4dB but for snr values less than 4dB, my estimated snr values are not matching with true snr values. The matlab code is as follows:
clc
clear
% Generate data.
M = 4; % Alphabet size
Pd = 500; % Length of data
x = randint(Pd,1,M); % Random bit stream
ini_phase = pi/4; %ini_phase
psksig = pskmod(x,M,ini_phase); % PSK signal
snr_theory = 0:2:10; % Theoretical value of SNR
QQ = 10.^(snr_theory/10); % SNR in decimal
c4=mean((psksig.*conj(psksig)).^2);
c6=mean((psksig.*conj(psksig)).^3);
for a = 1:length(snr_theory)
for n=1:500
rxsig = awgn(psksig,snr_theory(a));% Add Gaussian noise
M2 = mean(rxsig.*conj(rxsig)); % Second order Moments
M4 = mean((rxsig.*conj(rxsig)).^2); % Fourth order Moments
M6 = mean((rxsig.*conj(rxsig)).^3); % Sixth order moment
m=((M2*M4)/M6);
v=[((m1.*c6)-c4) ((9.*m1.*c4)-c4-4) ((18.*m1)-6) ((6.*m1)-2)];
r=roots(v);
snr_est_M2M4M6(n) = 10*log10(abs(r(1)));
M2M4M6_snr_est(a) = mean(snr_est_M2M4M6); % estimation value
end
end
figure(1);
%plot estimation value
plot(snr_theory,snr_theory);
hold on
plot(snr_theory,M2M4M6_snr_est,'-o');
hold off
The plot that is generated is as follows:

回答 (1 件)

chiranjit
chiranjit 2014 年 5 月 12 日
contact at chiranjitshee at gmail dot com

カテゴリ

Help Center および File ExchangeTest and Measurement についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by