1. sigpower 就是信号的功率啰,这是自己定义的
2.通常x都会是random variable,所以出现0值也是合理,“signal power”通常是指“平均signal power”。再说,你给指令怎么给呢?如果是给awgn(0,1),那已经隐含了你的信号功率是0dBW啦。
3.你的意思是想看看不同的snr对信号产生的影响吗?用for loop是一个简单的方式,例如:
---------------------------------------------
noiseVar=-3.5:.5:3.5;
for iter=1:length(noiseVar)
z(iter)=awgn(y,noiseVar(iter));
end
---------------------------------------------
2008-09-15 09:39:45 补充
信号功率就是每次信号周期(例如一分钟),你要用多少能量来传y这个变数。
2008-09-15 16:20:43 补充
y是你要加上杂讯的信号,所以sigpower是y的power
snr=10log(sigpower in Watt/ noisepower in Watt)
假定我设sigpower为1 Watt,然后将variance为3.5dB (你这里的单位是啥?dB吗?)做一下单位转换,算出snr=10*log(1/(10^(3.5/10))) in dB
z为y加上杂讯后的信号,则
z=awgn(y,snr,sigpower) =>snr就是上面算得的值, sigpower=0 (因为1Watt=0dB)
2008-09-16 09:52:38 补充
以下写的程式你参考看看,设定传送信号y为10笔乱数产生的BPSK信号,传送功率1 Watt,要观察当杂讯的variance由-3.5dB增加至3.5dB时(每0.5dB观察一次),接收信号z的变化(z=y+n)
2008-09-16 09:52:51 补充
noiseVar=10.^([-3.5:.5:3.5]/10);
sigpower=1;
y=2*randint(10,1)-1;
z=zeros(10,length(noiseVar));
for iter=1:length(noiseVar)
snr=10*log(sigpower/ noiseVar(iter));
z(:,iter)=awgn(y,snr,10*log(sigpower));
end
2008-09-17 08:54:56 补充
如果你的问题只是“将信号y加上一个差异值-3.5至3.5之间变化的乱数”,那其实只要写成:
z=y+(rand(length(y),1)*7-3.5)
这样z就是结果了。
为什么一定要用awgn呢?是否因为你所需要的乱数必须具有特定的机率密度分布?另外,snr原本的定义就是功率的比值,如果所需要的是振幅比例,那你就另外写一个符合需要的函式。
这是我转过来的,,你看看对你有用吗?
wo xia我现在也在学习,一起学习啊,,,,:handshake
[ 本帖最后由 ChaChing 于 2010-1-28 16:30 编辑 ] |