如何绘制一个信号的频谱在matlab ?

1726(30天)
嗨。我想画出频谱的信号。我有这个编码基于来源从互联网,但我发现我的讲师说这不是频谱。有人能帮我吗?
关闭所有;
%定义样本的数量
fs = 8000;
f = 400;%赫兹
%定义信号
t = 0:1 / fs: 1 - 1 / f;
信号=罪(2 *π* f * t);
%的情节来说明它是一个正弦波
情节(t,信号);
标题(时域信号的);
%进行傅里叶变换
fftSignal = fft(信号);
% fftshift适用于把它放在我们习惯于形式(见文档)
fftSignal = fftshift (fftSignal);
%,计算频率轴,定义的采样率
f = f / 2 * linspace (1, 1, fs);
%因为信号复杂,我们需要情节让它的大小
%看起来正确,所以我们用abs(绝对值)
图;
情节(f, abs (fftSignal));
标题(“正弦的FFT级”);
包含(的频率(赫兹));
ylabel (“级”);
%的噪音
噪音= 2 * randn(大小(信号));
人物,情节(t、噪音)、标题(“时域噪声”);
fftNoise = fft(噪音);
fftNoise = fftshift (fftNoise);
人物,情节(f, abs (fftNoise))、标题(FFT的噪声级的);
包含(的频率(赫兹));
ylabel (“级”);
%噪声信号
noisySignal =信号+噪声;
人物,情节(t, noisySignal)、标题(的时域噪声信号);
fftNoisySignal = fft (noisySignal);
fftNoisySignal = fftshift (fftNoisySignal);
人物,情节(f, abs (fftNoisySignal))、标题(噪声信号的FFT级);
包含(的频率(赫兹));
ylabel (“级”);

接受的答案

弗朗茨Bouchereau
弗朗茨Bouchereau 2021年7月29日
编辑:弗朗茨Bouchereau 2021年7月29日
代码计算FFT和需要一些额外的规范化步骤来计算真实功率谱。
有多种方法可以计算和情节真实功率谱和功率谱密度在MATLAB(当我说‘真’我意味着输出功率谱值对应于实际功率值)。
1)如果你想计算功率谱,而无需指定许多参数和希望函数选择最佳参数,您可以使用 pspectrum 调用的函数没有输出的情节会给你计算功率谱。
2)如果你想计算功率谱和功率谱密度和想要完全控制窗口大小,窗口重叠,窗口类型,和FFT点数,你可以使用韦尔奇周期图 pwelch 函数。调用的函数没有输出的情节会给你计算功率谱。
3)如果你想想象功率谱,可以使用 信号分析仪的应用 。这个程序让你想象你的信号同时在时间,频率,和时频域。你可以放大信号在这些地区的兴趣和分析光谱放大区域。
4)如果你有你的信号分割成多个信号帧可以使用 频谱分析仪的范围
计算真实功率谱需要规范化的FFT和窗口用于计算。这是一个受欢迎的MATLAB医生页面解释了FFT和真实功率谱之间的关系: 使用FFT功率谱密度估计

更多的答案(3)

Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2015年10月26日
大家好!
我不知道为什么你的老师不喜欢它!也许是失踪的一个部门,他是挑剔的!
fftNoisySignal = fft (NoisySignal)。/元素个数(NoisySignal);
也许是这样,基本上fft的大小有一个问题,我猜!你需要应用这个部门在每个fft命令你使用。
希望这个有帮助。
好运!
3评论
乔纳斯
乔纳斯 2021年5月1日
@Lazaros:因为更长的信号具有相同的光谱内容将apprar更高的振幅谱。如果你不分裂,一个2秒正弦会双谱振幅相比,相同的正弦只有一秒。通常在一个单侧谱你想直接看到一个特定频率的振幅,不管信号长度

登录置评。


图像分析
图像分析 2015年10月26日
编辑:图像分析 2015年10月26日
这不是吗?我一直认为FFT的频谱。他为什么说不?也许他希望看到你使用pwelch (), periodgram(),或光谱图()优先于fft () ? ? ?
2的评论
Salaheddin Hosseinzadeh
Salaheddin Hosseinzadeh 2015年10月27日
作为图像分析师说,有几种不同的方法。其中一些有不同的名称。功率谱、功率谱密度和…每一个都有略微不同的计算方法。然而,简单的fft是他们的核心,正确执行的代码。
tnx你已经接受了我的答案,但如果你的问题不是和你正在寻找一些特定的搜索和如果没有成功让我知道:)
好运!

登录置评。


维克多Bolgov
维克多Bolgov 2019年12月1日
我不得到它。你有正弦波频率400赫兹和1级。你确实光谱显示frequncy 400 Hz,但超过4000级!这怎么可能呢?
1评论
桑德罗Yemi刚才Okutuga
桑德罗Yemi刚才Okutuga 2020年8月14日
编辑:桑德罗Yemi刚才Okutuga 2020年8月14日
的傅里叶变换分析sinewave到处都是0除了无限的在400赫兹。事实结果只有4000,而不是无限是因为信号是有限的时间和数值计算。它不会是1。

登录置评。

标签

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!