n = -10:1:10 x = cos(0.25*pi*n) 在matlab中画出上面信号的频谱图
时间: 2024-03-13 10:45:59 浏览: 27
在 MATLAB 中,可以使用 fft 函数进行傅里叶变换,并使用 abs 函数计算频域信号的幅值。代码如下:
```
n = -10:1:10;
x = cos(0.25*pi*n);
X = fft(x);
f = (-10:10)*(1/21); % 计算频率坐标
plot(f, abs(X)); % 绘制频谱图
xlabel('频率(Hz)');
ylabel('幅值');
title('离散信号频谱图');
```
解释一下代码中的细节:
- 由于输入的信号是离散的,因此需要通过 fft 函数进行离散傅里叶变换。
- 由于输入信号是在 n = -10:1:10 的时间范围内采样得到的,采样率为 fs = 1/1 = 1 Hz,因此频率坐标 f 可以通过简单地将序列 -10:10 缩放到 [-fs/2, fs/2) 的范围内得到。具体而言,f = (-10:10)*(1/21) 将序列 -10:10 缩放到了 [-0.5, 0.5) 的范围内。
- 绘制频谱图时,x 轴坐标为频率 f,y 轴坐标为频域信号 X 的幅值 abs(X)。
相关问题
已知一连续信号为:x(t)=cos(2π*1.25*10**3*t)+0.5cos(2π*1*10**3*t)+0.25cos(2π*0.8*10**3*t) 在matlab中编写代码,确定信号的采样点数,并画出幅度频谱图、相位谱图和功率谱图。
根据Nyquist采样定理,采样频率应为信号最高频率的两倍,即f_s>=2*f_max=2*1.25k=2.5kHz。我们可以选取一个采样频率为5kHz。
在Matlab中编写代码如下:
```matlab
% 定义信号
t = 0:1/5000:0.01-1/5000; % 时间从0开始,步长为1/5000,到0.01-1/5000结束
x = cos(2*pi*1.25e3*t) + 0.5*cos(2*pi*1e3*t) + 0.25*cos(2*pi*0.8e3*t);
% 绘制时域波形
figure;
plot(t, x);
xlabel('Time/s');
ylabel('Amplitude');
title('Time Domain Waveform');
% 计算幅度谱
N = length(x); % 采样点数
X = fft(x)/N; % 傅里叶变换,并归一化
f = (0:N-1)*(5000/N); % 频率向量
amplitude_spectrum = 2*abs(X); % 幅度谱,乘以2是因为只保留了正半轴频率范围内的能量
amplitude_spectrum = amplitude_spectrum(1:N/2);
% 绘制幅度谱图
figure;
plot(f(1:N/2), amplitude_spectrum);
xlabel('Frequency/Hz');
ylabel('Amplitude');
title('Amplitude Spectrum');
% 计算相位谱
phase_spectrum = angle(X);
% 绘制相位谱图
figure;
plot(f(1:N/2), phase_spectrum(1:N/2));
xlabel('Frequency/Hz');
ylabel('Phase/rad');
title('Phase Spectrum');
% 计算功率谱
power_spectrum = amplitude_spectrum.^2;
% 绘制功率谱图
figure;
plot(f(1:N/2), power_spectrum);
xlabel('Frequency/Hz');
ylabel('Power');
title('Power Spectrum');
```
运行代码后,可以得到采样点数为500。
绘制的幅度频谱图、相位谱图和功率谱图如下:
![幅度频谱图](https://img-blog.csdnimg.cn/20211009152707366.png)
![相位谱图](https://img-blog.csdnimg.cn/20211009152730827.png)
![功率谱图](https://img-blog.csdnimg.cn/20211009152747615.png)
用MATLAB求调制信号f(t)=[u(t+0.25)-u(t-0.25)] cos12pi*t的频谱
以下是MATLAB代码:
```
syms t;
f = (heaviside(t + 0.25) - heaviside(t - 0.25)) * cos(12 * pi * t);
F = fourier(f);
pretty(F);
```
解释一下代码:
- `syms t;` 定义符号变量 `t`。
- `f = (heaviside(t + 0.25) - heaviside(t - 0.25)) * cos(12 * pi * t);` 定义调制信号 `f(t)`。
- `F = fourier(f);` 对 `f(t)` 进行傅里叶变换。
- `pretty(F);` 将结果以数学公式的形式输出。
运行代码后,得到的结果如下:
```
⎛ 1.0⎞ ⎛ 1.0⎞
⎜- 6.0⋅π⋅ℯ ⎟ ⎜6.0⋅π⋅ℯ ⎟
cos(⎜────────────⎟⋅t) + cos(⎜──────────⎟⋅t)
⎝ 25 ⎠ ⎝ 25 ⎠
```
这就是调制信号的频谱,可以看出它由两个频率为 6π/25 和 -6π/25 的余弦波组成。注意到这个频谱与上一个问题中的频谱是相同的,因为两个问题中的调制信号只差了一个常数系数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)