Matlab信号处理FFT变换后的幅频相频曲线_精品文档.docx
- 文档编号:953940
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:6
- 大小:160.10KB
Matlab信号处理FFT变换后的幅频相频曲线_精品文档.docx
《Matlab信号处理FFT变换后的幅频相频曲线_精品文档.docx》由会员分享,可在线阅读,更多相关《Matlab信号处理FFT变换后的幅频相频曲线_精品文档.docx(6页珍藏版)》请在冰豆网上搜索。
用matlab编程:
构造一个信号函数,用FFT变换后,做出其幅频及相位的曲线。
1、流程图
2、程序代码
%用fft求幅频相频
clc;%清空
clearall;%清除所有变量
closeall;%关闭所有窗口
A=10;%振幅
fw=50;%固有频率
phi=pi/3;%相位
step=1000;
t=0:
1/step:
10*pi;%时间t
y=A*sin(2*pi*fw*t+phi);%正弦函数y
f=step*(0:
256)/512;%频率
subplot(3,1,1);%三行一列第一幅图
plot(t,y);%绘制图形
xlabel('t/s','fontsize',13);%横坐标显示t/s,字号13
ylabel('y','fontsize',13);%纵坐标显示y,字号13
title('正弦函数曲线','fontsize',13);%显示标题
Y=fft(y,512);%对y进行傅里叶变换
subplot(3,1,2);%三行一列第二幅图
plot(f,abs(Y(1:
257)));%绘制图形
xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13
ylabel('幅值','fontsize',13);%纵坐标显示幅值,字号13
title('幅频特性曲线','fontsize',13);%显示标题
[value,index]=max(abs(Y));%将abs(Y)最大值点的横坐标、纵坐标分别赋给
value和index
text(f(index),value,sprintf('maxpiont=(%f,%f)',f(index),value),'fonts
ize',13);%显示最大值点坐标
subplot(3,1,3);%三行一列第三幅图
plot(f,angle(Y(1:
257))*180/pi);%绘制图形
xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13
ylabel('相位/°','fontsize',13);%纵坐标显示相位/°,字号13
title('相位特性曲线','fontsize',13);%显示标题
3、程序运行结果
图1N=9时fft结果
4、困惑及自我理解
为什么最大值的横坐标为50.781250,而不是50,是不是因为f=step*(0:
256)/512并不能将所有的f列出,所以修改程序如下:
%用fft求幅频相频
clc;%清空
clearall;%清除所有变量
closeall;%关闭所有窗口
A=10;%振幅
fw=50;%固有频率
phi=pi/3;%相位
step=1000;
t=0:
1/step:
10*pi;%时间t
y=A*sin(2*pi*fw*t+phi);%正弦函数y
N=input('请输入2的指数N=');
f=step*(0:
2^(N-1))/2^N;%频率
subplot(3,1,1);%三行一列第一幅图
plot(t,y);%绘制图形
xlabel('t/s','fontsize',13);%横坐标显示t/s,字号13
ylabel('y','fontsize',13);%纵坐标显示y,字号13
title('正弦函数曲线','fontsize',13);%显示标题
Y=fft(y,2^N);%对y进行傅里叶变换
subplot(3,1,2);%三行一列第二幅图
plot(f,abs(Y(1:
2^(N-1)+1)));%绘制图形
xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13
ylabel('幅值','fontsize',13);%纵坐标显示幅值,字号13
title('幅频特性曲线','fontsize',13);%显示标题
[value,index]=max(abs(Y));%将abs(Y)最大值点的横坐标、纵坐标分别赋给value和index
text(f(index),value,sprintf('maxpiont=(%f,%f)',f(index),value),'fontsize',13);%显示最大值点坐标
subplot(3,1,3);%三行一列第三幅图
plot(f,angle(Y(1:
2^(N-1)+1))*180/pi);%绘制图形
xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13
ylabel('相位/°','fontsize',13);%纵坐标显示相位/°,字号13
title('相位特性曲线','fontsize',13);%显示标题
当N=10时,结果如图2
图2
当N=12时,结果如图3
图3
当N=20时,结果如图4
图4
通过观察比较图1到图4,可以很明显的看到最大值点的横坐标越来越接近50,自然会想到当N趋于无穷时,那么横坐标的值就是50。
由此给我们的启示是,在以后求fft时,尽量将N取大,尤其是噪声信号与有用信号的频率很接近时,这样能保证有更高的精度。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 信号 处理 FFT 变换 幅频相频 曲线 精品 文档