文档库 最新最全的文档下载
当前位置:文档库 › 东南大学统计信号处理实验一

东南大学统计信号处理实验一

统计信号处理

实验一

学号:f

姓名:

东南大学信息科学与工程学院

2015.5.15

一、实验目的:

1、掌握噪声中信号检测的方法;

2、熟悉Matlab 的使用;

3、掌握用计算机进行数据分析的方法。

二、实验原理

1、先产生信号s(t),n(t),x(t),t=0,1,……199(ms);

2、根据定义似然比函数:10(|)

()(|)

p x H x p x H Λ=

,门限001()()P H P H Λ=;

如果0)(Λ>Λx ,则判定1D ;否则,判定0D 。 假设似然比为x ,根据似然比检测准则:

在某取样率的条件下,假设在、,,…,时间点上取样得到的随机变量分布为,,…,。

似然比函数为:

相应的似然比判别准则为:

时判断,否则判定

其中的是判决门限,它根据使用的判决准则确定具体的数值。 3、 Bayes 判决准则如下: 准则或风险函数:

),(),(),(),(1111000010010110H D P C H D P C H D P C H D P C R +++=

其中的诸系数XX C 是根据实际需要设定的风险系数。

[][])

()

()|()|(111010001001H P C C H P C C H x p H x p -->时判1D ,否则判0

D 。 已知有信号到达的概率P(H1)=0.6,没有信号到达的概率P(H0)=0.4,210=C ,101=C 。 由此计算判决门限为(2*0.4)/(1*0.6)=4/3。

对信号是否到达进行检测;

122

1

10

14()()*ln 23

N

N i

i i H s i x

s i H ==>+σ<∑∑ t t t ?+t t ?+2t N t ?+1x 2x N x ()()

()∑

==

Λ=-N

i i i i n s s x N N N e H x x x p H x x x p x x x 1

2221

02112121|,...,,|,...,,),...,,(σ()∑+Λ>∑==N i i n

N

i i i s s x 1

2

02

1

21ln σ1D 0D 0Λ

4、通过计算机产生的仿真数据分别对以上两种方法下的检测概率

P、误警概率f P、漏

d

警概率

P和Bayes风险进行仿真计算:

m

共做5000次统计:在x(t)=s(t)+n(t)的情况下,记录检测到信号的次数和未检测到信号的次数,并记录。

5、用同上的方法,改变判决的门限,观察检测方法的

P、f P、m P和Bayes风险的变

d

化;

6、用同上的方法,改变噪声的方差,观察检测方法的

P、f P、m P和Bayes风险的变

d

化;

7、改变取样间隔,然后再来观察似然比检测方法的

P、f P、m P和Bayes风险;

d

8、设计一个匹配滤波器,观察信号经过滤波器后的输出变化

三、实验内容与结果分析:

得到的原信号s(t)

1、利用似然比检测方法(最小错误概率准则),对信号是否到达进行检测;

下图为产生的信号的波形图:

得到的一个信号被检测到的次数为:

2、 假设102C =,011C =。利用基于Bayes 准则的检测方法,对信号是否到达进行检测;

得到的一个信号被检测到的次数为:

分析:检测到信号的概率比最大似然比方法检测到信号的概率低。

3、 通过计算机产生的仿真数据,对两种方法的检测概率d P 、虚警概率f P 、漏警概率

m P 和Bayes 风险进行仿真计算;

(1) 似然比检测方法

得到的一个结果为:

(2) 通过计算机产生的仿真数据,基于Bayes 准则的检测方法的检测概率 、虚警概

率 、漏警概率和Bayes 风险进行仿真计算

检测概率Pd, 漏警概率Pm,虚警概率Pf,Bayes 风险分别为:

分析:。和似然比检测方法对比,检测概率更小,漏警概率更高,虚警概率减小 通过改变P(H 1)和P(H 0)来改变判决的门限(风险系数10C 和01C 不变),观察检测方法

的d P 、f P 、m P

和Bayes 风险的变化; 1)似然比检测

当PH0=0.4,PH1=0.6时

当PH0=0.5,PH1=0.5时

可以看到当PH0/PH1增大时检测概率减小,漏警概率增大,虚警概率减小

2)基于Bayes 准则的检测

① 当PH0=0.4,PH1=0.6时,

② 当PH0=0.5,PH1=0.5

