📄 addnoise.m
字号:
function[x]=addnoise(traniseq,SNR,leng,rate,energy_index)
%本函数给时域序列按照给定的信噪比给序列加上噪声,并在前面加上白噪声序列;
%traniseq:数据序列
%SNR:信噪比
%leng:白噪声序列长度
if( energy_index==1)
switch (rate)
case 6
kmod=1; %%Modulation-dependent normalization factor Kmod
case 9
kmod=1;
case 12
kmod=1/sqrt(2);
case 18
kmod=1/sqrt(2);
case 24
kmod=1/sqrt(10);
case 36
kmod=1/sqrt(10);
case 48
kmod=1/sqrt(42);
case 54
kmod=1/sqrt(42);
end
else
kmod=1;
end
traniseq_length=length(traniseq);% 序列长度
Rgaosi=randn(1,traniseq_length);
Igaosi=randn(1,traniseq_length);
Gaosinoi=Rgaosi+i*Igaosi; %定义复高思噪声向量
Gaosinoi=(sqrt(10^(-SNR/10)*kmod)*(sqrt(2)/2)*Gaosinoi); %给噪声加上相应的信噪比,注意:此处把功率归一化因子kmod补偿进去了
Ntraniseq=sqrt(64)*traniseq+Gaosinoi; %加噪声后的接收信号
if (leng~=0)
WRgaosi=randn(1,leng);
WIgaosi=randn(1,leng);
WGaosinoi=WRgaosi+i*WIgaosi; %定义白高斯噪声
WGaosinoi=(sqrt(10^(-SNR/10)*kmod)*(sqrt(2)/2)*WGaosinoi);%给噪声加上相应的信噪比,注意:此处把功率归一化因子kmod补偿进去了
x=[WGaosinoi Ntraniseq];%合并后产生输出
else
x=Ntraniseq;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -