About this blog

I have created this blog with the intention of blogging on my academic interests. But you can't really hold me to that. I might post on anything that interests me.

Most of the posts, I guess, would be on problems that I find interesting. A majority of them would be from from Linear Algebra, probability, basic geometry, Communications, Signal Processing and Machine Learning; Some stuff might be from my previous love, Classical Physics.

So where do I get these problems/ articles/posts from? Do I think of them? Are they my original ideas? The answer to all such questions is a plain and simple No. I shamelessly copy stuff from the outside world and post them here as if they were my own (who doesn't?). This doesn't mean that all of the stuff that is here is stolen. I do intend blogging a fair deal on my research, which, by definition, is original. I also intend blogging on open problems on areas that I am conversant with, and the ones that I understand fairly well. Definitely, most of the problems would have solutions that are my own or thought process that is my own. But again, you can't really hold me to that either. :-)

Before finishing this write-up, there's something you probably need to know. Avoid using offensive language while you are here. I will just delete them the instant I see them. I don't care if the rest of the sentence contains the answer to why the Universe was created in the first place. I will simply delete it.

Hope you like my blog.

Showing posts with label SNR. Show all posts
Showing posts with label SNR. Show all posts

Tuesday, 3 April 2012

RECEIVER OPERATING CHARACTERISTICS (ROC) FOR BINARY HYPOTHESIS TESTING


PROBLEM SETUP:

  1)  Binary hypothesis testing problem
  2)  Null hypothesis: S = zeros(10,1)
  3)  Alternate hypothesis: S = ones(10,1)
  4)  Probabilistic transition mechanism: Multidimensional Gaussian with mean vector S and covariance matrix equal to scaled identity
  5)  SNR d2 defined as STQ-1S where Q is the covariance matrix of the multidimensional Gaussian distribution



MATLAB CODE:

clc;
clear all;
close all;
s=ones(10,1);
nos=zeros(10,1);
sigma=[sqrt(20) sqrt(10) sqrt(5)];

imax=10000;                %NUMBER OF EXPERIMENTS
threshold=-50:2:50;        %THRESHOLD RANGE OF LOG-LIKELIHOOD RATIO(THEORETICAL RANGE FROM -INFINITY TO +INFINITY)

for j=1:length(threshold)  %LOOP TO VARY THRESHOLD
   
    numdetect1(j)=0;       %NUMBER OF DETECTIONS
    numfa1(j)=0;           %NUMBER OF FALSE ALARMS
    numdetect2(j)=0;
    numfa2(j)=0;
    numdetect3(j)=0;
    numfa3(j)=0;
    notst(j)=0;             %NUMBER OF TIMES ALTERNATE HYPOTHESIS IS TRUE
    notsnt(j)=0;            %NUMBER OF TIMES NULL HYPOTHESIS IS TRUE
   
    for i=1:imax            %EXPERIMENT NUMBER i
       
        n=randn(10,1);
        n1=sigma(1)*n;      %GENERATE NOISE FOR i-th EXPT WITH DIFFERNT POWERS CORRESPONDING TO DIFFERENT SNRs
        n2=sigma(2)*n;
        n3=sigma(3)*n;
       
        sgnlpresent=randi(2)-1;    %RANDOM GENERATION OF HYPOTHESES
       
        if sgnlpresent==1
            notst(j)=notst(j)+1;
            r1=s+n1;               %PROBABILISTIC TRANSITION MECHANISM FOR ALTERNATE HYPOTHESIS FOR DIFFERENT SNRs
            r2=s+n2;
            r3=s+n3;
        else
            notsnt(j)=notsnt(j)+1;
            r1=nos+n1;
            r2=nos+n2;             %PROBABILISTIC TRANSITITON MECHANISM FOR NULL HYPOTHESIS FOR DIFFERENT SNRs
            r3=nos+n3;
        end                        
       
        suffstat1=transpose(r1)*s;       %COMPUTE SUFFICIENT STATISTIC FROM RECEIVED OBSERVATIONS
        suffstat2=transpose(r2)*s;
        suffstat3=transpose(r3)*s;       %STATISTIC DERIVED USING BAYE'S MINIMUM RISK ANALYSIS

       
        if suffstat1>threshold(j)
            detect1=1;
        else                                 %THRESHOLDING FOR DECESION DEVICE
            detect1=0;
        end          
        if detect1==1 && sgnlpresent==1
            numdetect1(j)=numdetect1(j)+1; 
        end                                 
        if detect1==1 && sgnlpresent==0
            numfa1(j)=numfa1(j)+1;
        end          
        pd1(j)=numdetect1(j)/notst(j);
        pf1(j)=numfa1(j)/notsnt(j);
       
        if suffstat2>threshold(j)
            detect2=1;
        else
            detect2=0;
        end          
        if detect2==1 && sgnlpresent==1
            numdetect2(j)=numdetect2(j)+1;
        end                                 %COMPUTING Pr(False Alarm) and Pr(Detection) FOR DIFFERENT SNRs
        if detect2==1 && sgnlpresent==0
            numfa2(j)=numfa2(j)+1;
        end          
        pd2(j)=numdetect2(j)/notst(j);
        pf2(j)=numfa2(j)/notsnt(j);
       
        if suffstat3>threshold(j)
            detect3=1;
        else
            detect3=0;
        end          
        if detect3==1 && sgnlpresent==1
            numdetect3(j)=numdetect3(j)+1;
        end
        if detect3==1 && sgnlpresent==0
            numfa3(j)=numfa3(j)+1;
        end          
        pd3(j)=numdetect3(j)/notst(j);
        pf3(j)=numfa3(j)/notsnt(j);
    end
