shally628 发表于 2006-10-21 16:27

请指教matlab中的卷积问题

请问我这么写问题在哪里
我是刚刚开始用,请大家多多指教哈
谢谢
t=1:10;
t1=1:10;
a=sin(t);
b=sinc(t1);

c=CONVMTX(a,b);
stem(c);
xlim()

eight 发表于 2006-10-21 16:44

原帖由 shally628 于 2006-10-21 16:27 发表
请问我这么写问题在哪里
我是刚刚开始用,请大家多多指教哈
谢谢
t=1:10;
t1=1:10;
a=sin(t);
b=sinc(t1);

c=CONVMTX(a,b);
stem(c);
xlim()

用conv命令

shally628 发表于 2006-10-21 17:10

但是用conv函数就会报错

Attempt to execute SCRIPT conv as a function.

eight 发表于 2006-10-21 17:14

原帖由 shally628 于 2006-10-21 17:10 发表
但是用conv函数就会报错

Attempt to execute SCRIPT conv as a function.


把你自己命名的文件改名,conv是matlab自带的函数,你用which conv all命令看看就知道了

看来这个问题真的挺严重

shally628 发表于 2006-10-21 17:20

那我该怎么办呀?
你能不能给我一个正确使用卷积的例子
万分感谢呀

eight 发表于 2006-10-21 17:27

原帖由 shally628 于 2006-10-21 17:20 发表
那我该怎么办呀?
你能不能给我一个正确使用卷积的例子
万分感谢呀

1. 在matlab命令窗口输入:which conv all
    把除了下面路径以外的m文件全部删除:<your matlab path>\toolbox\matlab\datafun\conv.m,即只保留这个
2. 在m文件编辑窗口中输入以下代码:
function myConv
t=1:10;
a=sin(t);
b=sinc(t);

c=conv(a,b);
stem(c);
xlim()

3. 把函数保存为myConv.m
4. 运行

shally628 发表于 2006-10-21 17:41

ok
太感谢你了

我是新手
以后希望能够多向你请教哈

eight 发表于 2006-10-21 17:44

原帖由 shally628 于 2006-10-21 17:41 发表
ok
太感谢你了

我是新手
以后希望能够多向你请教哈


建议多浏览本论坛或者其他论坛的帖子,特别是 for beginner 的

shally628 发表于 2006-10-21 17:50

原帖由 eight 于 2006-10-21 17:27 发表


1. 在matlab命令窗口输入:which conv all
    把除了下面路径以外的m文件全部删除:<your matlab path>\toolbox\matlab\datafun\conv.m,即只保留这个
2. 在m文件编辑窗口中输入以下代码:
functio ...


我还想请问一下,我开头到底是问什么问题了


谢谢哈

eight 发表于 2006-10-21 18:58

原帖由 shally628 于 2006-10-21 17:50 发表



我还想请问一下,我开头到底是问什么问题了


谢谢哈


matlab不支持两个同名同输入参数的函数,事实上,没有一种语言支持

shally628 发表于 2006-10-21 23:01

原帖由 eight 于 2006-10-21 18:58 发表



matlab不支持两个同名同输入参数的函数,事实上,没有一种语言支持

不好意思,我没有懂你的意思


你能具体的给我说一下,开头我的程序哪里有问题好吗



谢谢

eight 发表于 2006-10-22 10:08

原帖由 shally628 于 2006-10-21 23:01 发表


不好意思,我没有懂你的意思


你能具体的给我说一下,开头我的程序哪里有问题好吗



谢谢

你按照我给你的第一步做了以后,是否发现除了那个路径以外还有其他同名函数?你把自定义的函数命名为matlab自带的函数,是不允许的,明白吗?

shally628 发表于 2006-10-22 10:18

原帖由 eight 于 2006-10-22 10:08 发表


你按照我给你的第一步做了以后,是否发现除了那个路径以外还有其他同名函数?你把自定义的函数命名为matlab自带的函数,是不允许的,明白吗?

我按照你给我说的第一步做了之后只有一个函数,然后我也没管他,我就在我的函数前面加了个function myconv1   然后把我函数存在了work目录下(开头没有)


而且我不晓得为什么我的卷积结果还是不对

eight 发表于 2006-10-22 10:25

原帖由 shally628 于 2006-10-22 10:18 发表


我按照你给我说的第一步做了之后只有一个函数,然后我也没管他,我就在我的函数前面加了个function myconv1   然后把我函数存在了work目录下(开头没有)


而且我不晓得为什么我的卷积结果还是不对

我刚才试了一下你原来的程序,没有出现你说的错误,运行正常,不过弹出的figure中没有任何东西,不知道你当时如何操作的。至于你说的卷积结果不对,是什么意思呢?conv函数就是求一维卷积的,二维用conv2

shally628 发表于 2006-10-22 10:52

原帖由 eight 于 2006-10-22 10:25 发表


我刚才试了一下你原来的程序,没有出现你说的错误,运行正常,不过弹出的figure中没有任何东西,不知道你当时如何操作的。至于你说的卷积结果不对,是什么意思呢?conv函数就是求一维卷积的,二维用conv2

其实我是用在这个里面的:

clc;
clear;
fs=40/pi;Ts=1/fs;A=0;B=10;
t1=-100*pi:0.01:1*100*pi;
y=sin(B*t1+A);
subplot(4,1,1);

plot(t1,y);axis([-4 4,-1 1]);
subplot(4,1,2);
t2=-100*pi:Ts:100*pi;
y2=sin(B*t2+A);
stem(t2,y2);
   axis([-4 4,-1 1]);
t3=-100*pi:Ts:100*pi;
h=sinc(B*t3);
subplot(4,1,3);
stem(t3,h);
axis([-4 4,-1 1]);
y3=CONV(y2,h);
subplot(4,1,4);
plot(y3);

本来是想用卷积恢复信号的,结果卷积出来结果就不对
页: [1]
查看完整版本: 请指教matlab中的卷积问题