matlab - Matlab中如何绘制相位图?
问题描述
我需要计算信号的频谱并在 matlab 中绘制其幅度和相位。我已经弄清楚如何绘制幅度图,但无法理解如何绘制相位图
N = 1000; Ts = 0.05; Fs = 1/Ts;
t = [0:Ts:(N*Ts)-Ts];
xc = 4*exp(1i*5*pi*t) + 6*exp(1i*12*pi*t);
f=[-Fs/2:Fs/N:Fs/2-Fs/N];
Xc=fft(xc);
figure;
subplot(211)
plot(f,fftshift(abs(Xc))) ;title('Magnitude as a function of Hz');
xlabel('f in Hz');ylabel('|Xc|');grid on;
subplot(212)
w=2*pi*f;
plot(w,fftshift(abs(Xc))) ;title('Magnitude as a function of w');
xlabel('w');ylabel('|Xc|');grid on;
任何帮助,将不胜感激
解决方案
用 替换abs
您用于幅度图angle
,例如:
plot(w,fftshift(angle(Xc))) ;title('Phase as a function of w');
推荐阅读
- google-bigquery - 仅扫描已过滤行的列
- python - 如何深度复制 pygame 精灵组?
- python - 实时网络摄像头源上的 OCR:图像高度为零,IHDR 数据无效
- visual-studio - 导致错误的原因:不支持“NgenLocalized”参数
- uiviewcontroller - 为什么 NavigationLink 按钮在自定义 UIViewControllerRepresentable 包装器中显示为“禁用”
- sql - 得到错误不正确的语法我做错了什么
- mongodb - 重新启动我的服务 systemd 后无法访问 docker-compose 卷
- svn - 处理引用多个 SVN 存储库的项目
- php - Laravel 嵌套查询多重关系
- laravel - 使用 belongsTo 的关系用户和子数据