关于用MATLAB对信号进行频谱分析程序设计出完整的程序,对三阶交调进行模拟分析:1.输入:三个正弦信号之和,要求三个信号之间的频率相差不大.2.输入信号通过非线性放大器,放大器的放大
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 03:07:29
关于用MATLAB对信号进行频谱分析程序设计出完整的程序,对三阶交调进行模拟分析:1.输入:三个正弦信号之和,要求三个信号之间的频率相差不大.2.输入信号通过非线性放大器,放大器的放大
关于用MATLAB对信号进行频谱分析程序
设计出完整的程序,对三阶交调进行模拟分析:
1.输入:三个正弦信号之和,要求三个信号之间的频率相差不大.
2.输入信号通过非线性放大器,放大器的放大特性为a*x+b*x*x*x.
3.输出:输入信号和输出信号的频谱.(这点最重要,现在我的问题主要在这里,输出的频谱比预期的多出很多个频率).
能给出完整的程序最好了,
下面是我的源程序(为了简单,暂时只用两个正弦信号之和作为输入信号),请各位帮我看看问题出在哪里.
fs=6400000; %采样频率64k
t=0:(1/fs):(0.1-(1/fs)); %时长0.001秒
t_len=size(t,2);
f1=1400;
f2=1600; %双音信号1k和1.6k
f_len=linspace(-fs/2-fs/2/t_len,fs/2-fs/2/t_len,t_len);
figure(1);
a1=1.65;
a3=-0.887;
a5=0.16;
s=(sin(2*pi*f1*t)+sin(2*pi*f2*t));
ss=a1.^s+a3.^s.^s.^s;
fftmov1=20*log10(abs(fft(ss)));
fftmov1=fftshift(fftmov1);
plot(f_len,fftmov1);
ylim([-100 120]);
xlim([0 5000]);
grid on;
xlabel('频率hz');
ylabel('幅度db');
title('输出信号频谱');
关于用MATLAB对信号进行频谱分析程序设计出完整的程序,对三阶交调进行模拟分析:1.输入:三个正弦信号之和,要求三个信号之间的频率相差不大.2.输入信号通过非线性放大器,放大器的放大
ss=a1.^s+a3.^s.^s.^s;
这句是非线性放大器a*x+b*x*x*x么?
不是应该是a1.*s+a2.*x.*x.*x么?