Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-22, 00:01   #1
handsomelufeng
初级会员
 
注册日期: 2008-10-16
年龄: 42
帖子: 7
声望力: 0
handsomelufeng 正向着好的方向发展
默认 关于快速傅里叶变换的功率谱

关于快速傅里叶变换的功率谱
本人在做快速傅里叶的一道问题时,遇到了这样一个困难,就是怎样绘制快速傅里叶的频谱
假设有一个信号x(t) = 3cos(πt) + 2cos(3πt) + cos(6πt)。建立这个信号被噪声干扰的一个模
型,然后计算FFT检查信号的频谱。时间选10秒。
首先我们定义时间区间:
177
>> t = 0:0.01:10;
现在我们定义信号:
>> x = 3*cos(pi*t) + 2*cos(3*pi*t) + cos(6*pi*t);
为了模拟噪声,我们随机产生一些数字然后把它们添加到信号中去。要产生随机数字,
我们可以调用randn来做:
>> x_noisy = x + randn(size(t));
我们绘制这两个图象,看看噪声的影响情况。我们显示了前1000毫秒内未
受干扰的原始信号图象。用来绘制这个图象的命令是:
>> plot(1000*t(1:100),x(1:100)), xlabel('时间(ms)'), title('原始信号')
信号的噪声
现在我们绘制这一时间内的噪声信号。命令是:
>> plot(1000*t(1:100),x_noisy(1:100)),xlabel('时间(ms)'), title('噪声信号')。
噪声信号看起来真让人绝望。通过计算傅立叶变换,我们可以搜集原始信号的有用信息
。输入fft(f, n),我们能够计算函数f的n个点的快速傅立叶变换,仿效MATLAB帮助中给出的
例子,我们计算函数有512个点的傅立叶变换:
>> FT = fft(x_noisy,512);
信号中的功率可以通过计算傅立叶变换和它的共扼复数的乘积再除以总点数求得:
>> P = FT.*conj(FT)/512;
现在想问:如何绘制这个带有噪声的信号的频率谱。
handsomelufeng 当前离线   回复时引用此帖
旧 2008-10-23, 17:35   #2
songzy41
普通会员
 
注册日期: 2008-04-05
年龄: 83
帖子: 37
声望力: 18
songzy41 正向着好的方向发展
默认 回复: 关于快速傅里叶变换的功率谱

采样频率是100,要画带噪信号功率谱,可以有:
df=100/512;
m=1:257;
ff=(m-1)*df;
plot(ff,P(m));
songzy41 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]MATLAB中的.p文件有什么用啊,怎么编译? TT MATLAB论坛 2 2009-04-14 16:58
[讨论]FFT结果 kmkeke MATLAB论坛 0 2008-12-11 21:53
[求助]还有一个。。 幻紫风 MATLAB论坛 0 2008-12-11 21:17
[求助]Maple Toolbox for MATLAB - Version 12.01 (for users of version 12.00)谁有啊?谢谢! jamesgump MATLAB论坛 0 2008-11-27 21:11
[求助]simulink 中能不能对矩阵进行基本的操作呢 yinyongyi MATLAB论坛 0 2008-11-26 11:54


所有时间均为北京时间。现在的时间是 12:03


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.