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变换,画出波形图?程序怎么写? 展开
人家画出的图形横坐标0,2,4,6,8,10;纵坐标-10,-5,0,5,10
那么A1和A2分别是多少?程序怎么写?
如何对x进行FFT变换,画出波形图?程序怎么写? 展开
展开全部
你是学通信的吧。看你的描述,这题应该是时域信号有两个频率的正弦波叠加,再加上了噪声。然后通过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');
你刻意地去重现别人的程序,有点不合适,因为本身信号就是带有噪声的,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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询