matlab生成的波形怎么进行fft分析

 我来答
Su颜aiL依旧
2016-07-28 · TA获得超过118个赞
知道小有建树答主
回答量:58
采纳率:0%
帮助的人:40.1万
展开全部

我放个《通信原理——基于matlab的计算机仿真》的例子,是对方波进行分析的。

以下是主函数:

%*********利用DFT计算信号的频谱并与信号的真实频谱的抽样比较*******************

%***********************方波的傅里叶变换************************************

clear all;

close all;


T = 1;

N_sample = 128;

dt = T/N_sample;


t = 0:dt:T - dt;

st = [ones(1,N_sample/2), -ones(1,N_sample/2)];%一个周期的方波


subplot(211);

plot(t,st);

axis([0 1 -2 2]);

xlabel('t');

ylabel('s(t)');


subplot(212);

[f,sf] = DFT_T2F(t,st);

plot(f,abs(sf));

hold on;

axis([-10 10 0 1]);

xlabel('f');

ylabel('|S(f)|');


%根据傅里叶变换计算得到的信号频谱相应的位置的抽样值

sff = T^2*1i*pi*f*0.5.*exp(-1i*2*pi*f*T).*sinc(f*T*0.5).*sinc(f*T*0.5);

plot(f,abs(sff),'r--')


以下是子函数:

%使用FFT函数计算信号的傅里叶变换

function [f,sf] = DFT_T2F(t,st)

%输入:时间,信号向量;时间长度必须大于2

%输出:频率,信号频谱

dt = t(2) - t(1);

T = t(end);

df = 1/T;

N = length(st);


f = -N/2*df:df:N/2*df-df;

sf = fft(st);

sf = T/N*fftshift(sf);

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式