matlab求信号的傅里叶变换画频谱图
时间: 2023-08-06 13:18:36 浏览: 76
要在Matlab中求信号的傅里叶变换并画出频谱图,可以按照以下步骤进行:
1. 生成信号
比如,生成一个包含正弦波和余弦波的信号:
```matlab
fs = 1000; % 采样率
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + cos(2*pi*120*t); % 信号
```
2. 进行傅里叶变换
使用Matlab中的`fft`函数对信号进行傅里叶变换:
```matlab
y = fft(x);
```
3. 计算频率向量
根据采样率和信号长度,计算出频率向量:
```matlab
n = length(x); % 信号长度
f = (0:n-1)*(fs/n); % 频率向量
```
4. 计算频谱
对傅里叶变换结果进行归一化,并计算出频谱:
```matlab
power = abs(y/n); % 归一化处理
power = power(1:n/2+1); % 取一半数据
power(2:end-1) = 2*power(2:end-1); % 奇数点乘2
```
5. 画出频谱图
使用`plot`函数画出频谱图:
```matlab
plot(f,power)
xlabel('频率 (Hz)')
ylabel('幅值')
```
完整代码如下:
```matlab
fs = 1000; % 采样率
t = 0:1/fs:1; % 时间向量
x = sin(2*pi*50*t) + cos(2*pi*120*t); % 信号
y = fft(x);
n = length(x); % 信号长度
f = (0:n-1)*(fs/n); % 频率向量
power = abs(y/n); % 归一化处理
power = power(1:n/2+1); % 取一半数据
power(2:end-1) = 2*power(2:end-1); % 奇数点乘2
plot(f,power)
xlabel('频率 (Hz)')
ylabel('幅值')
```
运行后即可显示出频谱图。