matlab中问题:x = A1 * sin(2 * pi * f1 * t) + A2 * sin(2 * pi * f2 * t) + rand(size(t))

f1=364.21,f2=124.7,A1<A2人家画出的图形横坐标0,2,4,6,8,10;纵坐标-10,-5,0,5,10那么A1和A2分别是多少?程序怎么写?如何对... f1=364.21 , f2= 124.7,A1<A2
人家画出的图形横坐标0,2,4,6,8,10;纵坐标-10,-5,0,5,10
那么A1和A2分别是多少?程序怎么写?
如何对x进行FFT变换,画出波形图?程序怎么写?
展开
xiongxionghy
2011-06-01 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1753
采纳率:75%
帮助的人:2963万
展开全部
你是学通信的吧。看你的描述,这题应该是时域信号有两个频率的正弦波叠加,再加上了噪声。然后通过FFT发现在两个频率上的能量较大,其他频率上能量较小,那两个频率就是f1和f2。
你刻意地去重现别人的程序,有点不合适,因为本身信号就是带有噪声的,rand是个随机的值,每次运行都不一样,无法重现。(另外此处也应写成randn,这样才是有正有负的噪声,rand产生的是0~1上的噪声,没有负值的!)

如果你是要交作业,就把下面的程序复制一下交差就行,如果真心想学,再追问好了,我设置的A1=5,A2=3,但这不是主要关键,只要A1,A2比1大。就信号就不会被噪声淹没,FFT的频谱也就能有明显的峰值。画出来的频域图用放大镜看,因为采样频率是100Khz,而峰值出现在364.21 Hz和124.7 Hz,所以集中在横轴的左边。

clc;
clear;
f1 = 364.21 * 1e-3; % unit: kHz
f2 = 124.7 * 1e-3; % unit: kHz
t = 0 : 0.01 : 10; % unit: ms
f = 0 : 0.1 : 100;
A1 = 5;
A2 = 3;
x = A1 * sin(2 * pi * f1 * t) + A2 * sin(2 * pi * f2 * t)+ randn(size(t));
x_f = fft(x);
figure(1)
subplot(2,1,1)
plot(t,x);
xlabel('t/ms');
ylabel('Amplitude');
title('Time-domain');
subplot(2,1,2);
plot(f,abs(x_f));
xlabel('f/kHz');
ylabel('Amplitude');
title('Frequency-domain');
更多追问追答
追问
我不是通信的,没学过matlab。太感谢了,写了这么多字,真是好人啊!能留下你的qq吗?或者你加我也行,小弟602299917,麻烦你了,有点问题想请教你,谢谢!!
追答
我现在有点事,不能马上回复你,一会再说。OK?
QQ694586874
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式