资源描述:
《matlab信号处理——fft变换后的幅频相频曲线》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、用matlab编程:构造一个信号函数,用FFT变换后,做出其幅频及相位的曲线。1、流程图2、程序代码%用fft求幅频相频clc;%清空clearall;%清除所有变量closeall;%关闭所有窗口A=10;%振幅fw=50;%固有频率phi=pi/3;%相位step=1000;t=0:1/step:10*pi;%时间ty=A*sin(2*pi*fw*t+phi);%正弦函数yf=step*(0:256)/512;%频率subplot(3,1,1);%三行一列第一幅图plot(t,y);%绘制图
2、形xlabel('t/s','fontsize',13);%横坐标显示t/s,字号13ylabel('y','fontsize',13);%纵坐标显示y,字号13title('正弦函数曲线','fontsize',13);%显示标题Y=fft(y,512);%对y进行傅里叶变换subplot(3,1,2);%三行一列第二幅图plot(f,abs(Y(1:257)));%绘制图形xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13ylabel('幅值','fon
3、tsize',13);%纵坐标显示幅值,字号13title('幅频特性曲线','fontsize',13);%显示标题[value,index]=max(abs(Y));%将abs(Y)最大值点的横坐标、纵坐标分别赋给value和indextext(f(index),value,sprintf('maxpiont=(%f,%f)',f(index),value),'fontsize',13);%显示最大值点坐标subplot(3,1,3);%三行一列第三幅图plot(f,angle(Y(1:25
4、7))*180/pi);%绘制图形xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13ylabel('相位/°','fontsize',13);%纵坐标显示相位/°,字号13title('相位特性曲线','fontsize',13);%显示标题3、程序运行结果图1N=9时fft结果4、困惑及自我理解为什么最大值的横坐标为50.781250,而不是50,是不是因为f=step*(0:256)/512并不能将所有的f列出,所以修改程序如下:%用fft求幅频相频cl
5、c;%清空clearall;%清除所有变量closeall;%关闭所有窗口A=10;%振幅fw=50;%固有频率phi=pi/3;%相位step=1000;t=0:1/step:10*pi;%时间ty=A*sin(2*pi*fw*t+phi);%正弦函数yN=input('请输入2的指数N=');f=step*(0:2^(N-1))/2^N;%频率subplot(3,1,1);%三行一列第一幅图plot(t,y);%绘制图形xlabel('t/s','fontsize',13);%横坐标显示t/
6、s,字号13ylabel('y','fontsize',13);%纵坐标显示y,字号13title('正弦函数曲线','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,字号13ylabel('幅值','fontsize',13);%纵坐标显示幅值,字号13title('
7、幅频特性曲线','fontsize',13);%显示标题[value,index]=max(abs(Y));%将abs(Y)最大值点的横坐标、纵坐标分别赋给value和indextext(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('
8、f/Hz','fontsize',13);%横坐标显示f/Hz,字号13ylabel('相位/°','fontsize',13);%纵坐标显示相位/°,字号13title('相位特性曲线','fontsize',13);%显示标题当N=10时,结果如图2图2当N=12时,结果如图3图3当N=20时,结果如图4图4通过观察比较图1到图4,可以很明显的看到最大值点的横坐标越来越接近50,自然会想到当N趋于无穷时,那么横坐标的值就是50。由此给我们的启示是,在以后求fft时,尽量将N取大,尤其是噪声信