end

figure(1);
plot(pf1,pd1,pf2,pd2,pf3,pd3,'linewidth',1.5);
title('RECEIVER OPERATING CHARACTERISTICS FOR DIFFERENT VALUES OF SNR');
xlabel('PROBABILITY OF FALSE ALARM');
ylabel('PROBABILITY OF DETECTION');
legend('d2=0.5','d2=1','d2=2');
grid;

ROC PLOT:


SOME PHILOSOPHY:

   1)  The statistic is derived in a generic framework using Bayes’ criterion. The result can be applied with minor modifications to problems whose null hypothesis, alternate hypothesis and probabilistic transition mechanism follow the model described in the beginning. I have tried this code to detect image signals in the presence of noise and it works properly.  

BIT ERROR RATE OF COHERENT CP-OFDM SYSTEM OPERATING OVER A RAYLEIGH FADING CHANNEL


SYSTEM SPECIFICATIONS:

1) 128 subcarriers
  BPSK modulation
3)  10 tap Rayleigh fading channel with exponential PDP
4)  Cyclic prefix length of 32 to avoid Inter-block interference
5)  Coherent receiver


MATLAB CODE:

clc;
clear all;
close all;
k=0;
snr= -5:2:11;
snrn=power(10,snr/10);
a=1;

for j=1:20
    wf(1,j)=1./exp(j-1);                   %EXPONENTIAL POWER DELAY PROFILE
end

for SNR=-5:2:11
    k=k+1;
    error=0;
    for chnlno=1:power(10,3)
        msgbits=randint(1,128);                           % 128 SUBCARRIERS
        for i=1:length(msgbits)
            if msgbits(i)==0
                s(i)=a;
            else
                s(i)=-a;
            end
        end                                              %BPSK MAPPING DONE
       
        xi=ifft(s);
        for i=97:128
            cp(i-96)=xi(i);                                  % 32 LENGTH CP
        end
        x=horzcat(cp,xi);                              %CYCLIC PREFIX ADDED
       
        hi=((1/sqrt(2))*randn(20,2));
        for j=1:20
            hi2(1,j)=hi(j,1)+sqrt(-1)*hi(j,2);             % 10 TAP CHANNEL
        end
        h=(wf).*(hi2);
       
        ynn=conv(x,h);     
       
        sigmasqr=(1)/(2*(power(10,(SNR/10))));
        noisei=(sigmasqr)*randn(length(ynn),2);
       
        for j=1:length(ynn)
            noise(1,j)=noisei(j,1)+sqrt(-1)*noisei(j,2);
        end
       
        y=ynn+noise;
       
        for i=33:160
            yh(i-32)=y(i);                           %CYCLIC PREFIX REMOVED
        end
       
        Yeq=(fft(yh))./(fft(h,128));
        yeq=ifft(Yeq);
        yi=fft(yeq);
       
        for i=1:128
            if real(yi(i)>0)
                mh(i)=0;
            else
                mh(i)=1;
            end
        end
       
        for i=1:128
            if mh(i)==msgbits(i)
                error=error+0;
            else
                error=error+1;
            end
        end
    end
    BER(k)=error/(128*power(10,4));
end
figure(1);
semilogy(snr,BER,'linewidth',1.5);
xlabel('SNR IN dB ------>');
ylabel('BER');
title('BER PERFORMANCE OF A CP-OFDM SYSTEM');
grid;

SNR Vs BER CURVE:

SOME PHILOSOPHY:

1)  BER curve almost in sync with that of a single carrier system operating over Rayleigh flat fading channel (as expected).

2)  Do not expect waterfall curve for BER in Rayleigh fading channels. BER plot will always be a straight line in high SNR regime. Slope can be improved using diversity (time, frequency, space).

3)  To make OFDM achieve frequency diversity, you have to code across subcarriers instead of coding across time. Coding across time alone results in high latency since OFDM symbol duration is pretty high. Typical systems code across both subcarriers and time in order to achieve same diversity with lesser latency (as compared to coding just across time).

4)  While coding across subcarriers, keep in mind that not all parallel channels are uncorrelated. You need to determine the minimum frequency spacing for uncorrelatedness before you code. Otherwise, you will not get full diversity.