comm.AWGNChannel
在输入信号中加入高斯白噪声
描述
awgnchannel为输入信号添加高斯白噪声。
适用时,如果对象的输入具有可变数量的通道,则EbNo,EsNo,信噪比,BitsPerSymbol,SignalPower,SamplesPerSymbol,方差属性必须是标量。
向输入信号中添加高斯白噪声:
创建
comm.AWGNChannel
对象并设置其属性。使用参数调用对象,就像调用函数一样。
有关系统对象如何工作的详细信息,请参见什么是系统对象?
创建
属性
除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放
功能解锁它们。
如果属性为可调,您可以随时更改其值。
有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计.
NoiseMethod
- - - - - -噪声级法
信噪比(Eb/No)
(默认)|信噪比(Es/No)
|信噪比(SNR)
|“方差”
噪声级方法,指定为信噪比(Eb/No)
,信噪比(Es/No)
,信噪比(SNR)
,或“方差”
.有关更多信息,请参见Eb/No、Es/No与信噪比模式的关系而且直接或间接指定方差.
数据类型:字符
EbNo
- - - - - -每比特能量与噪声功率谱密度之比
10
(默认)|标量|行向量
每比特能量与噪声功率谱密度的比值(Eb/No),单位为分贝,用标量或1 × -表示NC向量。NC是通道数。
可调:是的
依赖关系
此属性适用于NoiseMethod设置为信噪比(Eb/No)
.
数据类型:双
EsNo
- - - - - -每个符号能量与噪声功率谱密度之比
10
(默认)|标量|行向量
每个符号的能量与噪声功率谱密度的比值(Es/No),单位为分贝,用标量或1 × -表示NC向量。NC是通道数。
可调:是的
依赖关系
此属性适用于NoiseMethod设置为信噪比(Es/No)
.
数据类型:双
信噪比
- - - - - -信号功率与噪声功率之比
10
(默认)|标量|行向量
BitsPerSymbol
- - - - - -每个符号的比特数
1
(默认)|正整数
SignalPower
- - - - - -输入信号功率
1
(默认)|积极的标量|行向量
输入信号功率,以瓦为单位,指定为正标量或1 × -NC向量。NC是通道数。该物体的标称阻抗为1 Ω。
可调:是的
依赖关系
此属性适用于NoiseMethod设置为信噪比(Eb/No)
,信噪比(Es/No)
,或信噪比(SNR)
.
数据类型:双
SamplesPerSymbol
- - - - - -每个符号的样本数
1
(默认)|正整数|行向量
VarianceSource
- - - - - -噪声方差来源
“属性”
(默认)|输入端口的
噪声方差的来源,指定为“属性”
或输入端口的
.
集
VarianceSource
来“属性”
方法指定噪声方差值方差财产。集
VarianceSource
来输入端口的
当将对象作为函数调用时,使用对象的输入指定噪声方差值。
有关更多信息,请参见直接或间接指定方差.
依赖关系
此属性适用于NoiseMethod是“方差”
.
数据类型:字符
方差
- - - - - -白高斯噪声方差
1
(默认)|积极的标量|行向量
RandomStream
- - - - - -随机数流的源
“全球流”
(默认)|“mt19937ar with seed”
随机数流的来源,指定为“全球流”
或“mt19937ar with seed”
.
当你设置
RandomStream
来“全球流”
,该对象使用MATLAB®默认随机流生成随机数。要使用此对象生成可重复的数字,可以重置MATLAB默认随机流。例如重置(RandStream.getGlobalStream)
.有关更多信息,请参见RandStream
.当你设置
RandomStream
来“mt19937ar with seed”
,对象采用mt19937ar算法生成正态分布随机数。在这个场景中,当您调用重置
函数时,对象将随机数流重新初始化为种子
财产。您可以通过重置对象来生成可重复的数字。
对于一个复杂的输入信号,对象会创建如下的随机数据:
N 年代是样品的数量和N C是通道数。依赖关系
此属性适用于NoiseMethod设置为“方差”
.
数据类型:字符
种子
- - - - - -最初的种子
67
(默认)|非负整数
mt19937ar随机数流的初始种子,指定为非负整数。的每次调用重置
函数时,对象重新初始化mt19937ar随机数流到种子
价值。
依赖关系
此属性适用于RandomStream设置为“mt19937ar with seed”
.
数据类型:双
使用
描述
为高斯白噪声的方差。属性时应用此语法NoiseMethod来outsignal
= awgnchan (insignal
,var
)“方差”
而且VarianceSource来输入端口的
.
例如:
awgnchan = com . awgnchannel ('NoiseMethod','方差',…“VarianceSource”、“输入端口的);Var = 12;...Outsignal = awgnchan(insignal,var);
输入参数
insignal
- - - - - -输入信号
标量|向量|矩阵
输入信号,指定为标量N年代-element vector或anN年代——- - - - - -NC矩阵。N年代是样品的数量和NC是通道数。
数据类型:双
复数支持:金宝app是的
var
- - - - - -加性高斯白噪声的方差
积极的标量|行向量
加性高斯白噪声的方差,用正标量或1 × -表示NC向量。NC是通道数,由输入信号矩阵中的列数决定。
对象的功能
要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj
,使用这种语法:
发行版(obj)
例子
创建缺省AWGN信道系统对象
使用默认配置创建一个AWGN通道系统对象。通过该通道传递信号数据。
创建一个AWGN通道对象和信号数据。
awgnchan = com . awgnchannel;Insignal = randi([0 1],100,1);
通过通道发送输入信号。
Outsignal = awgnchan(insignal);
为8-PSK信号添加高斯白噪声
调制一个8-PSK信号,添加高斯白噪声,并绘制信号以可视化噪声的效果。
创建M-PSK调制器系统对象™。对象的默认调制顺序是8。
pskModulator = com . pskModulator;
调制信号。
modData = pskModulator(randi([0 7],2000,1));
通过使信号通过加性高斯白噪声(AWGN)通道,将高斯白噪声添加到调制信号中。
通道= com . awgnchannel (“EbNo”, 20岁,“BitsPerSymbol”3);
通过AWGN信道发送信号。
channelOutput = channel(modData);
通过使用散点图绘制无噪声和有噪声的数据,以可视化噪声的影响。
散点图(modData)
散点图(channelOutput)
改变EbNo
属性为10分贝,以增加噪音。
通道。EbNo=10;
将调制后的数据通过AWGN通道传递。
channelOutput = channel(modData);
绘制通道输出。你可以看到噪音增加的影响。
散点图(channelOutput)
当通道数改变时处理信号
通过AWGN通道系统对象™传递单通道和多通道信号。
创建一个AWGN通道系统对象,为单个通道输入设置Eb/No比值。在这种情况下,EbNo
属性是标量。
通道= com . awgnchannel (“EbNo”15);
生成随机数据,应用QPSK调制。
数据= randi([0 3],1000,1);modData = pskmod(data,4,pi/4);
将调制后的数据通过AWGN通道传递。
rxSig = channel(modData);
画出吵闹的星座。
散点图(rxSig)
生成双通道输入数据,应用QPSK调制。
数据= randi([0 3],2000,2);modData = pskmod(data,4,pi/4);
将调制后的数据通过AWGN通道传递。
rxSig = channel(modData);
画出吵闹的星座。中的单个列表示每个通道rxSig
.图几乎相同,因为相同的Eb/No值应用于两个通道。
散点图(rxSig(: 1)标题(“第一频道”)
散点图(rxSig(: 2)标题(“第二频道”)
修改AWGN通道对象,为每个通道应用不同的Eb/No值。要应用不同的值,请设置EbNo
属性转换为1 × 2向量。的维数更改时EbNo
属性,则必须释放AWGN通道对象。
释放通道(通道)。EbNo = [10 20];
通过AWGN通道传递数据。
rxSig = channel(modData);
画出吵闹的星座。第一个信道由于其较低的Eb/No值而具有更大的噪声。
散点图(rxSig(: 1)标题(“第一频道”)
散点图(rxSig(: 2)标题(“第二频道”)
使用噪声方差输入端口添加AWGN
将噪声方差输入应用为标量或行向量,长度等于当前信号输入的通道数。
属性创建一个AWGN通道系统对象™NoiseMethod
属性设置为'方差的
和VarianceSource
属性设置为'输入端口的
.
通道= com . awgnchannel (“NoiseMethod”,“方差”,...“VarianceSource”,输入端口的);
为两个通道生成随机数据并应用16-QAM调制。
Data = randi([0 15],10000,2);txSig = qammod(data,16);
将调制后的数据通过AWGN通道传递。AWGN通道对象处理来自两个通道的数据。方差输入是1 × 2向量。
rxSig = channel(txSig,[0.01 0.1]);
为两个通道绘制星座图。第二个信号更嘈杂,因为它的方差大了十倍。
散点图(rxSig (: 1))
散点图(rxSig (: 2)
重复此过程,其中噪声方差输入为标量。相同的方差应用于两个通道。星座图几乎一模一样。
rxSig = channel(txSig,0.2);散点图(rxSig (: 1))
散点图(rxSig (: 2)
设置随机数种子的可重复性
当使用指定种子的随机流时,指定种子以产生相同的输出。
创建一个AWGN通道系统对象™。设置NoiseMethod
财产“方差”
,RandomStream
财产“mt19937ar with seed”
,以及种子
财产99
.
通道= com . awgnchannel (...“NoiseMethod”,“方差”,...“RandomStream”,“mt19937ar with seed”,...“种子”, 99);
通过AWGN通道传递数据。
Y1 =通道(零(8,1));
通过信道传递另一个全零向量。
Y2 =通道(零(8,1));
因为种子在函数调用之间会发生变化,所以输出是不同的。
isequal (y1, y2)
ans =逻辑0
方法重置AWGN通道对象重置
函数。将随机数据流重置为的初始种子99
.
重置(渠道);
通过AWGN通道传递全零向量。
Y3 =通道(零(8,1));
确认两个信号是相同的。
isequal (y1, y3)
ans =逻辑1
算法
Eb/No、Es/No与信噪比模式的关系
对于未编码的复杂输入信号,comm.AWGNChannel
有关Eb/N0,E年代/N0,信噪比由下式得到:
E年代/N0=Nsps×信噪比
E年代/N0=Eb/N0+ 10的日志10(k)以dB格式
在哪里
E年代表示信号能量,单位为焦耳。
Eb表示比特能量,单位为焦耳。
N0为噪声功率谱密度,单位为瓦/赫兹。
Nsps表示每个符号的样本数,
SamplesPerSymbol
.k表示每个输入符号的信息比特数,
BitsPerSymbol
.
对于实信号输入,comm.AWGNChannel
有关E年代/N0,信噪比由下式表示:
E年代/N0= 0.5 (Nsps)×信噪比
请注意
所有功率值都假定阻抗为1欧姆。
真实情况下的方程与复数情况下的相应方程相差2倍。具体来说,该物体使用的噪声功率谱密度为N0/2瓦/赫兹为实际输入信号,相对于N0瓦/赫兹为复杂信号。
有关更多信息,请参见信道噪声级.
直接或间接指定方差
直接指定由所产生的噪声的方差comm.AWGNChannel
,指定VarianceSource
为:
“财产”
,然后设置NoiseMethod
来“方差”
并指定方差方差
财产。“输入端口”
,然后用input参数将对象的方差级别指定为输入,var
.
间接地指定方差,即用comm.AWGNChannel
,指定VarianceSource
作为“财产”
和NoiseMethod
为:
信噪比(Eb/No)
,其中对象使用这些属性来计算方差:EbNo
,比特能量与噪声功率谱密度之比BitsPerSymbol
SignalPower
,输入信号样本的实际功率SamplesPerSymbol
信噪比(Es/No)
,其中对象使用这些属性来计算方差:EsNo
,信号能量与噪声功率谱密度之比SignalPower
,输入信号样本的实际功率SamplesPerSymbol
信噪比(SNR)
,其中对象使用这些属性来计算方差:信噪比
,信号功率与噪声功率之比SignalPower
,输入信号样本的实际功率
更改每个符号的样本数目(SamplesPerSymbol
)会影响每个样本添加的噪声的方差,这也会导致最终错误率的变化。
NoiseVariance=SignalPower
×SamplesPerSymbol
/ 10(EsNo
/ 10)
提示
根据构成符号的内容和应用于该符号的过采样,选择每个符号的样本数量。例如,一个符号可以有3位,而过采样有4位。有关更多信息,请参见信道噪声级.
参考文献
[1]约翰·G·普罗基斯数字通信.第四版,麦格劳-希尔,2001年。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
看到系统对象在MATLAB代码生成(MATLAB编码器).
版本历史
在R2012a中引入
另请参阅
块
对象
功能
主题
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。