A. 如何用matlab实现对离散数据的快速傅里叶变换
1、双击matlab软件图标,打开matlab软件,可以看到matlab软件的界面。
7、最后查看绘制的原始数据点图和三次样条插值图示,注意标题、横坐标、纵坐标等。
B. 用MATLAB 如何实现傅里叶变换
首先产生矩形脉冲信号,可以使用rectpuls(t,w)函数产生一个幅值为1,以t=0为中心对称,半宽度为w/2的矩形脉冲
然后傅里叶变换是用fft()命令的。如果要得到频谱的话还要再处理一下,具体就不多说了,给个程序样例:
t=-20:20;
w=10;
y=rectpuls(t,w);%矩形脉冲信号
yy=fft(y);
n=size(y);
n=n(2);
fy=abs(fft(y))/n*2;%频谱
subplot(2,1,1)
plot(y);
subplot(2,1,2)
plot(fy);
挺粗糙的,最后得到的两个图分别是方波脉冲和频谱图。。
顺带一提:
1)三角波是tripuls(t,w);
2)矩形波也可以通过ones()和zeros生成一个信号矩阵
3)具体的函数使用和参数规则请参阅help“command”
4)其实这些用simulink做,里面都有现成的模块。这样倒是很简洁,但也不容易看懂
C. 怎样用matlab实现门函数的傅里叶变换G(jw),。
如果你只对[-0.5,0.5]之间的信号进行采样,那么你采的将会是常数1,这样做出的FFT应该是一个delta函数,也就是一个冲击,所以你应该采包括外边的值才能够反映出信号的特性。
这样结果没有任何问题,问题是你采样的值太少了,换句话说就是你采样的信号反映不出这是个门函数的特性来。
matlab里边是可以利用单边函数表示门函数的。你可以跑一下下边的程序,看一下门函数:
fx=heaviside(x+0.5)-heaviside(x-0.5);
ezplot(fx,[-1,1]);
而且matlab里边还有对符号表达式做傅里叶变换的函数fourier(),用法如下:
FX=fourier(fx);
ezplot(FX,[-30,30]);
title('fourier transformation of fx')
而如果你非想用fft做,就必须加大采样点数,尤其是门之外的部分,才能够完整的描述信号。
D. 关于matlab的傅里叶变换的代码求解释
这段函数应该是一个做信号分析的GUI里的一个功能吧。
这段代码是要干版啥?对应的权按钮上有文字说明么。
感觉是观察一段离散信号经过DFT后的功率谱密度。
y=fft(x,xlength);
这个是快速傅里叶变换,也就是对信号x做DFT
Pyy =y.*conj(y)/xlength;
这个是信号x的功率谱,也就是频谱y的幅值平方除以信号长度
至于为什么只看一半我就不知道了