最佳接收机
------------------------------------------------------------------------------------------------
最佳接收机
数字通信实验
学生姓名:
所属院系: 信息科学与工程学院 专 业: 信息与通信工程
学 号:
完成日期:2015/4/28
假设信道以高斯白噪声相加来恶化信号,如下图所示。
图2.1通过AWGN信道的接收信号模型
在0?t?T间隔内,接收信号可以表示为:
r?t??sm?t??n?t? (0?t?T) (1-1)
其中n(t)表示具有功率密度谱??f??1N0(W/Hz)的加性高斯白噪声的样本函数。 2
将接收机划分为两个部分——信号解调器和检测器,信号的解调器的功能是将接收波形变换成N维向量。检测器的功能是根据向量r在M个可能信号波形中判定哪一个波形被发送。接收机的结构如图所示:
图1.2接收机结构
1.2最佳解调器
解调器是为检测器提供判断依据的,没有最优的解调器
,检测器设计得再好也不可能使整个接收机的性能达到最佳。因此解调器的设计准则就是:从接收信号当中提取一切可以检测器所利用的信息,——————————————————————————————————————
------------------------------------------------------------------------------------------------
作为检测器的输入信号,从而尽可能使检测器不会因为判断依据不足而导致错误判断的发生。信号解调器的功能是将接收波形变换成n维向量r=[r1 r2 …rn],其中n是发送信号波形的维数。 最佳解调器问题为使输出信噪比最大化问题,要想解调器达到最佳,那么有两种
可以实现分别为:相关解调器和匹配滤波器调制。下面依次展开说明。
1.2.1相关解调器
相关解调器是将接收信号和噪声分解成N维向量,也就是把接收信号和噪声信号展开成一系列线性正交基函数fn?t?。假设接收信号通过一组并行的N个互相关器,这些互相关器
主要是计算r(t)在N个基函数fn?t?上的投影。对于相关解调器而言,它将信号和噪声分别在一组基函数上展开,基函数能够张成信号空间,而不能张成噪声空间。因此在展开的时候,噪声必定有一部分不能由基函数的线性组合来表示,这部分就是接收信号中对检测器来说唯一无用的一部分信号。
相关解调器是实现过程为:
{ ?T
0r?t?fk?t?dt??T
0?sm?t??n?t??fk?t?dt
rk?smk?nk ( k=1,2,…,N ) } (1-2)
其中
smk?
nk??T
——————————————————————————————————————
------------------------------------------------------------------------------------------------
0T0smfk?t?dt ( k=1,2,…,N) (1-3) k?n?t?f?t?dt ( k=1,2,…,N) (1-4)
相关型解调器的原理图如下:
图1.4相关解调器
smk(k=1,2,…,N)中的sm表示,它们的值取决于M个信号中哪
一个被发送。nk是随机变量,它们由加性噪声的存在引起的。
在0?t?T的间隔内接收信号可表示为:
{ r?t???s
k?1
kNmkfk?t???nkfk?t??n??t? k?1N =
其中:
?rf?t??n??t? } (1-5) kk?1Nn??t??n?t???nkfk?t? (1-6)
k?1N
n??t?是均值为零的高斯噪声。n??t?与判决哪个发送信号无关,
判决是根据相关器输出信号和噪声rk?smk?nk(k=1,2,…,N)来进行。
1.2.2匹配滤波器解调
假设N个滤波器的冲激响应为:
式中,hk?t??fk?T?t? 0?t?T (1-7) fk?t?是N个基函数,在0?t?T区间之外h?t??0。滤波器的输出为: k
yk?t???r???hk?t???d? 0T
=?r???f?T?t???d? (k=1,2,…,N) (1-8) 0k ——————————————————————————————————————
------------------------------------------------------------------------------------------------
kkT如果在t=T时对滤波器输出抽样,代入公式2.7可得:
yk?T???r???f???d??r0T (k=1,2,…,N) (1-9)
由公式2-8可知,在t=T时刻滤波器输出抽样值与由N个线性相关器得到一组值rk完全相同。
如果s(t)限定在0?t?T间隔内,则冲激响应h?t??s?T?t?的滤波器为信号s(t)的匹配滤波器。
最佳解调器就是为了使输出信噪比最大化问题,在匹配滤波器中,如果信号s(t)受到高斯白噪声的影响,那么具有匹配s(t)的冲激响应的滤波器使输出信噪比(SNR)达到最大。
接收信号由信号s(t)和高斯噪声信号n(t)组成,则n(t)是均值为零,功率谱密度为??f??1?0???z?。如果r(t)通过冲激响应为h?t?(0?t?T)的滤波器,则: 2
y?t???r???h?t???d?0T
T
0 =?T0s???h?t???d???n???h?t???d? (1-10)
y?T???s???h?T???d???n???h?T???d?00TT在t=T时刻抽样,则:
?ys?T??yn?T? (1-11) 其中,ys?T? 表示信号分量,yn?T?表示噪声分量。
按照输出信噪比(SNR)的定义得:
?T?y2
SNR?s
2?ynT (1-12)
——————————————————————————————————————
------------------------------------------------------------------------------------------------
其中:
?y?T???2
n??T0?E?n???n?t??h?T?t?h(T?t)d? 0T
?TT1?0????t???h?T???h?T?t?dtd? 002
T1??0?h2?T?t?dt (1-13) 02
2将ys?T?和?yn?T?代入1-12得: ??
?s?t?h?T???d???h???s?T???d????0????0???? (1-14) SNR??TT11?0?h2?T?t?dt?0?h2?T?t?dt0022
要想SNR达到最大分子达到最大,分母达到最小,所以当h(t)
匹配于信号s(t)时,SNR最大。 T2T2
1.3最佳检测器
检测器是是根据向量r在M个可能信号波形中判定哪一个波形
被发送,从而实现最佳接收。检测器主要有两大准则分别为:最大后
验概率准则(MAP)和最大似然准则(ML)。以及由这两大准则衍生
的判断规则:最小距离检测和最大相关度量。
(1)最大后验概率准则(MAP):根据接收矢量r同时计算M个
后验概率???smr?,m?1,2,...,M?,选择使??smr?最大sm作为判决输出,
使得错误判决概率最小。
(2)最大似然准则(ML):
利用贝叶斯(Bayes)规则,后验概率可以表示为:
??smr??p?rsm???sm?(m=1,2,…,M) (1-15) ——————————————————————————————————————
------------------------------------------------------------------------------------------------
pr可以定义:PM?r,sm??p?rsm???sm?为后验概率度量。p?rsm?似然函数。
MAP准则等价于选择使PM?r,sm?最大的sm作为判决输出。
最大似然(ML)准则:根据接收矢量r同时计算M个似然函数?p?rsm?,m?1,...,M?,选择使p?rsm?最大的sm作为判决输出。
(3)最小距离检测:
在AWGN信道情况下:
p?rsm???p?rksmk??
k?1N1?N0N2?N?rk?smk?2?exp???? (1-16) N??0?k?1?
11N2lnp?rsm???Nln??N0????rk?smk? (1-17)
2Nk?1
lnp?rsm?在sm上的最大化等价于使下列欧氏距离最小的信号sm
D?r,sm????r
k?1Nk?smk?(m=1,2,…,M) (1-18)为距离度量。
2
对于加性高斯白噪声,基于ML准则的判决规则等价于寻求在距离上最接近于接收信号矢量r的信号sm。
(4)最大相关度量
D?r,sm????r
k?1
——————————————————————————————————————
------------------------------------------------------------------------------------------------
2Nk2 ?smk???r?2?rnsmk??smn22nn?12NNNn?1n?1 ?r
2?2r?sm?sm (m=1,2,…,M) (1-19) 2其中,r项对所有距离是公共的,定义:D??r,sm???2r?sm?sm
使D??r,sm?最小的信号 (1-20) sm等价于使度量C?r,sm???D??r,sm?最大的信号,即:
2 C?r,sm??2r?sm?sm 为相关度量 (1-21)
对于加性高斯白噪声信道,基于ML准则的判决规则等价于计算一组M个相关度量C?r,sm?,并选择对应于最大度量的信号sm。
在所有信号是等概率的情况下,最大后验概率准则(MAP)等价于最大似然准则(ML)。当信号不等概时,最佳MAP检测判决的概率为??smr?(m=1,2,…,M)或等价为度量:PM?r,sm??p?rsm?P?sm?。基于ML准则的最佳判决主要由最小距离检测和最大相关度量来实现。
2测试结果及性能
2.1测试数据的生成
在MATLAB中,对M文件进行逐一进行运行,通过M文件中的可以进入各个子 模块,并对各个子模块进行调制运行。
(1)基带信号产生与调制模块:
基带信号的产生:通过randint函数产生随机二进制信号,由于是四进制每个码元含有2b信息,所以对基带函数要做一些处理,如果产生两列信号就可以实现。因为调用modulate函数来实现信号调制,因为modulate函数对信号的要求是实信号,所以要把二进制变为十进制,可以通过bi2de实现。又因为modulate选择的是PM调制,——————————————————————————————————————
------------------------------------------------------------------------------------------------
因此一个码元内的采样点必须与载波频率一样,所以做了相关处理。
首先我们得知道每个符号所含的比特数,由比特数产生对应的随
机二进制数据M=4: k=log2(M);
transmit=zeros(transmit_bit_length/k,k);
for i=1:k
transmit(:,i)=randint(transmit_bit_length/k,1);
end
因为调用modulate函数来实现信号调制,因为modulate函数对
信号的要求是实信号,所以要把二进制变为十进因此要通过
transmit4=bi2de(transmit,'left-msb')来实现转变。再进行PM
调制,如果一个码元作为一个采样点就与载波频率不同,就不能实现
PM调制,所以要使得一个码元内的采样点必须与载波频率一样。由
下程序可以得到: T=fs/(ft/k);
signal=zeros(1,length(transmit4)*T);
for i=1:length(transmit4)
signal((i-1)*T+1:i*T)=ones(1,T)*transmit4(i);
end
最后通过modsignal=modulate(signal,fc,fs,'pm',pi/2)完
成对4PSK信号的调制。
(2)信道模块
在通信系统中,信源通过发送设备,就会进入信道传送,信号在
信道中传送容易受到噪声的干扰,信号在受噪声干扰后影响信号的接
——————————————————————————————————————
------------------------------------------------------------------------------------------------
收,就会存在误码率。因此在信道中对调制信号加高斯白噪声。
因为信噪比的单位是dB,通过snr_lin =10^(snr/10)来完成dB转换。计算已调信号功率signal_power=sum(signal.^2)/length(signal)。再计算噪声的
方差:
noise_power=signal_power/snr_lin;
noise_std=sqrt(noise_power)。
再将生成噪声noise=noise_std*randn(1,length(signal));
最后将调制信号加入高斯白噪声signal_rev=signal+noise。
3.2测试的结果及分析
运行基带信号产生与调制模块,就会产生如下图,在3.1图中,上面的是通过randint函数产生的随机基带信号,只是通过bi2de函数,把它换成了四进制。下面的是调制信号图,
总体图如下:
2.1调制图形
由基带信号产生与调制模块输出的图2.1可知,只截取了基带信号的三个码元,对应的比特分别是:2—11,0—00,2—10,根据4PSK调制原理原理,可以分析得出在它们比特数发生改变的时候,相位就会发生变化,由3.1的调制波形图可以看到,在载波对应的200、400、600采样点的位置载波的相位发生了改变,载波信号的相位不再连续。
基带信号产生与调制模块后面的是信道模块,在信道模块中,主要是加入噪声对信号产生干扰,让调制信号叠加噪声。下图就是运行信道模块后的图:
——————————————————————————————————————
------------------------------------------------------------------------------------------------
2.2加入高斯白噪声的前后图
在信道传输中加入高斯白噪声,就在调制信号上加入噪声干扰,观察2.2加入高斯白噪声的前后图,当调制信号加入噪声信号后,与没加噪声信号的调制信号相比,有了很大的不同,单从2.2图上就可以看到。如果不经过相关解调与检测,很难得到原始信号。
信道模块后面的是相关解调器模块,主要对调制信号进行解调,信号通过相关解调器,主要是计算接收信号在基函数上的投影,下图为相关解调器模块运行的结果:
2.3相关解调器中的相关图
从图2.3相关解调器中的相关图分析相关解调器中的结果,看看怎样实现最佳的功能。当基函数f1=cos(2*pi*fc*t)与接收信号相乘,由图2.3中的第二个波形图可知,从波形图上可以看到采样点的幅度值,基本上都在0幅度以下,如果求平均值,仍为负值。当基函数f2=cos(2*pi*fc*t+pi/2)与接收信号相乘,由图2.3中的第四个波形图可知,从波形图上可以看到采样点的幅度值,基本上都在0幅度以上,如果求平均值,仍为正值。 如果在没有噪声干扰的情况下,得到的图如下所示:
图2.4未加噪声的相关解调器的输出
将2.3与2.4图对比,没加噪声之前,接收信号与基函数相乘之后,波长与幅度都是均匀
的,然而加入噪声之后,接收信号与基函数相乘之后幅度就会层次不齐,但是通过与基函数相乘起到一个归一化地作用,起到抗噪声——————————————————————————————————————
------------------------------------------------------------------------------------------------
的效果。
相关解调器模块进入检测模块,在检测模块中主要判决输出,要想达到最佳接收,在检测器端也非常重要,下图为检测器中的相关图片如下:
图2.5相位角与判决输出图
由2.5图可知,当相位角为0时,判决输出为00—0,相位角为2时,判决输出为01—1,相位角为-2时,判决输出为11—3,。通过分析检测输出完全符合如果???angler???和3
4
313??angler??输出信号判为2,如果??angler??444
311???angler???输出信号判为3,如果???angler?444输出信号判为1,如果1?输出信号判为0。 4
下图为原始的发送信号与接收信号图,可以明显的看到噪声对信号传送的影响,结果如下所示:
2.6发送信号与接收信号对比图
从2.6发送信号与接收信号对比图,接收信号是受噪声的干扰,对比两图,明显有误差,此时的SNR=-20,显然信噪比对误码率有影响。
下图为信噪比对误码率的影响,如下所示:
2.7信噪比对误码率的影响图
由2.7图可以看到信噪比对误码率的影响,当信噪比越大时,误码率越小,当信噪比越小时,误码率越大,当信噪比大到一定程度,误码率为0.
——————————————————————————————————————
------------------------------------------------------------------------------------------------
附录
% 程序功能:调用各个子模块
function main()
M=4; %表示四进制
k=log2(M); %每符号含比特数
ft=1e2; %原始二进制数据的码率
fs=1e4; %采样率
fc=1e3; %栽频
transmit_bit_length=1e2; %需要处理的比特数
for snr=-12:0
[modsignal,transmit]=psk(fs,ft,fc,transmit_bit_length,M);%基带信
号模块 signal_rev=channelAWGN(modsignal,snr); %
信道模块
demodulat=modulator_cor(signal_rev,fs,fc,ft,M); %相关解
调模块 data=detector(demodulat); %
检测模块
data1(:,1)=data(:,2);
data1(:,2)=data(:,1); %两列数
据互换
send=bi2de(transmit,'left-msb'); %
把发送信号做二变十进制变换
——————————————————————————————————————
------------------------------------------------------------------------------------------------
rec=bi2de(data1,'left-msb'); %把接收信号做二变十进制变换
erro(snr+13)=sum(mod(send+rec,2))/length(send); %求误
码率
end
plot([-12:0],erro);
2基带信号产生与调制模块的源程序清单
% 程序功能:产生基带信号与信号的调制
function [modsignal,transmit]=psk(fs,ft,fc,transmit_bit_length,M)
k=log2(M); %每符号含比
特数
transmit=zeros(transmit_bit_length/k,k); %生成随进
二进制数据产生的矩阵 for i=1:k
transmit(:,i)=randint(transmit_bit_length/k,1); %随机二进制
数据产生 end
transmit4=bi2de(transmit,'left-msb'); %将二进制数据产生
T=fs/(ft/k); %每个符号的采
样点数 signal=zeros(1,length(transmit4)*T);
for i=1:length(transmit4)
——————————————————————————————————————
------------------------------------------------------------------------------------------------
signal((i-1)*T+1:i*T)=ones(1,T)*transmit4(i); %一个码长内被分成200个采样点,为了使与调制的载波频率一样
end
modsignal=modulate(signal,fc,fs,'pm',pi/2); %
调制
subplot(211);
plot(signal(1:650));
axis([1 650 -1 4]);
subplot(212);
plot(modsignal(1:650));
axis([1 650 -1 1]);
3 信道模块的源程序清单
% 程序功能:加入高斯白噪声
function signal_rev=channelAWGN(signal,snr)
snr_lin =10^(snr/10); %dB转换
%计算信号功率和噪声功率
signal_power=sum(signal.^2)/length(signal); %计算已调信号功率 noise_power=signal_power/snr_lin;
noise_std=sqrt(noise_power); %计算噪声的标准方差
noise=noise_std*randn(1,length(signal)); %生成噪声 ——————————————————————————————————————
------------------------------------------------------------------------------------------------
signal_rev=signal+noise; %加噪声
figure;
subplot(311);
stem(signal(1:100));
subplot(312);
stem(signal_rev(1:100));
subplot(313);
stem(noise(1:100));
4 相关解调器模块源程序清单
% 程序功能:实现相关解调
function demodulat=modulator_cor(signal,fs,fc,ft,M)
k=log2(M); %每个符号含比特数 t=[0:1/fs:(length(signal)-1)/fs];
f1=cos(2*pi*fc*t); %基函数
f2=cos(2*pi*fc*t+pi/2);
r1=signal.*f1;
r2=signal.*f2;
T=fs/(ft/k); %每个符号的采样点数 figure;
subplot(511);
plot(f1(1:200));
subplot(512);
——————————————————————————————————————
------------------------------------------------------------------------------------------------
plot(r1(1:200));
subplot(513);
plot(f2(1:200));
subplot(514);
plot(r2(1:200));
subplot(515);
plot(signal(1:200));
%频率的乘积等价于时域的卷积
for i=1:length(signal)/T
out1(i)=sum(r1((i-1)*T+1:i*T)); %基函数与f1的相关解调信号输出 out2(i)=sum(r2((i-1)*T+1:i*T)); %
基函数与f2的相关解调信号输出 end
dem=[out1/max(abs(out1));out2/max(abs(out2))];%将输出信号做归一化处理
5 检测器模块源程序清单
function data=detector(demodulat) % 程序功能:实现判决输出
angler=angle(j.*dem(2,:)+dem(1,:)); %求相位角
??和 %如果???angl?e3??angler??输出信号判为2,如果4
1331??angler??输出信号判为1,如果???angler???输出信号判为3,如果4444
11???angler??输出信号判为0。 4434
——————————————————————————————————————
------------------------------------------------------------------------------------------------ data4=(((-pi<=angler)&(angler<-3*pi/4))|((3*pi/4<=angler)&(angler<=pi)))*2+((-3*pi/4<=angler)&(angler<-pi/4))*3+((pi/4<=angler)&(angler<=3*pi/4)); %判决
data=de2bi(data4,2); %十进制变为二进制 figure;
subplot(411);
stem(demodulat(1,:));
subplot(412);
stem(demodulat(2,:));
subplot(413);
stem(angler);
subplot(414);
stem(data);
——————————————————————————————————————