matlab采样问题t=0:0.01:2*pi;f0=5;fs=20; %采样频率y=cos(2*pi*f0*t); %被采样函数subplot(411);plot(t,y);axis([0 5 -1 1]); Ts=1/fs; %采样间隔N=200; %采样点数for i=0:N Xs(i)=y(i*Ts);endsubplot(412);stem(Xs,'.');在matlab中运行后,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/23 08:12:35
matlab采样问题t=0:0.01:2*pi;f0=5;fs=20; %采样频率y=cos(2*pi*f0*t); %被采样函数subplot(411);plot(t,y);axis([0 5 -1 1]); Ts=1/fs; %采样间隔N=200; %采样点数for i=0:N Xs(i)=y(i*Ts);endsubplot(412);stem(Xs,'.');在matlab中运行后,
matlab采样问题
t=0:0.01:2*pi;
f0=5;
fs=20; %采样频率
y=cos(2*pi*f0*t); %被采样函数
subplot(411);
plot(t,y);
axis([0 5 -1 1]);
Ts=1/fs; %采样间隔
N=200; %采样点数
for i=0:N
Xs(i)=y(i*Ts);
end
subplot(412);
stem(Xs,'.');
在matlab中运行后,提示 Xs(i)=y(i*Ts);这一行错误,也没有说是什么错误.我找了半天原因都没有找到,
matlab采样问题t=0:0.01:2*pi;f0=5;fs=20; %采样频率y=cos(2*pi*f0*t); %被采样函数subplot(411);plot(t,y);axis([0 5 -1 1]); Ts=1/fs; %采样间隔N=200; %采样点数for i=0:N Xs(i)=y(i*Ts);endsubplot(412);stem(Xs,'.');在matlab中运行后,
t=0:0.1:2*pi;%%采样频率1/0.1=10Hz,采样点数为length(t)
f0=0.5;
y=cos(2*pi*f0*t);
stem(y)
%%%%%%
上面的结果y本来就是采样后的结果,你还要对采样后的结果再采样,明显有问题.
>> t=0:0.1:1
t =0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1.0000
0-1之间的连续的值有无穷个,而t的取值你可以看到是采样的结果,以0.1为间隔进行采样,采样的点数为length(t)=11点
另外Xs(i)=y(i*Ts);中Ts=0.05,就算i从1开始,你的数组下标有许多都是小数,数组的下标必须是整数,1,2,3,4,5,6,.
%%%%%%%%%%%%%%%%%%%%%%%%%%
1 得到采样频率为20Hz,点数为200的信号在一个周期内采样频率为20Hz,只能得到126点,得不到200点.如果要得到200点的话,采样频率要更改.
t=0:2*pi/(200-1):2*pi,这样的话采样点数就为200点,采样频率为(200-1)/2*pi.
2 如果要求采样频率为20Hz,点数为200点,那就加长周期,采完后,去前200个点就行了.
t=0:1/20:4*pi,该t有252个点,你取前200个点即可.
t=t(1:200).