中易网

用matlab如何产生随机噪声信号

答案:2  悬赏:40  
解决时间 2021-02-21 18:23
用matlab如何产生随机噪声信号
最佳答案
图像噪声的话用imnoise这个指令吧
全部回答
你给出来的matlab程序已经进行加噪了 n=10^(log10(0.5)-(i/10)); u=rand; z=(sqrt(n/2))*(sqrt(2*log(1/(1-u)))); u=rand; gsrv1=z*cos(2*pi*u); gsrv2=z*sin(2*pi*u); y(1)=s(1)+gsrv1; y(2)=s(2)+gsrv2 如果你要用awgn函数的话,可以用我下面的写法 snr = 4; msg = 1-2.*randsrc(1,10000,[0 1]); msg_i = msg(1:2:end); msg_q = msg(2:2:end); signal = msg_i + j*msg_q; signalawgn = awgn(signal,snr,'measured'); msg 要发送的信息,0映射为+1,1映射为-1 signal 就是qpsk信号 signalawgn 就是加噪后的信号 到时候分别去实部,虚部就可以 应你的补充,添加的程序说明 clc; clear; a=1/sqrt(2); %qpsk星座基准点 b=-1/sqrt(2); ser=zeros(1,11); for i=0:10 %统计eb/n0 = 0~10的qpsk性能 error=0; for j=1:10000 %测试10000比特 % 通过(0,1)均匀分布的随机数,结合瑞利分布产生服从高斯分布的随机数 n=10^(log10(0.5)-(i/10)); % n为噪声功率谱密度 u=rand; z=(sqrt(n/2))*(sqrt(2*log(1/(1-u)))); u=rand; gsrv1=z*cos(2*pi*u); gsrv2=z*sin(2*pi*u); %随机产生[0,1]两个整数,分别进行映射 s=fix(rand(1,2)*2); if s(1)==0 s(1)=a; elseif s(1)==1 s(1)=b; end if s(2)==0 s(2)=a; elseif s(2)==1 s(2)=b; end %两路分别加噪 y(1)=s(1)+gsrv1; y(2)=s(2)+gsrv2; %进行误码统计 if(((y(1)>0)&&(s(1)==b))||((y(1)<0)&&(s(1)==a))) error=error+1; elseif(((y(2)>0)&&(s(2)==b))||((y(2)<0)&&(s(2)==a))) error=error+1; end end %误码率统计单位转换 simu=error/10000; ser(i+1)=10*log10(simu); fprintf('ebn0:%d\n',i); fprintf('simu_ber:%f\n',simu); end %画出性能图 figure(2); plot(0:10,ser); grid; axis([-1 11 -60 -5]); title('qpsk'); xlabel('snr(db)'); ylabel('ser(db)'); 这里详细解释一下加噪部分 es/no = eb/no + 10*log(m); sigma^2 = no/2; 看你程序中的处理应该是坐标横轴为ebno,单位是db,因此需要进行转换 a=1/sqrt(2);b=-1/sqrt(2);意味着符号能量es = 1; n=10^(log10(0.5)-(i/10));算的是no sigma^2 = no/2; z=(sqrt(n/2))*(sqrt(2*log(1/(1-u))));中sqrt(n/2)算的就是sigma^2 如果两个随机变量gsrv1,gsrv2相互独立且服从相同方差的高斯分布,则它们的模z=sqrt(gsrv1^2+gsrv2^2)服从瑞利分布。 这段程序 u=rand; z=(sqrt(n/2))*(sqrt(2*log(1/(1-u)))); u=rand; gsrv1=z*cos(2*pi*u); gsrv2=z*sin(2*pi*u); 就是利用了这个性质结合rand函数产生了服从高斯分布的随机变量进行加噪。 f(x)=1-exp(-x^2/(2*sigma^2))是瑞利分布的累积概率分布,取值范围是(0,1),u=rand;产生的值为(0,1)范围内均匀分布随机数作为f(x)的值,然后通过反函数求的x的值,x= sqrt(2*sigma^2*ln(1/1-u))。z=(sqrt(n/2))*(sqrt(2*log(1/(1-u))));就是实现了这样一个表达式。这样就得到了服从瑞利分布的随机变量z,又z=sqrt(gsrv1^2+gsrv2^2),u=rand;gsrv1=z*cos(2*pi*u);gsrv2=z*sin(2*pi*u);这样就得到了服从高斯分布的随机变量
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎么阻止对方黄钻给我空间私密留言,很烦,最
注册生物科技公司,主要做体外诊断试剂研发的,
星河幼儿园这个地址在什么地方,我要处理点事
大家听完天空之城后有什么感觉?
紫光药业在什么地方啊,我要过去处理事情
清除数据还要密码怎么?
2014内蒙古412省考申论大作文“拿来”与@输出
Windows7中文版可不可以通过设置变为英文版?
厢式货车用什么铺底
牛八鲜我想知道这个在什么地方
燕雀焉知鸿鹄之志,这鸿鹄是什么动物
二万元的欠款没能力偿还能判几年
我中国电信的手机,不想用了,还900多话费,
穿越火线怎么在房间内改房间名字
古代的台言小说 男主以前很俊秀 但是因为被人
推荐资讯
南通市通州区食品药品监督管理局在哪里啊,我
长沙县梅花车身附件厂在哪里啊,我有事要去这
好友来宾馆这个地址在什么地方,我要处理点事
问下一些动漫光盘的「完全生产限定版」是什么
昌乐县宝城街道流泉社区居民委员会地址在什么
怀化奇瑞亚飞汽车在哪里?
三类影片怎样才能立即看
氧化铜吸水的原理
父母的房子,父去世了,母要把房子给我,我写
摩点烘焙在哪里啊,我有事要去这个地方
万仙山住哪里好
我现在做关于新疆文化的ppt,帮我想想一个标题
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?