一、混频器简介
混频器是输出信号频率等于两输入信号频率之和、差或为两者其他组合的电路。
二、Matlab代码
实现功能:将两个输入的500kHz的信号混频输出1000kHz并滤除直流分量的正弦信号输出
%设置系统参数
fi=500000; %输入信号频率
fc=500000; %本振信号的频率
Fs=5000000; %采样频率
L=1024; %数据长度
N=10; %量化位数
%产生输入信号
t=0:1/Fs:(1/Fs)*(L-1); %产生采样频率的时间序列
theta=rand()*2*pi; %产生一个随机相位角度
si=sin(2*pi*fi*t+theta);%生成具随机起始相位的正弦波输入信号
si=round(si*(2^(N-1)-1));%10bit量化
%产生本振信号
sc=sin(2*pi*fc*t); %生成本振信号
sc=round(sc*(2^(N-1)-1));%10bit量化
%仿真混频输出并画图
so=si.*sc; %混频器输出
sof=so-mean(so); %混频器滤除直流分量后输出
fso=abs(fft(so,L)); %求FFT变换的幅度值
%归一化处理
sc=sc/max(abs(sc));
si=si/max(abs(si));
so=so/max(abs(so));
sof=sof/max(abs(sof));
fso=fso/max(fso);
%转换成相对于原点对称的信号
fso=[fso(L/2+1:L),fso(1:L/2)]; %画图
m=[-L/2:1:(L/2-1)]*Fs/L*(10^(-6)); %生成频率坐标轴,单位为MHz
t=t*(10^6); %生成时间坐标轴,单位为us
subplot(221);plot(t(1:32),si(1:32));
xlabel('时间/us');ylabel('幅度');
title('10bit量化后的输入信号(a)','fontsize',8);
subplot(222);plot(t(1:32),so(1:32));
xlabel('时间/us');ylabel('幅度');
title('20bit量化后的混频输出信号(b)','fontsize',8);
subplot(223);plot(t(1:32),sof(1:32));
xlabel('时间/us');ylabel('幅度');
title('滤除直流分量后的混频输出信号(c)','fontsize',8);
subplot(224);plot(m,fso);
xlabel('频率/MHz');ylabel('幅度');
title('混频输出信号的幅频响应(d)','fontsize',8);