matlab中问题:x = A1 * sin(2 * pi * f1 * t) + A2 * sin(2 * pi * f2 * t) + rand(size(t))f1=364.21 ,f2= 124.7,A1
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 16:41:13
matlab中问题:x = A1 * sin(2 * pi * f1 * t) + A2 * sin(2 * pi * f2 * t) + rand(size(t))f1=364.21 ,f2= 124.7,A1
matlab中问题:x = A1 * sin(2 * pi * f1 * t) + A2 * sin(2 * pi * f2 * t) + rand(size(t))
f1=364.21 ,f2= 124.7,A1
matlab中问题:x = A1 * sin(2 * pi * f1 * t) + A2 * sin(2 * pi * f2 * t) + rand(size(t))f1=364.21 ,f2= 124.7,A1
你是学通信的吧.看你的描述,这题应该是时域信号有两个频率的正弦波叠加,再加上了噪声.然后通过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');