用matlab写出m(t)频率为5HZ的单音余弦信号的时域图和频谱图
时间: 2024-04-01 18:36:27 浏览: 140
好的,我可以帮您解答这个问题。
首先,我们需要知道单音余弦信号的数学表达式:
$$m(t)=A\cos(2\pi f t+\phi)$$
其中,$A$表示振幅,$f$表示频率,$\phi$表示相位。根据题意,$f=5\text{Hz}$,我们可以选择$A=1$,$\phi=0$。
接下来,我们需要用 Matlab 来生成这个信号,并绘制其时域图和频谱图。下面是代码实现:
```matlab
% 生成信号
fs = 200; % 采样率
t = 0:1/fs:1; % 时间轴
f = 5; % 信号频率
m = cos(2*pi*f*t); % 生成余弦信号
% 绘制时域图
subplot(2,1,1);
plot(t, m);
xlabel('时间(秒)');
ylabel('幅值');
title('时域图');
% 绘制频谱图
subplot(2,1,2);
N = length(m);
f = (-N/2:N/2-1)*fs/N;
M = fftshift(fft(m));
P = abs(M).^2/N;
plot(f, P);
xlabel('频率(Hz)');
ylabel('功率谱密度');
title('频谱图');
```
解释一下代码:
- `fs`表示采样率,这里取200Hz;
- `t`表示时间轴,从0到1秒,每隔$1/fs$秒采样一次;
- `f`表示信号频率,这里取5Hz;
- `m`表示生成的余弦信号;
- `subplot(2,1,1)`表示在一个画布上划分为2行1列,第1个子图,用于绘制时域图;
- `subplot(2,1,2)`表示在一个画布上划分为2行1列,第2个子图,用于绘制频谱图;
- `N`表示信号长度,即采样点数;
- `f`表示频率轴,采用双边频谱,范围为$[-fs/2,fs/2)$;
- `M`表示信号的傅里叶变换结果;
- `P`表示信号的功率谱密度。
运行代码后,可以得到如下结果:
![时域图和频谱图](https://img-blog.csdnimg.cn/20210906142650943.png)
可以看到,时域图是一条频率为5Hz的余弦波,频谱图中只有一个峰,频率为5Hz,功率谱密度为1。
阅读全文