Filter löschen
Filter löschen

ksdensity function for pdf estimation

4 Ansichten (letzte 30 Tage)
yasser
yasser am 14 Mai 2014
Beantwortet: yasser am 14 Mai 2014
i feed some data to ksdensity but i got a gaussian pdf with peak greater than 1 how is that

Antworten (2)

David Sanchez
David Sanchez am 14 Mai 2014
As you can see in the ksdensity documentation, depending n how you use the function, there is nothing abnormal with your result:
From documentation: Generate a mixture of two normal distributions, and plot the estimated inverse cumulative distribution function at a specified set of values:
x = [randn(30,1); 5+randn(30,1)];
yi = linspace(.01,.99,99);
g = ksdensity(x,yi,'function','icdf');
plot(yi,g);
Paste the code you are using in order to provide a good solution to your question.
  1 Kommentar
yasser
yasser am 14 Mai 2014
let num =100
if true function [] =dist_vs_code_rate_non_negl_interf(num) %clear; disp('dist_vs_code_rate_non_negl_interf') n=6; %#of antenna fc=1700*1e6; %carrier freq for lte % BW=1.25*1e6; %operating freq range for narrowband lte could also be 2.5MHZ % fs=3*BW; %sampling freq c=3e8; %speed of light lambda=c/(fc); d=0.5*lambda; %inter antenna separation k=1; %#of usrs %num_pkts = 10; num_pkts=num noise_var_pre=1;
% obs_per=1; %observation period % t=0:1/fs:obs_per-1/fs; % no_samples=length(t); %is fs*obs_per
theta_test = [30]*pi/180; % Test vector of input azimuthiz theta values
A=(exp((transpose(-i*2*pi*d*[0:n-1])*sin(theta_test)/lambda))); %true steering mat for DOA
fft_size=128; %narrow band of lte
code_rate_pre=0.75; code_rate_post=0.5; code_rate_chk=0.5;
M=64;
no_samples_pre=.75*fft_size*log2(M)*code_rate_pre; no_samples_post=.75*fft_size*log2(M)*code_rate_post; no_samples_chk=.75*fft_size*log2(M)*code_rate_chk;
noise=randn(n,1.25*fft_size)*sqrt(1/2)+i*randn(n,1.25*fft_size)*sqrt(1/2); %Uncorrelated noise
loop=1;
for j=1:loop
%pre and negligable case
for m=1:num_pkts
sig=randi([0 1],no_samples_pre,1);
data=transpose(sig);
coded_data =convolution(data,code_rate_pre,10); %not built in fn in matlab code rate 3/4
% Create a rectangular 64-QAM modulator System object with bits as inputs and Gray-coded signal constellation
qamModulator = comm.RectangularQAMModulator(M,'BitInput',true);
% Rotate the constellation by pi/4 radians
qamModulator.PhaseOffset = pi/4;
% Modulate and plot the data
prechange = step(qamModulator, transpose(coded_data));
pre_ofdm=fft_size*ifft(prechange,fft_size);
% Adding Cyclic Extension
cext_pre=zeros(fft_size+0.25*fft_size,1);%ofdm symb is .25*fft_size(GI)+fft_size(data)
cext_pre(1:.25*fft_size)=pre_ofdm(fft_size-0.25*fft_size+1:end);
for k=1:fft_size
cext_pre(k+.25*fft_size)=pre_ofdm(k);
end
X_pre=A*transpose(cext_pre)+noise;
R_pre=X_pre*X_pre'/size(X_pre,2);
b_pre(:,:,m)=R_pre;
end
%change code rate
for m=1:num_pkts
sig_post=randi([0 1],no_samples_post,1);
data=transpose(sig_post);
coded_data =convolution(data,code_rate_post,10); %not built in fn in matlab code rate 1/2
% Create a rectangular 64-QAM modulator System object with bits as inputs and Gray-coded signal constellation
qamModulator = comm.RectangularQAMModulator(M,'BitInput',true);
% Rotate the constellation by pi/4 radians
qamModulator.PhaseOffset = pi/4;
% Modulate and plot the data
post_interf = step(qamModulator, transpose(coded_data));
post_interf_ofdm=fft_size*ifft(post_interf,fft_size);
% Adding Cyclic Extension
cext_post=zeros(fft_size+0.25*fft_size,1);%ofdm symb is .25*fft_size(GI)+fft_size(data)
cext_post(1:.25*fft_size)=post_interf_ofdm(fft_size-0.25*fft_size+1:end);
for k=1:fft_size
cext_post(k+.25*fft_size)=post_interf_ofdm(k);
end
X_post_interf=A*transpose(cext_post)+noise;
R_post_interf=X_post_interf*X_post_interf'/size(X_post_interf,2);
b_post(:,:,m)=R_post_interf;
end
%chk phase
for m=1:num_pkts
sig_chk=randi([0 1],no_samples_chk,1);
data=transpose(sig_chk);
coded_data =convolution(data,code_rate_chk,10); %not built in fn in matlab code rate 1/2
% Create a rectangular 64-QAM modulator System object with bits as inputs and Gray-coded signal constellation
qamModulator = comm.RectangularQAMModulator(M,'BitInput',true);
% Rotate the constellation by pi/4 radians
qamModulator.PhaseOffset = pi/4;
% Modulate and plot the data
post_chk = step(qamModulator, transpose(coded_data));
post_interf_ofdm_chk=fft_size*ifft(post_chk,fft_size);
% Adding Cyclic Extension
cext_chk=zeros(fft_size+0.25*fft_size,1);%ofdm symb is .25*fft_size(GI)+fft_size(data)
cext_chk(1:.25*fft_size)=post_interf_ofdm_chk(fft_size-0.25*fft_size+1:end);
for k=1:fft_size
cext_chk(k+.25*fft_size)=post_interf_ofdm_chk(k);
end
X_post_chk=A*transpose(cext_chk)+noise;
R_post_interf_chk=X_post_chk*X_post_chk'/size(X_post_chk,2);
b_post_chk(:,:,m)=R_post_interf_chk;
end
%calc dist
for m=1:num_pkts
pre_post_dist(m)=(norm(10*log10(eig(b_post(:,:,m),b_pre(:,:,m)))));
post_chk_dist(m)=(norm(10*log10(eig(b_post(:,:,m),b_post_chk(:,:,m)))));
end
[f1 xi]=ksdensity(pre_post_dist);
[f2 xii]=ksdensity(post_chk_dist);
plot(xi,f1);
grid on;
hold on
plot(xii,f2,'r');
legend('pre-post' , 'post-chk');
end
end

Melden Sie sich an, um zu kommentieren.


yasser
yasser am 14 Mai 2014
please some one post an explanation i need it urgently

Kategorien

Mehr zu Propagation and Channel Models finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by