欢迎来到天天文库
浏览记录
ID:42593779
大小:54.58 KB
页数:8页
时间:2019-09-18
《我的matlab笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlab之fft画图问题例一、x=0:1000;>>y=sin(2*pi*x/500);>>plot(y)信号周期T=500,则f=1/500,理论上,角频率=2*pi*f=0.0126。还有一种理解:正弦信号,理解为就是角频率。那么,应计算为:2*pi/500,得0.0126.做fft并画图:c=fft(y);plot(abs(c))频率在3的位置,这是什么意思呢?例二、>>y1=sin(2*pi*x/1000);plot(y1)信号周期1000.则f=1/1000,则角频率=2*pi*1/1000=0.0063同上,按照常规理解,角频率应计算为:2*pi/1000=0.0063画图:>
2、>d=fft(y1);>>plot(abs(d))频率在2左右,什么意思呢?例三.y2=sin(2*pi*x/250);plot(y2)频率计算为:2*pi/250=0.0251画图:>>f=fft(y2);plot(abs(f))例四、y4=sin(2*pi*x/200);频谱:问题:为什么得到的频率值和理论上的不一样呢?解释:因为横坐标没有转换,这里只是根据总点数(四个例子都是1001点)来画图,而傅里叶变换横坐标应该是频率才对,故只需将横轴转化为频率即可。怎么转化呢?由快速傅里叶变换(FFT)的定义,是将频率范围变换到0-2*pi,故只需要将100个点和0到2*pi对应起来即可。可在四个
3、例子中将画图语句改为:plot(2*pi/length(x)*([0:1000]),abs(fft(yn)));即可换算成正确的横坐标。画例一的图:单一频率位置:全图为:横坐标范围即是0到2*pi。更为一般的情况是,将横轴转化为0到1,横坐标标识改为pi,即,只画一半频率的图,并且将频率归一化:plot(1/length(x)*([0:500]),abs(fft(yn(1:501))));图像:Matlab之解方程函数solve调用格式:symsxsolve(x2-1);solve(x2-2*x-1==0);即先要定义一个符合变量,然后将未知数用此符号变量表示。Matlab的log函数求自然对
4、数。若直接调用,不需要写底数,求出的是自然对数的值。如:>>log(10)ans=2.3026要注意的是:求10的自然对数不能写成log10,因为log10是求10为底的对数。Matlab会报错:>>log10Errorusinglog10Notenoughinputarguments.要求10为底的对数,可用格式log10(A)来实现。另外要注意的是,matlab只能直接求自然对数和10为底的对数。如下列语句:>>log4(16)报错如下:Undefinedfunction'log4'forinputargumentsoftype'double'.故在matlab中要求其他底数的对数,需要转
5、化为求自然对数或者10为底的对数。上式可化为:log(16)/log(4).注意要加括号!!!
此文档下载收益归作者所有