基于MATLAB的FFT仿真

发布时间:2017-3-23 14:23:47 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"基于MATLAB的FFT仿真",主要涉及到基于MATLAB的FFT仿真方面的内容,对于基于MATLAB的FFT仿真感兴趣的同学可以参考一下。

% Date:  10/11/2009       整理: eyes417 %################################################################## % %   FILE :  FFT.m %   TITLE:  FFT计算仿真,得到频率和幅度值,相位图 % %################################################################## close all;                    %先关闭所有图片 Adc = 1.25;                   %直流分量幅度 A1 = 1;                       %频率F1信号的幅度 A2 = 0.25;                     %频率F2信号的幅度 F1 = 100;                    %信号1频率(Hz) F2 = 1000;                    %信号2频率(Hz) Fs = 5120;                   %采样频率(Hz) %P1 = -30;                    %信号1相位(度) %P2 = 90;                     %信号相位(度) N = 256;                      %采样点数 t = [0 : 1/Fs : N/Fs];        %采样时刻 %生成信号 %S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180); %考虑相位 signal1=A1*sin(2*pi*F1*t); signal2=A2*sin(2*pi*F2*t); S=A1*sin(2*pi*F1*t)+A2*sin(2*pi*F2*t);                       %无直流偏置 S=Adc+A1*sin(2*pi*F1*t)+A2*sin(2*pi*F2*t);                   %直流偏置 %S=Adc+[A1*sin(2*pi*F1*t)+A2*sin(2*pi*F2*t)]/2; %显示原始信号 plot(S); title('原始信号'); figure; Y = fft(S,N);            %做FFT变换 Ayy = (abs(Y));          %取模 plot(Ayy(1:N));          %显示原始的FFT模值结果 title('FFT 模值'); figure; Ayy = Ayy / (N / 2);                    %换算成实际的幅度 Ayy(1) = Ayy(1) / 2; F = ([1:N] - 1) * Fs / N;               %换算成实际的频率值 plot(F(1:N/2), Ayy(1:N/2));             %显示换算后的FFT模值结果 title('幅度-频率曲线图'); figure; Pyy = [1 : N/2]; for i = 1 : N/2 Pyy(i) = phase(Y(i));                %计算相位 Pyy(i) = Pyy(i) * 180 / pi;          %换算为角度 end; plot(F(1 : N/2), Pyy(1 : N/2));      %显示相位图 title('相位-频率曲线图'); 根据公式验证 --- 某点n所表示的频率为: Fn=(n-1)*Fs/N                                      f1=(6-1)*5120/256=100 (Hz) ---- 验证结果正确                                      f2=(51-1)*5120/256=1000(Hz)---- 验证结果正确 根据公式验证 --- 对于n=1点的信号,是直流分量,幅度即为A1/N   --- A1=320/256=1.25 --- 验证结果正确                  对于n点(n≠1,且n<=N/2)  幅度A --- A=An/(N/2)=128/(256/2)=1 --- 验证结果正确   相位的计算可用函数atan2(b,a)计算。atan2(b,a)是求坐标为(a,b)点的角度值,范围从-pi到pi。 atan2(500, 148)=x,结果是弧度,换算为角度就是180*(-x)/pi=相位值。   根据FFT结果以及上面的分析计算,--- 频率,幅度.相位....我们就可以写出信号的表达式了,它就是我们开始提供的信号。------ 信号重建

上一篇:jdk1.6环境变量配置
下一篇:grep命令在指定目录中的指定文件类型中查找关键字

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款