用matlab对信号x(t)=cos(80*pi*t)+sin(100*pi*t)+exp(j*50*pi*t),以90Hz的频率进行抽样,用fft命令求其频谱,并画出幅度谱,分析产生相关峰值的原因
时间: 2024-01-17 14:12:22 浏览: 126
解x=linspace(,*pi,;-第3讲 MATLAB作图(1)
首先,我们需要生成信号并进行抽样:
```matlab
% 生成信号
t = 0:0.0001:0.1;
x = cos(80*pi*t) + sin(100*pi*t) + exp(1j*50*pi*t);
% 进行抽样
fs = 90; % 采样频率
Ts = 1/fs; % 采样周期
n = 0:Ts:0.1;
xn = cos(80*pi*n) + sin(100*pi*n) + exp(1j*50*pi*n);
```
然后,我们可以使用FFT命令求其频谱:
```matlab
X = fft(xn);
f = (0:length(X)-1)*fs/length(X);
```
接着,我们可以画出其幅度谱:
```matlab
plot(f,abs(X))
xlabel('频率 (Hz)')
ylabel('幅度')
title('信号的幅度谱')
```
最终的结果如下图所示:
![幅度谱](https://img-blog.csdnimg.cn/20210914165632410.png)
可以看到,频谱中存在两个明显的峰值,分别位于80Hz和100Hz处。
这是因为信号中包含了两个正弦波,分别位于80Hz和100Hz处。在进行抽样时,我们选择了90Hz的采样频率,这意味着我们只能采样到80Hz的正弦波和100Hz的正弦波中的一个。
当我们对信号进行FFT分析时,只会得到采样频率范围内的频率分量。因此,我们只能看到80Hz和100Hz处的峰值,而不能看到其他频率处的成分。
阅读全文