MATLAB 信号的时域和频域表示

模拟产生一段通信接收信号,表达式为:S(t)=sin(2*pi*30*t)+randn(1,1024),要求用MATLAB画S(t)幅频特性图和相频特性图... 模拟产生一段通信接收信号,表达式为:S(t)=sin(2*pi*30*t)+randn(1,1024),要求用MATLAB画S(t)幅频特性图和相频特性图 展开
 我来答
cloudhuman
推荐于2016-11-01 · TA获得超过261个赞
知道答主
回答量:167
采纳率:100%
帮助的人:171万
展开全部
先对t离散化,然后FFT,再画个幅频和相频就可以了。
不过貌似你这个式子有点问题,randn产生1*1024的高斯噪声已经指定了s的维数了,所以t必须去1024个离散值,限定了t的取值了。
你可以参考下面的程序,建议你看懂之后自己编一下。
这是对sin(x)求幅频相频
%用fft求幅频相频
clc;%清空
clearall;%清除所有变量
closeall;%关闭所有窗口
A=10;%振幅
fw=50;%固有频率
phi=pi/3;%相位
step=1000;
t=0:1/step:10*pi;%时间t
y=A*sin(2*pi*fw*t+phi);%正弦函数y
f=step*(0:256)/512;%频率
subplot(3,1,1);%三行一列第一幅图
plot(t,y);%绘制图形
xlabel('t/s','fontsize',13);%横坐标显示t/s,字号13
ylabel('y','fontsize',13);%纵坐标显示y,字号13
title('正弦函数曲线','fontsize',13);%显示标题
Y=fft(y,512);%对y进行傅里叶变换
subplot(3,1,2);%三行一列第二幅图
plot(f,abs(Y(1:257)));%绘制图形
xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13
ylabel('幅值','fontsize',13);%纵坐标显示幅值,字号13
title('幅频特性曲线','fontsize',13);%显示标题
[value,index]=max(abs(Y));%将abs(Y)最大值点的横坐标、纵坐标分别赋给
value和index
text(f(index),value,sprintf('maxpiont=(%f,%f)',f(index),value),'fonts
ize',13);%显示最大值点坐标
subplot(3,1,3);%三行一列第三幅图
plot(f,angle(Y(1:257))*180/pi);%绘制图形
xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13
ylabel('相位/°','fontsize',13);%纵坐标显示相位/°,字号13
title('相位特性曲线','fontsize',13);%显示标题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式