求matlab高手解答

定义函数functionerr_rate=PrimePe(snr_in_dB)E=1;snr=10^(snr_in_dB/10);sgma=sqrt((E/snr)/2)... 定义函数
function
err_rate=PrimePe(snr_in_dB)

E=1;

snr=10^(snr_in_dB/10);

sgma=sqrt((E/snr)/2);

%桢个数

N=10;

%信息序列

frame_length=260;

signal=randint(1,N*frame_length);

%不经过卷积编码

%经信道加高斯燥声

u=2*signal-1;

u=sign(u+sgma*randn(size(u))+eps);

u=(u+1)/2;

%误码率

err_rate=(length(find(signal~=u)))/length(signal);

主函数
snr_in_db=5;
err_rate=PrimePe(snr_in_dB);
plot(snr_in_db,err_rate);

运行后出现

??? Error using ==> mpower
Inputs must be a scalar and a square matrix.

Error in ==> PrimePe at 3
snr=10^(snr_in_dB/10);

求高手解答
定义函数都改为点乘和点除了
已改为u=sign(u+sgma.*randn(size(u))+eps);

主函数改为
snr_in_db=0:1:10;
err_rate=PrimePe(snr_in_dB);
plot(snr_in_db,err_rate);

运算结果
>> snr_in_dB=0:1:10;
err_rate=PrimePe(snr_in_dB);
plot(snr_in_db,err_rate);
??? Error using ==> times
Matrix dimensions must agree.
Error in ==> PrimePe at 13
u=sign(u+sgma.*randn(size(u))+eps);

求解释
展开
 我来答
mickey_991
2013-05-25 · TA获得超过1842个赞
知道小有建树答主
回答量:417
采纳率:100%
帮助的人:226万
展开全部
snr=10^(snr_in_dB/10);

这一句有问题,如果snr_in_dB/10=A = (Aij)是一个矩阵,我猜你想做下面两件事之一(感觉你是想做第一件)

1)返回一个矩阵B=(Bij),其中Bij = 10^Aij,这时你必须用运算符 .^
其中.表示按元素运算,即写成snr = 10 .^ (snr_in_dB/10)
2)如果A是一个方阵,那么10^A是有定义的,在数学上,
10^A = e^{ln10 * A},而e^{B} 定义为e^B = 1+B+B^2/2!+...+B^n/n!+...
所以如果你没用.^这个运算,matlab就理解成为上面这种情况,但是要求A是一个方阵,因而报错。
更多追问追答
追问
那么下面的相关的乘除都要改成点乘和点除?  但是u=sign(u+sgma*randn(size(u))+eps);始终报错,求解
追答
如果是按元素运算,是的。

从你的代码看,sgma也是一个矩阵,所以也要用点乘。
不过你最好把错误信息贴出来
东莞大凡
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进... 点击进入详情页
本回答由东莞大凡提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式