如何用matlab编写噪声调频干扰信

如何用matlab编写噪声调频干扰信,第1张

以高斯噪声为例:若有用信号s(n)的最大幅度am,要求得到的信噪比为p,则p=10log10[(am^2)/b^2],用这个公式反推出高斯噪声的方差b^2,若s(n)单通道实信号,则Matlab程序就是x=s+b*randn(size(s));若s(n)是正交双通道信号,则Matlab程序就是x=s+b/sqrt(2)*randn(size(s))。

如果s(n)是一个N行、2列的复信号,前后两列各表示实部和虚部,则行亩b/sqrt(2)*randn(size(s))产生的也是N×2的高斯分布噪声,实唤带滚部和虚部的方差均为b/sqrt(2)。实部和虚部分别产生也可以,但不能用b*randn(size(s))。第一,如果这样产生噪声,那么最终信号的信噪比应该用p=10log10[(am^2)/(2*b^2)];第二,不能用size(s),应该用size(c),c为s(n)的实(虚)部列矢量的长和余度。

Matlab中计算信噪比方式:

%===========================Happy===================================%

function snr=SNR(I,In)

% 计算信号噪声比函数

% by Qulei

% I :original signal

% In:noisy signal(ie. Original signal + noise signal)

% snr=10*log10(sigma2(I2)/sigma2(I2-I1))

[row,col,nchannel]=size(I)

snr=0

if nchannel==1%gray image

Ps=sum(sum((I-mean(mean(I))).^2))%signal power

Pn=sum(sum((I-In).^2))%noise power

snr=10*log10(Ps/Pn)

elseif nchannel==3%color image

for i=1:3

Ps=sum(sum((I(:,:,i)-mean(mean(I(:,:,i)))).^2))%signal power

Pn=sum(sum((I(:,:,i)-In(:,:,i)).^2))%noise power

snr=snr+10*log10(Ps/Pn)

end

snr=snr/3

end

%===================================================================%

转:

符号的平均功率 每比特信号能量/符号周期

SNR信噪比 = ------------------------- = ----------------------------------------- =

噪声的平均功率 噪声单边功率普密度*符号带宽

Eb/T 在限带情况下 T*B=1 Eb

= ---------- ================== ---------

N0*B N0

实际系统中噪声的单边功率普密度N0受温度和常数K决定的,在一定条件下为固定值;信噪比与信号能量的强弱成正比。在仿真中,为了简化模型,通常采用固定输入信号幅度,改变N0来起到SNR的变化。

其中的Eb是在相干接收条件下解调后信号能量,而系统接收的信噪比通常是加在接收输入端,也就是解调前。为了令Eb在解调前后的能量统一,在发送端必须采用能量的归一化。

归一化方法:

_ x(n)

x(n) =-------------------------- n属于(1,N) N为1bit内采样点数

sqrt(Sum(x(n)^2))

你的提问太笼统了,不知道这个噪声是不是高斯白噪声啊?

如果是的话建议你先自己查看randn这个函数:help randn

然悔袭蔽后根据把每禅袜个噪声值加到你自己的信号上去就行了。

这种程序太简单了碧州,但是你不给个信号的具体形式是没什么办法写的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12559276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存