由数据可以看出当PH0/PH1增大时,检测概率减小,漏警概率增大,虚警概率减小,风险减小

4、 改变噪声的方差,观察检测方法的d P 、f P 、m P 和Bayes 风险的变化; 1)似然比检测 ①当方差为9时

②当方差为16时

③当方差为25时

可以看出检测概率减小,漏警概率增大,虚警概率增大

2)基于Bayes准则的检测

①当方差为9时

②当方差为16时

③当方差为25时

分析:随着噪声方差的升高,检测概率降低,漏警概率升高,虚警概率升高,风险升高。漏警概率的升高和虚警概率的升高直接导致风险变大。

5、将信号取样间隔减小一倍,观察各值的变化

1)取样200

2)取样400

各个概率值都有所减小

6、设计一个滤波器

①信号和经过滤波器的原信号

②收信号和经过滤波器的接收信号

③噪声信号和经过滤波器的噪声信号

三、源程序

%产生检测信号

t1=0:49;

s1=t1/50;

t2=50:149;

s2=-t2/50+2;

t3=150:199;

s3=t3/50-4;

s=[s1,s2,s3]; %产生信号三角波

p0=0.4;

p1=0.6;

for t=1:200 %取0ms到199ms的抽样值画图时,去掉这一行n1=5.*randn(1,200); %产生噪声,此处5为标准差

x=s+n1;%产生含有噪声的信号

figure(1);

subplot(2,1,1); %画图

plot(s);%画出不附加噪声的三角波信号

xlabel('t');%单位ms

ylabel('s');

title('信号 s(t)');

grid on;

subplot(2,1,2);

plot(n1);%画出噪声信号

xlabel('t');

ylabel('n1');

title('噪声信号n1(t)');

grid on;

figure(2);

subplot(2,1,1);

plot(x);%画出附加噪声的三角波信号

xlabel('t');

ylabel('x');

title('接收信号x(t)');

grid on;

%1.利用似然比检测方法(最小错误概率准则),对信号是否到达进行检测

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(p0/p1) %判断准则

tally1(t)=1; %检测到信号

'未检测到信号';

else

tally1(t)=0; %未检测到信号

'检测到信号';

end;

end; %画图时,去掉这一行

ADD1=sum(tally1);

'Number of arrival signal based on maximum likelihood method:';

ADD1;

%2.假设C_10=2;C_01=1,利用基于Bayes准则的检测方法,对信号是否到达进行检测

%产生检测信号

t1=0:49;

s1=t1/50;

t2=50:149;

s2=-t2/50+2;

t3=150:199;

s3=t3/50-4;

s=[s1,s2,s3]; %产生三角波信号

p0=0.4;%无信号到达的概率

p1=0.6;%有信号到达的概率

C10=2;%风险系数

C01=1;

m=(C10*p0)/(C01*p1);%判别门限计算可得4/3

for t=1:200 %取0ms到199ms的抽样值

n2=5.*randn(1,200); %产生噪声

x=s+n2;%产生含有噪声的信号

x3=x.*s;

x4=s.*s;

if 2*sum(x3)-sum(x4)>2*25*log(m)% 2*sum(x1)-sum(x2)>2*25*log(p0/p1) 与似然比检测相比加入了风险系数其他相同

tally2(t)=1; %检测到信号

' 未检测到信号 ';

else

tally2(t)=0; %未检测到信号

' 检测到信号 ';

end;

end;

ADD2=sum(tally2)

'Number of arrival signal based on Bayes:';

ADD2

%3.通过计算机产生的仿真数据,对两种方法的检测概率、虚警概率、漏警概率和Bayes风险进行仿真计算;

%3.1通过计算机产生的仿真数据,对似然比检测方法的检测概率、虚警概率、漏警概率进行仿真计算

%产生检测信号

t1=0:49;

s1=t1/50;

t2=50:149;

s2=-t2/50+2;

t3=150:199;

s3=t3/50-4;

s=[s1,s2,s3]; %产生信号

%4.1通过改变P(H1)和P(H0)来改变判决的门限(风险系数C_10 和C_01不变),观察似然比检测方法的检测概率、虚警概率、漏警概率的变化

p0=0.4;%改变此处的值完成第4.1问

p1=0.6;

for t=1:5000 %5000次仿真

%5.1改变信号的方差,观察似然比检测方法的检测概率、虚警概率、漏警概率的变化

n=5.*randn(1,200); %产生噪声改变此处的值完成第5.1问改变标准差的值

x=s+n;%产生含有噪声的信号

%利用似然比检测方法(最小错误概率准则),对信号是否到达进行检测

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(p0/p1)

tally1(t)=1; %检测到信号

' 未检测到信号 '

else

tally1(t)=0; %未检测到信号

' 检测到信号 '

end;

end;

n1=sum(tally1);%检测到信号的次数

n0=5000-n1;

Pd=n1/5000;%检测概率

Pm=n0/5000;%漏警概率

%计算虚警概率程序

for t=1:5000 %5000次仿真

n=5.*randn(1,200); %产生噪声改变此处的值完成第5.1问

x=n;%产生含有噪声的信号

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(p0/p1)% 虚警概率由于噪声总是客观存在的,当噪声信号的幅度超过检测门限时,

%雷达(或其他检测系统)就会被误认为发现目标,这种错误称为"虚警",它的发生概率称为虚警概率。

tally1(t)=1; %检测到信号

' 未检测到信号 ';

else

tally1(t)=0; %未检测到信号

' 检测到信号 ';

end;

end;

n2=sum(tally1);

Pf=n2/5000;

P=[Pd Pm Pf];

'检测概率Pd, 漏警概率Pm,虚警概率Pf='

P

%3.2通过计算机产生的仿真数据,基于Bayes准则的检测方法的检测概率、虚警概率、漏警概率和Bayes风险进行仿真计算方法代码相同

%只加入了风险系数

%产生检测信号

t1=0:49;

s1=t1/50;

t2=50:149;

s2=-t2/50+2;

t3=150:199;

s3=t3/50-4;

s=[s1,s2,s3]; %产生信号

%4.2通过改变P(H1)和P(H0)来改变判决的门限(风险系数C_10 和C_01不变),观察基于Bayes

准则的检测方法的检测概率、虚警概率、漏警概率和Bayes风险的变化

p0=0.4;%改变此处的值完成第4.2问

p1=0.6;

%假设C_10=2;C_01=1,利用基于Bayes准则的检测方法,对信号是否到达进行检测

C10=2;

C01=1;

m=(C10*p0)/(C01*p1);%判别门限

for t=1:5000 %5000次仿真

%5.2改变信号的方差,观察基于Bayes准则的检测方法的检测概率、虚警概率、漏警概率的变化和Bayes风险的变化

n=5.*randn(1,200); %产生噪声改变此处的值完成第5.2问

x=s+n;%产生含有噪声的信号

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(m)

tally1(t)=1; %检测到信号

' 未检测到信号 '

else

tally1(t)=0; %未检测到信号

' 检测到信号 '

end;

end;

n1=sum(tally1);%检测到信号的次数

n0=5000-n1;

Pd=n1/5000;%检测概率

Pm=n0/5000;%漏警概率

%计算虚警概率程序

for t=1:5000 %5000次仿真

n=5.*randn(1,200); %产生噪声改变此处的值完成第5.2问

x=n;%产生含有噪声的信号

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(p0/p1)

tally1(t)=1; %检测到信号

' 未检测到信号 '

else

tally1(t)=0; %未检测到信号

' 检测到信号 '

end;

end;

n2=sum(tally1); %误检测到信号的次数

Pf=n2/5000; %计算虚警概率

r=C10*Pf+C01*Pm;%计算贝叶斯风险

P=[Pd Pm Pf r];

'检测概率Pd, 漏警概率Pm,虚警概率Pf,Bayes风险分别为:'

P

%6.将信号取样间隔减小一倍,观察似然比检测方法的P_d,P_m,P_f和Bayes风险的变化%6.1

%产生检测信号

p0=0.4; %没有信号到达的概率

p1=0.6;%有信号到达的概率

t1=0:0.5:49.5;

s1=t1/50;

t2=50:0.5:149.5;

s2=-t2/50+2;

t3=150:0.5:199.5;

s3=t3/50-4;

s=[s1,s2,s3]; %产生信号

for t=1:5000 %5000次仿真

n=5.*randn(1,400); %产生噪声

x=s+n;%产生含有噪声的信号

%利用似然比检测方法(最小错误概率准则),对信号是否到达进行检测

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(p0/p1)

