Matlab中的FFT使用说明

上传人:ni****g 文档编号:501300330 上传时间:2023-10-29 格式:DOCX 页数:4 大小:100.53KB
返回 下载 相关 举报
Matlab中的FFT使用说明_第1页
第1页 / 共4页
Matlab中的FFT使用说明_第2页
第2页 / 共4页
Matlab中的FFT使用说明_第3页
第3页 / 共4页
Matlab中的FFT使用说明_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Matlab中的FFT使用说明》由会员分享,可在线阅读,更多相关《Matlab中的FFT使用说明(4页珍藏版)》请在金锄头文库上搜索。

1、Fs = 2000;T = 1/Fs;L = 1000;% 设置信号点数,长度 1 秒t = (0:L-1)*T;% 两个正弦波叠加% 计算离散时间,FFT是Fast Fourier Transform(快快速傅里叶变换)的简称,FFT算法在MATLAB中 实现的函数是Y=fft(x,n)。刚接触频谱分析用到FFT时,几乎都会对MATLAB 的fft函数产生一些疑惑,下面以看一个例子(根据MATLAB帮助修改)。% 设置采样频率% 得到采用时间f1 = 80;A1 = 0.5;% 第一个正弦波 100Hz ,幅度 0.5f2 = 150;A2 = 1.0 ;% 第 2 个正弦波 150Hz ,

2、幅度 1.0A3 = 0.5;% 白噪声幅度;x = A1*sin(2*pi*f1*t) + A2*sin(2*pi*f2*t);%产生离散时间信号;y = x + A3*randn(size(t); % 叠加噪声;% 时域波形图subplot(2,1,1)plot(Fs*t(1:50),x(1:50)title(Sinusoids Signal)xlabel(time (milliseconds)subplot(2,1,2)plot(Fs*t(1:50),y(1:50)title(Signal Corrupted with Zero-Mean Random Noise)xlabel(time

3、 (milliseconds)NFFT = 2Mextpow2(L); % 设置 FFT 点数,一般为 2 的 N 次方,如 1024, 512 等Y = fft(y,NFFT)/L; % 计算频域信号,f = Fs/2*linspace(0,1,NFFT/2+1);%频率离散化,fft后对应的频率是-Fs/2到Fs/2,由NFFT个离散频点表示% 这里只画出正频率;% Plot single-sided amplitude spectrum.figure;plot(f,2*abs(Y(1:NFFT/2+1);% fft 后含幅度和相位,一般观察幅度谱,并把负频率加上去,title(Singl

4、e-Sided Amplitude Spectrum of y(t)xlabel(Frequency (Hz)ylabel(|Y(f)|)运行结果时域波形图如图所示:斗20*205101520253035404550time (milliseconds)time (milliseconds)Signal Corrupted with Zero-Mean Random Noise幅度谱如下:Single-Sided Amplitude Speatrum of y(t)01002C0300400500600700&009001000Frequency (Hz)由图可见,0Hz的信号幅度为0.4762,频率为80.08,150Hz的信号频率为150.4,幅度0.9348,存在误差。去掉白噪声后,结果为:Frequency (Hz)可见幅度精度提高了,但频率任然有误差。如果修改Fs为2048, L为4096,此时没有补0产生的复查,也没有噪声污染,结果如下:可见结果与信号完全一致。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 电气技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号