画出矩形床、汉明窗、汉宁窗的时频图matlab代码
时间: 2023-06-12 15:07:45 浏览: 106
以下是绘制矩形窗、汉明窗、汉宁窗的时频图的MATLAB代码:
```matlab
% 设置参数
fs = 1000; % 采样频率
t = 0:1/fs:1-1/fs; % 时间向量
f1 = 50; % 信号频率
f2 = 200; % 信号频率
x = cos(2*pi*f1*t) + cos(2*pi*f2*t); % 生成信号
% 绘制矩形窗时频图
subplot(3,1,1);
plot(t,x);
title('时域信号');
xlabel('时间 (s)');
ylabel('幅值');
subplot(3,1,2);
spectrogram(x,rectwin(length(x)),[],[],fs,'yaxis');
title('矩形窗时频图');
xlabel('时间 (s)');
ylabel('频率 (Hz)');
% 绘制汉明窗时频图
subplot(3,1,2);
spectrogram(x,hamming(length(x)),[],[],fs,'yaxis');
title('汉明窗时频图');
xlabel('时间 (s)');
ylabel('频率 (Hz)');
% 绘制汉宁窗时频图
subplot(3,1,3);
spectrogram(x,hann(length(x)),[],[],fs,'yaxis');
title('汉宁窗时频图');
xlabel('时间 (s)');
ylabel('频率 (Hz)');
```
运行以上代码会生成一个包含三个子图的图像,分别显示矩形窗、汉明窗和汉宁窗的时频图。
相关问题
矩形床、汉明窗、汉宁窗的时频图matlab代码
以下是矩形窗、汉明窗、汉宁窗的时频图 Matlab 代码:
矩形窗:
```matlab
% 生成信号
t = linspace(0, 1, 1024);
f1 = 10; f2 = 20; f3 = 30;
x = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);
% 矩形窗
w = rectwin(length(x));
% 短时傅里叶变换
nfft = 128;
noverlap = 120;
spectrogram(x, w, noverlap, nfft, 1/(t(2)-t(1)), 'yaxis');
```
汉明窗:
```matlab
% 生成信号
t = linspace(0, 1, 1024);
f1 = 10; f2 = 20; f3 = 30;
x = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);
% 汉明窗
w = hamming(length(x));
% 短时傅里叶变换
nfft = 128;
noverlap = 120;
spectrogram(x, w, noverlap, nfft, 1/(t(2)-t(1)), 'yaxis');
```
汉宁窗:
```matlab
% 生成信号
t = linspace(0, 1, 1024);
f1 = 10; f2 = 20; f3 = 30;
x = sin(2*pi*f1*t) + sin(2*pi*f2*t) + sin(2*pi*f3*t);
% 汉宁窗
w = hann(length(x));
% 短时傅里叶变换
nfft = 128;
noverlap = 120;
spectrogram(x, w, noverlap, nfft, 1/(t(2)-t(1)), 'yaxis');
```
matlab矩形窗汉明窗汉宁窗
Matlab 中可以使用 `rectwin`、`hamming` 和 `hanning` 函数生成矩形窗、汉明窗和汉宁窗。
矩形窗:
```matlab
w = rectwin(N);
```
汉明窗:
```matlab
w = hamming(N);
```
汉宁窗:
```matlab
w = hann(N);
```
这里,`N` 是窗口长度。可以通过使用 `plot` 函数来可视化生成的窗口。例如,对于一个长度为 128 的窗口:
```matlab
w = hamming(128);
plot(w);
```
这将绘制出汉明窗的形状。
阅读全文