tally1(t)=1; %检测到信号

' 未检测到信号 '

else

tally1(t)=0; %未检测到信号

' 检测到信号 '

end;

end;

n1=sum(tally1);%检测到信号的次数

n0=5000-n1;

Pd=n1/5000;%检测概率

Pm=n0/5000;%漏警概率

%计算虚警概率程序

for t=1:5000 %5000次仿真

n=5.*randn(1,400); %产生噪声

x=n;%产生含有噪声的信号

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(p0/p1)

tally1(t)=1; %检测到信号

' 未检测到信号 '

else

tally1(t)=0; %未检测到信号

' 检测到信号 '

end;

end;

n2=sum(tally1); %误检测到信号的次数

Pf=n2/5000; %计算虚警概率

P=[Pd Pm Pf];

'检测概率Pd, 漏警概率Pm,虚警概率Pf分别为:'

P

%6.2 基于Bayes准则的检测方法取样信号增加一倍观察变化

p0=0.4;%没有信号到达的概率

p1=0.6;%有信号到达的概率

%产生检测信号

t1=0:0.5:49.5;

t2=50:0.5:149.5;

t3=150:0.5:199.5;

s1=t1/50;

s2=-t2/50+2;

s3=t3/50-4;

s=[s1,s2,s3]; %产生信号

%假设C_10=2;C_01=1,利用基于Bayes准则的检测方法,对信号是否到达进行检测C10=2;

C01=1;

m=(C10*p0)/(C01*p1);%判别门限

for t=1:5000 %5000次仿真

n=5.*randn(1,400); %产生噪声

x=s+n;%产生含有噪声的信号

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(m)

tally1(t)=1; %检测到信号

'未检测到信号 '

else

tally1(t)=0; %未检测到信号

' 检测到信号 '

end;

end;

n1=sum(tally1);%检测到信号的次数

n0=5000-n1;

Pd=n1/5000;%检测概率

Pm=n0/5000;%漏警概率

%计算虚警概率程序

for t=1:5000 %5000次仿真

n=5.*randn(1,400); %产生噪声

x=n;%产生含有噪声的信号

x1=x.*s;

x2=s.*s;

if 2*sum(x1)-sum(x2)>2*25*log(p0/p1)

tally1(t)=1; %检测到信号的次数

' 未检测到信号 '

else

tally1(t)=0; %未检测到信号次数

' 检测到信号 '

end;

end;

n2=sum(tally1);%误检测到信号的次数

Pf=n2/5000;%计算虚警概率

r=C10*Pf+C01*Pm;%计算贝叶斯风险

' Risk='

r

%7.根据s(t)设计一个离散匹配滤波器,并观察x(n)经过该滤波器以后的输出。%产生检测信号

t1=0:49;

s1=t1/50;

t2=50:149;

s2=-t2/50+2;

t3=150:199;

s3=t3/50-4;

s=[s1,s2,s3]; %产生信号

T=201;

for t=1:200 %构造匹配滤波器

sReversal(t)=s(T-t);%mf与s关于t轴对称

end;

n=5.*randn(1,200); %产生噪声

x=s+n;%产生含有噪声的信号

%分别产生原信号,接收信号,噪声信号与mf的卷积,即经过滤波器

out_s=conv(s,sReversal);%原信号经过滤波

out_x=conv(x,sReversal);%含噪声信号(接收信号)经过滤波

out_n=conv(n,sReversal);%噪声信号经过滤波

figure(1);

subplot(2,1,1);

plot(s);

xlabel('t');%单位ms

ylabel('s');

title('original signal s(t)');

grid on;

subplot(2,1,2);

plot(out_s);

xlabel('t');%单位ms

ylabel('out_s');

title('filter out_s(t)');

grid on;

figure(2);

subplot(2,1,1);

plot(x);

xlabel('t');

ylabel('x');

title('original receiving signal x(t)');

grid on;

subplot(2,1,2);

plot(out_x);

xlabel('t');

ylabel('out_x');

title('receiving signal filtered out_x(t)'); grid on;

figure(3);

subplot(2,1,1);

plot(n);

xlabel('t');

ylabel('n');

title('noise signal n(t)');

grid on;

subplot(2,1,2);

plot(out_n);

xlabel('t');

ylabel('out_n');

title('noise filtered out_n(t)');

grid on;

相关文档
相关文档 最新文档