加载中…
个人资料
呼呼
呼呼
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,389
  • 关注人气:19
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab编程实例(3) 函数向左或向右平移N点 左移右移

(2010-03-19 21:23:42)
标签:

杂谈

%函数移动
close all;
clear all;
dir=input('请输入平移方向,“1”为向左,“2”为向右');
if dir~=1&&dir~=2;%输入控制
   error('您的输入有误!');
end;
step=input('请输入平移步数');
Samp=200;  %设置信号的采样精度
A=10;%信号幅值
na=1;%噪声放大系数
w=1;
p=0;
t = linspace(0,6*pi/w,Samp); %创建函数向量
f=A*sin(w*t+p)+na*randn(1,Samp);%构造一个标准函数
%函数平移
y=rotate(f,dir,step);
plot(t,f,'b');
hold on;
plot(t,y,'r');


///////rotate.m/////////
function y=rotate(f,dir,step);
%函数平移 f为目标函数 dir为平移方向 向左为1 向右为2 step为平移步数
len=length(f);%取得f长度
%当向左平移时
if dir == 1 ;
 for n=0:1:step;
  temp=f(len);%将最后一个元素取出保护
   for  m=1:1:len-1%所有点向后移动一位
   f(len-m+1)=f(len-m); 
   f(1)=temp;%将最后一点放入第一点
 end
end
end
%当向右平移时
if dir == 2 ;
 for n=0:1:step;
  temp=f(1);%将最后一个元素取出保护
   for  m=2:1:len%所有点向后移动一位
   f(m-1)=f(m); 
   f(len)=temp;%将最后一点放入第一点
 end
end
end
y=f;%代回

http://s9/middle/593d2b95t82274e9d3bb8&690函数向左或向右平移N点 左移右移" TITLE="Matlab编程实例(3) 函数向左或向右平移N点 左移右移" />


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有