求高手指导 怎么用matlab求m序列的自相关函数 怎么用VHDL代码在quartus里面仿真 求具体操作步骤 感激不尽!

如题所述

第1个回答  2012-05-08
function [p m] = correlation_f(x, y)
if nargin == 0
t = 0.01:0.01:2*pi;
x = sin(t);
y = sin(t+pi/2);
end
if nargin == 1
y = x;
end

nlength = length(x);
m = fix(nlength/4);

% initialized data
p(2*m+1) = 0;

for i = -m:m;
if i <= 0
n_x = -i+1:nlength;
n_y = 1:nlength+i;
else
n_x = 1:nlength-i;
n_y = i+1:nlength;
end
pdenominator = sqrt(sum(x(n_x).^2)*sum(y(n_y).^2));
p(i+m+1) = sum(x(n_x).*y(n_y))/pdenominator;
end

% plot(-m:m,p)
恰好有自相关函数的求取代码,另一个问题就不知道了。追问

非常感谢!我在matlab里面输入你给我的程序出来的下面这个问题是什么意思啊?继续求教
??? function [p m] = correlation_f(x, y)
|
Error: Function definitions are not permitted in this context.

追答

你用的MATlab 那个版本的

追问

matlab 7 (2011版本的)

追答

这个是函数程序,不能直接在命令窗口直接运行,必须新建一个.m文件运行。

追问

嗯!谢谢!新建文件复制你给我的程序 点击run 会出现下面这些 算做对了吗?
ans =

Columns 1 through 18

1.0000 0.9999 0.9998 0.9995 0.9992 0.9988 0.9982 0.9976 0.9969 0.9960 0.9951 0.9941 0.9930 0.9918 0.9905 0.9891 0.9876 0.9860

Columns 19 through 36

追答

恩,这是程序文件,算的是默认X,Y值得相关函数。另外你最好把保存的文件名字和程序名字一样,这样才可以方便调用,这个程序最好保存为correlation_f.m。
比如调用方法 x = -100:100; y = x.^2;[p m] = correlation_f(x, y);
plot(m,p)%这句是画图

追问

额 求高手QQ 好多问题不懂

追答

另外这是归一化的自相关函数,即自相关系数,如果相求自相关函数设置pdenominator = 1;即可。QQ284296527 我等会有事,晚上才有时间。看你问的问题应该是新手,你应该先好好看看matlab基础知识,有问题晚上再问。

本回答被提问者采纳
相似回答