专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
matlab
fft函数的使用?求指导
2019-07-17 13:34
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
matlab
6620
2
1248
通过waveread读取的信号如何求频谱/?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
birdinskydzfsy
1楼-- · 2019-07-17 16:43
fs=1000;%对连续信号进行量化处理,即对原始信号进行采样,这里是采样率,单位Hz
ts=1/fs;%采样间隔
t=0:ts:1.3;
x=sin(2*pi*50*t)+sin(2*pi*300*t);
%y=@(t) sin(2*pi*50*t)+sin(2*pi*300*t);
f=x+3.5*randn(1,length(t));
subplot(411);plot(t,f);
ylabel('幅值');xlabel('时间');title('原始信号');
nfft= 2^nextpow2(length(f));%找出大于y的个数的最大的2的指数值
y=fft(f,nfft);%对f信号进行DFT,得到频率的幅值分布
p=y.*conj(y)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。
ff=fs*(0:nfft/2-1)/nfft;% F F T 变换后对应的频率的序列
subplot(412);plot(ff,p(1:nfft/2));
ylabel('功率谱密度');xlabel('频率');title('信号功率谱');
%------论坛上看到的求FFT的方法
subplot(413);plot(ff,abs(y(1:nfft/2)));%(用这个,先取点数后求模)
ylabel('幅值');xlabel('频率');title('单边幅频谱');
%------matlab例子的求FFT的方法
subplot(414);plot(ff,2*abs(y(1:nfft/2))/length(f));%(用这个,先取点数后求模)
ylabel('幅值');xlabel('频率');title('单边幅频谱');
%振幅的大小与所用DFT采样点数(nfft)有关,采用不同的DFT采样点数对同一信号,振幅是有不同的表现值
加载中...
birdinskydzfsy
2楼-- · 2019-07-17 20:06
精彩回答 2 元偷偷看……
加载中...
一周热门
更多
>
相关问题
分享:用MATLAB写STM32算法
19 个回答
求高手指导MATLAB图形
2 个回答
请教高手求解方程组含有三角函数
2 个回答
请教已知离散点坐标(X,Y非均匀分布),如何用matlab绘制曲面图
2 个回答
请问各位,在Matlab中遇到积分无穷大怎么处理?
1 个回答
squ_ad这个函数matlab自己有么
6 个回答
关于相位移位的疑问
1 个回答
求助GUI方面的问题
2 个回答
相关文章
编写的Matlab程序在运行一段时间后速度会变慢
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
matlab
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
ts=1/fs;%采样间隔
t=0:ts:1.3;
x=sin(2*pi*50*t)+sin(2*pi*300*t);
%y=@(t) sin(2*pi*50*t)+sin(2*pi*300*t);
f=x+3.5*randn(1,length(t));
subplot(411);plot(t,f);
ylabel('幅值');xlabel('时间');title('原始信号');
nfft= 2^nextpow2(length(f));%找出大于y的个数的最大的2的指数值
y=fft(f,nfft);%对f信号进行DFT,得到频率的幅值分布
p=y.*conj(y)/nfft;%conj()函数是求y函数的共轭复数,实数的共轭复数是他本身。
ff=fs*(0:nfft/2-1)/nfft;% F F T 变换后对应的频率的序列
subplot(412);plot(ff,p(1:nfft/2));
ylabel('功率谱密度');xlabel('频率');title('信号功率谱');
%------论坛上看到的求FFT的方法
subplot(413);plot(ff,abs(y(1:nfft/2)));%(用这个,先取点数后求模)
ylabel('幅值');xlabel('频率');title('单边幅频谱');
%------matlab例子的求FFT的方法
subplot(414);plot(ff,2*abs(y(1:nfft/2))/length(f));%(用这个,先取点数后求模)
ylabel('幅值');xlabel('频率');title('单边幅频谱');
%振幅的大小与所用DFT采样点数(nfft)有关,采用不同的DFT采样点数对同一信号,振幅是有不同的表现值
一周热门 更多>